screw-up 1.27.0 → 1.29.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/main.mjs CHANGED
@@ -1,15 +1,15 @@
1
1
  #!/usr/bin/env node
2
2
  /*!
3
3
  * name: screw-up
4
- * version: 1.27.0
4
+ * version: 1.29.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: eb1634007fc12b0ddd13928d7688758bdfe32624
9
+ * git.commit.hash: 3833f6ef842d9e5a0b4f7277ca3b118f26fd4a6b
10
10
  */
11
- import { a as collectWorkspaceSiblings, c as replacePeerDependenciesWildcards, d as require_dist, i as getFetchGitMetadata, l as resolvePackageMetadata, n as generateMetadataFileContent, o as createConsoleLogger, p as __toESM, r as writeFileIfChanged, s as findWorkspaceRoot, t as ensureMetadataGitignore, u as resolveRawPackageJsonObject } from "./metadata-file-Djz8vanJ.js";
12
- import { n as name } from "./packageMetadata-B3dAY9Pw.js";
11
+ import { a as collectWorkspaceSiblings, c as replacePeerDependenciesWildcards, d as require_dist, i as getFetchGitMetadata, l as resolvePackageMetadata, n as generateMetadataFileContent, o as createConsoleLogger, p as __toESM, r as writeFileIfChanged, s as findWorkspaceRoot, t as ensureMetadataGitignore, u as resolveRawPackageJsonObject } from "./metadata-file-CyQ2yue9.js";
12
+ import { n as name } from "./packageMetadata-DnXbVLQ5.js";
13
13
  import { copyFile, mkdir, mkdtemp, readFile, readdir, rm, stat, writeFile } from "fs/promises";
14
14
  import { createReadStream, createWriteStream, existsSync, statSync } from "fs";
15
15
  import { dirname, isAbsolute, join, resolve } from "path";
@@ -584,6 +584,62 @@ var mergeResolvedPackageJson = (packedPackageJson, resolvedPackageJson) => {
584
584
  }
585
585
  return mergedPackageJson;
586
586
  };
587
+ var workspaceProtocolPrefix = "workspace:";
588
+ var inferVersionPrefix = (dependencySpec) => {
589
+ if (dependencySpec.startsWith("^")) return "^";
590
+ if (dependencySpec.startsWith("~")) return "~";
591
+ return "";
592
+ };
593
+ var looksLikeWorkspaceProtocolAlias = (rawSpecifier) => {
594
+ if (!rawSpecifier) return false;
595
+ if (rawSpecifier === "*" || rawSpecifier === "^" || rawSpecifier === "~" || rawSpecifier.startsWith("^") || rawSpecifier.startsWith("~") || /^[0-9]/.test(rawSpecifier)) return false;
596
+ return true;
597
+ };
598
+ var parseWorkspaceProtocolDependencyReference = (dependencyName, workspaceProtocolSpecifier) => {
599
+ if (!workspaceProtocolSpecifier.startsWith(workspaceProtocolPrefix)) return;
600
+ const rawSpecifier = workspaceProtocolSpecifier.slice(10).trim();
601
+ if (!looksLikeWorkspaceProtocolAlias(rawSpecifier)) return {
602
+ targetPackageName: dependencyName,
603
+ alias: false
604
+ };
605
+ if (rawSpecifier.startsWith("@")) {
606
+ const secondAt = rawSpecifier.indexOf("@", 1);
607
+ const targetPackageName = secondAt >= 0 ? rawSpecifier.slice(0, secondAt) : rawSpecifier;
608
+ return {
609
+ targetPackageName,
610
+ alias: targetPackageName !== dependencyName
611
+ };
612
+ }
613
+ const atIndex = rawSpecifier.indexOf("@");
614
+ const targetPackageName = atIndex >= 0 ? rawSpecifier.slice(0, atIndex) : rawSpecifier;
615
+ return {
616
+ targetPackageName,
617
+ alias: targetPackageName !== dependencyName
618
+ };
619
+ };
620
+ var formatResolvedWorkspaceDependency = (packedDependencySpecifier, reference, sibling) => {
621
+ const aliasPrefix = `npm:${reference.targetPackageName}@`;
622
+ if (packedDependencySpecifier.startsWith(aliasPrefix)) return `${aliasPrefix}${inferVersionPrefix(packedDependencySpecifier.slice(aliasPrefix.length))}${sibling.version}`;
623
+ return `${inferVersionPrefix(packedDependencySpecifier)}${sibling.version}`;
624
+ };
625
+ var replaceWorkspaceProtocolDependencies = (packageJson, resolvedPackageJson, siblings) => {
626
+ const modifiedPackageJson = clonePackageJson(packageJson);
627
+ for (const sectionKey of dependencySectionKeys) {
628
+ const modifiedSection = modifiedPackageJson[sectionKey];
629
+ const resolvedSection = resolvedPackageJson === null || resolvedPackageJson === void 0 ? void 0 : resolvedPackageJson[sectionKey];
630
+ if (!modifiedSection || typeof modifiedSection !== "object" || !resolvedSection || typeof resolvedSection !== "object") continue;
631
+ for (const [dependencyName, dependencySpecifier] of Object.entries(resolvedSection)) {
632
+ if (typeof dependencySpecifier !== "string") continue;
633
+ const reference = parseWorkspaceProtocolDependencyReference(dependencyName, dependencySpecifier);
634
+ if (!reference) continue;
635
+ const sibling = siblings.get(reference.targetPackageName);
636
+ const packedDependencySpecifier = modifiedSection[dependencyName];
637
+ if (!sibling || typeof packedDependencySpecifier !== "string") continue;
638
+ modifiedSection[dependencyName] = formatResolvedWorkspaceDependency(packedDependencySpecifier, reference, sibling);
639
+ }
640
+ }
641
+ return modifiedPackageJson;
642
+ };
587
643
  var getFilesArray = (packageJson) => {
588
644
  if (!packageJson || !Array.isArray(packageJson.files)) return;
589
645
  const entries = packageJson.files.filter((entry) => typeof entry === "string");
@@ -756,7 +812,7 @@ var packAssets = async (targetDir, outputDir, checkWorkingDirectoryStatus, alway
756
812
  }
757
813
  delete resolvedPackageJson.readme;
758
814
  }
