screw-up 1.15.0 → 1.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.
@@ -1,11 +1,11 @@
1
1
  /*!
2
2
  * name: screw-up
3
- * version: 1.15.0
3
+ * version: 1.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: 6342e8bf692322743d3cdc8d8815c1ae45b7162d
8
+ * git.commit.hash: 1074e4634f2c667f15188d4a95db0f30a96a6497
9
9
  */
10
10
  import { existsSync } from "fs";
11
11
  import * as fs from "fs/promises";
@@ -1095,354 +1095,66 @@ const JSON5 = {
1095
1095
  stringify
1096
1096
  };
1097
1097
  var lib = JSON5;
1098
- const createConsoleLogger = (prefix, driver) => {
1099
- var _a, _b, _c, _d;
1100
- const d = (_a = driver == null ? void 0 : driver.debug) != null ? _a : (() => {
1101
- });
1102
- const i = (_b = driver == null ? void 0 : driver.info) != null ? _b : globalThis.console.info;
1103
- const w = (_c = driver == null ? void 0 : driver.warn) != null ? _c : globalThis.console.warn;
1104
- const e = (_d = driver == null ? void 0 : driver.error) != null ? _d : globalThis.console.error;
1105
- if (prefix) {
1106
- return {
1107
- debug: (msg) => d(`[${prefix}]: ${msg}`),
1108
- info: (msg) => i(`[${prefix}]: ${msg}`),
1109
- warn: (msg) => w(`[${prefix}]: ${msg}`),
1110
- error: (msg) => e(`[${prefix}]: ${msg}`)
1111
- };
1112
- } else {
1113
- return {
1114
- debug: (msg) => d(`${msg}`),
1115
- info: (msg) => i(`${msg}`),
1116
- warn: (msg) => w(`${msg}`),
1117
- error: (msg) => e(`${msg}`)
1118
- };
1119
- }
1120
- };
1121
- const flattenObject = (obj, prefix, map) => {
1122
- for (const [key2, value] of Object.entries(obj)) {
1123
- if (!value) continue;
1124
- const fullKey = prefix ? `${prefix}.${key2}` : key2;
1125
- if (typeof value === "string") {
1126
- map[fullKey] = value;
1127
- } else if (Array.isArray(value)) {
1128
- map[fullKey] = value.map((v) => String(v)).join(",");
1129
- } else if (typeof value === "object") {
1130
- flattenObject(value, fullKey, map);
1131
- } else {
1132
- map[fullKey] = String(value);
1133
- }
1134
- }
1135
- };
1136
- const findWorkspaceRoot = async (startPath, logger) => {
1137
- let currentPath = startPath;
1138
- while (currentPath !== dirname(currentPath)) {
1139
- const packageJsonPath = join(currentPath, "package.json");
1140
- if (existsSync(packageJsonPath)) {
1141
- try {
1142
- const content = await readFile(packageJsonPath, "utf-8");
1143
- const packageJson = lib.parse(content);
1144
- if (packageJson.workspaces || existsSync(join(currentPath, "pnpm-workspace.yaml")) || existsSync(join(currentPath, "lerna.json"))) {
1145
- return currentPath;
1098
+ function getDefaultExportFromCjs(x) {
1099
+ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
1100
+ }
1101
+ var dayjs_min$1 = { exports: {} };
1102
+ var dayjs_min = dayjs_min$1.exports;
1103
+ var hasRequiredDayjs_min;
1104
+ function requireDayjs_min() {
1105
+ if (hasRequiredDayjs_min) return dayjs_min$1.exports;
1106
+ hasRequiredDayjs_min = 1;
1107
+ (function(module, exports) {
1108
+ !(function(t, e) {
1109
+ module.exports = e();
1110
+ })(dayjs_min, (function() {
1111
+ var t = 1e3, e = 6e4, n = 36e5, r = "millisecond", i = "second", s = "minute", u = "hour", a = "day", o = "week", c2 = "month", f = "quarter", h = "year", d = "date", l = "Invalid Date", $ = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, y = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, M = { name: "en", weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), ordinal: function(t2) {
1112
+ var e2 = ["th", "st", "nd", "rd"], n2 = t2 % 100;
1113
+ return "[" + t2 + (e2[(n2 - 20) % 10] || e2[n2] || e2[0]) + "]";
1114
+ } }, m = function(t2, e2, n2) {
1115
+ var r2 = String(t2);
1116
+ return !r2 || r2.length >= e2 ? t2 : "" + Array(e2 + 1 - r2.length).join(n2) + t2;
1117
+ }, v = { s: m, z: function(t2) {
1118
+ var e2 = -t2.utcOffset(), n2 = Math.abs(e2), r2 = Math.floor(n2 / 60), i2 = n2 % 60;
1119
+ return (e2 <= 0 ? "+" : "-") + m(r2, 2, "0") + ":" + m(i2, 2, "0");
1120
+ }, m: function t2(e2, n2) {
1121
+ if (e2.date() < n2.date()) return -t2(n2, e2);
1122
+ var r2 = 12 * (n2.year() - e2.year()) + (n2.month() - e2.month()), i2 = e2.clone().add(r2, c2), s2 = n2 - i2 < 0, u2 = e2.clone().add(r2 + (s2 ? -1 : 1), c2);
1123
+ return +(-(r2 + (n2 - i2) / (s2 ? i2 - u2 : u2 - i2)) || 0);
1124
+ }, a: function(t2) {
1125
+ return t2 < 0 ? Math.ceil(t2) || 0 : Math.floor(t2);
1126
+ }, p: function(t2) {
1127
+ return { M: c2, y: h, w: o, d: a, D: d, h: u, m: s, s: i, ms: r, Q: f }[t2] || String(t2 || "").toLowerCase().replace(/s$/, "");
1128
+ }, u: function(t2) {
1129
+ return void 0 === t2;
1130
+ } }, g = "en", D = {};
1131
+ D[g] = M;
1132
+ var p = "$isDayjsObject", S = function(t2) {
1133
+ return t2 instanceof _ || !(!t2 || !t2[p]);
1134
+ }, w = function t2(e2, n2, r2) {
1135
+ var i2;
1136
+ if (!e2) return g;
1137
+ if ("string" == typeof e2) {
1138
+ var s2 = e2.toLowerCase();
1139
+ D[s2] && (i2 = s2), n2 && (D[s2] = n2, i2 = s2);
1140
+ var u2 = e2.split("-");
1141
+ if (!i2 && u2.length > 1) return t2(u2[0]);
1142
+ } else {
1143
+ var a2 = e2.name;
1144
+ D[a2] = e2, i2 = a2;
1146
1145
  }
1147
- } catch (error) {
1148
- logger.warn(
1149
- `Failed to parse package.json at ${packageJsonPath}: ${error}`
1150
- );
1151
- }
1152
- }
1153
- currentPath = dirname(currentPath);
1154
- }
1155
- return void 0;
1156
- };
1157
- const collectWorkspaceSiblings = async (workspaceRoot, fetchGitMetadata, alwaysOverrideVersionFromGit, inheritableFields, logger) => {
1158
- const siblings = /* @__PURE__ */ new Map();
1159
- try {
1160
- const rootPackageJsonPath = join(workspaceRoot, "package.json");
1161
- const content = await readFile(rootPackageJsonPath, "utf-8");
1162
- const rootPackageJson = lib.parse(content);
1163
- const workspacePatterns = rootPackageJson.workspaces;
1164
- if (!workspacePatterns || !Array.isArray(workspacePatterns)) {
1165
- return siblings;
1166
- }
1167
- const workspaceDirs = /* @__PURE__ */ new Set();
1168
- for (const pattern of workspacePatterns) {
1169
- const matches = await glob(pattern, {
1170
- cwd: workspaceRoot
1171
- });
1172
- matches.forEach((match) => workspaceDirs.add(match));
1173
- }
1174
- for (const workspaceDir of workspaceDirs) {
1175
- const packageJsonPath = join(workspaceRoot, workspaceDir, "package.json");
1176
- if (existsSync(packageJsonPath)) {
1177
- try {
1178
- const packagePath = join(workspaceRoot, workspaceDir);
1179
- const resolvedPackage = await resolveRawPackageJsonObject(
1180
- packagePath,
1181
- fetchGitMetadata,
1182
- alwaysOverrideVersionFromGit,
1183
- inheritableFields,
1184
- logger
1185
- );
1186
- const packageJson = resolvedPackage.metadata;
1187
- if (packageJson.name && packageJson.version) {
1188
- siblings.set(packageJson.name, {
1189
- name: packageJson.name,
1190
- version: packageJson.version,
1191
- path: packagePath
1192
- });
1193
- }
1194
- } catch (error) {
1195
- logger.warn(
1196
- `Failed to resolve package.json from ${packageJsonPath}: ${error}`
1197
- );
1198
- }
1199
- }
1200
- }
1201
- } catch (error) {
1202
- logger.warn(
1203
- `Failed to collect workspace siblings from ${workspaceRoot}: ${error}`
1204
- );
1205
- }
1206
- return siblings;
1207
- };
1208
- const replacePeerDependenciesWildcards = (packageJson, siblings, versionPrefix) => {
1209
- const modifiedPackageJson = lib.parse(JSON.stringify(packageJson));
1210
- if (!modifiedPackageJson.peerDependencies || typeof modifiedPackageJson.peerDependencies !== "object") {
1211
- return modifiedPackageJson;
1212
- }
1213
- for (const [depName, depVersion] of Object.entries(
1214
- modifiedPackageJson.peerDependencies
1215
- )) {
1216
- if (depVersion === "*" && siblings.has(depName)) {
1217
- const sibling = siblings.get(depName);
1218
- modifiedPackageJson.peerDependencies[depName] = `${versionPrefix}${sibling.version}`;
1219
- }
1220
- }
1221
- return modifiedPackageJson;
1222
- };
1223
- const mergePackageMetadata = async (fetchGitMetadata, alwaysOverrideVersionFromGit, sourceMap, parentMetadata, childMetadata, parentSourceDir, childSourceDir, _repositoryPath) => {
1224
- const metadata = await fetchGitMetadata();
1225
- const merged = {};
1226
- flattenObject(metadata, "", merged);
1227
- for (const key2 in parentMetadata) {
1228
- const value = parentMetadata[key2];
1229
- if (value !== void 0) {
1230
- merged[key2] = value;
1231
- sourceMap.set(key2, parentSourceDir);
1232
- }
1233
- }
1234
- for (const key2 in childMetadata) {
1235
- const value = childMetadata[key2];
1236
- if (value !== void 0) {
1237
- merged[key2] = value;
1238
- sourceMap.set(key2, childSourceDir);
1239
- }
1240
- }
1241
- if (alwaysOverrideVersionFromGit && metadata.version) {
1242
- merged.version = metadata.version;
1243
- }
1244
- return merged;
1245
- };
1246
- const mergeRawPackageJson = async (fetchGitMetadata, alwaysOverrideVersionFromGit, inheritableFields, sourceMap, parentMetadata, childMetadata, parentSourceDir, childSourceDir, repositoryPath) => {
1247
- var _a, _b, _c, _d;
1248
- const gitMetadata = await fetchGitMetadata();
1249
- const merged = { ...gitMetadata };
1250
- for (const key2 in parentMetadata) {
1251
- if (inheritableFields.has(key2)) {
1252
- const value = parentMetadata[key2];
1253
- if (value !== void 0) {
1254
- merged[key2] = value;
1255
- sourceMap.set(key2, parentSourceDir);
1256
- }
1257
- }
1258
- }
1259
- for (const key2 in childMetadata) {
1260
- const value = childMetadata[key2];
1261
- if (value !== void 0) {
1262
- merged[key2] = value;
1263
- sourceMap.set(key2, childSourceDir);
1264
- }
1265
- }
1266
- if (alwaysOverrideVersionFromGit && gitMetadata.version) {
1267
- merged.version = gitMetadata.version;
1268
- sourceMap.set("version", repositoryPath);
1269
- }
1270
- if (!merged.version) {
1271
- merged.version = "0.0.1";
1272
- const gitInfo = typeof merged.git === "object" && merged.git !== null ? merged.git : {};
1273
- gitInfo.version = (_a = gitInfo.version) != null ? _a : merged.version;
1274
- gitInfo.commit = (_b = gitInfo.commit) != null ? _b : {
1275
- hash: "unknown",
1276
- shortHash: "unknown"
1277
- };
1278
- gitInfo.tags = (_c = gitInfo.tags) != null ? _c : [];
1279
- gitInfo.branches = (_d = gitInfo.branches) != null ? _d : [];
1280
- merged.git = gitInfo;
1281
- }
1282
- return merged;
1283
- };
1284
- const resolvePackageMetadataT = async (projectRoot, logger, readPackageMetadataFn, mergePackageMetadataFn) => {
1285
- const workspaceRoot = await findWorkspaceRoot(projectRoot, logger);
1286
- if (!workspaceRoot) {
1287
- const localPackagePath = join(projectRoot, "package.json");
1288
- const localMetadata = await readPackageMetadataFn(localPackagePath);
1289
- return mergePackageMetadataFn(
1290
- {},
1291
- localMetadata,
1292
- "",
1293
- // dummy
1294
- projectRoot,
1295
- projectRoot
1296
- );
1297
- }
1298
- const projectPackagePath = join(projectRoot, "package.json");
1299
- const rootPackagePath = join(workspaceRoot, "package.json");
1300
- const metadata = await readPackageMetadataFn(rootPackagePath);
1301
- if (projectPackagePath !== rootPackagePath && existsSync(projectPackagePath)) {
1302
- const projectMetadata = await readPackageMetadataFn(projectPackagePath);
1303
- return mergePackageMetadataFn(
1304
- metadata,
1305
- projectMetadata,
1306
- workspaceRoot,
1307
- projectRoot,
1308
- projectRoot
1309
- );
1310
- } else {
1311
- return mergePackageMetadataFn(
1312
- {},
1313
- metadata,
1314
- "",
1315
- // dummy
1316
- workspaceRoot,
1317
- projectRoot
1318
- );
1319
- }
1320
- };
1321
- const readPackageMetadata = async (logger, packagePath) => {
1322
- try {
1323
- const content = await readFile(packagePath, "utf-8");
1324
- const json = lib.parse(content);
1325
- const map = {};
1326
- flattenObject(json, "", map);
1327
- return map;
1328
- } catch (error) {
1329
- logger.error(`Failed to read package.json from ${packagePath}: ${error}`);
1330
- return {};
1331
- }
1332
- };
1333
- const resolvePackageMetadata = async (projectRoot, fetchGitMetadata, alwaysOverrideVersionFromGit, logger) => {
1334
- const sourceMap = /* @__PURE__ */ new Map();
1335
- const metadata = await resolvePackageMetadataT(
1336
- projectRoot,
1337
- logger,
1338
- readPackageMetadata.bind(void 0, logger),
1339
- mergePackageMetadata.bind(
1340
- void 0,
1341
- fetchGitMetadata,
1342
- alwaysOverrideVersionFromGit,
1343
- sourceMap
1344
- )
1345
- );
1346
- return {
1347
- metadata,
1348
- sourceMap
1349
- };
1350
- };
1351
- const readRawPackageJson = async (logger, packagePath, ignoreNotExist = false) => {
1352
- if (ignoreNotExist && !existsSync(packagePath)) {
1353
- return {};
1354
- }
1355
- try {
1356
- const content = await readFile(packagePath, "utf-8");
1357
- return lib.parse(content);
1358
- } catch (error) {
1359
- if (ignoreNotExist && (error == null ? void 0 : error.code) === "ENOENT") {
1360
- return {};
1361
- }
1362
- logger.error(`Failed to read package.json from ${packagePath}: ${error}`);
1363
- throw error;
1364
- }
1365
- };
1366
- const resolveRawPackageJsonObject = async (projectRoot, fetchGitMetadata, alwaysOverrideVersionFromGit, inheritableFields, logger, ignoreNotExist = false) => {
1367
- const sourceMap = /* @__PURE__ */ new Map();
1368
- const readRawPackageJsonFn = async (packagePath) => readRawPackageJson(logger, packagePath, ignoreNotExist);
1369
- const packageJson = await resolvePackageMetadataT(
1370
- projectRoot,
1371
- logger,
1372
- readRawPackageJsonFn,
1373
- mergeRawPackageJson.bind(
1374
- void 0,
1375
- fetchGitMetadata,
1376
- alwaysOverrideVersionFromGit,
1377
- inheritableFields,
1378
- sourceMap
1379
- )
1380
- );
1381
- return {
1382
- metadata: packageJson,
1383
- sourceMap
1384
- };
1385
- };
1386
- function getDefaultExportFromCjs(x) {
1387
- return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
1388
- }
1389
- var dayjs_min$1 = { exports: {} };
1390
- var dayjs_min = dayjs_min$1.exports;
1391
- var hasRequiredDayjs_min;
1392
- function requireDayjs_min() {
1393
- if (hasRequiredDayjs_min) return dayjs_min$1.exports;
1394
- hasRequiredDayjs_min = 1;
1395
- (function(module, exports) {
1396
- !(function(t, e) {
1397
- module.exports = e();
1398
- })(dayjs_min, (function() {
1399
- var t = 1e3, e = 6e4, n = 36e5, r = "millisecond", i = "second", s = "minute", u = "hour", a = "day", o = "week", c2 = "month", f = "quarter", h = "year", d = "date", l = "Invalid Date", $ = /^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/, y = /\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g, M = { name: "en", weekdays: "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"), months: "January_February_March_April_May_June_July_August_September_October_November_December".split("_"), ordinal: function(t2) {
1400
- var e2 = ["th", "st", "nd", "rd"], n2 = t2 % 100;
1401
- return "[" + t2 + (e2[(n2 - 20) % 10] || e2[n2] || e2[0]) + "]";
1402
- } }, m = function(t2, e2, n2) {
1403
- var r2 = String(t2);
1404
- return !r2 || r2.length >= e2 ? t2 : "" + Array(e2 + 1 - r2.length).join(n2) + t2;
1405
- }, v = { s: m, z: function(t2) {
1406
- var e2 = -t2.utcOffset(), n2 = Math.abs(e2), r2 = Math.floor(n2 / 60), i2 = n2 % 60;
1407
- return (e2 <= 0 ? "+" : "-") + m(r2, 2, "0") + ":" + m(i2, 2, "0");
1408
- }, m: function t2(e2, n2) {
1409
- if (e2.date() < n2.date()) return -t2(n2, e2);
1410
- var r2 = 12 * (n2.year() - e2.year()) + (n2.month() - e2.month()), i2 = e2.clone().add(r2, c2), s2 = n2 - i2 < 0, u2 = e2.clone().add(r2 + (s2 ? -1 : 1), c2);
1411
- return +(-(r2 + (n2 - i2) / (s2 ? i2 - u2 : u2 - i2)) || 0);
1412
- }, a: function(t2) {
1413
- return t2 < 0 ? Math.ceil(t2) || 0 : Math.floor(t2);
1414
- }, p: function(t2) {
1415
- return { M: c2, y: h, w: o, d: a, D: d, h: u, m: s, s: i, ms: r, Q: f }[t2] || String(t2 || "").toLowerCase().replace(/s$/, "");
1416
- }, u: function(t2) {
1417
- return void 0 === t2;
1418
- } }, g = "en", D = {};
1419
- D[g] = M;
1420
- var p = "$isDayjsObject", S = function(t2) {
1421
- return t2 instanceof _ || !(!t2 || !t2[p]);
1422
- }, w = function t2(e2, n2, r2) {
1423
- var i2;
1424
- if (!e2) return g;
1425
- if ("string" == typeof e2) {
1426
- var s2 = e2.toLowerCase();
1427
- D[s2] && (i2 = s2), n2 && (D[s2] = n2, i2 = s2);
1428
- var u2 = e2.split("-");
1429
- if (!i2 && u2.length > 1) return t2(u2[0]);
1430
- } else {
1431
- var a2 = e2.name;
1432
- D[a2] = e2, i2 = a2;
1433
- }
1434
- return !r2 && i2 && (g = i2), i2 || !r2 && g;
1435
- }, O = function(t2, e2) {
1436
- if (S(t2)) return t2.clone();
1437
- var n2 = "object" == typeof e2 ? e2 : {};
1438
- return n2.date = t2, n2.args = arguments, new _(n2);
1439
- }, b = v;
1440
- b.l = w, b.i = S, b.w = function(t2, e2) {
1441
- return O(t2, { locale: e2.$L, utc: e2.$u, x: e2.$x, $offset: e2.$offset });
1442
- };
1443
- var _ = (function() {
1444
- function M2(t2) {
1445
- this.$L = w(t2.locale, null, true), this.parse(t2), this.$x = this.$x || t2.x || {}, this[p] = true;
1146
+ return !r2 && i2 && (g = i2), i2 || !r2 && g;
1147
+ }, O = function(t2, e2) {
1148
+ if (S(t2)) return t2.clone();
1149
+ var n2 = "object" == typeof e2 ? e2 : {};
1150
+ return n2.date = t2, n2.args = arguments, new _(n2);
1151
+ }, b = v;
1152
+ b.l = w, b.i = S, b.w = function(t2, e2) {
1153
+ return O(t2, { locale: e2.$L, utc: e2.$u, x: e2.$x, $offset: e2.$offset });
1154
+ };
1155
+ var _ = (function() {
1156
+ function M2(t2) {
1157
+ this.$L = w(t2.locale, null, true), this.parse(t2), this.$x = this.$x || t2.x || {}, this[p] = true;
1446
1158
  }
1447
1159
  var m2 = M2.prototype;
1448
1160
  return m2.parse = function(t2) {
@@ -1671,6 +1383,296 @@ function requireDayjs_min() {
1671
1383
  }
1672
1384
  var dayjs_minExports = requireDayjs_min();
1673
1385
  const dayjs = /* @__PURE__ */ getDefaultExportFromCjs(dayjs_minExports);
1386
+ const createConsoleLogger = (prefix, driver) => {
1387
+ var _a, _b, _c, _d;
1388
+ const d = (_a = driver == null ? void 0 : driver.debug) != null ? _a : (() => {
1389
+ });
1390
+ const i = (_b = driver == null ? void 0 : driver.info) != null ? _b : globalThis.console.info;
1391
+ const w = (_c = driver == null ? void 0 : driver.warn) != null ? _c : globalThis.console.warn;
1392
+ const e = (_d = driver == null ? void 0 : driver.error) != null ? _d : globalThis.console.error;
1393
+ if (prefix) {
1394
+ return {
1395
+ debug: (msg) => d(`[${prefix}]: ${msg}`),
1396
+ info: (msg) => i(`[${prefix}]: ${msg}`),
1397
+ warn: (msg) => w(`[${prefix}]: ${msg}`),
1398
+ error: (msg) => e(`[${prefix}]: ${msg}`)
1399
+ };
1400
+ } else {
1401
+ return {
1402
+ debug: (msg) => d(`${msg}`),
1403
+ info: (msg) => i(`${msg}`),
1404
+ warn: (msg) => w(`${msg}`),
1405
+ error: (msg) => e(`${msg}`)
1406
+ };
1407
+ }
1408
+ };
1409
+ const flattenObject = (obj, prefix, map) => {
1410
+ for (const [key2, value] of Object.entries(obj)) {
1411
+ if (!value) continue;
1412
+ const fullKey = prefix ? `${prefix}.${key2}` : key2;
1413
+ if (typeof value === "string") {
1414
+ map[fullKey] = value;
1415
+ } else if (Array.isArray(value)) {
1416
+ map[fullKey] = value.map((v) => String(v)).join(",");
1417
+ } else if (typeof value === "object") {
1418
+ flattenObject(value, fullKey, map);
1419
+ } else {
1420
+ map[fullKey] = String(value);
1421
+ }
1422
+ }
1423
+ };
1424
+ const findWorkspaceRoot = async (startPath, logger) => {
1425
+ let currentPath = startPath;
1426
+ while (currentPath !== dirname(currentPath)) {
1427
+ const packageJsonPath = join(currentPath, "package.json");
1428
+ if (existsSync(packageJsonPath)) {
1429
+ try {
1430
+ const content = await readFile(packageJsonPath, "utf-8");
1431
+ const packageJson = lib.parse(content);
1432
+ if (packageJson.workspaces || existsSync(join(currentPath, "pnpm-workspace.yaml")) || existsSync(join(currentPath, "lerna.json"))) {
1433
+ return currentPath;
1434
+ }
1435
+ } catch (error) {
1436
+ logger.warn(
1437
+ `Failed to parse package.json at ${packageJsonPath}: ${error}`
1438
+ );
1439
+ }
1440
+ }
1441
+ currentPath = dirname(currentPath);
1442
+ }
1443
+ return void 0;
1444
+ };
1445
+ const collectWorkspaceSiblings = async (workspaceRoot, fetchGitMetadata, alwaysOverrideVersionFromGit, inheritableFields, logger) => {
1446
+ const siblings = /* @__PURE__ */ new Map();
1447
+ try {
1448
+ const rootPackageJsonPath = join(workspaceRoot, "package.json");
1449
+ const content = await readFile(rootPackageJsonPath, "utf-8");
1450
+ const rootPackageJson = lib.parse(content);
1451
+ const workspacePatterns = rootPackageJson.workspaces;
1452
+ if (!workspacePatterns || !Array.isArray(workspacePatterns)) {
1453
+ return siblings;
1454
+ }
1455
+ const workspaceDirs = /* @__PURE__ */ new Set();
1456
+ for (const pattern of workspacePatterns) {
1457
+ const matches = await glob(pattern, {
1458
+ cwd: workspaceRoot
1459
+ });
1460
+ matches.forEach((match) => workspaceDirs.add(match));
1461
+ }
1462
+ for (const workspaceDir of workspaceDirs) {
1463
+ const packageJsonPath = join(workspaceRoot, workspaceDir, "package.json");
1464
+ if (existsSync(packageJsonPath)) {
1465
+ try {
1466
+ const packagePath = join(workspaceRoot, workspaceDir);
1467
+ const resolvedPackage = await resolveRawPackageJsonObject(
1468
+ packagePath,
1469
+ fetchGitMetadata,
1470
+ alwaysOverrideVersionFromGit,
1471
+ inheritableFields,
1472
+ logger
1473
+ );
1474
+ const packageJson = resolvedPackage.metadata;
1475
+ if (packageJson.name && packageJson.version) {
1476
+ siblings.set(packageJson.name, {
1477
+ name: packageJson.name,
1478
+ version: packageJson.version,
1479
+ path: packagePath
1480
+ });
1481
+ }
1482
+ } catch (error) {
1483
+ logger.warn(
1484
+ `Failed to resolve package.json from ${packageJsonPath}: ${error}`
1485
+ );
1486
+ }
1487
+ }
1488
+ }
1489
+ } catch (error) {
1490
+ logger.warn(
1491
+ `Failed to collect workspace siblings from ${workspaceRoot}: ${error}`
1492
+ );
1493
+ }
1494
+ return siblings;
1495
+ };
1496
+ const replacePeerDependenciesWildcards = (packageJson, siblings, versionPrefix) => {
1497
+ const modifiedPackageJson = lib.parse(JSON.stringify(packageJson));
1498
+ if (!modifiedPackageJson.peerDependencies || typeof modifiedPackageJson.peerDependencies !== "object") {
1499
+ return modifiedPackageJson;
1500
+ }
1501
+ for (const [depName, depVersion] of Object.entries(
1502
+ modifiedPackageJson.peerDependencies
1503
+ )) {
1504
+ if (depVersion === "*" && siblings.has(depName)) {
1505
+ const sibling = siblings.get(depName);
1506
+ modifiedPackageJson.peerDependencies[depName] = `${versionPrefix}${sibling.version}`;
1507
+ }
1508
+ }
1509
+ return modifiedPackageJson;
1510
+ };
1511
+ const mergePackageMetadata = async (fetchGitMetadata, alwaysOverrideVersionFromGit, sourceMap, parentMetadata, childMetadata, parentSourceDir, childSourceDir, _repositoryPath) => {
1512
+ const metadata = await fetchGitMetadata();
1513
+ const merged = {};
1514
+ flattenObject(metadata, "", merged);
1515
+ for (const key2 in parentMetadata) {
1516
+ const value = parentMetadata[key2];
1517
+ if (value !== void 0) {
1518
+ merged[key2] = value;
1519
+ sourceMap.set(key2, parentSourceDir);
1520
+ }
1521
+ }
1522
+ for (const key2 in childMetadata) {
1523
+ const value = childMetadata[key2];
1524
+ if (value !== void 0) {
1525
+ merged[key2] = value;
1526
+ sourceMap.set(key2, childSourceDir);
1527
+ }
1528
+ }
1529
+ if (alwaysOverrideVersionFromGit && metadata.version) {
1530
+ merged.version = metadata.version;
1531
+ }
1532
+ merged.buildDate = dayjs().format();
1533
+ return merged;
1534
+ };
1535
+ const mergeRawPackageJson = async (fetchGitMetadata, alwaysOverrideVersionFromGit, inheritableFields, sourceMap, parentMetadata, childMetadata, parentSourceDir, childSourceDir, repositoryPath) => {
1536
+ var _a, _b, _c, _d;
1537
+ const gitMetadata = await fetchGitMetadata();
1538
+ const merged = { ...gitMetadata };
1539
+ for (const key2 in parentMetadata) {
1540
+ if (inheritableFields.has(key2)) {
1541
+ const value = parentMetadata[key2];
1542
+ if (value !== void 0) {
1543
+ merged[key2] = value;
1544
+ sourceMap.set(key2, parentSourceDir);
1545
+ }
1546
+ }
1547
+ }
1548
+ for (const key2 in childMetadata) {
1549
+ const value = childMetadata[key2];
1550
+ if (value !== void 0) {
1551
+ merged[key2] = value;
1552
+ sourceMap.set(key2, childSourceDir);
1553
+ }
1554
+ }
1555
+ if (alwaysOverrideVersionFromGit && gitMetadata.version) {
1556
+ merged.version = gitMetadata.version;
1557
+ sourceMap.set("version", repositoryPath);
1558
+ }
1559
+ if (!merged.version) {
1560
+ merged.version = "0.0.1";
1561
+ const gitInfo = typeof merged.git === "object" && merged.git !== null ? merged.git : {};
1562
+ gitInfo.version = (_a = gitInfo.version) != null ? _a : merged.version;
1563
+ gitInfo.commit = (_b = gitInfo.commit) != null ? _b : {
1564
+ hash: "unknown",
1565
+ shortHash: "unknown"
1566
+ };
1567
+ gitInfo.tags = (_c = gitInfo.tags) != null ? _c : [];
1568
+ gitInfo.branches = (_d = gitInfo.branches) != null ? _d : [];
1569
+ merged.git = gitInfo;
1570
+ }
1571
+ merged.buildDate = dayjs().format();
1572
+ return merged;
1573
+ };
1574
+ const resolvePackageMetadataT = async (projectRoot, logger, readPackageMetadataFn, mergePackageMetadataFn) => {
1575
+ const workspaceRoot = await findWorkspaceRoot(projectRoot, logger);
1576
+ if (!workspaceRoot) {
1577
+ const localPackagePath = join(projectRoot, "package.json");
1578
+ const localMetadata = await readPackageMetadataFn(localPackagePath);
1579
+ return mergePackageMetadataFn(
1580
+ {},
1581
+ localMetadata,
1582
+ "",
1583
+ // dummy
1584
+ projectRoot,
1585
+ projectRoot
1586
+ );
1587
+ }
1588
+ const projectPackagePath = join(projectRoot, "package.json");
1589
+ const rootPackagePath = join(workspaceRoot, "package.json");
1590
+ const metadata = await readPackageMetadataFn(rootPackagePath);
1591
+ if (projectPackagePath !== rootPackagePath && existsSync(projectPackagePath)) {
1592
+ const projectMetadata = await readPackageMetadataFn(projectPackagePath);
1593
+ return mergePackageMetadataFn(
1594
+ metadata,
1595
+ projectMetadata,
1596
+ workspaceRoot,
1597
+ projectRoot,
1598
+ projectRoot
1599
+ );
1600
+ } else {
1601
+ return mergePackageMetadataFn(
1602
+ {},
1603
+ metadata,
1604
+ "",
1605
+ // dummy
1606
+ workspaceRoot,
1607
+ projectRoot
1608
+ );
1609
+ }
1610
+ };
1611
+ const readPackageMetadata = async (logger, packagePath) => {
1612
+ try {
1613
+ const content = await readFile(packagePath, "utf-8");
1614
+ const json = lib.parse(content);
1615
+ const map = {};
1616
+ flattenObject(json, "", map);
1617
+ return map;
1618
+ } catch (error) {
1619
+ logger.error(`Failed to read package.json from ${packagePath}: ${error}`);
1620
+ return {};
1621
+ }
1622
+ };
1623
+ const resolvePackageMetadata = async (projectRoot, fetchGitMetadata, alwaysOverrideVersionFromGit, logger) => {
1624
+ const sourceMap = /* @__PURE__ */ new Map();
1625
+ const metadata = await resolvePackageMetadataT(
1626
+ projectRoot,
1627
+ logger,
1628
+ readPackageMetadata.bind(void 0, logger),
1629
+ mergePackageMetadata.bind(
1630
+ void 0,
1631
+ fetchGitMetadata,
1632
+ alwaysOverrideVersionFromGit,
1633
+ sourceMap
1634
+ )
1635
+ );
1636
+ return {
1637
+ metadata,
1638
+ sourceMap
1639
+ };
1640
+ };
1641
+ const readRawPackageJson = async (logger, packagePath, ignoreNotExist = false) => {
1642
+ if (ignoreNotExist && !existsSync(packagePath)) {
1643
+ return {};
1644
+ }
1645
+ try {
1646
+ const content = await readFile(packagePath, "utf-8");
1647
+ return lib.parse(content);
1648
+ } catch (error) {
1649
+ if (ignoreNotExist && (error == null ? void 0 : error.code) === "ENOENT") {
1650
+ return {};
1651
+ }
1652
+ logger.error(`Failed to read package.json from ${packagePath}: ${error}`);
1653
+ throw error;
1654
+ }
1655
+ };
1656
+ const resolveRawPackageJsonObject = async (projectRoot, fetchGitMetadata, alwaysOverrideVersionFromGit, inheritableFields, logger, ignoreNotExist = false) => {
1657
+ const sourceMap = /* @__PURE__ */ new Map();
1658
+ const readRawPackageJsonFn = async (packagePath) => readRawPackageJson(logger, packagePath, ignoreNotExist);
1659
+ const packageJson = await resolvePackageMetadataT(
1660
+ projectRoot,
1661
+ logger,
1662
+ readRawPackageJsonFn,
1663
+ mergeRawPackageJson.bind(
1664
+ void 0,
1665
+ fetchGitMetadata,
1666
+ alwaysOverrideVersionFromGit,
1667
+ inheritableFields,
1668
+ sourceMap
1669
+ )
1670
+ );
1671
+ return {
1672
+ metadata: packageJson,
1673
+ sourceMap
1674
+ };
1675
+ };
1674
1676
  const parsePackedRefs = async (packedRefsPath) => {
1675
1677
  try {
1676
1678
  const content = await fs__default.readFile(packedRefsPath, "utf-8");
@@ -2175,11 +2177,11 @@ const getFetchGitMetadata = (targetDir, checkWorkingDirectoryStatus, logger) =>
2175
2177
  };
2176
2178
  };
2177
2179
  const name = "screw-up";
2178
- const version = "1.15.0";
2180
+ const version = "1.16.0";
2179
2181
  const author = "Kouji Matsui (@kekyo@mi.kekyo.net)";
2180
2182
  const license = "MIT";
2181
2183
  const repository_url = "https://github.com/kekyo/screw-up.git";
2182
- const git_commit_hash = "6342e8bf692322743d3cdc8d8815c1ae45b7162d";
2184
+ const git_commit_hash = "1074e4634f2c667f15188d4a95db0f30a96a6497";
2183
2185
  const packageMetadata = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
2184
2186
  __proto__: null,
2185
2187
  author,
@@ -2202,4 +2204,4 @@ export {
2202
2204
  resolvePackageMetadata as r,
2203
2205
  version as v
2204
2206
  };
2205
- //# sourceMappingURL=packageMetadata-DFL693kZ.js.map
2207
+ //# sourceMappingURL=packageMetadata-CYZtTJqC.js.map