binary-collections 2.0.11 → 2.0.13
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/binaries/binary-executor.cjs +89 -13
- package/binaries/clean-nodemodule.cjs +89 -13
- package/binaries/clean-nodemodules.cjs +89 -13
- package/binaries/dev.cjs +89 -13
- package/binaries/empty.cjs +89 -13
- package/binaries/git-reduce-size.cjs +89 -13
- package/binaries/javakill.cjs +89 -13
- package/binaries/kill-process.cjs +89 -13
- package/binaries/nodekill.cjs +89 -13
- package/binaries/prod.cjs +89 -13
- package/binaries/py.cjs +89 -13
- package/binaries/rmfind.cjs +89 -13
- package/binaries/rmx +15 -1
- package/binaries/rmx.cjs +89 -13
- package/binaries/rmx.cmd +12 -0
- package/binaries/submodule-token.cjs +89 -13
- package/binaries/test-cjs +9 -1
- package/binaries/test-cjs.cjs +89 -13
- package/binaries/test-cjs.cmd +16 -1
- package/binaries/test-esm +16 -0
- package/binaries/test-esm.cjs +254 -0
- package/binaries/test-esm.cmd +23 -0
- package/binaries/yarn-clean +1 -1
- package/binaries/yarn-clean.cjs +89 -13
- package/binaries/yarn-clean.cmd +1 -1
- package/binaries/yarn-clean.py +33 -15
- package/binaries/yc +131 -0
- package/binaries/yc.cjs +254 -0
- package/binaries/ycw +256 -0
- package/binaries/ycw.cjs +254 -0
- package/docs-src/binary-collections.md +34 -0
- package/docs-src/changelog.md +26 -0
- package/docs-src/clean-github-actions-caches.md +91 -2
- package/docs-src/copy-move-file.md +59 -0
- package/docs-src/del-gradle.md +17 -0
- package/docs-src/del-ps.md +28 -0
- package/docs-src/downloader.md +62 -0
- package/docs-src/env-helpers.md +29 -0
- package/docs-src/find-node-modules.md +17 -0
- package/docs-src/git-diff.md +33 -0
- package/docs-src/git-fix.md +34 -0
- package/docs-src/git-purge.md +17 -0
- package/docs-src/git-reduce-size.md +17 -0
- package/docs-src/git-undo.md +21 -0
- package/docs-src/kill-night-crows.md +26 -0
- package/docs-src/node-cache-cleaner.md +182 -0
- package/docs-src/node-executor.md +50 -0
- package/docs-src/node-package-packer.md +48 -0
- package/docs-src/npm-run-series.md +43 -0
- package/docs-src/package-resolutions-updater.md +22 -0
- package/docs-src/php-cs-fixer-staged.md +19 -0
- package/docs-src/print-directory-tree.md +35 -0
- package/docs-src/print-tarball-tree.md +55 -0
- package/docs-src/py.md +19 -0
- package/docs-src/remove-module.md +32 -0
- package/docs-src/rmfind-rmx.md +21 -0
- package/docs-src/rmpath.md +38 -0
- package/docs-src/run-by-checksum.md +87 -0
- package/docs-src/submodule-install.md +31 -0
- package/docs-src/submodule-remove.md +22 -0
- package/docs-src/submodule-token.md +17 -0
- package/docs-src/test-runners.md +21 -0
- package/docs-src/yarn-install.md +31 -0
- package/docs-src/yarn-reinstall.md +27 -0
- package/lib/binary-collections/config.cjs +126 -0
- package/lib/binary-collections/config.mjs +7 -0
- package/lib/binary-collections/executeScript.cjs +19 -0
- package/lib/binary-collections/executeScript.d.cts +12 -0
- package/lib/binary-collections/executeScript.mjs +6 -0
- package/lib/binary-collections/findScript.cjs +309 -0
- package/lib/binary-collections/findScript.d.cts +12 -0
- package/lib/binary-collections/findScript.mjs +7 -0
- package/lib/binary-collections/listScript.cjs +291 -0
- package/lib/binary-collections/listScript.d.cts +19 -0
- package/lib/binary-collections/listScript.mjs +7 -0
- package/lib/binary-collections.cjs +264 -157
- package/lib/binary-collections.mjs +26 -286
- package/lib/changelog.cjs +9 -14
- package/lib/changelog.mjs +2 -2
- package/lib/chunk-2MN4VPV2.mjs +246 -0
- package/lib/chunk-6C7KTYGZ.mjs +41 -0
- package/lib/{chunk-Z6JLYU2J.mjs → chunk-6RK5UCTP.mjs} +7 -12
- package/lib/chunk-CD3HF3LK.mjs +190 -0
- package/lib/chunk-FLYSZFLW.mjs +61 -0
- package/lib/{chunk-N436BNBK.mjs → chunk-GAGABICI.mjs} +19 -13
- package/lib/chunk-H44UWUFY.mjs +105 -0
- package/lib/chunk-KLKAIFKI.mjs +40 -0
- package/lib/chunk-LVSPEFU2.mjs +86 -0
- package/lib/{chunk-RWLXRTYP.mjs → chunk-MGPYPKIE.mjs} +2 -2
- package/lib/chunk-NGFK3EYW.mjs +28 -0
- package/lib/chunk-NQXUYO67.mjs +253 -0
- package/lib/chunk-NVEG3LEZ.mjs +143 -0
- package/lib/chunk-OBXLTXFJ.mjs +34 -0
- package/lib/chunk-OGXVGBRI.mjs +29 -0
- package/lib/chunk-OXV52GD5.mjs +62 -0
- package/lib/chunk-PXBMHE7O.mjs +35 -0
- package/lib/chunk-QD4T255Z.mjs +40 -0
- package/lib/chunk-QII2EKCS.mjs +26 -0
- package/lib/chunk-R5FJOR63.mjs +47 -0
- package/lib/chunk-RDGDLSPD.mjs +76 -0
- package/lib/chunk-RDN6HF5Z.mjs +79 -0
- package/lib/chunk-RJKTSUAX.mjs +123 -0
- package/lib/{chunk-XA3SNBPA.mjs → chunk-TBWXE7ST.mjs} +97 -38
- package/lib/chunk-UXCFNAR6.mjs +55 -0
- package/lib/{chunk-M3YIYRHT.mjs → chunk-UY5VUEA3.mjs} +1 -1
- package/lib/chunk-WSHVPGNM.mjs +44 -0
- package/lib/{chunk-66PAU5PS.mjs → chunk-X2B3X7D4.mjs} +10 -6
- package/lib/clean-github-actions-caches-cli.cjs +507 -0
- package/lib/clean-github-actions-caches-cli.mjs +74 -0
- package/lib/clean-github-actions-caches.cjs +246 -106
- package/lib/clean-github-actions-caches.d.cts +53 -1
- package/lib/clean-github-actions-caches.mjs +5 -130
- package/lib/cross-env/command.cjs +63 -0
- package/lib/cross-env/command.d.ts +8 -0
- package/lib/cross-env/command.js +45 -0
- package/lib/{ps/isWin.mjs → cross-env/command.mjs} +4 -5
- package/lib/cross-env/index.cjs +178 -0
- package/lib/cross-env/index.d.ts +8 -0
- package/lib/cross-env/index.js +102 -0
- package/lib/cross-env/index.mjs +101 -0
- package/lib/cross-env/variable.cjs +60 -0
- package/lib/cross-env/variable.d.ts +7 -0
- package/lib/cross-env/variable.js +59 -0
- package/lib/cross-env/variable.mjs +9 -0
- package/lib/del-gradle.cjs +8 -13
- package/lib/del-gradle.js +8 -8
- package/lib/del-gradle.mjs +1 -1
- package/lib/del-node-modules.cjs +185 -3
- package/lib/del-node-modules.js +25 -25
- package/lib/del-node-modules.mjs +6 -3
- package/lib/{del-ps.cjs → del-ps-cli.cjs} +38 -43
- package/lib/del-ps-cli.d.mts +1 -0
- package/lib/del-ps-cli.mjs +44 -0
- package/lib/del-yarn-caches.cjs +8 -13
- package/lib/del-yarn-caches.js +2 -2
- package/lib/del-yarn-caches.mjs +1 -1
- package/lib/downloader-cli.cjs +256 -0
- package/lib/downloader-cli.d.cts +2 -0
- package/lib/downloader-cli.mjs +90 -0
- package/lib/file/copy-cli.cjs +273 -0
- package/lib/file/copy-cli.d.mts +1 -0
- package/lib/file/copy-cli.mjs +59 -0
- package/lib/file/copy.cjs +56 -0
- package/lib/file/copy.d.mts +1 -0
- package/lib/file/copy.mjs +8 -0
- package/lib/file/move-cli.cjs +272 -0
- package/lib/file/move-cli.d.mts +1 -0
- package/lib/file/move-cli.mjs +59 -0
- package/lib/file/move.cjs +55 -0
- package/lib/file/move.d.mts +1 -0
- package/lib/file/move.mjs +8 -0
- package/lib/find-node-modules-cli.cjs +1 -1
- package/lib/find-node-modules-cli.js +1 -1
- package/lib/find-node-modules-cli.mjs +1 -1
- package/lib/find-node-modules.cjs +1 -1
- package/lib/find-node-modules.mjs +1 -1
- package/lib/free-chatgpt.cjs +27 -26
- package/lib/free-chatgpt.js +10 -10
- package/lib/free-chatgpt.mjs +2 -2
- package/lib/git/user-config.cjs +9 -14
- package/lib/git/user-config.mjs +2 -2
- package/lib/git-diff-cli.cjs +273 -66
- package/lib/git-diff-cli.mjs +5 -4
- package/lib/git-diff.cjs +273 -66
- package/lib/git-diff.d.ts +2 -1
- package/lib/git-diff.js +153 -39
- package/lib/git-diff.mjs +5 -4
- package/lib/git-fix.cjs +9 -14
- package/lib/git-fix.mjs +2 -2
- package/lib/git-purge.cjs +9 -14
- package/lib/git-purge.mjs +2 -2
- package/lib/index.cjs +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.mjs +1 -1
- package/lib/kill-night-crows.cjs +7 -7
- package/lib/kill-night-crows.mjs +7 -7
- package/lib/node-cache-cleaner/npm.cjs +65 -0
- package/lib/node-cache-cleaner/npm.d.ts +2 -0
- package/lib/node-cache-cleaner/npm.js +41 -0
- package/lib/node-cache-cleaner/npm.mjs +10 -0
- package/lib/node-cache-cleaner/npx.cjs +89 -0
- package/lib/node-cache-cleaner/npx.d.ts +4 -0
- package/lib/node-cache-cleaner/npx.js +82 -0
- package/lib/{ps/index.d.mjs → node-cache-cleaner/npx.mjs} +6 -5
- package/lib/node-cache-cleaner/yarn.cjs +73 -0
- package/lib/node-cache-cleaner/yarn.d.ts +2 -0
- package/lib/node-cache-cleaner/yarn.js +62 -0
- package/lib/node-cache-cleaner/yarn.mjs +10 -0
- package/lib/node-cache-cleaner-cli.cjs +365 -0
- package/lib/node-cache-cleaner-cli.d.ts +2 -0
- package/lib/node-cache-cleaner-cli.js +57 -0
- package/lib/node-cache-cleaner-cli.mjs +60 -0
- package/lib/node-executor.cjs +272 -0
- package/lib/node-executor.d.cts +2 -0
- package/lib/node-executor.mjs +106 -0
- package/lib/node-package-packer/build-readme.cjs +150 -0
- package/lib/node-package-packer/build-readme.d.mts +10 -0
- package/lib/node-package-packer/build-readme.mjs +10 -0
- package/lib/node-package-packer/build-tarball.cjs +495 -0
- package/lib/node-package-packer/build-tarball.d.mts +33 -0
- package/lib/node-package-packer/build-tarball.mjs +175 -0
- package/lib/node-package-packer-cli.cjs +525 -0
- package/lib/node-package-packer-cli.d.mts +1 -0
- package/lib/node-package-packer-cli.mjs +34 -0
- package/lib/npm-run-series.cjs +28 -40
- package/lib/npm-run-series.mjs +21 -7
- package/lib/package-resolutions-updater-cli.cjs +255 -173
- package/lib/package-resolutions-updater-cli.mjs +19 -40
- package/lib/package-resolutions-updater.cjs +244 -141
- package/lib/package-resolutions-updater.d.mts +54 -1
- package/lib/package-resolutions-updater.mjs +8 -5
- package/lib/php-cs-fixer-staged.cjs +1 -1
- package/lib/php-cs-fixer-staged.mjs +1 -1
- package/lib/print-directory-tree.cjs +18 -20
- package/lib/print-directory-tree.mjs +11 -8
- package/lib/print-tarball-tree.cjs +262 -0
- package/lib/print-tarball-tree.d.mts +1 -0
- package/lib/print-tarball-tree.mjs +68 -0
- package/lib/ps/connected-domain.js +10 -10
- package/lib/ps/index.cjs +11 -11
- package/lib/ps/index.mjs +180 -174
- package/lib/ps/table-parser.d.ts +3 -4
- package/lib/ps/table-parser.js +15 -22
- package/lib/remove-module.cjs +19 -24
- package/lib/remove-module.mjs +2 -2
- package/lib/rm-node-module-cli.cjs +389 -0
- package/lib/rm-node-module-cli.d.cts +1 -0
- package/lib/rm-node-module-cli.mjs +92 -0
- package/lib/rm-node-modules.cjs +127 -0
- package/lib/rm-node-modules.d.cts +35 -0
- package/lib/{binary-collections-config.mjs → rm-node-modules.mjs} +3 -3
- package/lib/rmpath-cli.cjs +285 -0
- package/lib/rmpath-cli.d.mts +1 -0
- package/lib/rmpath-cli.mjs +23 -0
- package/lib/rmpath.cjs +6 -217
- package/lib/rmpath.mjs +5 -101
- package/lib/run-by-checksum/cache.cjs +69 -0
- package/lib/run-by-checksum/cache.d.ts +19 -0
- package/lib/run-by-checksum/cache.js +50 -0
- package/lib/run-by-checksum/cache.mjs +12 -0
- package/lib/run-by-checksum/hash.cjs +72 -0
- package/lib/run-by-checksum/hash.d.ts +14 -0
- package/lib/run-by-checksum/hash.js +85 -0
- package/lib/run-by-checksum/hash.mjs +10 -0
- package/lib/run-by-checksum/run.cjs +169 -0
- package/lib/run-by-checksum/run.d.ts +22 -0
- package/lib/run-by-checksum/run.js +93 -0
- package/lib/run-by-checksum/run.mjs +10 -0
- package/lib/run-by-checksum-cli.cjs +382 -0
- package/lib/run-by-checksum-cli.d.ts +2 -0
- package/lib/run-by-checksum-cli.js +43 -0
- package/lib/run-by-checksum-cli.mjs +56 -0
- package/lib/submodule-install.cjs +55 -47
- package/lib/submodule-install.mjs +48 -35
- package/lib/submodule-remove-cli.cjs +170 -4
- package/lib/submodule-remove-cli.js +5 -5
- package/lib/submodule-remove-cli.mjs +6 -4
- package/lib/utils/chatgpt.cjs +19 -13
- package/lib/utils/chatgpt.js +94 -94
- package/lib/utils/chatgpt.mjs +1 -1
- package/lib/utils/fetchResponse.cjs +24 -0
- package/lib/utils/fetchResponse.d.cts +25 -0
- package/lib/utils/fetchResponse.mjs +6 -0
- package/lib/utils/findEnvFiles.cjs +28 -46
- package/lib/utils/findEnvFiles.d.cts +19 -0
- package/lib/utils/findEnvFiles.mjs +3 -5
- package/lib/utils/findWorkspaceRoot.js +4 -4
- package/lib/utils/index.cjs +7 -12
- package/lib/utils/index.d.cts +2 -9
- package/lib/utils/index.mjs +1 -1
- package/lib/utils/isGithubTokenValid.js +7 -7
- package/lib/{ps/isWin.cjs → utils/isWindows.cjs} +12 -7
- package/lib/utils/isWindows.d.ts +5 -0
- package/lib/utils/isWindows.js +10 -0
- package/lib/utils/isWindows.mjs +10 -0
- package/lib/utils/runBash.cjs +53 -0
- package/lib/utils/runBash.d.cts +12 -0
- package/lib/utils/runBash.mjs +66 -0
- package/lib/yarn-per-branch-lock-installer.cjs +288 -0
- package/lib/yarn-per-branch-lock-installer.d.cts +2 -0
- package/lib/yarn-per-branch-lock-installer.mjs +122 -0
- package/lib/yarn-reinstall.cjs +8 -13
- package/lib/yarn-reinstall.mjs +1 -1
- package/package.json +91 -57
- package/readme.html +784 -0
- package/readme.md +107 -219
- package/releases/readme.md +6 -3
- package/test/README.md +2 -2
- package/test-project/workspaces/workspace-a/readme.md +20 -0
- package/test-project/workspaces/workspace-a/release/readme.md +42 -0
- package/test-project/workspaces/workspace-a/test/readme.md +12 -0
- package/test-project/workspaces/workspace-b/readme.md +94 -0
- package/test-project/workspaces/workspace-b/requirements.txt +1 -0
- package/test-project/workspaces/workspace-b/themes/hexo-theme-flowbite/readme.md +156 -0
- package/tmp/test-repo/README.md +2 -35
- package/tmp/test-repo-runChecksum/test-complex-glob/README.md +1 -0
- package/tmp/test-repo-runChecksum/test-mixed-args/README.md +1 -0
- package/lib/binary-collections-config.cjs +0 -15
- package/lib/chunk-2CBJCW7E.mjs +0 -81
- package/lib/chunk-4UHL4WVN.mjs +0 -136
- package/lib/chunk-6HHJRKFB.mjs +0 -59
- package/lib/chunk-6S4NXESK.mjs +0 -26
- package/lib/chunk-7XTEJHOE.mjs +0 -193
- package/lib/chunk-AJDD5DZM.mjs +0 -109
- package/lib/chunk-FCDQGYBF.mjs +0 -136
- package/lib/chunk-GEYA2USY.mjs +0 -207
- package/lib/chunk-GJTGHXRA.mjs +0 -356
- package/lib/chunk-ID2WBTE2.mjs +0 -80
- package/lib/chunk-JXFOHKDM.mjs +0 -239
- package/lib/chunk-NCXAP7AA.mjs +0 -31
- package/lib/chunk-PDSXF5HY.mjs +0 -187
- package/lib/chunk-TOIVAQF7.mjs +0 -136
- package/lib/chunk-V5SKYJUB.mjs +0 -136
- package/lib/chunk-WSRETQCA.mjs +0 -59
- package/lib/chunk-YYLIQQKF.mjs +0 -31
- package/lib/del-ps.js +0 -32
- package/lib/del-ps.mjs +0 -43
- package/lib/ps/index.d.cjs +0 -17
- package/lib/ps/index.d.ts +0 -2
- package/lib/ps/index.js +0 -254
- package/lib/ps/isWin.d.ts +0 -2
- package/lib/ps/isWin.js +0 -4
- package/lib/utils/findEnvFiles.d.ts +0 -8
- package/lib/utils/findEnvFiles.js +0 -121
- package/test/package.json +0 -20
- package/test-project/package.json +0 -16
- package/tmp/test-repo/package.json +0 -7
- package/tmp/typedoc/readme.md +0 -320
- /package/lib/{binary-collections-config.d.cts → binary-collections/config.d.cts} +0 -0
- /package/lib/{del-ps.d.ts → clean-github-actions-caches-cli.d.cts} +0 -0
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
|
+
import {
|
|
3
|
+
build_readme_default
|
|
4
|
+
} from "../chunk-RJKTSUAX.mjs";
|
|
5
|
+
import {
|
|
6
|
+
require_utils
|
|
7
|
+
} from "../chunk-6RK5UCTP.mjs";
|
|
8
|
+
import {
|
|
9
|
+
__toESM,
|
|
10
|
+
init_esm_shims
|
|
11
|
+
} from "../chunk-QQ4A6DLD.mjs";
|
|
12
|
+
|
|
13
|
+
// src/node-package-packer/build-tarball.mjs
|
|
14
|
+
init_esm_shims();
|
|
15
|
+
import fs from "fs-extra";
|
|
16
|
+
import { file_to_hash } from "sbg-utility";
|
|
17
|
+
import path from "upath";
|
|
18
|
+
var import_utils = __toESM(require_utils(), 1);
|
|
19
|
+
import * as crossSpawn from "cross-spawn";
|
|
20
|
+
function slugifyPkgName(str) {
|
|
21
|
+
return str.replace(/\//g, "-").replace(/@/g, "");
|
|
22
|
+
}
|
|
23
|
+
function resolveNewestTarball(dirname, candidateNames) {
|
|
24
|
+
const candidates = /* @__PURE__ */ new Set();
|
|
25
|
+
for (const name of candidateNames) {
|
|
26
|
+
const candidatePath = path.join(dirname, name);
|
|
27
|
+
if (fs.existsSync(candidatePath)) {
|
|
28
|
+
candidates.add(candidatePath);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
for (const entry of fs.readdirSync(dirname)) {
|
|
32
|
+
if (entry.endsWith(".tgz")) {
|
|
33
|
+
candidates.add(path.join(dirname, entry));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
const tarballs = Array.from(candidates);
|
|
37
|
+
if (tarballs.length === 0) {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
return tarballs.sort((left, right) => fs.statSync(right).mtimeMs - fs.statSync(left).mtimeMs)[0];
|
|
41
|
+
}
|
|
42
|
+
async function getPackageHashes(dirname, releaseDir) {
|
|
43
|
+
let hashes = {};
|
|
44
|
+
const metafile = path.join(releaseDir, "metadata.json");
|
|
45
|
+
if (fs.existsSync(metafile)) {
|
|
46
|
+
try {
|
|
47
|
+
hashes = Object.assign(
|
|
48
|
+
hashes,
|
|
49
|
+
Object.fromEntries(
|
|
50
|
+
Object.entries(JSON.parse(fs.readFileSync(metafile, "utf-8"))).filter(
|
|
51
|
+
([key]) => !key.endsWith("yarn.lock") && !key.endsWith("package-lock.json")
|
|
52
|
+
)
|
|
53
|
+
)
|
|
54
|
+
);
|
|
55
|
+
} catch {
|
|
56
|
+
hashes = {};
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
const readDir = fs.readdirSync(releaseDir).filter((f) => f.endsWith("tgz")).map((f) => path.join(releaseDir, f));
|
|
60
|
+
for (let i = 0; i < readDir.length; i++) {
|
|
61
|
+
const file = readDir[i];
|
|
62
|
+
const stat = fs.statSync(file);
|
|
63
|
+
const size = `${parseFloat(stat.size / Math.pow(1024, 1)).toFixed(2)} KB`;
|
|
64
|
+
hashes = Object.assign({}, hashes, {
|
|
65
|
+
[path.toUnix(file).replace(path.toUnix(dirname), "")]: {
|
|
66
|
+
integrity: {
|
|
67
|
+
sha1: await file_to_hash("sha1", file),
|
|
68
|
+
sha256: await file_to_hash("sha256", file, "base64"),
|
|
69
|
+
md5: await file_to_hash("md5", file),
|
|
70
|
+
sha512: await file_to_hash("sha512", file, "base64")
|
|
71
|
+
},
|
|
72
|
+
size
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
fs.writeFileSync(metafile, JSON.stringify(hashes, null, 2) + "\n");
|
|
76
|
+
}
|
|
77
|
+
return hashes;
|
|
78
|
+
}
|
|
79
|
+
async function bundleWithYarn(dirname, packagejson, releaseDir, argv, withFilename, isCI) {
|
|
80
|
+
await build_readme_default(dirname, packagejson, releaseDir, argv, isCI);
|
|
81
|
+
const targetFname = argv["fn"] || argv["filename"] || slugifyPkgName(`${packagejson.name}-${packagejson.version}.tgz`);
|
|
82
|
+
const tgz = resolveNewestTarball(dirname, [
|
|
83
|
+
"package.tgz",
|
|
84
|
+
slugifyPkgName(`${packagejson.name}-v${packagejson.version}.tgz`)
|
|
85
|
+
]);
|
|
86
|
+
if (!tgz) {
|
|
87
|
+
throw new Error(`No Yarn pack tarball found in ${dirname}`);
|
|
88
|
+
}
|
|
89
|
+
if (withFilename) {
|
|
90
|
+
const tgzlatest = path.join(releaseDir, targetFname + ".tgz");
|
|
91
|
+
fs.copySync(tgz, tgzlatest, { overwrite: true });
|
|
92
|
+
} else {
|
|
93
|
+
const tgzlatest = path.join(releaseDir, slugifyPkgName(`${packagejson.name}.tgz`));
|
|
94
|
+
const tgzversion = path.join(releaseDir, targetFname);
|
|
95
|
+
fs.copySync(tgz, tgzlatest, { overwrite: true });
|
|
96
|
+
fs.copySync(tgz, tgzversion, { overwrite: true });
|
|
97
|
+
}
|
|
98
|
+
fs.rmSync(tgz, { recursive: true, force: true });
|
|
99
|
+
await getPackageHashes(dirname, releaseDir);
|
|
100
|
+
}
|
|
101
|
+
async function bundleWithNpm(dirname, packagejson, releaseDir, argv, isCI) {
|
|
102
|
+
const filename = slugifyPkgName(`${packagejson.name}-${packagejson.version}.tgz`);
|
|
103
|
+
const tgz = path.join(dirname, filename);
|
|
104
|
+
const tgzversion = path.join(releaseDir, filename);
|
|
105
|
+
if (!fs.existsSync(tgz)) {
|
|
106
|
+
const filename2 = slugifyPkgName(`${packagejson.name}-${packagejson.version}.tgz`);
|
|
107
|
+
const origintgz = path.join(dirname, filename2);
|
|
108
|
+
if (fs.existsSync(origintgz) && origintgz !== tgz) {
|
|
109
|
+
fs.renameSync(origintgz, tgz);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
const tgzlatest = path.join(releaseDir, slugifyPkgName(`${packagejson.name}.tgz`));
|
|
113
|
+
if (!fs.existsSync(path.dirname(tgzlatest))) {
|
|
114
|
+
fs.mkdirpSync(path.dirname(tgzlatest));
|
|
115
|
+
}
|
|
116
|
+
await build_readme_default(dirname, packagejson, releaseDir, argv, isCI);
|
|
117
|
+
if (fs.existsSync(tgz)) {
|
|
118
|
+
fs.copySync(tgz, tgzlatest);
|
|
119
|
+
fs.copySync(tgz, tgzversion);
|
|
120
|
+
if (fs.existsSync(tgz)) fs.rmSync(tgz);
|
|
121
|
+
await getPackageHashes(dirname, releaseDir);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
function bundle() {
|
|
125
|
+
const args = (0, import_utils.getArgs)();
|
|
126
|
+
const withYarn = args._.includes("-yarn") || args._.includes("--yarn");
|
|
127
|
+
const releaseDir1 = path.join(process.cwd(), "release");
|
|
128
|
+
const releaseDir2 = path.join(process.cwd(), "releases");
|
|
129
|
+
const releaseDir = !fs.existsSync(releaseDir2) ? releaseDir1 : releaseDir2;
|
|
130
|
+
const isYarn = fs.existsSync(path.join(process.cwd(), "yarn.lock")) || withYarn;
|
|
131
|
+
const packagejson = fs.readJSONSync(path.join(process.cwd(), "package.json"));
|
|
132
|
+
const withFilename = args["fn"] || args["filename"] ? true : false;
|
|
133
|
+
const isCI = process.env.GITHUB_ACTION && process.env.GITHUB_ACTIONS;
|
|
134
|
+
if (!fs.existsSync(releaseDir)) {
|
|
135
|
+
fs.mkdirpSync(releaseDir, { recursive: true });
|
|
136
|
+
}
|
|
137
|
+
const child = !withYarn ? crossSpawn.spawn("npm", ["pack"], {
|
|
138
|
+
cwd: process.cwd(),
|
|
139
|
+
shell: true,
|
|
140
|
+
stdio: "ignore",
|
|
141
|
+
env: { PATH: process.env.PATH }
|
|
142
|
+
}) : crossSpawn.spawn("yarn", ["pack"], {
|
|
143
|
+
cwd: process.cwd(),
|
|
144
|
+
shell: true,
|
|
145
|
+
stdio: "ignore",
|
|
146
|
+
env: { PATH: process.env.PATH }
|
|
147
|
+
});
|
|
148
|
+
return new Promise((resolve, reject) => {
|
|
149
|
+
child.once("error", reject);
|
|
150
|
+
child.once("close", async () => {
|
|
151
|
+
try {
|
|
152
|
+
if (isYarn) {
|
|
153
|
+
await bundleWithYarn(process.cwd(), packagejson, releaseDir, args, withFilename, isCI);
|
|
154
|
+
} else {
|
|
155
|
+
await bundleWithNpm(process.cwd(), packagejson, releaseDir, args, isCI);
|
|
156
|
+
}
|
|
157
|
+
resolve();
|
|
158
|
+
} catch (error) {
|
|
159
|
+
reject(error);
|
|
160
|
+
}
|
|
161
|
+
});
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
var build_tarball_default = {
|
|
165
|
+
bundleWithYarn,
|
|
166
|
+
bundleWithNpm,
|
|
167
|
+
getPackageHashes
|
|
168
|
+
};
|
|
169
|
+
export {
|
|
170
|
+
bundle,
|
|
171
|
+
bundleWithNpm,
|
|
172
|
+
bundleWithYarn,
|
|
173
|
+
build_tarball_default as default,
|
|
174
|
+
getPackageHashes
|
|
175
|
+
};
|
|
@@ -0,0 +1,525 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __esm = (fn, res) => function __init() {
|
|
9
|
+
return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
|
|
10
|
+
};
|
|
11
|
+
var __commonJS = (cb, mod) => function __require() {
|
|
12
|
+
return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
|
|
13
|
+
};
|
|
14
|
+
var __export = (target, all) => {
|
|
15
|
+
for (var name in all)
|
|
16
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
17
|
+
};
|
|
18
|
+
var __copyProps = (to, from, except, desc) => {
|
|
19
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
20
|
+
for (let key of __getOwnPropNames(from))
|
|
21
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
22
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
23
|
+
}
|
|
24
|
+
return to;
|
|
25
|
+
};
|
|
26
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
27
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
28
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
29
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
30
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
31
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
32
|
+
mod
|
|
33
|
+
));
|
|
34
|
+
|
|
35
|
+
// node_modules/tsup/assets/cjs_shims.js
|
|
36
|
+
var getImportMetaUrl, importMetaUrl;
|
|
37
|
+
var init_cjs_shims = __esm({
|
|
38
|
+
"node_modules/tsup/assets/cjs_shims.js"() {
|
|
39
|
+
getImportMetaUrl = () => typeof document === "undefined" ? new URL(`file:${__filename}`).href : document.currentScript && document.currentScript.tagName.toUpperCase() === "SCRIPT" ? document.currentScript.src : new URL("main.js", document.baseURI).href;
|
|
40
|
+
importMetaUrl = /* @__PURE__ */ getImportMetaUrl();
|
|
41
|
+
}
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
// src/utils/index.cjs
|
|
45
|
+
var require_utils = __commonJS({
|
|
46
|
+
"src/utils/index.cjs"(exports2, module2) {
|
|
47
|
+
init_cjs_shims();
|
|
48
|
+
var fs3 = require("fs");
|
|
49
|
+
var path4 = require("upath");
|
|
50
|
+
var minimistLib = require("minimist");
|
|
51
|
+
var argv = minimistLib(process.argv.slice(2));
|
|
52
|
+
var { exec } = require("child_process");
|
|
53
|
+
var { promisify } = require("util");
|
|
54
|
+
var execAsync = promisify(exec);
|
|
55
|
+
async function parseGitRemotes() {
|
|
56
|
+
try {
|
|
57
|
+
const { stdout } = await execAsync("git remote -v");
|
|
58
|
+
const lines = stdout.split("\n");
|
|
59
|
+
const remotes = {};
|
|
60
|
+
lines.forEach((line) => {
|
|
61
|
+
const [name, url] = line.split(" ");
|
|
62
|
+
if (name && url) {
|
|
63
|
+
const [repoUrl] = url.split(" ");
|
|
64
|
+
try {
|
|
65
|
+
const parsedUrl = new URL(repoUrl);
|
|
66
|
+
const pathParts = parsedUrl.pathname.split("/").filter(Boolean);
|
|
67
|
+
if (parsedUrl.hostname === "github.com" && pathParts.length === 2) {
|
|
68
|
+
let repoPath = pathParts.join("/");
|
|
69
|
+
if (repoPath.endsWith(".git")) {
|
|
70
|
+
repoPath = repoPath.slice(0, -4);
|
|
71
|
+
}
|
|
72
|
+
remotes[name] = repoPath;
|
|
73
|
+
}
|
|
74
|
+
} catch (e) {
|
|
75
|
+
console.error("URL Parsing Error:", e.message);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
return remotes;
|
|
80
|
+
} catch (error) {
|
|
81
|
+
console.error("Error:", error.message);
|
|
82
|
+
return {};
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
module2.exports.parseGitRemotes = parseGitRemotes;
|
|
86
|
+
function getArgs3(opts) {
|
|
87
|
+
if (opts) {
|
|
88
|
+
return minimistLib(process.argv.slice(2), opts);
|
|
89
|
+
}
|
|
90
|
+
return argv;
|
|
91
|
+
}
|
|
92
|
+
module2.exports.getArgs = getArgs3;
|
|
93
|
+
function del(fullPath) {
|
|
94
|
+
try {
|
|
95
|
+
if (!fs3.existsSync(fullPath)) return;
|
|
96
|
+
const stat = fs3.lstatSync(fullPath);
|
|
97
|
+
if (stat.isSymbolicLink()) {
|
|
98
|
+
try {
|
|
99
|
+
fs3.unlinkSync(fullPath);
|
|
100
|
+
console.log("deleted symlink", fullPath);
|
|
101
|
+
} catch (e) {
|
|
102
|
+
console.log("failed delete symlink", fullPath, e && e.message);
|
|
103
|
+
}
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
if (stat.isDirectory()) {
|
|
107
|
+
const subdir = fs3.readdirSync(fullPath).map((dirPath) => path4.resolve(fullPath, dirPath));
|
|
108
|
+
for (let i = 0; i < subdir.length; i++) {
|
|
109
|
+
del(subdir[i]);
|
|
110
|
+
}
|
|
111
|
+
try {
|
|
112
|
+
fs3.rmdirSync(fullPath);
|
|
113
|
+
console.log("deleted", fullPath);
|
|
114
|
+
} catch (_e) {
|
|
115
|
+
try {
|
|
116
|
+
fs3.rmSync(fullPath, { recursive: true, force: true, retryDelay: 7e3 });
|
|
117
|
+
console.log("deleted", fullPath);
|
|
118
|
+
} catch (ee) {
|
|
119
|
+
console.log("failed delete", fullPath, ee && ee.message);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
try {
|
|
125
|
+
fs3.unlinkSync(fullPath);
|
|
126
|
+
console.log("deleted", fullPath);
|
|
127
|
+
} catch (_e) {
|
|
128
|
+
try {
|
|
129
|
+
fs3.rmSync(fullPath, { recursive: true, force: true, retryDelay: 7e3 });
|
|
130
|
+
console.log("deleted", fullPath);
|
|
131
|
+
} catch (ee) {
|
|
132
|
+
console.log("failed delete", fullPath, ee && ee.message);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
} catch (err) {
|
|
136
|
+
console.log("failed delete", fullPath, err && err.message);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
module2.exports.del = del;
|
|
140
|
+
function delStream(globStream) {
|
|
141
|
+
globStream.stream().on("data", (result) => {
|
|
142
|
+
const fullPath = path4.resolve(process.cwd(), result);
|
|
143
|
+
try {
|
|
144
|
+
if (fs3.existsSync(fullPath)) {
|
|
145
|
+
const stat = fs3.lstatSync(fullPath);
|
|
146
|
+
if (stat.isSymbolicLink()) {
|
|
147
|
+
try {
|
|
148
|
+
fs3.unlinkSync(fullPath);
|
|
149
|
+
console.log("deleted symlink", fullPath);
|
|
150
|
+
} catch (e) {
|
|
151
|
+
console.log("failed delete symlink", fullPath, e && e.message);
|
|
152
|
+
}
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
if (stat.isDirectory()) {
|
|
156
|
+
const subdir = fs3.readdirSync(fullPath).map((dirPath) => path4.resolve(fullPath, dirPath));
|
|
157
|
+
for (let i = 0; i < subdir.length; i++) {
|
|
158
|
+
del(subdir[i]);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
del(fullPath);
|
|
163
|
+
} catch (err) {
|
|
164
|
+
console.log("failed processing", fullPath, err && err.message);
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
module2.exports.delStream = delStream;
|
|
169
|
+
function getFileTreeString(hashArray) {
|
|
170
|
+
const tree = {};
|
|
171
|
+
const hashMap = {};
|
|
172
|
+
for (const entry of hashArray) {
|
|
173
|
+
const [filePath, hash] = entry.split(" ");
|
|
174
|
+
hashMap[filePath] = hash;
|
|
175
|
+
const parts = filePath.split("/");
|
|
176
|
+
let current = tree;
|
|
177
|
+
for (let i = 0; i < parts.length; i++) {
|
|
178
|
+
const part = parts[i];
|
|
179
|
+
if (i === parts.length - 1) {
|
|
180
|
+
current[part] = null;
|
|
181
|
+
} else {
|
|
182
|
+
current[part] = current[part] || {};
|
|
183
|
+
current = current[part];
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
function printNode(node, prefix = "", parentPath = "") {
|
|
188
|
+
const keys = Object.keys(node).sort();
|
|
189
|
+
let lines = [];
|
|
190
|
+
keys.forEach((key, idx) => {
|
|
191
|
+
const isLast = idx === keys.length - 1;
|
|
192
|
+
const branch = isLast ? "\u2514\u2500\u2500 " : "\u251C\u2500\u2500 ";
|
|
193
|
+
const currentPath = parentPath ? parentPath + "/" + key : key;
|
|
194
|
+
if (node[key] === null) {
|
|
195
|
+
lines.push(prefix + branch + key + " [" + (hashMap[currentPath] || "") + "]");
|
|
196
|
+
} else {
|
|
197
|
+
lines.push(prefix + branch + key + "/");
|
|
198
|
+
lines = lines.concat(printNode(node[key], prefix + (isLast ? " " : "\u2502 "), currentPath));
|
|
199
|
+
}
|
|
200
|
+
});
|
|
201
|
+
return lines;
|
|
202
|
+
}
|
|
203
|
+
return printNode(tree, "", "").join("\n");
|
|
204
|
+
}
|
|
205
|
+
module2.exports.getFileTreeString = getFileTreeString;
|
|
206
|
+
var delay = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
207
|
+
module2.exports.delay = delay;
|
|
208
|
+
}
|
|
209
|
+
});
|
|
210
|
+
|
|
211
|
+
// src/node-package-packer/build-readme.mjs
|
|
212
|
+
async function buildReadme(dirname, packagejson, releaseDir, argv, isCI) {
|
|
213
|
+
if (!import_fs_extra.default.existsSync(import_upath.default.join(dirname, ".git"))) {
|
|
214
|
+
console.log("Not a git repository, skipping readme creation");
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
const spawnAsync = crossSpawn && typeof crossSpawn.async === "function" ? crossSpawn.async : crossSpawn;
|
|
218
|
+
if (isCI) {
|
|
219
|
+
await spawnAsync("git", ["config", "--global", "user.name", "dimaslanjaka"], {
|
|
220
|
+
cwd: dirname,
|
|
221
|
+
stdio: "inherit"
|
|
222
|
+
});
|
|
223
|
+
await spawnAsync("git", ["config", "--global", "user.email", "dimaslanjaka@gmail.com"], {
|
|
224
|
+
cwd: dirname,
|
|
225
|
+
stdio: "inherit"
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
const git = new import_git_command_helper.gitCommandHelper(dirname);
|
|
229
|
+
const branch = (await git.getbranch()).filter((o) => o.active)[0].branch;
|
|
230
|
+
const gitlatest = await git.latestCommit();
|
|
231
|
+
const tarballs = import_fs_extra.default.readdirSync(releaseDir).filter((str) => str.endsWith("tgz")).map((str) => {
|
|
232
|
+
return {
|
|
233
|
+
absolute: import_upath.default.resolve(releaseDir, str),
|
|
234
|
+
relative: import_upath.default.resolve(releaseDir, str).replace(import_upath.default.toUnix(dirname), "")
|
|
235
|
+
};
|
|
236
|
+
}).filter((o) => import_fs_extra.default.statSync(o.absolute).isFile());
|
|
237
|
+
let md = `# Release \`${packagejson.name}\` tarball
|
|
238
|
+
`;
|
|
239
|
+
md += "## Releases\n";
|
|
240
|
+
md += "| version | tarball url |\n";
|
|
241
|
+
md += "| :--- | :--- |\n";
|
|
242
|
+
for (let i = 0; i < tarballs.length; i++) {
|
|
243
|
+
const tarball = tarballs[i];
|
|
244
|
+
const relativeTarball = tarball.relative.replace(/^\/+/, "");
|
|
245
|
+
if (!import_fs_extra.default.existsSync(tarball.absolute)) {
|
|
246
|
+
console.log(tarball.relative, "not found");
|
|
247
|
+
continue;
|
|
248
|
+
}
|
|
249
|
+
await spawnAsync("git", ["update-index", "--untracked-cache"]);
|
|
250
|
+
if (argv["commit"]) {
|
|
251
|
+
const checkIgnore = await git.isIgnored(relativeTarball, { cwd: dirname });
|
|
252
|
+
if (checkIgnore) {
|
|
253
|
+
console.log(relativeTarball, "ignored by .gitignore");
|
|
254
|
+
continue;
|
|
255
|
+
} else {
|
|
256
|
+
await git.add(relativeTarball);
|
|
257
|
+
const args2 = ["status", "-uno", "--porcelain", "--", relativeTarball, "|", "wc", "-l"];
|
|
258
|
+
const isChanged = parseInt(
|
|
259
|
+
(await spawnAsync("git", args2, {
|
|
260
|
+
cwd: dirname,
|
|
261
|
+
shell: true
|
|
262
|
+
})).output.trim()
|
|
263
|
+
) > 0;
|
|
264
|
+
if (isChanged) {
|
|
265
|
+
await git.commit("chore(tarball): update " + gitlatest, "-m", { stdio: "pipe" });
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
const hash = await git.latestCommit(tarball.relative.replace(/^\/+/, ""));
|
|
270
|
+
const raw = await git.getGithubRepoUrl(tarball.relative.replace(/^\/+/, ""));
|
|
271
|
+
let tarballUrl;
|
|
272
|
+
const dev = raw.rawURL;
|
|
273
|
+
const prod = raw.rawURL.replace("/raw/" + branch, "/raw/" + hash);
|
|
274
|
+
let ver = import_upath.default.basename(tarball.relative, ".tgz").replace(`${packagejson.name}-`, "");
|
|
275
|
+
if (typeof hash === "string") {
|
|
276
|
+
if (isNaN(parseFloat(ver))) {
|
|
277
|
+
ver = "latest";
|
|
278
|
+
tarballUrl = dev;
|
|
279
|
+
md += `| ${ver} | ${prod} |
|
|
280
|
+
`;
|
|
281
|
+
} else {
|
|
282
|
+
tarballUrl = prod;
|
|
283
|
+
}
|
|
284
|
+
md += `| ${ver} | ${tarballUrl} |
|
|
285
|
+
`;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
md += `
|
|
289
|
+
use this tarball with \`resolutions\`:
|
|
290
|
+
`;
|
|
291
|
+
md += '```json\n{\n "resolutions": {\n "' + packagejson.name + '": "<url of tarball>"\n }\n}\n```\n\n## Releases\n\n ';
|
|
292
|
+
import_fs_extra.default.writeFileSync(
|
|
293
|
+
import_upath.default.join(releaseDir, "readme.md"),
|
|
294
|
+
(md + `
|
|
295
|
+
|
|
296
|
+
## Get URL of \`${packagejson.name}\` Release Tarball
|
|
297
|
+
- select tarball file
|
|
298
|
+

|
|
299
|
+
- copy raw url
|
|
300
|
+

|
|
301
|
+
- or copy download url
|
|
302
|
+

|
|
303
|
+
- then run installation from command line
|
|
304
|
+
|
|
305
|
+
\`\`\`bash
|
|
306
|
+
npm i https://....url-tgz
|
|
307
|
+
\`\`\`
|
|
308
|
+
for example
|
|
309
|
+
\`\`\`bash
|
|
310
|
+
npm i https://github.com/dimaslanjaka/nodejs-package-types/raw/main/release/nodejs-package-types.tgz
|
|
311
|
+
\`\`\`
|
|
312
|
+
|
|
313
|
+
## URL Parts Explanations
|
|
314
|
+
> https://github.com/github-username/github-repo-name/raw/github-branch-name/path-to-file-with-extension
|
|
315
|
+
`).trim() + "\n"
|
|
316
|
+
);
|
|
317
|
+
}
|
|
318
|
+
var import_fs_extra, import_upath, crossSpawn, import_git_command_helper, build_readme_default;
|
|
319
|
+
var init_build_readme = __esm({
|
|
320
|
+
"src/node-package-packer/build-readme.mjs"() {
|
|
321
|
+
init_cjs_shims();
|
|
322
|
+
import_fs_extra = __toESM(require("fs-extra"), 1);
|
|
323
|
+
import_upath = __toESM(require("upath"), 1);
|
|
324
|
+
crossSpawn = __toESM(require("cross-spawn"), 1);
|
|
325
|
+
import_git_command_helper = require("git-command-helper");
|
|
326
|
+
build_readme_default = buildReadme;
|
|
327
|
+
}
|
|
328
|
+
});
|
|
329
|
+
|
|
330
|
+
// src/node-package-packer/build-tarball.mjs
|
|
331
|
+
var build_tarball_exports = {};
|
|
332
|
+
__export(build_tarball_exports, {
|
|
333
|
+
bundle: () => bundle,
|
|
334
|
+
bundleWithNpm: () => bundleWithNpm,
|
|
335
|
+
bundleWithYarn: () => bundleWithYarn,
|
|
336
|
+
default: () => build_tarball_default,
|
|
337
|
+
getPackageHashes: () => getPackageHashes
|
|
338
|
+
});
|
|
339
|
+
function slugifyPkgName(str) {
|
|
340
|
+
return str.replace(/\//g, "-").replace(/@/g, "");
|
|
341
|
+
}
|
|
342
|
+
function resolveNewestTarball(dirname, candidateNames) {
|
|
343
|
+
const candidates = /* @__PURE__ */ new Set();
|
|
344
|
+
for (const name of candidateNames) {
|
|
345
|
+
const candidatePath = import_upath2.default.join(dirname, name);
|
|
346
|
+
if (import_fs_extra2.default.existsSync(candidatePath)) {
|
|
347
|
+
candidates.add(candidatePath);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
for (const entry of import_fs_extra2.default.readdirSync(dirname)) {
|
|
351
|
+
if (entry.endsWith(".tgz")) {
|
|
352
|
+
candidates.add(import_upath2.default.join(dirname, entry));
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
const tarballs = Array.from(candidates);
|
|
356
|
+
if (tarballs.length === 0) {
|
|
357
|
+
return null;
|
|
358
|
+
}
|
|
359
|
+
return tarballs.sort((left, right) => import_fs_extra2.default.statSync(right).mtimeMs - import_fs_extra2.default.statSync(left).mtimeMs)[0];
|
|
360
|
+
}
|
|
361
|
+
async function getPackageHashes(dirname, releaseDir) {
|
|
362
|
+
let hashes = {};
|
|
363
|
+
const metafile = import_upath2.default.join(releaseDir, "metadata.json");
|
|
364
|
+
if (import_fs_extra2.default.existsSync(metafile)) {
|
|
365
|
+
try {
|
|
366
|
+
hashes = Object.assign(
|
|
367
|
+
hashes,
|
|
368
|
+
Object.fromEntries(
|
|
369
|
+
Object.entries(JSON.parse(import_fs_extra2.default.readFileSync(metafile, "utf-8"))).filter(
|
|
370
|
+
([key]) => !key.endsWith("yarn.lock") && !key.endsWith("package-lock.json")
|
|
371
|
+
)
|
|
372
|
+
)
|
|
373
|
+
);
|
|
374
|
+
} catch {
|
|
375
|
+
hashes = {};
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
const readDir = import_fs_extra2.default.readdirSync(releaseDir).filter((f) => f.endsWith("tgz")).map((f) => import_upath2.default.join(releaseDir, f));
|
|
379
|
+
for (let i = 0; i < readDir.length; i++) {
|
|
380
|
+
const file = readDir[i];
|
|
381
|
+
const stat = import_fs_extra2.default.statSync(file);
|
|
382
|
+
const size = `${parseFloat(stat.size / Math.pow(1024, 1)).toFixed(2)} KB`;
|
|
383
|
+
hashes = Object.assign({}, hashes, {
|
|
384
|
+
[import_upath2.default.toUnix(file).replace(import_upath2.default.toUnix(dirname), "")]: {
|
|
385
|
+
integrity: {
|
|
386
|
+
sha1: await (0, import_sbg_utility.file_to_hash)("sha1", file),
|
|
387
|
+
sha256: await (0, import_sbg_utility.file_to_hash)("sha256", file, "base64"),
|
|
388
|
+
md5: await (0, import_sbg_utility.file_to_hash)("md5", file),
|
|
389
|
+
sha512: await (0, import_sbg_utility.file_to_hash)("sha512", file, "base64")
|
|
390
|
+
},
|
|
391
|
+
size
|
|
392
|
+
}
|
|
393
|
+
});
|
|
394
|
+
import_fs_extra2.default.writeFileSync(metafile, JSON.stringify(hashes, null, 2) + "\n");
|
|
395
|
+
}
|
|
396
|
+
return hashes;
|
|
397
|
+
}
|
|
398
|
+
async function bundleWithYarn(dirname, packagejson, releaseDir, argv, withFilename, isCI) {
|
|
399
|
+
await build_readme_default(dirname, packagejson, releaseDir, argv, isCI);
|
|
400
|
+
const targetFname = argv["fn"] || argv["filename"] || slugifyPkgName(`${packagejson.name}-${packagejson.version}.tgz`);
|
|
401
|
+
const tgz = resolveNewestTarball(dirname, [
|
|
402
|
+
"package.tgz",
|
|
403
|
+
slugifyPkgName(`${packagejson.name}-v${packagejson.version}.tgz`)
|
|
404
|
+
]);
|
|
405
|
+
if (!tgz) {
|
|
406
|
+
throw new Error(`No Yarn pack tarball found in ${dirname}`);
|
|
407
|
+
}
|
|
408
|
+
if (withFilename) {
|
|
409
|
+
const tgzlatest = import_upath2.default.join(releaseDir, targetFname + ".tgz");
|
|
410
|
+
import_fs_extra2.default.copySync(tgz, tgzlatest, { overwrite: true });
|
|
411
|
+
} else {
|
|
412
|
+
const tgzlatest = import_upath2.default.join(releaseDir, slugifyPkgName(`${packagejson.name}.tgz`));
|
|
413
|
+
const tgzversion = import_upath2.default.join(releaseDir, targetFname);
|
|
414
|
+
import_fs_extra2.default.copySync(tgz, tgzlatest, { overwrite: true });
|
|
415
|
+
import_fs_extra2.default.copySync(tgz, tgzversion, { overwrite: true });
|
|
416
|
+
}
|
|
417
|
+
import_fs_extra2.default.rmSync(tgz, { recursive: true, force: true });
|
|
418
|
+
await getPackageHashes(dirname, releaseDir);
|
|
419
|
+
}
|
|
420
|
+
async function bundleWithNpm(dirname, packagejson, releaseDir, argv, isCI) {
|
|
421
|
+
const filename = slugifyPkgName(`${packagejson.name}-${packagejson.version}.tgz`);
|
|
422
|
+
const tgz = import_upath2.default.join(dirname, filename);
|
|
423
|
+
const tgzversion = import_upath2.default.join(releaseDir, filename);
|
|
424
|
+
if (!import_fs_extra2.default.existsSync(tgz)) {
|
|
425
|
+
const filename2 = slugifyPkgName(`${packagejson.name}-${packagejson.version}.tgz`);
|
|
426
|
+
const origintgz = import_upath2.default.join(dirname, filename2);
|
|
427
|
+
if (import_fs_extra2.default.existsSync(origintgz) && origintgz !== tgz) {
|
|
428
|
+
import_fs_extra2.default.renameSync(origintgz, tgz);
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
const tgzlatest = import_upath2.default.join(releaseDir, slugifyPkgName(`${packagejson.name}.tgz`));
|
|
432
|
+
if (!import_fs_extra2.default.existsSync(import_upath2.default.dirname(tgzlatest))) {
|
|
433
|
+
import_fs_extra2.default.mkdirpSync(import_upath2.default.dirname(tgzlatest));
|
|
434
|
+
}
|
|
435
|
+
await build_readme_default(dirname, packagejson, releaseDir, argv, isCI);
|
|
436
|
+
if (import_fs_extra2.default.existsSync(tgz)) {
|
|
437
|
+
import_fs_extra2.default.copySync(tgz, tgzlatest);
|
|
438
|
+
import_fs_extra2.default.copySync(tgz, tgzversion);
|
|
439
|
+
if (import_fs_extra2.default.existsSync(tgz)) import_fs_extra2.default.rmSync(tgz);
|
|
440
|
+
await getPackageHashes(dirname, releaseDir);
|
|
441
|
+
}
|
|
442
|
+
}
|
|
443
|
+
function bundle() {
|
|
444
|
+
const args2 = (0, import_utils.getArgs)();
|
|
445
|
+
const withYarn = args2._.includes("-yarn") || args2._.includes("--yarn");
|
|
446
|
+
const releaseDir1 = import_upath2.default.join(process.cwd(), "release");
|
|
447
|
+
const releaseDir2 = import_upath2.default.join(process.cwd(), "releases");
|
|
448
|
+
const releaseDir = !import_fs_extra2.default.existsSync(releaseDir2) ? releaseDir1 : releaseDir2;
|
|
449
|
+
const isYarn = import_fs_extra2.default.existsSync(import_upath2.default.join(process.cwd(), "yarn.lock")) || withYarn;
|
|
450
|
+
const packagejson = import_fs_extra2.default.readJSONSync(import_upath2.default.join(process.cwd(), "package.json"));
|
|
451
|
+
const withFilename = args2["fn"] || args2["filename"] ? true : false;
|
|
452
|
+
const isCI = process.env.GITHUB_ACTION && process.env.GITHUB_ACTIONS;
|
|
453
|
+
if (!import_fs_extra2.default.existsSync(releaseDir)) {
|
|
454
|
+
import_fs_extra2.default.mkdirpSync(releaseDir, { recursive: true });
|
|
455
|
+
}
|
|
456
|
+
const child = !withYarn ? crossSpawn2.spawn("npm", ["pack"], {
|
|
457
|
+
cwd: process.cwd(),
|
|
458
|
+
shell: true,
|
|
459
|
+
stdio: "ignore",
|
|
460
|
+
env: { PATH: process.env.PATH }
|
|
461
|
+
}) : crossSpawn2.spawn("yarn", ["pack"], {
|
|
462
|
+
cwd: process.cwd(),
|
|
463
|
+
shell: true,
|
|
464
|
+
stdio: "ignore",
|
|
465
|
+
env: { PATH: process.env.PATH }
|
|
466
|
+
});
|
|
467
|
+
return new Promise((resolve, reject) => {
|
|
468
|
+
child.once("error", reject);
|
|
469
|
+
child.once("close", async () => {
|
|
470
|
+
try {
|
|
471
|
+
if (isYarn) {
|
|
472
|
+
await bundleWithYarn(process.cwd(), packagejson, releaseDir, args2, withFilename, isCI);
|
|
473
|
+
} else {
|
|
474
|
+
await bundleWithNpm(process.cwd(), packagejson, releaseDir, args2, isCI);
|
|
475
|
+
}
|
|
476
|
+
resolve();
|
|
477
|
+
} catch (error) {
|
|
478
|
+
reject(error);
|
|
479
|
+
}
|
|
480
|
+
});
|
|
481
|
+
});
|
|
482
|
+
}
|
|
483
|
+
var import_fs_extra2, import_sbg_utility, import_upath2, import_utils, crossSpawn2, build_tarball_default;
|
|
484
|
+
var init_build_tarball = __esm({
|
|
485
|
+
"src/node-package-packer/build-tarball.mjs"() {
|
|
486
|
+
init_cjs_shims();
|
|
487
|
+
import_fs_extra2 = __toESM(require("fs-extra"), 1);
|
|
488
|
+
import_sbg_utility = require("sbg-utility");
|
|
489
|
+
import_upath2 = __toESM(require("upath"), 1);
|
|
490
|
+
init_build_readme();
|
|
491
|
+
import_utils = __toESM(require_utils(), 1);
|
|
492
|
+
crossSpawn2 = __toESM(require("cross-spawn"), 1);
|
|
493
|
+
build_tarball_default = {
|
|
494
|
+
bundleWithYarn,
|
|
495
|
+
bundleWithNpm,
|
|
496
|
+
getPackageHashes
|
|
497
|
+
};
|
|
498
|
+
}
|
|
499
|
+
});
|
|
500
|
+
|
|
501
|
+
// src/node-package-packer-cli.mjs
|
|
502
|
+
init_cjs_shims();
|
|
503
|
+
var import_upath3 = __toESM(require("upath"), 1);
|
|
504
|
+
var import_utils2 = __toESM(require_utils(), 1);
|
|
505
|
+
var args = (0, import_utils2.getArgs)({ boolean: ["h", "help"] });
|
|
506
|
+
if (args.h || args.help) {
|
|
507
|
+
const scriptName = import_upath3.default.basename(new URL(importMetaUrl).pathname);
|
|
508
|
+
console.log(`Automated tarball (tgz) creator for release folder`);
|
|
509
|
+
console.log(``);
|
|
510
|
+
console.log(`Usage: node ${scriptName} [options]`);
|
|
511
|
+
console.log(``);
|
|
512
|
+
console.log(`Options:`);
|
|
513
|
+
console.log(` -h, --help Show this help message`);
|
|
514
|
+
console.log(` -y, --yarn Force yarn pack instead of npm pack`);
|
|
515
|
+
console.log(` -d, --verbose Enable verbose output`);
|
|
516
|
+
console.log(` --fn, --filename Set output filename variant`);
|
|
517
|
+
process.exit(0);
|
|
518
|
+
}
|
|
519
|
+
(async () => {
|
|
520
|
+
const { bundle: bundle2 } = await Promise.resolve().then(() => (init_build_tarball(), build_tarball_exports));
|
|
521
|
+
await bundle2();
|
|
522
|
+
})().catch((error) => {
|
|
523
|
+
console.error(error);
|
|
524
|
+
process.exit(1);
|
|
525
|
+
});
|