759
- const workspaceRoot = replacePeerDepsWildcards ? await findWorkspaceRoot(targetDir, logger) : void 0;
815
+ const workspaceRoot = replacePeerDepsWildcards || packageManager === "pnpm" ? await findWorkspaceRoot(targetDir, logger) : void 0;
760
816
  const workspaceSiblings = workspaceRoot ? await collectWorkspaceSiblings(workspaceRoot, fetchGitMetadata, alwaysOverrideVersionFromGit, inheritableFields, logger) : void 0;
761
817
  const filesMergeEnabled = mergeFiles && inheritableFields.has("files");
762
818
  const workspaceFilesMerge = filesMergeEnabled ? await resolveWorkspaceFilesMerge(targetDir, logger) : void 0;
@@ -783,6 +839,7 @@ var packAssets = async (targetDir, outputDir, checkWorkingDirectoryStatus, alway
783
839
  let finalPackageJson = resolvedPackageJson;
784
840
  if (existsSync(packageJsonPath)) {
785
841
  finalPackageJson = mergeResolvedPackageJson(await readPackageJsonFile(packageJsonPath), resolvedPackageJson);
842
+ if (packageManager === "pnpm" && (workspaceSiblings === null || workspaceSiblings === void 0 ? void 0 : workspaceSiblings.size)) finalPackageJson = replaceWorkspaceProtocolDependencies(finalPackageJson, resolvedPackageJson, workspaceSiblings);
786
843
  if (workspaceSiblings && workspaceSiblings.size > 0) finalPackageJson = replacePeerDependenciesWildcards(finalPackageJson, workspaceSiblings, peerDepsVersionPrefix);
787
844
  if (packageJsonReadme) delete finalPackageJson.readme;
788
845
  await writeFile(packageJsonPath, JSON.stringify(finalPackageJson, null, 2));
@@ -1300,7 +1357,7 @@ var publishCommand = async (args, logger) => {
1300
1357
  }
1301
1358
  };
1302
1359
  var showHelp = async () => {
1303
- const { author, license, repository_url, version, git_commit_hash } = await import("./packageMetadata-B3dAY9Pw.js").then((n) => n.r);
1360
+ const { author, license, repository_url, version, git_commit_hash } = await import("./packageMetadata-DnXbVLQ5.js").then((n) => n.r);
1304
1361
  console.info(`screw-up [${version}-${git_commit_hash}]
1305
1362
  Easy package metadata inserter CLI
1306
1363
  Copyright (c) ${author}