binary-collections 2.0.10 → 2.0.12

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.
Files changed (290) hide show
  1. package/.opencode/package.json +5 -0
  2. package/.puppeterrc.cjs +25 -0
  3. package/binaries/binary-executor.cjs +138 -3
  4. package/binaries/clean-nodemodule.cjs +138 -3
  5. package/binaries/clean-nodemodules.cjs +138 -3
  6. package/binaries/dev.cjs +138 -3
  7. package/binaries/empty.cjs +138 -3
  8. package/binaries/git-reduce-size.cjs +138 -3
  9. package/binaries/javakill.cjs +138 -3
  10. package/binaries/kill-night-crows.bat +7 -0
  11. package/binaries/kill-night-crows.ps1 +172 -0
  12. package/binaries/kill-process.cjs +138 -3
  13. package/binaries/nodekill.cjs +138 -3
  14. package/binaries/prod.cjs +138 -3
  15. package/binaries/py +111 -0
  16. package/binaries/py.cjs +178 -0
  17. package/binaries/py.cmd +49 -0
  18. package/binaries/rmfind.cjs +138 -3
  19. package/binaries/rmx +15 -1
  20. package/binaries/rmx.cjs +138 -3
  21. package/binaries/rmx.cmd +12 -0
  22. package/binaries/submodule-token.cjs +138 -3
  23. package/binaries/test-cjs +18 -0
  24. package/binaries/test-cjs.cjs +178 -0
  25. package/binaries/test-cjs.cmd +26 -0
  26. package/binaries/test-esm +16 -0
  27. package/binaries/test-esm.cjs +178 -0
  28. package/binaries/test-esm.cmd +23 -0
  29. package/binaries/yarn-clean +32 -0
  30. package/binaries/yarn-clean.cjs +178 -0
  31. package/binaries/yarn-clean.cmd +30 -0
  32. package/binaries/yarn-clean.py +166 -0
  33. package/binaries/yc +110 -0
  34. package/binaries/yc.cjs +178 -0
  35. package/lib/binary-collections/config.cjs +126 -0
  36. package/lib/binary-collections/config.mjs +7 -0
  37. package/lib/binary-collections/executeScript.cjs +19 -0
  38. package/lib/binary-collections/executeScript.d.cts +12 -0
  39. package/lib/binary-collections/executeScript.mjs +6 -0
  40. package/lib/binary-collections/findScript.cjs +284 -0
  41. package/lib/binary-collections/findScript.d.cts +12 -0
  42. package/lib/binary-collections/findScript.mjs +7 -0
  43. package/lib/binary-collections/listScript.cjs +266 -0
  44. package/lib/binary-collections/listScript.d.cts +19 -0
  45. package/lib/binary-collections/listScript.mjs +7 -0
  46. package/lib/binary-collections.cjs +342 -194
  47. package/lib/binary-collections.mjs +22 -268
  48. package/lib/changelog.cjs +61 -13
  49. package/lib/changelog.mjs +1 -1
  50. package/lib/{chunk-E6FDDAOO.mjs → chunk-2LSRSEXF.mjs} +2 -2
  51. package/lib/chunk-34IQDTLZ.mjs +27 -0
  52. package/lib/chunk-3HFFECCI.mjs +27 -0
  53. package/lib/{chunk-V3N3JEUF.mjs → chunk-5RTXZVCW.mjs} +60 -13
  54. package/lib/chunk-66KDU4TX.mjs +268 -0
  55. package/lib/chunk-6PU7BAHB.mjs +61 -0
  56. package/lib/{chunk-6HHJRKFB.mjs → chunk-BZWVHODJ.mjs} +4 -1
  57. package/lib/chunk-C6D2TTYU.mjs +32 -0
  58. package/lib/chunk-FB2WKVJD.mjs +158 -0
  59. package/lib/{chunk-66PAU5PS.mjs → chunk-G5UUEWUO.mjs} +9 -5
  60. package/lib/{chunk-HO6GHCOB.mjs → chunk-GAGABICI.mjs} +198 -63
  61. package/lib/chunk-H44UWUFY.mjs +105 -0
  62. package/lib/chunk-NCZPTKDV.mjs +79 -0
  63. package/lib/chunk-NGFK3EYW.mjs +28 -0
  64. package/lib/chunk-NVEG3LEZ.mjs +143 -0
  65. package/lib/chunk-OGXVGBRI.mjs +29 -0
  66. package/lib/chunk-OXV52GD5.mjs +62 -0
  67. package/lib/{chunk-PDSXF5HY.mjs → chunk-PDN26I7O.mjs} +1 -0
  68. package/lib/chunk-PXBMHE7O.mjs +35 -0
  69. package/lib/chunk-R5FJOR63.mjs +47 -0
  70. package/lib/chunk-SPTECFE5.mjs +180 -0
  71. package/lib/chunk-UXCFNAR6.mjs +55 -0
  72. package/lib/chunk-V2IBPCEV.mjs +39 -0
  73. package/lib/chunk-XPJGCDOD.mjs +14 -0
  74. package/lib/{chunk-AI4CVPJ7.mjs → chunk-ZDMWBSYF.mjs} +4 -4
  75. package/lib/chunk-ZOWVMII3.mjs +228 -0
  76. package/lib/clean-github-actions-caches-cli.cjs +465 -0
  77. package/lib/clean-github-actions-caches-cli.d.cts +1 -0
  78. package/lib/clean-github-actions-caches-cli.mjs +56 -0
  79. package/lib/clean-github-actions-caches.cjs +152 -160
  80. package/lib/clean-github-actions-caches.d.cts +15 -1
  81. package/lib/clean-github-actions-caches.mjs +4 -130
  82. package/lib/cross-env/command.cjs +63 -0
  83. package/lib/cross-env/command.d.ts +8 -0
  84. package/lib/cross-env/command.js +45 -0
  85. package/lib/cross-env/command.mjs +9 -0
  86. package/lib/cross-env/index.cjs +178 -0
  87. package/lib/cross-env/index.d.ts +8 -0
  88. package/lib/cross-env/index.js +102 -0
  89. package/lib/cross-env/index.mjs +101 -0
  90. package/lib/cross-env/variable.cjs +60 -0
  91. package/lib/cross-env/variable.d.ts +7 -0
  92. package/lib/cross-env/variable.js +59 -0
  93. package/lib/cross-env/variable.mjs +9 -0
  94. package/lib/del-gradle.cjs +61 -13
  95. package/lib/del-gradle.js +9 -8
  96. package/lib/del-gradle.mjs +1 -1
  97. package/lib/del-node-modules.cjs +143 -148
  98. package/lib/del-node-modules.js +210 -14
  99. package/lib/del-node-modules.mjs +148 -17
  100. package/lib/del-ps.cjs +61 -13
  101. package/lib/del-ps.js +9 -8
  102. package/lib/del-ps.mjs +1 -1
  103. package/lib/del-yarn-caches.cjs +61 -13
  104. package/lib/del-yarn-caches.js +2 -2
  105. package/lib/del-yarn-caches.mjs +1 -1
  106. package/lib/file/copy-cli.cjs +92 -0
  107. package/lib/file/copy-cli.d.mts +1 -0
  108. package/lib/file/copy-cli.mjs +55 -0
  109. package/lib/file/copy.cjs +56 -0
  110. package/lib/file/copy.d.mts +1 -0
  111. package/lib/file/copy.mjs +8 -0
  112. package/lib/file/move-cli.cjs +91 -0
  113. package/lib/file/move-cli.d.mts +1 -0
  114. package/lib/file/move-cli.mjs +55 -0
  115. package/lib/file/move.cjs +55 -0
  116. package/lib/file/move.d.mts +1 -0
  117. package/lib/file/move.mjs +8 -0
  118. package/lib/find-node-modules-cli.js +2 -1
  119. package/lib/free-chatgpt.cjs +259 -47
  120. package/lib/free-chatgpt.js +10 -10
  121. package/lib/free-chatgpt.mjs +2 -2
  122. package/lib/git/gitattributes.cjs +1 -0
  123. package/lib/git/gitattributes.d.cts +7 -2
  124. package/lib/git/gitattributes.mjs +1 -1
  125. package/lib/git/line-endings.cjs +2 -1
  126. package/lib/git/line-endings.mjs +2 -2
  127. package/lib/git/undo-commit-cli.cjs +110 -0
  128. package/lib/git/undo-commit-cli.d.ts +1 -0
  129. package/lib/git/undo-commit-cli.js +4 -0
  130. package/lib/git/undo-commit-cli.mjs +14 -0
  131. package/lib/git/undo-commit.cjs +81 -0
  132. package/lib/git/undo-commit.d.cts +1 -0
  133. package/lib/git/undo-commit.mjs +7 -0
  134. package/lib/git/undo-staged-cli.cjs +110 -0
  135. package/lib/git/undo-staged-cli.d.ts +1 -0
  136. package/lib/git/undo-staged-cli.js +4 -0
  137. package/lib/git/undo-staged-cli.mjs +14 -0
  138. package/lib/git/undo-staged.cjs +81 -0
  139. package/lib/git/undo-staged.d.cts +1 -0
  140. package/lib/git/undo-staged.mjs +7 -0
  141. package/lib/git/user-config.cjs +61 -14
  142. package/lib/git/user-config.mjs +2 -2
  143. package/lib/git-diff-cli.cjs +427 -75
  144. package/lib/git-diff-cli.d.ts +1 -0
  145. package/lib/git-diff-cli.js +1 -0
  146. package/lib/git-diff-cli.mjs +6 -4
  147. package/lib/git-diff.cjs +426 -75
  148. package/lib/git-diff.d.ts +2 -1
  149. package/lib/git-diff.js +91 -34
  150. package/lib/git-diff.mjs +5 -4
  151. package/lib/git-fix.cjs +64 -16
  152. package/lib/git-fix.mjs +10 -10
  153. package/lib/git-purge.cjs +61 -13
  154. package/lib/git-purge.mjs +1 -1
  155. package/lib/index.d.ts +1 -1
  156. package/lib/kill-night-crows.cjs +87 -0
  157. package/lib/kill-night-crows.d.mts +1 -0
  158. package/lib/kill-night-crows.mjs +65 -0
  159. package/lib/node-cache-cleaner/npm.cjs +65 -0
  160. package/lib/node-cache-cleaner/npm.d.ts +2 -0
  161. package/lib/node-cache-cleaner/npm.js +41 -0
  162. package/lib/node-cache-cleaner/npm.mjs +10 -0
  163. package/lib/node-cache-cleaner/npx.cjs +89 -0
  164. package/lib/node-cache-cleaner/npx.d.ts +4 -0
  165. package/lib/node-cache-cleaner/npx.js +82 -0
  166. package/lib/{ps/index.d.mjs → node-cache-cleaner/npx.mjs} +6 -5
  167. package/lib/node-cache-cleaner/yarn.cjs +73 -0
  168. package/lib/node-cache-cleaner/yarn.d.ts +2 -0
  169. package/lib/node-cache-cleaner/yarn.js +62 -0
  170. package/lib/node-cache-cleaner/yarn.mjs +10 -0
  171. package/lib/node-cache-cleaner-cli.cjs +182 -0
  172. package/lib/node-cache-cleaner-cli.d.ts +2 -0
  173. package/lib/node-cache-cleaner-cli.js +60 -0
  174. package/lib/node-cache-cleaner-cli.mjs +56 -0
  175. package/lib/node-executor.cjs +91 -0
  176. package/lib/node-executor.d.cts +2 -0
  177. package/lib/node-executor.mjs +103 -0
  178. package/lib/npm-run-series.cjs +79 -39
  179. package/lib/npm-run-series.mjs +20 -6
  180. package/lib/package-resolutions-updater-cli.cjs +645 -0
  181. package/lib/package-resolutions-updater-cli.d.mts +1 -0
  182. package/lib/package-resolutions-updater-cli.mjs +102 -0
  183. package/lib/package-resolutions-updater.cjs +259 -133
  184. package/lib/package-resolutions-updater.d.mts +51 -1
  185. package/lib/package-resolutions-updater.mjs +18 -294
  186. package/lib/php-cs-fixer-staged.cjs +105 -0
  187. package/lib/php-cs-fixer-staged.d.cts +2 -0
  188. package/lib/php-cs-fixer-staged.mjs +117 -0
  189. package/lib/print-directory-tree.cjs +62 -14
  190. package/lib/print-directory-tree.mjs +2 -2
  191. package/lib/ps/connected-domain.d.ts +1 -1
  192. package/lib/ps/connected-domain.js +10 -10
  193. package/lib/ps/index.cjs +1 -1
  194. package/lib/ps/index.mjs +177 -171
  195. package/lib/ps/isWin.js +1 -1
  196. package/lib/ps/table-parser.js +6 -6
  197. package/lib/remove-module.cjs +61 -13
  198. package/lib/remove-module.mjs +1 -1
  199. package/lib/rm-node-module-cli.cjs +222 -0
  200. package/lib/rm-node-module-cli.d.cts +1 -0
  201. package/lib/rm-node-module-cli.mjs +89 -0
  202. package/lib/rm-node-modules.cjs +127 -0
  203. package/lib/rm-node-modules.d.cts +35 -0
  204. package/lib/{binary-collections-config.mjs → rm-node-modules.mjs} +3 -3
  205. package/lib/rmpath.cjs +63 -15
  206. package/lib/rmpath.mjs +2 -2
  207. package/lib/submodule-install.cjs +107 -47
  208. package/lib/submodule-install.mjs +48 -35
  209. package/lib/submodule-remove-cli.cjs +6 -3
  210. package/lib/submodule-remove-cli.js +3 -3
  211. package/lib/submodule-remove-cli.mjs +2 -3
  212. package/lib/submodule-remove.cjs +4 -1
  213. package/lib/submodule-remove.mjs +1 -1
  214. package/lib/utils/chatgpt.cjs +198 -34
  215. package/lib/utils/chatgpt.js +260 -93
  216. package/lib/utils/chatgpt.mjs +1 -1
  217. package/lib/utils/findEnvFiles.cjs +89 -0
  218. package/lib/utils/findEnvFiles.d.cts +19 -0
  219. package/lib/utils/findEnvFiles.mjs +6 -0
  220. package/lib/utils/findWorkspaceRoot.cjs +70 -0
  221. package/lib/utils/findWorkspaceRoot.d.ts +9 -0
  222. package/lib/utils/findWorkspaceRoot.js +57 -0
  223. package/lib/utils/findWorkspaceRoot.mjs +40 -0
  224. package/lib/utils/index.cjs +60 -13
  225. package/lib/utils/index.mjs +1 -1
  226. package/lib/utils/isGithubTokenValid.cjs +64 -0
  227. package/lib/utils/isGithubTokenValid.d.ts +7 -0
  228. package/lib/utils/isGithubTokenValid.js +48 -0
  229. package/lib/utils/isGithubTokenValid.mjs +36 -0
  230. package/lib/{ps/index.d.cjs → utils/isWindows.cjs} +17 -3
  231. package/lib/utils/isWindows.d.ts +5 -0
  232. package/lib/utils/isWindows.js +10 -0
  233. package/lib/utils/isWindows.mjs +8 -0
  234. package/lib/utils/runBash.cjs +53 -0
  235. package/lib/utils/runBash.d.cts +12 -0
  236. package/lib/utils/runBash.mjs +66 -0
  237. package/lib/yarn-per-branch-lock-installer.cjs +97 -0
  238. package/lib/yarn-per-branch-lock-installer.d.cts +2 -0
  239. package/lib/yarn-per-branch-lock-installer.mjs +109 -0
  240. package/lib/yarn-reinstall.cjs +61 -13
  241. package/lib/yarn-reinstall.mjs +1 -1
  242. package/package.json +133 -110
  243. package/readme.html +784 -0
  244. package/readme.md +116 -229
  245. package/releases/readme.md +1 -1
  246. package/requirements.txt +1 -0
  247. package/test/README.md +2 -2
  248. package/test-project/package.json +8 -2
  249. package/test-project/workspaces/workspace-a/package.json +135 -0
  250. package/test-project/workspaces/workspace-a/readme.md +20 -0
  251. package/test-project/workspaces/workspace-a/release/readme.md +42 -0
  252. package/test-project/workspaces/workspace-a/test/demo/package.json +25 -0
  253. package/test-project/workspaces/workspace-a/test/readme.md +12 -0
  254. package/test-project/workspaces/workspace-b/package.json +139 -0
  255. package/test-project/workspaces/workspace-b/readme.md +94 -0
  256. package/test-project/workspaces/workspace-b/requirements.txt +1 -0
  257. package/test-project/workspaces/workspace-b/test/sample-project/package.json +7 -0
  258. package/test-project/workspaces/workspace-b/themes/hexo-theme-flowbite/package.json +96 -0
  259. package/test-project/workspaces/workspace-b/themes/hexo-theme-flowbite/readme.md +156 -0
  260. package/tmp/rm-node-modules-test-project/package.json +17 -0
  261. package/tmp/rm-node-modules-test-project/packages/workspace-a/package.json +16 -0
  262. package/tmp/rm-node-modules-test-project/packages/workspace-b/package.json +16 -0
  263. package/tmp/test-repo/README.md +2 -35
  264. package/tmp/test-repo/package.json +13 -3
  265. package/docs-src/clean-github-actions-caches.md +0 -26
  266. package/docs-src/free-chatgpt.md +0 -26
  267. package/lib/binary-collections-config.cjs +0 -15
  268. package/lib/chunk-4EWQC6GZ.mjs +0 -382
  269. package/lib/chunk-4ZI7BQKQ.mjs +0 -381
  270. package/lib/chunk-5J2BEPY5.mjs +0 -83
  271. package/lib/chunk-AGZYRDC2.mjs +0 -323
  272. package/lib/chunk-BDCHCWHD.mjs +0 -136
  273. package/lib/chunk-BEZKJ25G.mjs +0 -140
  274. package/lib/chunk-DI5MDPSN.mjs +0 -386
  275. package/lib/chunk-GJTGHXRA.mjs +0 -356
  276. package/lib/chunk-HMRMTYZM.mjs +0 -40
  277. package/lib/chunk-HN52G2YL.mjs +0 -305
  278. package/lib/chunk-LEM5OMRP.mjs +0 -384
  279. package/lib/chunk-O6SWBEOQ.mjs +0 -81
  280. package/lib/chunk-RCP7DHVY.mjs +0 -190
  281. package/lib/chunk-SBNDSKG5.mjs +0 -136
  282. package/lib/chunk-U6SO4QEV.mjs +0 -320
  283. package/lib/chunk-XD6BJK6Q.mjs +0 -351
  284. package/lib/chunk-YXSFGA2D.mjs +0 -383
  285. package/lib/git/gitattributes.d.ts +0 -33
  286. package/lib/git/gitattributes.js +0 -223
  287. package/lib/ps/index.d.ts +0 -2
  288. package/lib/ps/index.js +0 -253
  289. package/tmp/typedoc/readme.md +0 -320
  290. /package/lib/{binary-collections-config.d.cts → binary-collections/config.d.cts} +0 -0
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,102 @@
1
+ import { createRequire } from 'module'; const require = createRequire(import.meta.url);
2
+ import {
3
+ resolvePackageResolutionUpdates
4
+ } from "./chunk-66KDU4TX.mjs";
5
+ import "./chunk-H44UWUFY.mjs";
6
+ import "./chunk-5RTXZVCW.mjs";
7
+ import {
8
+ init_esm_shims
9
+ } from "./chunk-QQ4A6DLD.mjs";
10
+
11
+ // src/package-resolutions-updater-cli.mjs
12
+ init_esm_shims();
13
+ import ansiColors from "ansi-colors";
14
+ import fs from "fs";
15
+ import path from "path";
16
+ (async () => {
17
+ const specialPackageOverrides = [
18
+ // SBG packages
19
+ { pkg: "sbg-utility", branch: "sbg-utility", repo: "static-blog-generator", owner: "dimaslanjaka" },
20
+ { pkg: "sbg-api", branch: "sbg-api", repo: "static-blog-generator", owner: "dimaslanjaka" },
21
+ { pkg: "instant-indexing", branch: "instant-indexing", repo: "static-blog-generator", owner: "dimaslanjaka" },
22
+ { pkg: "sbg-server", branch: "master", repo: "static-blog-generator", owner: "dimaslanjaka" },
23
+ { pkg: "sbg-cli", branch: "master", repo: "static-blog-generator", owner: "dimaslanjaka" },
24
+ { pkg: "static-blog-generator", branch: "master", repo: "static-blog-generator", owner: "dimaslanjaka" },
25
+ // Hexo family
26
+ // { pkg: "hexo", branch: "monorepo-v7", repo: "hexo", owner: "dimaslanjaka" },
27
+ // { pkg: "hexo-util", branch: "monorepo-v7", repo: "hexo", owner: "dimaslanjaka" },
28
+ { pkg: "hexo-post-parser", branch: "pre-release", repo: "hexo-post-parser", owner: "dimaslanjaka" },
29
+ { pkg: "hexo-seo", branch: "pre-release", repo: "hexo-seo", owner: "dimaslanjaka" },
30
+ { pkg: "hexo-is", branch: "master", repo: "hexo-is", owner: "dimaslanjaka" },
31
+ { pkg: "markdown-it", branch: "master", repo: "markdown-it", owner: "dimaslanjaka" },
32
+ { pkg: "hexo-renderers", branch: "pre-release", repo: "hexo-renderers", owner: "dimaslanjaka" },
33
+ { pkg: "hexo-shortcodes", branch: "pre-release", repo: "hexo-shortcodes", owner: "dimaslanjaka" },
34
+ { pkg: "google-news-sitemap", branch: "master", repo: "google-news-sitemap", owner: "dimaslanjaka" },
35
+ { pkg: "git-command-helper", branch: "pre-release", repo: "git-command-helper", owner: "dimaslanjaka" },
36
+ {
37
+ pkg: "nodejs-package-types",
38
+ branch: "main",
39
+ repo: "nodejs-package-types",
40
+ owner: "dimaslanjaka"
41
+ },
42
+ { pkg: "cross-spawn", branch: "private", repo: "node-cross-spawn", owner: "dimaslanjaka" },
43
+ { pkg: "hexo-generator-redirect", branch: "master", repo: "hexo-generator-redirect", owner: "dimaslanjaka" },
44
+ { pkg: "binary-collections", branch: "master", repo: "bin", owner: "dimaslanjaka" },
45
+ // { pkg: "@types/hexo", branch: "monorepo-v7", repo: "hexo", owner: "dimaslanjaka" },
46
+ { pkg: "@types/git-command-helper", branch: "pre-release", repo: "git-command-helper", owner: "dimaslanjaka" }
47
+ ];
48
+ const pkgPath = path.join(process.cwd(), "package.json");
49
+ let pkg;
50
+ try {
51
+ pkg = JSON.parse(fs.readFileSync(pkgPath, "utf-8"));
52
+ } catch (e) {
53
+ console.error(ansiColors.red(`Failed to read package.json: ${e.message}`));
54
+ process.exit(1);
55
+ }
56
+ const entries = Object.entries(pkg.resolutions || {});
57
+ if (entries.length === 0) {
58
+ console.log(ansiColors.yellow("No resolutions found in package.json"));
59
+ return;
60
+ }
61
+ console.log(`\u2699\uFE0F Processing ${entries.length} resolution(s)...`);
62
+ const updates = await resolvePackageResolutionUpdates(pkg.resolutions, specialPackageOverrides);
63
+ const validUpdates = updates.filter((u) => !u.skipped && !u.failed);
64
+ for (const update of updates) {
65
+ if (update.skipped) {
66
+ console.log(`\u23ED\uFE0F Skipping ${ansiColors.yellow(update.currentPkgName)}: ${update.error.message}`);
67
+ }
68
+ if (update.failed) {
69
+ console.log(`\u274C Failed to process ${ansiColors.red(update.currentPkgName)}: ${update.error.message}`);
70
+ }
71
+ }
72
+ console.log("");
73
+ if (validUpdates.length === 0) {
74
+ console.log(ansiColors.yellow("No GitHub URLs were processed"));
75
+ return;
76
+ }
77
+ console.log(`\u{1F4DD} Applying updates to ${validUpdates.length} GitHub URL(s)...`);
78
+ let changed = false;
79
+ for (const { currentPkgName, url, new_url, repo, latest } of validUpdates) {
80
+ if (url !== new_url) {
81
+ console.log(`${ansiColors.cyan(currentPkgName)}:`);
82
+ console.log(" from:", url.replace(repo.branch, ansiColors.red(repo.branch)));
83
+ console.log(" to:", new_url.replace(latest.sha, ansiColors.green(latest.sha)));
84
+ pkg.resolutions[currentPkgName] = new_url;
85
+ changed = true;
86
+ } else {
87
+ console.log(`${ansiColors.cyan(currentPkgName)}: ${ansiColors.gray("already up-to-date")}`);
88
+ }
89
+ }
90
+ console.log("\n\u{1F4CC} Summary:");
91
+ if (changed) {
92
+ try {
93
+ fs.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + "\n");
94
+ console.log(`\u2705 package.json updated successfully`);
95
+ } catch (e) {
96
+ console.error(ansiColors.red(`Failed to write package.json: ${e.message}`));
97
+ process.exit(1);
98
+ }
99
+ } else {
100
+ console.log(ansiColors.green("No changes to package.json were necessary."));
101
+ }
102
+ })();
@@ -10,6 +10,10 @@ var __esm = (fn, res) => function __init() {
10
10
  var __commonJS = (cb, mod) => function __require() {
11
11
  return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
12
12
  };
13
+ var __export = (target, all) => {
14
+ for (var name in all)
15
+ __defProp(target, name, { get: all[name], enumerable: true });
16
+ };
13
17
  var __copyProps = (to, from, except, desc) => {
14
18
  if (from && typeof from === "object" || typeof from === "function") {
15
19
  for (let key of __getOwnPropNames(from))
@@ -26,6 +30,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
30
  isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
31
  mod
28
32
  ));
33
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
34
 
30
35
  // node_modules/tsup/assets/cjs_shims.js
31
36
  var init_cjs_shims = __esm({
@@ -88,31 +93,78 @@ var require_utils = __commonJS({
88
93
  }
89
94
  module2.exports.getArgs = getArgs2;
90
95
  function del(fullPath) {
91
- if (fs2.statSync(fullPath).isDirectory()) {
92
- const subdir = fs2.readdirSync(fullPath).map((dirPath) => path2.resolve(fullPath, dirPath));
93
- for (let i = 0; i < subdir.length; i++) {
94
- del(subdir[i]);
96
+ try {
97
+ if (!fs2.existsSync(fullPath)) return;
98
+ const stat = fs2.lstatSync(fullPath);
99
+ if (stat.isSymbolicLink()) {
100
+ try {
101
+ fs2.unlinkSync(fullPath);
102
+ console.log("deleted symlink", fullPath);
103
+ } catch (e) {
104
+ console.log("failed delete symlink", fullPath, e && e.message);
105
+ }
106
+ return;
107
+ }
108
+ if (stat.isDirectory()) {
109
+ const subdir = fs2.readdirSync(fullPath).map((dirPath) => path2.resolve(fullPath, dirPath));
110
+ for (let i = 0; i < subdir.length; i++) {
111
+ del(subdir[i]);
112
+ }
113
+ try {
114
+ fs2.rmdirSync(fullPath);
115
+ console.log("deleted", fullPath);
116
+ } catch (_e) {
117
+ try {
118
+ fs2.rmSync(fullPath, { recursive: true, force: true, retryDelay: 7e3 });
119
+ console.log("deleted", fullPath);
120
+ } catch (ee) {
121
+ console.log("failed delete", fullPath, ee && ee.message);
122
+ }
123
+ }
124
+ return;
95
125
  }
96
- } else {
97
126
  try {
98
- fs2.rmSync(fullPath, { recursive: true, force: true, retryDelay: 7e3 });
127
+ fs2.unlinkSync(fullPath);
99
128
  console.log("deleted", fullPath);
100
- } catch (_) {
101
- console.log("failed delete", fullPath);
129
+ } catch (_e) {
130
+ try {
131
+ fs2.rmSync(fullPath, { recursive: true, force: true, retryDelay: 7e3 });
132
+ console.log("deleted", fullPath);
133
+ } catch (ee) {
134
+ console.log("failed delete", fullPath, ee && ee.message);
135
+ }
102
136
  }
137
+ } catch (err) {
138
+ console.log("failed delete", fullPath, err && err.message);
103
139
  }
104
140
  }
105
141
  module2.exports.del = del;
106
142
  function delStream(globStream) {
107
143
  globStream.stream().on("data", (result) => {
108
144
  const fullPath = path2.resolve(process.cwd(), result);
109
- if (fs2.statSync(fullPath).isDirectory()) {
110
- const subdir = fs2.readdirSync(fullPath).map((dirPath) => path2.resolve(fullPath, dirPath));
111
- for (let i = 0; i < subdir.length; i++) {
112
- del(subdir[i]);
145
+ try {
146
+ if (fs2.existsSync(fullPath)) {
147
+ const stat = fs2.lstatSync(fullPath);
148
+ if (stat.isSymbolicLink()) {
149
+ try {
150
+ fs2.unlinkSync(fullPath);
151
+ console.log("deleted symlink", fullPath);
152
+ } catch (e) {
153
+ console.log("failed delete symlink", fullPath, e && e.message);
154
+ }
155
+ return;
156
+ }
157
+ if (stat.isDirectory()) {
158
+ const subdir = fs2.readdirSync(fullPath).map((dirPath) => path2.resolve(fullPath, dirPath));
159
+ for (let i = 0; i < subdir.length; i++) {
160
+ del(subdir[i]);
161
+ }
162
+ }
113
163
  }
164
+ del(fullPath);
165
+ } catch (err) {
166
+ console.log("failed processing", fullPath, err && err.message);
114
167
  }
115
- del(fullPath);
116
168
  });
117
169
  }
118
170
  module2.exports.delStream = delStream;
@@ -158,19 +210,137 @@ var require_utils = __commonJS({
158
210
  }
159
211
  });
160
212
 
213
+ // src/utils/findEnvFiles.cjs
214
+ var require_findEnvFiles = __commonJS({
215
+ "src/utils/findEnvFiles.cjs"(exports2, module2) {
216
+ init_cjs_shims();
217
+ var fs2 = require("fs");
218
+ var path2 = require("path");
219
+ var glob = require("glob");
220
+ var DEFAULT_IGNORES = [
221
+ "**/node_modules/**",
222
+ "**/.git/**",
223
+ "**/.yarn/**",
224
+ "**/.pnpm/**",
225
+ "**/dist/**",
226
+ "**/build/**",
227
+ "**/coverage/**",
228
+ "**/vendor/**",
229
+ "**/tmp/**",
230
+ "**/.cache/**",
231
+ "**/assets/**",
232
+ "**/logs/**",
233
+ "**/output/**",
234
+ "**/public/**",
235
+ "**/static/**",
236
+ "**/temp/**",
237
+ "**/backup/**",
238
+ "**/backups/**",
239
+ "**/examples/**",
240
+ "**/docs/**",
241
+ "**/tests/**",
242
+ "**/__tests__/**",
243
+ "**/spec/**",
244
+ "**/__specs__/**",
245
+ "**/scripts/**",
246
+ "**/bin/**",
247
+ "**/hooks/**",
248
+ "**/config/**",
249
+ "**/configs/**",
250
+ "**/settings/**",
251
+ "**/.vscode/**",
252
+ "**/.idea/**"
253
+ ];
254
+ function findEnvFiles2(startDir = process.cwd(), filter) {
255
+ const found = /* @__PURE__ */ new Set();
256
+ function addFile(file) {
257
+ const normalized = path2.normalize(file);
258
+ if (typeof filter === "function" && !filter(normalized)) {
259
+ return;
260
+ }
261
+ found.add(normalized);
262
+ }
263
+ let current = path2.resolve(startDir);
264
+ while (true) {
265
+ const envPath2 = path2.join(current, ".env");
266
+ if (fs2.existsSync(envPath2)) {
267
+ addFile(envPath2);
268
+ }
269
+ const parent = path2.dirname(current);
270
+ if (parent === current) {
271
+ break;
272
+ }
273
+ current = parent;
274
+ }
275
+ const files = glob.globSync("**/.env*", {
276
+ cwd: startDir,
277
+ absolute: true,
278
+ nodir: true,
279
+ ignore: DEFAULT_IGNORES
280
+ });
281
+ for (const file of files) {
282
+ addFile(file);
283
+ }
284
+ return [...found];
285
+ }
286
+ function findEnvWithToken(startDir = process.cwd(), tokenName = "GITHUB_TOKEN") {
287
+ const envFiles = findEnvFiles2(startDir);
288
+ return envFiles.find((file) => {
289
+ try {
290
+ const content = fs2.readFileSync(file, "utf-8");
291
+ const regex = new RegExp(`^\\s*${tokenName}\\s*=`, "m");
292
+ return regex.test(content);
293
+ } catch (err) {
294
+ console.warn(`Failed to read ${file}: ${err instanceof Error ? err.message : String(err)}`);
295
+ return false;
296
+ }
297
+ });
298
+ }
299
+ module2.exports = {
300
+ DEFAULT_IGNORES,
301
+ findEnvFiles: findEnvFiles2,
302
+ findEnvWithToken,
303
+ default: findEnvFiles2
304
+ };
305
+ }
306
+ });
307
+
161
308
  // src/package-resolutions-updater.mjs
309
+ var package_resolutions_updater_exports = {};
310
+ __export(package_resolutions_updater_exports, {
311
+ fetchJson: () => fetchJson,
312
+ getLatestCommit: () => getLatestCommit,
313
+ getLatestCommitAcrossBranches: () => getLatestCommitAcrossBranches,
314
+ parseGitHubUrl: () => import_git_command_helper.parseGitHubUrl,
315
+ replaceRawWithLatestHash: () => replaceRawWithLatestHash,
316
+ resolvePackageResolutionUpdates: () => resolvePackageResolutionUpdates
317
+ });
318
+ module.exports = __toCommonJS(package_resolutions_updater_exports);
162
319
  init_cjs_shims();
163
- var import_ansi_colors = __toESM(require("ansi-colors"), 1);
164
320
  var dotenv = __toESM(require("dotenv"), 1);
165
321
  var import_fs = __toESM(require("fs"), 1);
166
322
  var import_https = __toESM(require("https"), 1);
167
323
  var import_os = __toESM(require("os"), 1);
168
324
  var import_path = __toESM(require("path"), 1);
169
325
  var utils = __toESM(require_utils(), 1);
326
+ var import_findEnvFiles = __toESM(require_findEnvFiles(), 1);
327
+ var import_git_command_helper = require("git-command-helper");
328
+ var import_axios = __toESM(require("axios"), 1);
170
329
  var projectDir = process.cwd();
171
330
  var envPath = import_path.default.join(projectDir, ".env");
172
331
  var args = utils.getArgs();
173
- if (import_fs.default.existsSync(envPath)) dotenv.config({ path: envPath });
332
+ if (!import_fs.default.existsSync(envPath)) {
333
+ const envFiles = (0, import_findEnvFiles.findEnvFiles)(projectDir, (file) => {
334
+ const content = import_fs.default.readFileSync(file, "utf-8");
335
+ return /GITHUB_TOKEN|ACCESS_TOKEN/.test(content);
336
+ });
337
+ if (envFiles.length > 0) {
338
+ envPath = envFiles[0];
339
+ }
340
+ }
341
+ if (import_fs.default.existsSync(envPath)) {
342
+ dotenv.config({ path: envPath, quiet: true, override: true });
343
+ }
174
344
  var ACCESS_TOKEN = process.env.GITHUB_TOKEN || process.env.ACCESS_TOKEN;
175
345
  if (args.help || args.h) {
176
346
  showHelp();
@@ -204,51 +374,6 @@ Examples:
204
374
  console.log(helpText);
205
375
  process.exit(0);
206
376
  }
207
- var specialPackageOverrides = [
208
- // SBG packages
209
- { pkg: "sbg-utility", branch: "sbg-utility", repo: "static-blog-generator", owner: "dimaslanjaka" },
210
- { pkg: "sbg-api", branch: "sbg-api", repo: "static-blog-generator", owner: "dimaslanjaka" },
211
- { pkg: "instant-indexing", branch: "instant-indexing", repo: "static-blog-generator", owner: "dimaslanjaka" },
212
- { pkg: "sbg-server", branch: "master", repo: "static-blog-generator", owner: "dimaslanjaka" },
213
- { pkg: "sbg-cli", branch: "master", repo: "static-blog-generator", owner: "dimaslanjaka" },
214
- { pkg: "static-blog-generator", branch: "master", repo: "static-blog-generator", owner: "dimaslanjaka" },
215
- // Hexo family
216
- { pkg: "hexo", branch: "monorepo-v7", repo: "hexo", owner: "dimaslanjaka" },
217
- { pkg: "hexo-util", branch: "monorepo-v7", repo: "hexo", owner: "dimaslanjaka" },
218
- { pkg: "warehouse", branch: "monorepo-v7", repo: "hexo", owner: "dimaslanjaka" },
219
- { pkg: "hexo-server", branch: "monorepo-v7", repo: "hexo", owner: "dimaslanjaka" },
220
- { pkg: "hexo-log", branch: "monorepo-v7", repo: "hexo", owner: "dimaslanjaka" },
221
- { pkg: "hexo-front-matter", branch: "monorepo-v7", repo: "hexo", owner: "dimaslanjaka" },
222
- { pkg: "hexo-cli", branch: "monorepo-v7", repo: "hexo", owner: "dimaslanjaka" },
223
- { pkg: "hexo-asset-link", branch: "monorepo-v7", repo: "hexo", owner: "dimaslanjaka" },
224
- { pkg: "hexo-post-parser", branch: "pre-release", repo: "hexo-post-parser", owner: "dimaslanjaka" },
225
- { pkg: "hexo-seo", branch: "pre-release", repo: "hexo-seo", owner: "dimaslanjaka" },
226
- { pkg: "hexo-is", branch: "master", repo: "hexo-is", owner: "dimaslanjaka" },
227
- { pkg: "markdown-it", branch: "master", repo: "markdown-it", owner: "dimaslanjaka" },
228
- { pkg: "hexo-renderers", branch: "pre-release", repo: "hexo-renderers", owner: "dimaslanjaka" },
229
- { pkg: "hexo-shortcodes", branch: "pre-release", repo: "hexo-shortcodes", owner: "dimaslanjaka" },
230
- { pkg: "google-news-sitemap", branch: "master", repo: "google-news-sitemap", owner: "dimaslanjaka" },
231
- { pkg: "git-command-helper", branch: "pre-release", repo: "git-command-helper", owner: "dimaslanjaka" },
232
- {
233
- pkg: "nodejs-package-types",
234
- branch: "main",
235
- repo: "nodejs-package-types",
236
- owner: "dimaslanjaka"
237
- },
238
- { pkg: "cross-spawn", branch: "private", repo: "node-cross-spawn", owner: "dimaslanjaka" },
239
- { pkg: "hexo-generator-redirect", branch: "master", repo: "hexo-generator-redirect", owner: "dimaslanjaka" },
240
- { pkg: "binary-collections", branch: "master", repo: "bin", owner: "dimaslanjaka" },
241
- { pkg: "@types/hexo", branch: "monorepo-v7", repo: "hexo", owner: "dimaslanjaka" },
242
- { pkg: "@types/git-command-helper", branch: "pre-release", repo: "git-command-helper", owner: "dimaslanjaka" }
243
- ];
244
- var pkgPath = import_path.default.join(process.cwd(), "package.json");
245
- var pkg;
246
- try {
247
- pkg = JSON.parse(import_fs.default.readFileSync(pkgPath, "utf-8"));
248
- } catch (e) {
249
- console.error(import_ansi_colors.default.red(`Failed to read package.json: ${e.message}`));
250
- process.exit(1);
251
- }
252
377
  var GITHUB_USER_AGENTS = [
253
378
  "octokit-rest.js/19.0.7",
254
379
  "GitHub CLI/2.40.0",
@@ -351,97 +476,98 @@ async function getLatestCommitAcrossBranches(owner, repo) {
351
476
  };
352
477
  }
353
478
  function replaceRawWithLatestHash(url, latestHash) {
354
- const match = url.match(/^https:\/\/github\.com\/([^/]+)\/([^/]+)\/raw\/([^/]+)\/(.+)$/);
355
- if (!match) throw new Error("Invalid GitHub raw URL");
356
- const [, owner, repo, _oldHash, path2] = match;
357
- return `https://github.com/${owner}/${repo}/raw/${latestHash}/${path2}`;
358
- }
359
- function parseGitHubUrl(url) {
360
- const ghRepoRoot = /^https:\/\/github\.com\/([^/]+)\/([^/]+)\/?$/;
361
- const ghTreeOrBlob = /^https:\/\/github\.com\/([^/]+)\/([^/]+)\/(tree|blob)\/([^/]+(?:\/[^/]+)*)/;
362
- const ghRaw = /^https:\/\/raw\.githubusercontent\.com\/([^/]+)\/([^/]+)\/([^/]+)(\/.+)?$/;
363
- const ghDotComRaw = /^https:\/\/github\.com\/([^/]+)\/([^/]+)\/raw\/([^/]+)\/.+/;
364
- let match;
365
- if (match = url.match(ghRaw)) {
366
- const [, owner, repo, branch] = match;
367
- return { owner, repo, branch, url };
368
- }
369
- if (match = url.match(ghDotComRaw)) {
370
- const [, owner, repo, branch] = match;
371
- return { owner, repo, branch, url };
479
+ const parsed = (0, import_git_command_helper.parseGitHubUrl)(url);
480
+ if (!parsed || !parsed.owner || !parsed.repo || !parsed.branch) {
481
+ throw new Error("Invalid GitHub raw URL");
372
482
  }
373
- if (match = url.match(ghTreeOrBlob)) {
374
- const [, owner, repo, , branchPath] = match;
375
- return { owner, repo, branch: branchPath, url };
483
+ const branchPrefix = `${parsed.branch}/`;
484
+ const rawPrefix = parsed.host === "github.com" ? `raw/${branchPrefix}` : branchPrefix;
485
+ const refsPrefix = `refs/heads/${branchPrefix}`;
486
+ const path2 = parsed.path.startsWith(rawPrefix) ? parsed.path.slice(rawPrefix.length) : parsed.path.startsWith(refsPrefix) ? parsed.path.slice(refsPrefix.length) : parsed.path.startsWith(branchPrefix) ? parsed.path.slice(branchPrefix.length) : parsed.path;
487
+ if (parsed.host === "github.com") {
488
+ return `https://github.com/${parsed.owner}/${parsed.repo}/raw/${latestHash}/${path2}`;
376
489
  }
377
- if (match = url.match(ghRepoRoot)) {
378
- const [, owner, repo] = match;
379
- return { owner, repo, url };
490
+ if (parsed.host === "raw.githubusercontent.com") {
491
+ return `https://raw.githubusercontent.com/${parsed.owner}/${parsed.repo}/${latestHash}/${path2}`;
380
492
  }
381
- throw new Error(`Unsupported GitHub URL: ${url}`);
493
+ throw new Error("Invalid GitHub raw URL");
382
494
  }
383
- (async () => {
384
- const entries = Object.entries(pkg.resolutions || {});
385
- if (entries.length === 0) {
386
- console.log(import_ansi_colors.default.yellow("No resolutions found in package.json"));
387
- return;
388
- }
389
- console.log(`Processing ${entries.length} resolution(s)...`);
495
+ async function resolvePackageResolutionUpdates(resolutions, specialPackageOverrides = []) {
390
496
  const updates = [];
391
- for (const [currentPkgName, url] of entries) {
497
+ for (const [currentPkgName, url] of Object.entries(resolutions || {})) {
392
498
  let repo;
393
499
  try {
394
- repo = parseGitHubUrl(url);
395
- console.log(`\u2705 Valid GitHub URL for ${import_ansi_colors.default.cyan(currentPkgName)}: ${url}`);
500
+ repo = (0, import_git_command_helper.parseGitHubUrl)(url);
396
501
  } catch (error) {
397
- console.log(`\u23ED\uFE0F Skipping ${import_ansi_colors.default.yellow(currentPkgName)}: ${error.message}`);
502
+ updates.push({
503
+ skipped: true,
504
+ currentPkgName,
505
+ url,
506
+ error
507
+ });
398
508
  continue;
399
509
  }
400
510
  try {
401
511
  const override = specialPackageOverrides.find((p) => p.pkg === currentPkgName);
402
512
  const latest = override ? await getLatestCommit(override.owner, override.repo, override.branch) : await getLatestCommitAcrossBranches(repo.owner, repo.repo);
403
513
  const new_url = replaceRawWithLatestHash(url, latest.sha);
514
+ await import_axios.default.head(new_url, {
515
+ headers: {
516
+ "User-Agent": selectedUserAgent,
517
+ Accept: "application/vnd.github.v3+json",
518
+ "X-GitHub-Api-Version": "2022-11-28",
519
+ ...ACCESS_TOKEN ? { Authorization: `token ${ACCESS_TOKEN}` } : {}
520
+ }
521
+ }).then((response) => {
522
+ if (response.status < 200 || response.status >= 300) {
523
+ updates.push({
524
+ failed: true,
525
+ currentPkgName,
526
+ url,
527
+ new_url,
528
+ repo,
529
+ latest,
530
+ error: new Error(`New URL is not accessible, status code: ${response.status}`)
531
+ });
532
+ return;
533
+ }
534
+ updates.push({
535
+ currentPkgName,
536
+ url,
537
+ new_url,
538
+ repo,
539
+ latest
540
+ });
541
+ }).catch((e) => {
542
+ updates.push({
543
+ failed: true,
544
+ currentPkgName,
545
+ url,
546
+ new_url,
547
+ repo,
548
+ latest,
549
+ error: new Error(`New URL is not accessible: ${e.message}`)
550
+ });
551
+ return null;
552
+ });
553
+ } catch (error) {
404
554
  updates.push({
555
+ failed: true,
405
556
  currentPkgName,
406
557
  url,
407
- new_url,
408
558
  repo,
409
- latest
559
+ error
410
560
  });
411
- } catch (error) {
412
- console.log(`\u274C Failed to process ${import_ansi_colors.default.red(currentPkgName)}: ${error.message}`);
413
561
  }
414
562
  }
415
- if (updates.length === 0) {
416
- console.log(import_ansi_colors.default.yellow("No GitHub URLs were processed"));
417
- return;
418
- }
419
- console.log(`
420
- \u{1F4DD} Applying updates to ${updates.length} GitHub URL(s)...`);
421
- let changed = false;
422
- for (const { currentPkgName, url, new_url, repo, latest } of updates) {
423
- if (url !== new_url) {
424
- console.log(`
425
- ${import_ansi_colors.default.cyan(currentPkgName)}:`);
426
- console.log(" from:", url.replace(repo.branch, import_ansi_colors.default.red(repo.branch)));
427
- console.log(" to:", new_url.replace(latest.sha, import_ansi_colors.default.green(latest.sha)));
428
- pkg.resolutions[currentPkgName] = new_url;
429
- changed = true;
430
- } else {
431
- console.log(`
432
- ${import_ansi_colors.default.cyan(currentPkgName)}: ${import_ansi_colors.default.gray("already up-to-date")}`);
433
- }
434
- }
435
- if (changed) {
436
- try {
437
- import_fs.default.writeFileSync(pkgPath, JSON.stringify(pkg, null, 2) + "\n");
438
- console.log(`
439
- \u2705 package.json updated successfully`);
440
- } catch (e) {
441
- console.error(import_ansi_colors.default.red(`Failed to write package.json: ${e.message}`));
442
- process.exit(1);
443
- }
444
- } else {
445
- console.log(import_ansi_colors.default.green("No changes to package.json were necessary."));
446
- }
447
- })();
563
+ return updates;
564
+ }
565
+ // Annotate the CommonJS export names for ESM import in node:
566
+ 0 && (module.exports = {
567
+ fetchJson,
568
+ getLatestCommit,
569
+ getLatestCommitAcrossBranches,
570
+ parseGitHubUrl,
571
+ replaceRawWithLatestHash,
572
+ resolvePackageResolutionUpdates
573
+ });
@@ -1 +1,51 @@
1
- export {};
1
+ /**
2
+ * Fetch JSON from a URL with GitHub headers.
3
+ * @param {string} url
4
+ * @returns {Promise<any>}
5
+ */
6
+ export function fetchJson(url: string): Promise<any>;
7
+ /**
8
+ * Get latest commit SHA from a specific branch.
9
+ */
10
+ export function getLatestCommit(owner: any, repo: any, branch?: string): Promise<{
11
+ owner: any;
12
+ repo: any;
13
+ branch: string;
14
+ sha: any;
15
+ date: string;
16
+ }>;
17
+ /**
18
+ * Get latest commit SHA from all branches and pick the latest.
19
+ */
20
+ export function getLatestCommitAcrossBranches(owner: any, repo: any): Promise<{
21
+ owner: any;
22
+ repo: any;
23
+ branch: any;
24
+ sha: any;
25
+ date: any;
26
+ }>;
27
+ /**
28
+ * Replace the branch or commit in a GitHub raw URL with the latest hash.
29
+ */
30
+ export function replaceRawWithLatestHash(url: any, latestHash: any): string;
31
+ /**
32
+ * Resolve all package resolution updates.
33
+ * Pure logic function for Jest testing.
34
+ */
35
+ export function resolvePackageResolutionUpdates(resolutions: any, specialPackageOverrides?: any[]): Promise<({
36
+ skipped: boolean;
37
+ currentPkgName: string;
38
+ url: any;
39
+ error: unknown;
40
+ failed?: undefined;
41
+ repo?: undefined;
42
+ } | {
43
+ failed: boolean;
44
+ currentPkgName: string;
45
+ url: any;
46
+ repo: import("git-command-helper").ParsedGitHubUrl;
47
+ error: unknown;
48
+ skipped?: undefined;
49
+ })[]>;
50
+ export { parseGitHubUrl };
51
+ import { parseGitHubUrl } from 'git-command-helper';