screw-up 0.14.0 → 0.16.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/dist/{internal-BHSe5LIZ.cjs → analyzer-2k5jeoJo.cjs} +250 -229
- package/dist/analyzer-2k5jeoJo.cjs.map +1 -0
- package/dist/{internal-BgCvktPU.js → analyzer-CU8VuwpB.js} +250 -229
- package/dist/analyzer-CU8VuwpB.js.map +1 -0
- package/dist/analyzer.d.ts +8 -8
- package/dist/analyzer.d.ts.map +1 -1
- package/dist/cli-internal.d.ts +8 -5
- package/dist/cli-internal.d.ts.map +1 -1
- package/dist/cli.d.ts +3 -3
- package/dist/cli.d.ts.map +1 -1
- package/dist/generated/packageMetadata.d.ts +4 -4
- package/dist/index.cjs +22 -7
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -6
- package/dist/index.js.map +1 -1
- package/dist/internal.d.ts +13 -11
- package/dist/internal.d.ts.map +1 -1
- package/dist/main.cjs +36 -21
- package/dist/main.cjs.map +1 -1
- package/dist/main.d.ts +2 -2
- package/dist/main.js +32 -17
- package/dist/main.js.map +1 -1
- package/dist/{packageMetadata-D9nXAoK9.cjs → packageMetadata--R5DYhGa.cjs} +4 -4
- package/dist/{packageMetadata-D9nXAoK9.cjs.map → packageMetadata--R5DYhGa.cjs.map} +1 -1
- package/dist/{packageMetadata-Dsxn2dKN.js → packageMetadata-BC5X00sF.js} +4 -4
- package/dist/{packageMetadata-Dsxn2dKN.js.map → packageMetadata-BC5X00sF.js.map} +1 -1
- package/dist/types.d.ts +2 -2
- package/dist/vite-plugin.d.ts +3 -3
- package/dist/vite-plugin.d.ts.map +1 -1
- package/package.json +6 -6
- package/dist/internal-BHSe5LIZ.cjs.map +0 -1
- package/dist/internal-BgCvktPU.js.map +0 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* name: screw-up
|
|
3
|
-
* version: 0.
|
|
3
|
+
* version: 0.16.0
|
|
4
4
|
* description: Simply package metadata inserter on Vite plugin
|
|
5
5
|
* author: Kouji Matsui (@kekyo@mi.kekyo.net)
|
|
6
6
|
* license: MIT
|
|
7
7
|
* repository.url: https://github.com/kekyo/screw-up.git
|
|
8
|
-
* git.commit.hash:
|
|
8
|
+
* git.commit.hash: c5c68d39d1ab116299338d31f0f208c0eb49be5c
|
|
9
9
|
*/
|
|
10
10
|
"use strict";
|
|
11
11
|
const fs = require("fs");
|
|
@@ -1113,6 +1113,241 @@ const JSON5 = {
|
|
|
1113
1113
|
stringify
|
|
1114
1114
|
};
|
|
1115
1115
|
var lib = JSON5;
|
|
1116
|
+
const createConsoleLogger = () => {
|
|
1117
|
+
return {
|
|
1118
|
+
debug: (msg) => console.debug(msg),
|
|
1119
|
+
info: (msg) => console.info(msg),
|
|
1120
|
+
warn: (msg) => console.warn(msg),
|
|
1121
|
+
error: (msg) => console.error(msg)
|
|
1122
|
+
};
|
|
1123
|
+
};
|
|
1124
|
+
const flattenObject = (obj, prefix, map) => {
|
|
1125
|
+
for (const [key2, value] of Object.entries(obj)) {
|
|
1126
|
+
if (!value)
|
|
1127
|
+
continue;
|
|
1128
|
+
const fullKey = prefix ? `${prefix}.${key2}` : key2;
|
|
1129
|
+
if (typeof value === "string") {
|
|
1130
|
+
map[fullKey] = value;
|
|
1131
|
+
} else if (Array.isArray(value)) {
|
|
1132
|
+
map[fullKey] = value.map((v) => String(v)).join(",");
|
|
1133
|
+
} else if (typeof value === "object") {
|
|
1134
|
+
flattenObject(value, fullKey, map);
|
|
1135
|
+
} else {
|
|
1136
|
+
map[fullKey] = String(value);
|
|
1137
|
+
}
|
|
1138
|
+
}
|
|
1139
|
+
};
|
|
1140
|
+
const findWorkspaceRoot = async (startPath, logger) => {
|
|
1141
|
+
let currentPath = startPath;
|
|
1142
|
+
while (currentPath !== path.dirname(currentPath)) {
|
|
1143
|
+
const packageJsonPath = path.join(currentPath, "package.json");
|
|
1144
|
+
if (fs.existsSync(packageJsonPath)) {
|
|
1145
|
+
try {
|
|
1146
|
+
const content = await promises.readFile(packageJsonPath, "utf-8");
|
|
1147
|
+
const packageJson = lib.parse(content);
|
|
1148
|
+
if (packageJson.workspaces || fs.existsSync(path.join(currentPath, "pnpm-workspace.yaml")) || fs.existsSync(path.join(currentPath, "lerna.json"))) {
|
|
1149
|
+
return currentPath;
|
|
1150
|
+
}
|
|
1151
|
+
} catch (error) {
|
|
1152
|
+
logger.warn(`Failed to parse package.json at ${packageJsonPath}: ${error}`);
|
|
1153
|
+
}
|
|
1154
|
+
}
|
|
1155
|
+
currentPath = path.dirname(currentPath);
|
|
1156
|
+
}
|
|
1157
|
+
return void 0;
|
|
1158
|
+
};
|
|
1159
|
+
const collectWorkspaceSiblings = async (workspaceRoot, fetchGitMetadata, alwaysOverrideVersionFromGit, inheritableFields, logger) => {
|
|
1160
|
+
const siblings = /* @__PURE__ */ new Map();
|
|
1161
|
+
try {
|
|
1162
|
+
const rootPackageJsonPath = path.join(workspaceRoot, "package.json");
|
|
1163
|
+
const content = await promises.readFile(rootPackageJsonPath, "utf-8");
|
|
1164
|
+
const rootPackageJson = lib.parse(content);
|
|
1165
|
+
const workspacePatterns = rootPackageJson.workspaces;
|
|
1166
|
+
if (!workspacePatterns || !Array.isArray(workspacePatterns)) {
|
|
1167
|
+
return siblings;
|
|
1168
|
+
}
|
|
1169
|
+
const workspaceDirs = /* @__PURE__ */ new Set();
|
|
1170
|
+
for (const pattern of workspacePatterns) {
|
|
1171
|
+
const matches = await glob.glob(pattern, {
|
|
1172
|
+
cwd: workspaceRoot
|
|
1173
|
+
});
|
|
1174
|
+
matches.forEach((match) => workspaceDirs.add(match));
|
|
1175
|
+
}
|
|
1176
|
+
for (const workspaceDir of workspaceDirs) {
|
|
1177
|
+
const packageJsonPath = path.join(workspaceRoot, workspaceDir, "package.json");
|
|
1178
|
+
if (fs.existsSync(packageJsonPath)) {
|
|
1179
|
+
try {
|
|
1180
|
+
const packagePath = path.join(workspaceRoot, workspaceDir);
|
|
1181
|
+
const resolvedPackage = await resolveRawPackageJsonObject(
|
|
1182
|
+
packagePath,
|
|
1183
|
+
fetchGitMetadata,
|
|
1184
|
+
alwaysOverrideVersionFromGit,
|
|
1185
|
+
inheritableFields,
|
|
1186
|
+
logger
|
|
1187
|
+
);
|
|
1188
|
+
const packageJson = resolvedPackage.metadata;
|
|
1189
|
+
if (packageJson.name && packageJson.version) {
|
|
1190
|
+
siblings.set(packageJson.name, {
|
|
1191
|
+
name: packageJson.name,
|
|
1192
|
+
version: packageJson.version,
|
|
1193
|
+
path: packagePath
|
|
1194
|
+
});
|
|
1195
|
+
}
|
|
1196
|
+
} catch (error) {
|
|
1197
|
+
logger.warn(`Failed to resolve package.json from ${packageJsonPath}: ${error}`);
|
|
1198
|
+
}
|
|
1199
|
+
}
|
|
1200
|
+
}
|
|
1201
|
+
} catch (error) {
|
|
1202
|
+
logger.warn(`Failed to collect workspace siblings from ${workspaceRoot}: ${error}`);
|
|
1203
|
+
}
|
|
1204
|
+
return siblings;
|
|
1205
|
+
};
|
|
1206
|
+
const replacePeerDependenciesWildcards = (packageJson, siblings, versionPrefix) => {
|
|
1207
|
+
const modifiedPackageJson = lib.parse(JSON.stringify(packageJson));
|
|
1208
|
+
if (!modifiedPackageJson.peerDependencies || typeof modifiedPackageJson.peerDependencies !== "object") {
|
|
1209
|
+
return modifiedPackageJson;
|
|
1210
|
+
}
|
|
1211
|
+
for (const [depName, depVersion] of Object.entries(modifiedPackageJson.peerDependencies)) {
|
|
1212
|
+
if (depVersion === "*" && siblings.has(depName)) {
|
|
1213
|
+
const sibling = siblings.get(depName);
|
|
1214
|
+
modifiedPackageJson.peerDependencies[depName] = `${versionPrefix}${sibling.version}`;
|
|
1215
|
+
}
|
|
1216
|
+
}
|
|
1217
|
+
return modifiedPackageJson;
|
|
1218
|
+
};
|
|
1219
|
+
const mergePackageMetadata = async (fetchGitMetadata, alwaysOverrideVersionFromGit, sourceMap, parentMetadata, childMetadata, parentSourceDir, childSourceDir, _repositoryPath) => {
|
|
1220
|
+
const metadata = await fetchGitMetadata();
|
|
1221
|
+
const merged = {};
|
|
1222
|
+
flattenObject(metadata, "", merged);
|
|
1223
|
+
for (const key2 in parentMetadata) {
|
|
1224
|
+
const value = parentMetadata[key2];
|
|
1225
|
+
if (value !== void 0) {
|
|
1226
|
+
merged[key2] = value;
|
|
1227
|
+
sourceMap.set(key2, parentSourceDir);
|
|
1228
|
+
}
|
|
1229
|
+
}
|
|
1230
|
+
for (const key2 in childMetadata) {
|
|
1231
|
+
const value = childMetadata[key2];
|
|
1232
|
+
if (value !== void 0) {
|
|
1233
|
+
merged[key2] = value;
|
|
1234
|
+
sourceMap.set(key2, childSourceDir);
|
|
1235
|
+
}
|
|
1236
|
+
}
|
|
1237
|
+
if (alwaysOverrideVersionFromGit && metadata.version) {
|
|
1238
|
+
merged.version = metadata.version;
|
|
1239
|
+
}
|
|
1240
|
+
return merged;
|
|
1241
|
+
};
|
|
1242
|
+
const mergeRawPackageJson = async (fetchGitMetadata, alwaysOverrideVersionFromGit, inheritableFields, sourceMap, parentMetadata, childMetadata, parentSourceDir, childSourceDir, repositoryPath) => {
|
|
1243
|
+
const gitMetadata = await fetchGitMetadata();
|
|
1244
|
+
const merged = { ...gitMetadata };
|
|
1245
|
+
for (const key2 in parentMetadata) {
|
|
1246
|
+
if (inheritableFields.has(key2)) {
|
|
1247
|
+
const value = parentMetadata[key2];
|
|
1248
|
+
if (value !== void 0) {
|
|
1249
|
+
merged[key2] = value;
|
|
1250
|
+
sourceMap.set(key2, parentSourceDir);
|
|
1251
|
+
}
|
|
1252
|
+
}
|
|
1253
|
+
}
|
|
1254
|
+
for (const key2 in childMetadata) {
|
|
1255
|
+
const value = childMetadata[key2];
|
|
1256
|
+
if (value !== void 0) {
|
|
1257
|
+
merged[key2] = value;
|
|
1258
|
+
sourceMap.set(key2, childSourceDir);
|
|
1259
|
+
}
|
|
1260
|
+
}
|
|
1261
|
+
if (alwaysOverrideVersionFromGit && gitMetadata.version) {
|
|
1262
|
+
merged.version = gitMetadata.version;
|
|
1263
|
+
sourceMap.set("version", repositoryPath);
|
|
1264
|
+
}
|
|
1265
|
+
return merged;
|
|
1266
|
+
};
|
|
1267
|
+
const resolvePackageMetadataT = async (projectRoot, logger, readPackageMetadataFn, mergePackageMetadataFn) => {
|
|
1268
|
+
const workspaceRoot = await findWorkspaceRoot(projectRoot, logger);
|
|
1269
|
+
if (!workspaceRoot) {
|
|
1270
|
+
const localPackagePath = path.join(projectRoot, "package.json");
|
|
1271
|
+
const localMetadata = await readPackageMetadataFn(localPackagePath);
|
|
1272
|
+
return mergePackageMetadataFn(
|
|
1273
|
+
{},
|
|
1274
|
+
localMetadata,
|
|
1275
|
+
"",
|
|
1276
|
+
// dummy
|
|
1277
|
+
projectRoot,
|
|
1278
|
+
projectRoot
|
|
1279
|
+
);
|
|
1280
|
+
}
|
|
1281
|
+
const projectPackagePath = path.join(projectRoot, "package.json");
|
|
1282
|
+
const rootPackagePath = path.join(workspaceRoot, "package.json");
|
|
1283
|
+
const metadata = await readPackageMetadataFn(rootPackagePath);
|
|
1284
|
+
if (projectPackagePath !== rootPackagePath && fs.existsSync(projectPackagePath)) {
|
|
1285
|
+
const projectMetadata = await readPackageMetadataFn(projectPackagePath);
|
|
1286
|
+
return mergePackageMetadataFn(
|
|
1287
|
+
metadata,
|
|
1288
|
+
projectMetadata,
|
|
1289
|
+
workspaceRoot,
|
|
1290
|
+
projectRoot,
|
|
1291
|
+
projectRoot
|
|
1292
|
+
);
|
|
1293
|
+
} else {
|
|
1294
|
+
return mergePackageMetadataFn(
|
|
1295
|
+
{},
|
|
1296
|
+
metadata,
|
|
1297
|
+
"",
|
|
1298
|
+
// dummy
|
|
1299
|
+
workspaceRoot,
|
|
1300
|
+
projectRoot
|
|
1301
|
+
);
|
|
1302
|
+
}
|
|
1303
|
+
};
|
|
1304
|
+
const readPackageMetadata = async (logger, packagePath) => {
|
|
1305
|
+
try {
|
|
1306
|
+
const content = await promises.readFile(packagePath, "utf-8");
|
|
1307
|
+
const json = lib.parse(content);
|
|
1308
|
+
const map = {};
|
|
1309
|
+
flattenObject(json, "", map);
|
|
1310
|
+
return map;
|
|
1311
|
+
} catch (error) {
|
|
1312
|
+
logger.error(`Failed to read package.json from ${packagePath}: ${error}`);
|
|
1313
|
+
return {};
|
|
1314
|
+
}
|
|
1315
|
+
};
|
|
1316
|
+
const resolvePackageMetadata = async (projectRoot, fetchGitMetadata, alwaysOverrideVersionFromGit, logger) => {
|
|
1317
|
+
const sourceMap = /* @__PURE__ */ new Map();
|
|
1318
|
+
const metadata = await resolvePackageMetadataT(
|
|
1319
|
+
projectRoot,
|
|
1320
|
+
logger,
|
|
1321
|
+
readPackageMetadata.bind(void 0, logger),
|
|
1322
|
+
mergePackageMetadata.bind(void 0, fetchGitMetadata, alwaysOverrideVersionFromGit, sourceMap)
|
|
1323
|
+
);
|
|
1324
|
+
return {
|
|
1325
|
+
metadata,
|
|
1326
|
+
sourceMap
|
|
1327
|
+
};
|
|
1328
|
+
};
|
|
1329
|
+
const readRawPackageJson = async (logger, packagePath) => {
|
|
1330
|
+
try {
|
|
1331
|
+
const content = await promises.readFile(packagePath, "utf-8");
|
|
1332
|
+
return lib.parse(content);
|
|
1333
|
+
} catch (error) {
|
|
1334
|
+
logger.error(`Failed to read package.json from ${packagePath}: ${error}`);
|
|
1335
|
+
throw error;
|
|
1336
|
+
}
|
|
1337
|
+
};
|
|
1338
|
+
const resolveRawPackageJsonObject = async (projectRoot, fetchGitMetadata, alwaysOverrideVersionFromGit, inheritableFields, logger) => {
|
|
1339
|
+
const sourceMap = /* @__PURE__ */ new Map();
|
|
1340
|
+
const packageJson = await resolvePackageMetadataT(
|
|
1341
|
+
projectRoot,
|
|
1342
|
+
logger,
|
|
1343
|
+
readRawPackageJson.bind(void 0, logger),
|
|
1344
|
+
mergeRawPackageJson.bind(void 0, fetchGitMetadata, alwaysOverrideVersionFromGit, inheritableFields, sourceMap)
|
|
1345
|
+
);
|
|
1346
|
+
return {
|
|
1347
|
+
metadata: packageJson,
|
|
1348
|
+
sourceMap
|
|
1349
|
+
};
|
|
1350
|
+
};
|
|
1116
1351
|
function getDefaultExportFromCjs(x) {
|
|
1117
1352
|
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
|
|
1118
1353
|
}
|
|
@@ -1694,238 +1929,24 @@ const getGitMetadata = async (repositoryPath, checkWorkingDirectoryStatus, logge
|
|
|
1694
1929
|
}
|
|
1695
1930
|
return metadata;
|
|
1696
1931
|
};
|
|
1697
|
-
const
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
continue;
|
|
1709
|
-
const fullKey = prefix ? `${prefix}.${key2}` : key2;
|
|
1710
|
-
if (typeof value === "string") {
|
|
1711
|
-
map[fullKey] = value;
|
|
1712
|
-
} else if (Array.isArray(value)) {
|
|
1713
|
-
map[fullKey] = value.map((v) => String(v)).join(",");
|
|
1714
|
-
} else if (typeof value === "object") {
|
|
1715
|
-
flattenObject(value, fullKey, map);
|
|
1716
|
-
} else {
|
|
1717
|
-
map[fullKey] = String(value);
|
|
1718
|
-
}
|
|
1719
|
-
}
|
|
1720
|
-
};
|
|
1721
|
-
const findWorkspaceRoot = async (startPath, logger) => {
|
|
1722
|
-
let currentPath = startPath;
|
|
1723
|
-
while (currentPath !== path.dirname(currentPath)) {
|
|
1724
|
-
const packageJsonPath = path.join(currentPath, "package.json");
|
|
1725
|
-
if (fs.existsSync(packageJsonPath)) {
|
|
1726
|
-
try {
|
|
1727
|
-
const content = await promises.readFile(packageJsonPath, "utf-8");
|
|
1728
|
-
const packageJson = lib.parse(content);
|
|
1729
|
-
if (packageJson.workspaces || fs.existsSync(path.join(currentPath, "pnpm-workspace.yaml")) || fs.existsSync(path.join(currentPath, "lerna.json"))) {
|
|
1730
|
-
return currentPath;
|
|
1731
|
-
}
|
|
1732
|
-
} catch (error) {
|
|
1733
|
-
logger.warn(`Failed to parse package.json at ${packageJsonPath}: ${error}`);
|
|
1734
|
-
}
|
|
1735
|
-
}
|
|
1736
|
-
currentPath = path.dirname(currentPath);
|
|
1737
|
-
}
|
|
1738
|
-
return void 0;
|
|
1739
|
-
};
|
|
1740
|
-
const collectWorkspaceSiblings = async (workspaceRoot, logger) => {
|
|
1741
|
-
const siblings = /* @__PURE__ */ new Map();
|
|
1742
|
-
try {
|
|
1743
|
-
const rootPackageJsonPath = path.join(workspaceRoot, "package.json");
|
|
1744
|
-
const content = await promises.readFile(rootPackageJsonPath, "utf-8");
|
|
1745
|
-
const rootPackageJson = lib.parse(content);
|
|
1746
|
-
const workspacePatterns = rootPackageJson.workspaces;
|
|
1747
|
-
if (!workspacePatterns || !Array.isArray(workspacePatterns)) {
|
|
1748
|
-
return siblings;
|
|
1749
|
-
}
|
|
1750
|
-
const workspaceDirs = /* @__PURE__ */ new Set();
|
|
1751
|
-
for (const pattern of workspacePatterns) {
|
|
1752
|
-
const matches = await glob.glob(pattern, {
|
|
1753
|
-
cwd: workspaceRoot
|
|
1754
|
-
});
|
|
1755
|
-
matches.forEach((match) => workspaceDirs.add(match));
|
|
1756
|
-
}
|
|
1757
|
-
for (const workspaceDir of workspaceDirs) {
|
|
1758
|
-
const packageJsonPath = path.join(workspaceRoot, workspaceDir, "package.json");
|
|
1759
|
-
if (fs.existsSync(packageJsonPath)) {
|
|
1760
|
-
try {
|
|
1761
|
-
const packageContent = await promises.readFile(packageJsonPath, "utf-8");
|
|
1762
|
-
const packageJson = lib.parse(packageContent);
|
|
1763
|
-
if (packageJson.name && packageJson.version) {
|
|
1764
|
-
siblings.set(packageJson.name, {
|
|
1765
|
-
name: packageJson.name,
|
|
1766
|
-
version: packageJson.version,
|
|
1767
|
-
path: path.join(workspaceRoot, workspaceDir)
|
|
1768
|
-
});
|
|
1769
|
-
}
|
|
1770
|
-
} catch (error) {
|
|
1771
|
-
logger.warn(`Failed to read package.json from ${packageJsonPath}: ${error}`);
|
|
1772
|
-
}
|
|
1773
|
-
}
|
|
1774
|
-
}
|
|
1775
|
-
} catch (error) {
|
|
1776
|
-
logger.warn(`Failed to collect workspace siblings from ${workspaceRoot}: ${error}`);
|
|
1777
|
-
}
|
|
1778
|
-
return siblings;
|
|
1779
|
-
};
|
|
1780
|
-
const replacePeerDependenciesWildcards = (packageJson, siblings, versionPrefix) => {
|
|
1781
|
-
const modifiedPackageJson = lib.parse(JSON.stringify(packageJson));
|
|
1782
|
-
if (!modifiedPackageJson.peerDependencies || typeof modifiedPackageJson.peerDependencies !== "object") {
|
|
1783
|
-
return modifiedPackageJson;
|
|
1784
|
-
}
|
|
1785
|
-
for (const [depName, depVersion] of Object.entries(modifiedPackageJson.peerDependencies)) {
|
|
1786
|
-
if (depVersion === "*" && siblings.has(depName)) {
|
|
1787
|
-
const sibling = siblings.get(depName);
|
|
1788
|
-
modifiedPackageJson.peerDependencies[depName] = `${versionPrefix}${sibling.version}`;
|
|
1789
|
-
}
|
|
1790
|
-
}
|
|
1791
|
-
return modifiedPackageJson;
|
|
1792
|
-
};
|
|
1793
|
-
const mergePackageMetadata = async (checkWorkingDirectoryStatus, alwaysOverrideVersionFromGit, sourceMap, logger, parentMetadata, childMetadata, parentSourceDir, childSourceDir, repositoryPath) => {
|
|
1794
|
-
const metadata = await getGitMetadata(repositoryPath, checkWorkingDirectoryStatus, logger);
|
|
1795
|
-
const merged = {};
|
|
1796
|
-
flattenObject(metadata, "", merged);
|
|
1797
|
-
for (const key2 in parentMetadata) {
|
|
1798
|
-
const value = parentMetadata[key2];
|
|
1799
|
-
if (value !== void 0) {
|
|
1800
|
-
merged[key2] = value;
|
|
1801
|
-
sourceMap.set(key2, parentSourceDir);
|
|
1802
|
-
}
|
|
1803
|
-
}
|
|
1804
|
-
for (const key2 in childMetadata) {
|
|
1805
|
-
const value = childMetadata[key2];
|
|
1806
|
-
if (value !== void 0) {
|
|
1807
|
-
merged[key2] = value;
|
|
1808
|
-
sourceMap.set(key2, childSourceDir);
|
|
1809
|
-
}
|
|
1810
|
-
}
|
|
1811
|
-
if (alwaysOverrideVersionFromGit && metadata.version) {
|
|
1812
|
-
merged.version = metadata.version;
|
|
1813
|
-
}
|
|
1814
|
-
return merged;
|
|
1815
|
-
};
|
|
1816
|
-
const mergeRawPackageJson = async (checkWorkingDirectoryStatus, alwaysOverrideVersionFromGit, inheritableFields, sourceMap, logger, parentMetadata, childMetadata, parentSourceDir, childSourceDir, repositoryPath) => {
|
|
1817
|
-
const gitMetadata = await getGitMetadata(repositoryPath, checkWorkingDirectoryStatus, logger);
|
|
1818
|
-
const merged = { ...gitMetadata };
|
|
1819
|
-
for (const key2 in parentMetadata) {
|
|
1820
|
-
if (inheritableFields.has(key2)) {
|
|
1821
|
-
const value = parentMetadata[key2];
|
|
1822
|
-
if (value !== void 0) {
|
|
1823
|
-
merged[key2] = value;
|
|
1824
|
-
sourceMap.set(key2, parentSourceDir);
|
|
1825
|
-
}
|
|
1826
|
-
}
|
|
1827
|
-
}
|
|
1828
|
-
for (const key2 in childMetadata) {
|
|
1829
|
-
const value = childMetadata[key2];
|
|
1830
|
-
if (value !== void 0) {
|
|
1831
|
-
merged[key2] = value;
|
|
1832
|
-
sourceMap.set(key2, childSourceDir);
|
|
1833
|
-
}
|
|
1834
|
-
}
|
|
1835
|
-
if (alwaysOverrideVersionFromGit && gitMetadata.version) {
|
|
1836
|
-
merged.version = gitMetadata.version;
|
|
1837
|
-
sourceMap.set("version", repositoryPath);
|
|
1838
|
-
}
|
|
1839
|
-
return merged;
|
|
1840
|
-
};
|
|
1841
|
-
const resolvePackageMetadataT = async (projectRoot, logger, readPackageMetadataFn, mergePackageMetadataFn) => {
|
|
1842
|
-
const workspaceRoot = await findWorkspaceRoot(projectRoot, logger);
|
|
1843
|
-
if (!workspaceRoot) {
|
|
1844
|
-
const localPackagePath = path.join(projectRoot, "package.json");
|
|
1845
|
-
const localMetadata = await readPackageMetadataFn(localPackagePath);
|
|
1846
|
-
return mergePackageMetadataFn(
|
|
1847
|
-
{},
|
|
1848
|
-
localMetadata,
|
|
1849
|
-
"",
|
|
1850
|
-
// dummy
|
|
1851
|
-
projectRoot,
|
|
1852
|
-
projectRoot
|
|
1853
|
-
);
|
|
1854
|
-
}
|
|
1855
|
-
const projectPackagePath = path.join(projectRoot, "package.json");
|
|
1856
|
-
const rootPackagePath = path.join(workspaceRoot, "package.json");
|
|
1857
|
-
const metadata = await readPackageMetadataFn(rootPackagePath);
|
|
1858
|
-
if (projectPackagePath !== rootPackagePath && fs.existsSync(projectPackagePath)) {
|
|
1859
|
-
const projectMetadata = await readPackageMetadataFn(projectPackagePath);
|
|
1860
|
-
return mergePackageMetadataFn(
|
|
1861
|
-
metadata,
|
|
1862
|
-
projectMetadata,
|
|
1863
|
-
workspaceRoot,
|
|
1864
|
-
projectRoot,
|
|
1865
|
-
projectRoot
|
|
1866
|
-
);
|
|
1867
|
-
} else {
|
|
1868
|
-
return mergePackageMetadataFn(
|
|
1869
|
-
{},
|
|
1870
|
-
metadata,
|
|
1871
|
-
"",
|
|
1872
|
-
// dummy
|
|
1873
|
-
workspaceRoot,
|
|
1874
|
-
projectRoot
|
|
1875
|
-
);
|
|
1876
|
-
}
|
|
1877
|
-
};
|
|
1878
|
-
const readPackageMetadata = async (logger, packagePath) => {
|
|
1879
|
-
try {
|
|
1880
|
-
const content = await promises.readFile(packagePath, "utf-8");
|
|
1881
|
-
const json = lib.parse(content);
|
|
1882
|
-
const map = {};
|
|
1883
|
-
flattenObject(json, "", map);
|
|
1884
|
-
return map;
|
|
1885
|
-
} catch (error) {
|
|
1886
|
-
logger.error(`Failed to read package.json from ${packagePath}: ${error}`);
|
|
1887
|
-
return {};
|
|
1888
|
-
}
|
|
1889
|
-
};
|
|
1890
|
-
const resolvePackageMetadata = async (projectRoot, checkWorkingDirectoryStatus, alwaysOverrideVersionFromGit, logger) => {
|
|
1891
|
-
const sourceMap = /* @__PURE__ */ new Map();
|
|
1892
|
-
const metadata = await resolvePackageMetadataT(
|
|
1893
|
-
projectRoot,
|
|
1894
|
-
logger,
|
|
1895
|
-
readPackageMetadata.bind(void 0, logger),
|
|
1896
|
-
mergePackageMetadata.bind(void 0, checkWorkingDirectoryStatus, alwaysOverrideVersionFromGit, sourceMap, logger)
|
|
1897
|
-
);
|
|
1898
|
-
return {
|
|
1899
|
-
metadata,
|
|
1900
|
-
sourceMap
|
|
1901
|
-
};
|
|
1902
|
-
};
|
|
1903
|
-
const readRawPackageJson = async (logger, packagePath) => {
|
|
1904
|
-
try {
|
|
1905
|
-
const content = await promises.readFile(packagePath, "utf-8");
|
|
1906
|
-
return lib.parse(content);
|
|
1907
|
-
} catch (error) {
|
|
1908
|
-
logger.error(`Failed to read package.json from ${packagePath}: ${error}`);
|
|
1909
|
-
throw error;
|
|
1910
|
-
}
|
|
1911
|
-
};
|
|
1912
|
-
const resolveRawPackageJsonObject = async (projectRoot, checkWorkingDirectoryStatus, alwaysOverrideVersionFromGit, inheritableFields, logger) => {
|
|
1913
|
-
const sourceMap = /* @__PURE__ */ new Map();
|
|
1914
|
-
const packageJson = await resolvePackageMetadataT(
|
|
1915
|
-
projectRoot,
|
|
1916
|
-
logger,
|
|
1917
|
-
readRawPackageJson.bind(void 0, logger),
|
|
1918
|
-
mergeRawPackageJson.bind(void 0, checkWorkingDirectoryStatus, alwaysOverrideVersionFromGit, inheritableFields, sourceMap, logger)
|
|
1919
|
-
);
|
|
1920
|
-
return {
|
|
1921
|
-
metadata: packageJson,
|
|
1922
|
-
sourceMap
|
|
1932
|
+
const getFetchGitMetadata = (targetDir, checkWorkingDirectoryStatus, logger) => {
|
|
1933
|
+
let cachedMetadata;
|
|
1934
|
+
return async () => {
|
|
1935
|
+
if (!cachedMetadata) {
|
|
1936
|
+
cachedMetadata = await getGitMetadata(
|
|
1937
|
+
targetDir,
|
|
1938
|
+
checkWorkingDirectoryStatus,
|
|
1939
|
+
logger
|
|
1940
|
+
);
|
|
1941
|
+
}
|
|
1942
|
+
return cachedMetadata;
|
|
1923
1943
|
};
|
|
1924
1944
|
};
|
|
1925
1945
|
exports.collectWorkspaceSiblings = collectWorkspaceSiblings;
|
|
1926
1946
|
exports.createConsoleLogger = createConsoleLogger;
|
|
1927
1947
|
exports.findWorkspaceRoot = findWorkspaceRoot;
|
|
1948
|
+
exports.getFetchGitMetadata = getFetchGitMetadata;
|
|
1928
1949
|
exports.replacePeerDependenciesWildcards = replacePeerDependenciesWildcards;
|
|
1929
1950
|
exports.resolvePackageMetadata = resolvePackageMetadata;
|
|
1930
1951
|
exports.resolveRawPackageJsonObject = resolveRawPackageJsonObject;
|
|
1931
|
-
//# sourceMappingURL=
|
|
1952
|
+
//# sourceMappingURL=analyzer-2k5jeoJo.cjs.map
|