binary-collections 2.0.9 → 2.0.11
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/.puppeterrc.cjs +25 -0
- package/binaries/binary-executor.cjs +178 -0
- package/{bin → binaries}/clean-nodemodule +0 -0
- package/binaries/clean-nodemodule.cjs +178 -0
- package/binaries/clean-nodemodule.cmd +4 -0
- package/{bin → binaries}/clean-nodemodules +0 -0
- package/binaries/clean-nodemodules.cjs +178 -0
- package/binaries/clean-nodemodules.cmd +5 -0
- package/{bin → binaries}/dev +0 -0
- package/binaries/dev.cjs +178 -0
- package/{bin → binaries}/empty +0 -0
- package/binaries/empty.cjs +178 -0
- package/{bin → binaries}/git-reduce-size +0 -0
- package/binaries/git-reduce-size.cjs +178 -0
- package/binaries/javakill.cjs +178 -0
- package/{bin → binaries}/javakill.cmd +0 -0
- package/binaries/kill-night-crows.bat +7 -0
- package/binaries/kill-night-crows.ps1 +172 -0
- package/{bin → binaries}/kill-process +0 -0
- package/binaries/kill-process.cjs +178 -0
- package/binaries/nodekill.cjs +178 -0
- package/{bin → binaries}/nodekill.ps1 +0 -0
- package/{bin → binaries}/prod +0 -0
- package/binaries/prod.cjs +178 -0
- package/binaries/py +111 -0
- package/binaries/py.cjs +178 -0
- package/binaries/py.cmd +49 -0
- package/{bin → binaries}/rmfind +0 -0
- package/binaries/rmfind.cjs +178 -0
- package/{bin → binaries}/rmx +0 -0
- package/binaries/rmx.cjs +178 -0
- package/{bin → binaries}/submodule-token +0 -0
- package/binaries/submodule-token.cjs +178 -0
- package/binaries/test-cjs +10 -0
- package/binaries/test-cjs.cjs +178 -0
- package/binaries/test-cjs.cmd +11 -0
- package/binaries/yarn-clean +32 -0
- package/binaries/yarn-clean.cjs +178 -0
- package/binaries/yarn-clean.cmd +30 -0
- package/binaries/yarn-clean.py +148 -0
- package/docs-src/clean-github-actions-caches.md +26 -0
- package/docs-src/free-chatgpt.md +26 -0
- package/lib/binary-collections-config.cjs +3 -2
- package/lib/binary-collections-config.mjs +2 -2
- package/lib/binary-collections.cjs +513 -105
- package/lib/binary-collections.mjs +178 -117
- package/lib/changelog.cjs +64 -16
- package/lib/changelog.mjs +177 -171
- package/lib/{chunk-VVEZVNIV.mjs → chunk-2CBJCW7E.mjs} +3 -3
- package/lib/chunk-34IQDTLZ.mjs +27 -0
- package/lib/chunk-3HFFECCI.mjs +27 -0
- package/lib/chunk-4UHL4WVN.mjs +136 -0
- package/lib/{chunk-4BYBVEYC.mjs → chunk-66PAU5PS.mjs} +5 -4
- package/lib/chunk-6HHJRKFB.mjs +59 -0
- package/lib/chunk-6S4NXESK.mjs +26 -0
- package/lib/chunk-7XTEJHOE.mjs +193 -0
- package/lib/{chunk-ZYAQRPUL.mjs → chunk-7YD7IPFF.mjs} +2 -2
- package/lib/{chunk-SH3L6HHV.mjs → chunk-A2JQXI5Z.mjs} +2 -2
- package/lib/{chunk-EGSSKVDH.mjs → chunk-A3VUZEJK.mjs} +1 -1
- package/lib/chunk-AJDD5DZM.mjs +109 -0
- package/lib/chunk-BZWVHODJ.mjs +62 -0
- package/lib/chunk-FCDQGYBF.mjs +136 -0
- package/lib/chunk-FKI7IEB5.mjs +172 -0
- package/lib/chunk-GEYA2USY.mjs +207 -0
- package/lib/chunk-GJTGHXRA.mjs +356 -0
- package/lib/{chunk-YV7DO3YV.mjs → chunk-HLGOWBEO.mjs} +1 -1
- package/lib/chunk-ID2WBTE2.mjs +80 -0
- package/lib/chunk-JXFOHKDM.mjs +239 -0
- package/lib/{chunk-YX5U7XDR.mjs → chunk-M3YIYRHT.mjs} +6 -5
- package/lib/chunk-N436BNBK.mjs +514 -0
- package/lib/chunk-NCXAP7AA.mjs +31 -0
- package/lib/chunk-PDN26I7O.mjs +188 -0
- package/lib/{chunk-JGR2NW6D.mjs → chunk-PDSXF5HY.mjs} +3 -3
- package/lib/{chunk-AASHBCRW.mjs → chunk-QQ4A6DLD.mjs} +8 -0
- package/lib/{chunk-ONIBBBQ3.mjs → chunk-RWLXRTYP.mjs} +4 -3
- package/lib/chunk-TOIVAQF7.mjs +136 -0
- package/lib/chunk-V5SKYJUB.mjs +136 -0
- package/lib/chunk-WSRETQCA.mjs +59 -0
- package/lib/chunk-XA3SNBPA.mjs +184 -0
- package/lib/chunk-XVBFFVCJ.mjs +209 -0
- package/lib/chunk-YYLIQQKF.mjs +31 -0
- package/lib/{chunk-APBWENF6.mjs → chunk-Z6JLYU2J.mjs} +63 -16
- package/lib/chunk-ZDMWBSYF.mjs +81 -0
- package/lib/clean-github-actions-caches.cjs +291 -148
- package/lib/clean-github-actions-caches.mjs +4 -3
- package/lib/del-gradle.cjs +63 -15
- package/lib/del-gradle.js +2 -1
- package/lib/del-gradle.mjs +2 -2
- package/lib/del-node-modules.cjs +143 -148
- package/lib/del-node-modules.js +210 -14
- package/lib/del-node-modules.mjs +149 -18
- package/lib/del-ps.cjs +90 -21
- package/lib/del-ps.js +3 -2
- package/lib/del-ps.mjs +7 -5
- package/lib/del-yarn-caches.cjs +87 -18
- package/lib/del-yarn-caches.js +38 -3
- package/lib/del-yarn-caches.mjs +6 -6
- package/lib/find-node-modules-cli.cjs +5 -4
- package/lib/find-node-modules-cli.js +2 -1
- package/lib/find-node-modules-cli.mjs +2 -2
- package/lib/find-node-modules.cjs +4 -3
- package/lib/{find-node-modules.d.ts → find-node-modules.d.cts} +1 -1
- package/lib/find-node-modules.mjs +2 -2
- package/lib/free-chatgpt.cjs +754 -0
- package/lib/free-chatgpt.js +51 -0
- package/lib/free-chatgpt.mjs +50 -0
- package/lib/git/gitattributes.cjs +2 -1
- package/lib/git/{gitattributes.d.ts → gitattributes.d.cts} +7 -2
- package/lib/git/gitattributes.mjs +2 -2
- package/lib/git/line-endings.cjs +298 -64
- package/lib/git/line-endings.mjs +4 -4
- package/lib/git/normalize.cjs +26 -36
- package/lib/git/normalize.mjs +2 -2
- package/lib/git/permissions.cjs +77 -11
- package/lib/git/permissions.mjs +3 -3
- package/lib/git/pull-strategy.cjs +76 -9
- package/lib/git/pull-strategy.mjs +3 -3
- package/lib/git/undo-commit-cli.cjs +110 -0
- package/lib/git/undo-commit-cli.d.ts +1 -0
- package/lib/git/undo-commit-cli.js +4 -0
- package/lib/git/undo-commit-cli.mjs +14 -0
- package/lib/git/undo-commit.cjs +81 -0
- package/lib/git/undo-commit.d.cts +1 -0
- package/lib/git/undo-commit.mjs +7 -0
- package/lib/git/undo-staged-cli.cjs +110 -0
- package/lib/git/undo-staged-cli.d.ts +1 -0
- package/lib/git/undo-staged-cli.js +4 -0
- package/lib/git/undo-staged-cli.mjs +14 -0
- package/lib/git/undo-staged.cjs +81 -0
- package/lib/git/undo-staged.d.cts +1 -0
- package/lib/git/undo-staged.mjs +7 -0
- package/lib/git/user-config.cjs +313 -83
- package/lib/git/user-config.mjs +4 -4
- package/lib/git/utils.cjs +40 -60
- package/lib/git/utils.mjs +2 -2
- package/lib/git-diff-cli.cjs +857 -0
- package/lib/git-diff-cli.js +16 -0
- package/lib/git-diff-cli.mjs +17 -0
- package/lib/git-diff.cjs +862 -58
- package/lib/git-diff.d.ts +38 -83
- package/lib/git-diff.js +152 -0
- package/lib/git-diff.mjs +23 -85
- package/lib/git-fix.cjs +733 -97
- package/lib/git-fix.mjs +10 -9
- package/lib/git-purge.cjs +64 -16
- package/lib/git-purge.d.cts +1 -0
- package/lib/git-purge.mjs +43 -37
- package/lib/index.cjs +7 -6
- package/lib/index.d.ts +1 -1
- package/lib/index.js +2 -5
- package/lib/index.mjs +4 -4
- package/lib/kill-night-crows.cjs +87 -0
- package/lib/kill-night-crows.d.mts +1 -0
- package/lib/kill-night-crows.mjs +65 -0
- package/lib/npm-run-series.cjs +63 -16
- package/lib/npm-run-series.mjs +42 -36
- package/lib/package-resolutions-updater-cli.cjs +560 -0
- package/lib/package-resolutions-updater-cli.d.mts +1 -0
- package/lib/package-resolutions-updater-cli.mjs +124 -0
- package/lib/package-resolutions-updater.cjs +178 -158
- package/lib/package-resolutions-updater.d.mts +32 -1
- package/lib/package-resolutions-updater.mjs +17 -338
- package/lib/php-cs-fixer-staged.cjs +105 -0
- package/lib/php-cs-fixer-staged.d.cts +2 -0
- package/lib/php-cs-fixer-staged.mjs +117 -0
- package/lib/print-directory-tree.cjs +320 -207
- package/lib/print-directory-tree.mjs +3 -3
- package/lib/ps/connected-domain.cjs +25 -2
- package/lib/ps/connected-domain.d.ts +10 -2
- package/lib/ps/connected-domain.js +5 -2
- package/lib/ps/connected-domain.mjs +8 -4
- package/lib/ps/index.cjs +345 -322
- package/lib/ps/index.d.mjs +1 -1
- package/lib/ps/index.js +2 -1
- package/lib/ps/index.mjs +179 -182
- package/lib/ps/isWin.cjs +24 -1
- package/lib/ps/isWin.d.ts +1 -1
- package/lib/ps/isWin.js +3 -1
- package/lib/ps/isWin.mjs +8 -4
- package/lib/ps/table-parser.cjs +167 -159
- package/lib/ps/table-parser.d.ts +5 -0
- package/lib/ps/table-parser.js +10 -4
- package/lib/ps/table-parser.mjs +9 -5
- package/lib/remove-module.cjs +310 -0
- package/lib/remove-module.d.mts +1 -0
- package/lib/remove-module.mjs +111 -0
- package/lib/rmpath.cjs +322 -0
- package/lib/rmpath.d.mts +3 -0
- package/lib/rmpath.mjs +108 -0
- package/lib/submodule-install.cjs +311 -86
- package/lib/submodule-install.mjs +53 -5
- package/lib/submodule-remove-cli.cjs +107 -0
- package/lib/submodule-remove-cli.d.ts +1 -0
- package/lib/submodule-remove-cli.js +31 -0
- package/lib/submodule-remove-cli.mjs +28 -0
- package/lib/submodule-remove.cjs +46 -0
- package/lib/submodule-remove.d.cts +2 -0
- package/lib/submodule-remove.mjs +6 -0
- package/lib/utils/chatgpt.cjs +541 -0
- package/lib/utils/chatgpt.d.ts +31 -0
- package/lib/utils/chatgpt.js +708 -0
- package/lib/utils/chatgpt.mjs +8 -0
- package/lib/utils/findEnvFiles.cjs +107 -0
- package/lib/utils/findEnvFiles.d.ts +8 -0
- package/lib/utils/findEnvFiles.js +121 -0
- package/lib/utils/findEnvFiles.mjs +8 -0
- package/lib/utils/findWorkspaceRoot.cjs +70 -0
- package/lib/utils/findWorkspaceRoot.d.ts +9 -0
- package/lib/utils/findWorkspaceRoot.js +57 -0
- package/lib/utils/findWorkspaceRoot.mjs +40 -0
- package/lib/{utils.cjs → utils/index.cjs} +61 -14
- package/lib/{utils.mjs → utils/index.mjs} +2 -2
- package/lib/utils/isGithubTokenValid.cjs +64 -0
- package/lib/utils/isGithubTokenValid.d.ts +7 -0
- package/lib/utils/isGithubTokenValid.js +48 -0
- package/lib/utils/isGithubTokenValid.mjs +36 -0
- package/lib/yarn-reinstall.cjs +220 -38
- package/lib/yarn-reinstall.mjs +2 -2
- package/package.json +138 -104
- package/readme.md +48 -75
- package/releases/readme.md +36 -0
- package/requirements.txt +1 -0
- package/test/README.md +101 -0
- package/test/package.json +2 -1
- package/test-project/readme.md +26 -0
- package/tmp/test-repo/README.md +35 -0
- package/tmp/test-repo/package.json +1 -1
- package/tmp/typedoc/readme.md +320 -0
- package/bin/bash-dummy +0 -56
- package/bin/bash-dummy.cmd +0 -25
- package/bin/dir-tree.cmd +0 -7
- package/bin/git-diff +0 -4
- package/bin/git-diff.cmd +0 -7
- package/bin/git-fix +0 -36
- package/bin/git-fix.cmd +0 -7
- package/bin/rmpath +0 -70
- package/bin/submodule-install.txt +0 -118
- package/bin/submodule-remove +0 -46
- package/bin/submodule.txt +0 -172
- package/lib/binary-collections-config.d.mts +0 -18
- package/lib/binary-collections-config.js +0 -39
- package/lib/binary-collections.d.mts +0 -137
- package/lib/binary-collections.d.ts +0 -137
- package/lib/changelog.d.mts +0 -2
- package/lib/changelog.js +0 -226
- package/lib/chunk-DPKAJKFO.mjs +0 -171
- package/lib/chunk-G3THLIDT.mjs +0 -200
- package/lib/chunk-W3ENOM53.mjs +0 -18
- package/lib/clean-github-actions-caches.d.mts +0 -169
- package/lib/clean-github-actions-caches.d.ts +0 -169
- package/lib/del-gradle.d.mts +0 -2
- package/lib/del-node-modules.d.mts +0 -2
- package/lib/del-ps.d.mts +0 -2
- package/lib/del-yarn-caches.d.mts +0 -2
- package/lib/find-node-modules-cli.d.mts +0 -1
- package/lib/find-node-modules.d.mts +0 -13
- package/lib/find-node-modules.js +0 -53
- package/lib/git/gitattributes.d.mts +0 -35
- package/lib/git/gitattributes.js +0 -223
- package/lib/git/line-endings.d.mts +0 -83
- package/lib/git/line-endings.d.ts +0 -83
- package/lib/git/normalize.d.mts +0 -43
- package/lib/git/normalize.d.ts +0 -43
- package/lib/git/permissions.d.mts +0 -17
- package/lib/git/permissions.d.ts +0 -17
- package/lib/git/pull-strategy.d.mts +0 -15
- package/lib/git/pull-strategy.d.ts +0 -15
- package/lib/git/user-config.d.mts +0 -105
- package/lib/git/user-config.d.ts +0 -105
- package/lib/git/utils.d.mts +0 -69
- package/lib/git/utils.d.ts +0 -69
- package/lib/git-diff.d.mts +0 -84
- package/lib/git-fix.d.mts +0 -141
- package/lib/git-fix.d.ts +0 -141
- package/lib/git-purge.d.mts +0 -2
- package/lib/git-purge.js +0 -59
- package/lib/index.d.mts +0 -1
- package/lib/npm-run-series.d.mts +0 -1
- package/lib/npm-run-series.js +0 -86
- package/lib/package-resolutions-updater.d.ts +0 -352
- package/lib/print-directory-tree.d.mts +0 -234
- package/lib/print-directory-tree.d.ts +0 -234
- package/lib/ps/connected-domain.d.mts +0 -3
- package/lib/ps/index.d.d.mts +0 -26
- package/lib/ps/index.d.d.ts +0 -26
- package/lib/ps/index.d.mts +0 -26
- package/lib/ps/isWin.d.mts +0 -3
- package/lib/ps/table-parser.d.mts +0 -3
- package/lib/submodule-install.d.mts +0 -121
- package/lib/submodule-install.d.ts +0 -121
- package/lib/utils.d.mts +0 -40
- package/lib/utils.js +0 -181
- package/lib/yarn-reinstall.d.mts +0 -49
- package/lib/yarn-reinstall.d.ts +0 -49
- package/src/package-resolutions-updater.mjs +0 -350
- package/src/print-directory-tree.cjs +0 -234
- package/src/ps/index.js +0 -286
- package/src/yarn-reinstall.cjs +0 -49
- /package/{bin → binaries}/nodekill +0 -0
- /package/{bin → binaries}/nodekill.cmd +0 -0
- /package/lib/{binary-collections-config.d.ts → binary-collections-config.d.cts} +0 -0
- /package/lib/{changelog.d.ts → changelog.d.cts} +0 -0
- /package/lib/{git-purge.d.ts → free-chatgpt.d.ts} +0 -0
- /package/lib/{git-diff.d.cts → git-diff-cli.d.ts} +0 -0
- /package/lib/{npm-run-series.d.ts → npm-run-series.d.cts} +0 -0
- /package/lib/{utils.d.ts → utils/index.d.cts} +0 -0
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import os
|
|
4
|
+
import shutil
|
|
5
|
+
from concurrent.futures import ThreadPoolExecutor, as_completed
|
|
6
|
+
from pathlib import Path
|
|
7
|
+
import json
|
|
8
|
+
import glob
|
|
9
|
+
from typing import Union
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
def delete_dir(path: Path) -> tuple[str, Path]:
|
|
13
|
+
shutil.rmtree(path, ignore_errors=True)
|
|
14
|
+
return ("dir", path)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def delete_file(path: Path) -> tuple[str, Path]:
|
|
18
|
+
path.unlink(missing_ok=True)
|
|
19
|
+
return ("file", path)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def clean(base_dir: Union[str, Path]) -> None:
|
|
23
|
+
root = Path(base_dir).resolve()
|
|
24
|
+
|
|
25
|
+
node_modules_dirs: list[Path] = []
|
|
26
|
+
yarn_lock_files: list[Path] = []
|
|
27
|
+
|
|
28
|
+
print(f"Scanning: {root}")
|
|
29
|
+
|
|
30
|
+
# Collect targets
|
|
31
|
+
for current_root, dirs, files in os.walk(root, topdown=True):
|
|
32
|
+
current = Path(current_root)
|
|
33
|
+
|
|
34
|
+
if "node_modules" in dirs:
|
|
35
|
+
node_modules_dirs.append(current / "node_modules")
|
|
36
|
+
|
|
37
|
+
# Prevent recursive scan into node_modules
|
|
38
|
+
dirs.remove("node_modules")
|
|
39
|
+
|
|
40
|
+
if "yarn.lock" in files:
|
|
41
|
+
yarn_lock_files.append(current / "yarn.lock")
|
|
42
|
+
|
|
43
|
+
print(f"Found node_modules: {len(node_modules_dirs)}")
|
|
44
|
+
print(f"Found yarn.lock: {len(yarn_lock_files)}")
|
|
45
|
+
print()
|
|
46
|
+
|
|
47
|
+
deleted_dirs = 0
|
|
48
|
+
deleted_files = 0
|
|
49
|
+
|
|
50
|
+
max_workers = min(32, (os.cpu_count() or 1) * 4)
|
|
51
|
+
|
|
52
|
+
with ThreadPoolExecutor(max_workers=max_workers) as executor:
|
|
53
|
+
futures = [
|
|
54
|
+
*(executor.submit(delete_dir, path) for path in node_modules_dirs),
|
|
55
|
+
*(executor.submit(delete_file, path) for path in yarn_lock_files),
|
|
56
|
+
]
|
|
57
|
+
|
|
58
|
+
for future in as_completed(futures):
|
|
59
|
+
kind, path = future.result()
|
|
60
|
+
|
|
61
|
+
if kind == "dir":
|
|
62
|
+
deleted_dirs += 1
|
|
63
|
+
print(f"[DIR ] Deleted: {path}")
|
|
64
|
+
else:
|
|
65
|
+
deleted_files += 1
|
|
66
|
+
print(f"[FILE] Deleted: {path}")
|
|
67
|
+
|
|
68
|
+
print()
|
|
69
|
+
print("Done.")
|
|
70
|
+
print(f"Deleted node_modules: {deleted_dirs}")
|
|
71
|
+
print(f"Deleted yarn.lock: {deleted_files}")
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
def collect_workspace_dirs(
|
|
75
|
+
start_root: Union[str, Path],
|
|
76
|
+
include_start_root: bool = False,
|
|
77
|
+
) -> list[Path]:
|
|
78
|
+
"""Return workspace package directories sorted by longest path first.
|
|
79
|
+
|
|
80
|
+
This walks workspace globs declared in each package.json it finds,
|
|
81
|
+
recursively, stopping at directories already visited to avoid cycles.
|
|
82
|
+
"""
|
|
83
|
+
visited = set()
|
|
84
|
+
results = set()
|
|
85
|
+
|
|
86
|
+
start_root = Path(start_root).resolve()
|
|
87
|
+
stack = [start_root]
|
|
88
|
+
|
|
89
|
+
while stack:
|
|
90
|
+
pkg_dir = stack.pop()
|
|
91
|
+
|
|
92
|
+
if pkg_dir in visited:
|
|
93
|
+
continue
|
|
94
|
+
|
|
95
|
+
visited.add(pkg_dir)
|
|
96
|
+
|
|
97
|
+
pkg_file = pkg_dir / "package.json"
|
|
98
|
+
if not pkg_file.is_file():
|
|
99
|
+
continue
|
|
100
|
+
|
|
101
|
+
if include_start_root or pkg_dir != start_root:
|
|
102
|
+
results.add(pkg_dir)
|
|
103
|
+
|
|
104
|
+
try:
|
|
105
|
+
data = json.loads(pkg_file.read_text(encoding="utf-8"))
|
|
106
|
+
except Exception:
|
|
107
|
+
continue
|
|
108
|
+
|
|
109
|
+
ws_field = data.get("workspaces")
|
|
110
|
+
patterns = []
|
|
111
|
+
|
|
112
|
+
if isinstance(ws_field, dict):
|
|
113
|
+
patterns = ws_field.get("packages", [])
|
|
114
|
+
elif isinstance(ws_field, list):
|
|
115
|
+
patterns = ws_field
|
|
116
|
+
|
|
117
|
+
for pattern in patterns:
|
|
118
|
+
matches = glob.glob(str(pkg_dir / pattern), recursive=True)
|
|
119
|
+
|
|
120
|
+
for m in matches:
|
|
121
|
+
p = Path(m)
|
|
122
|
+
|
|
123
|
+
# Skip symlinked package directories; do not follow them
|
|
124
|
+
if p.is_symlink():
|
|
125
|
+
continue
|
|
126
|
+
|
|
127
|
+
p_res = p.resolve()
|
|
128
|
+
|
|
129
|
+
if p_res.is_dir() and p_res not in visited:
|
|
130
|
+
stack.append(p_res)
|
|
131
|
+
|
|
132
|
+
return sorted(
|
|
133
|
+
results,
|
|
134
|
+
key=lambda p: (len(p.parts), str(p)),
|
|
135
|
+
reverse=True,
|
|
136
|
+
)
|
|
137
|
+
|
|
138
|
+
|
|
139
|
+
if __name__ == "__main__":
|
|
140
|
+
workspace_dirs = collect_workspace_dirs(Path("."))
|
|
141
|
+
for d in workspace_dirs:
|
|
142
|
+
if Path(d / "node_modules").is_dir() or (d / "yarn.lock").is_file():
|
|
143
|
+
print(f"Cleaning workspace package: {d}")
|
|
144
|
+
clean(d)
|
|
145
|
+
else:
|
|
146
|
+
print(f"Skipping workspace package (no node_modules or yarn.lock): {d}")
|
|
147
|
+
shutil.rmtree(Path(".") / "node_modules", ignore_errors=True)
|
|
148
|
+
(Path(".") / "yarn.lock").unlink(missing_ok=True)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
## GitHub Actions Cache Cleaner
|
|
2
|
+
|
|
3
|
+
Removes outdated GitHub Actions caches in the current repository, keeping only the newest cache for each prefix. Ensures safe cleanup by retaining the latest cache per group and authenticates using tokens from your .env file.
|
|
4
|
+
|
|
5
|
+
### Usage
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# use npx
|
|
9
|
+
npx --yes binary-collections@https://raw.githubusercontent.com/dimaslanjaka/bin/master/releases/bin.tgz clean-github-actions-caches
|
|
10
|
+
|
|
11
|
+
# use yarn dlx
|
|
12
|
+
yarn dlx binary-collections@https://raw.githubusercontent.com/dimaslanjaka/bin/master/releases/bin.tgz clean-github-actions-caches
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
### Features
|
|
16
|
+
- Authenticates using `ACCESS_TOKEN` or `GITHUB_TOKEN` from your `.env` file
|
|
17
|
+
- Groups caches by prefix and deletes all but the latest for each group
|
|
18
|
+
- Operates on the current repository (origin remote) and matches the working directory of your terminal
|
|
19
|
+
- Safe: Only deletes caches older than the most recent per prefix
|
|
20
|
+
|
|
21
|
+
### Environment Setup
|
|
22
|
+
1. Add `ACCESS_TOKEN` or `GITHUB_TOKEN` to your `.env` file
|
|
23
|
+
2. Ensure you have access to the repository's cache management
|
|
24
|
+
|
|
25
|
+
### Source
|
|
26
|
+
See [`src/clean-github-actions-caches.cjs`](../src/clean-github-actions-caches.cjs)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# free-chatgpt.js
|
|
2
|
+
|
|
3
|
+
Automates browser interaction with ChatGPT using Puppeteer, including login, question submission, and response retrieval. Supports session persistence via cookies and flexible question input.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# use npx
|
|
9
|
+
npx --yes binary-collections@https://raw.githubusercontent.com/dimaslanjaka/bin/master/releases/bin.tgz free-chatgpt
|
|
10
|
+
|
|
11
|
+
# use yarn dlx
|
|
12
|
+
yarn dlx binary-collections@https://raw.githubusercontent.com/dimaslanjaka/bin/master/releases/bin.tgz free-chatgpt
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
### Argument Options
|
|
16
|
+
|
|
17
|
+
- `--question, -q` The question to ask ChatGPT (default: "Hello, ChatGPT!")
|
|
18
|
+
- `--qfile, -qf` Path to a file containing the question text
|
|
19
|
+
- `--help, -h` Show help message
|
|
20
|
+
|
|
21
|
+
## Notes
|
|
22
|
+
|
|
23
|
+
- Cookies are stored in `./tmp/cookies` for session reuse.
|
|
24
|
+
- Responses are saved to `./tmp/response.txt`.
|
|
25
|
+
- Requires access to `chat.openai.com` (firewall must allow connection).
|
|
26
|
+
- Uses Puppeteer with stealth plugin to avoid bot detection.
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
// src/binary-collections-config.
|
|
1
|
+
// src/binary-collections-config.cjs
|
|
2
2
|
var path = require("path");
|
|
3
|
+
require("dotenv").config({ path: path.join(process.cwd(), ".env"), quiet: true, override: true });
|
|
3
4
|
function getTempDir() {
|
|
4
|
-
return process.env.TEMP_DIR || "tmp";
|
|
5
|
+
return process.env.TEMP_DIR || path.join(process.cwd(), "tmp");
|
|
5
6
|
}
|
|
6
7
|
function getTempPath(...segments) {
|
|
7
8
|
return path.join(getTempDir(), ...segments);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createRequire } from 'module'; const require = createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
require_binary_collections_config
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-YYLIQQKF.mjs";
|
|
5
|
+
import "./chunk-QQ4A6DLD.mjs";
|
|
6
6
|
export default require_binary_collections_config();
|