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