binary-collections 2.0.13 → 2.0.15
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/.opencode/plugins/opencode-request-logger/README.md +44 -0
- package/.venv/Lib/site-packages/pyarrow/tests/data/orc/README.md +22 -0
- package/binaries/binary-executor.cjs +307 -238
- package/binaries/clean-nodemodule.cjs +307 -238
- package/binaries/clean-nodemodules.cjs +307 -238
- package/binaries/composer.cjs +323 -0
- package/binaries/composer.cmd +2 -0
- package/binaries/composer.phar +0 -0
- package/binaries/dev.cjs +307 -238
- package/binaries/empty.cjs +307 -238
- package/binaries/git-reduce-size.cjs +307 -238
- package/binaries/javakill.cjs +307 -238
- package/binaries/kill-process.cjs +307 -238
- package/binaries/nodekill.cjs +307 -238
- package/binaries/prod.cjs +307 -238
- package/binaries/py.cjs +307 -238
- package/binaries/rmfind.cjs +307 -238
- package/binaries/rmx.cjs +307 -238
- package/binaries/submodule-token.cjs +307 -238
- package/binaries/test-cjs.cjs +307 -238
- package/binaries/test-esm.cjs +307 -238
- package/binaries/yarn-clean.cjs +307 -238
- package/binaries/yc.cjs +307 -238
- package/binaries/ycw.cjs +307 -238
- package/docs-src/binary-collections.md +1 -1
- package/docs-src/clean-github-actions-caches.md +1 -1
- package/docs-src/copy-move-file.md +1 -4
- package/docs-src/del-ps.md +1 -1
- package/docs-src/find-node-modules.md +1 -1
- package/docs-src/generate-test-ci.md +56 -0
- package/docs-src/get-latest-workflow-status.md +100 -0
- package/docs-src/git-diff.md +1 -1
- package/docs-src/git-fix.md +1 -1
- package/docs-src/git-purge.md +1 -1
- package/docs-src/install-opencode-plugins.md +86 -0
- package/docs-src/kill-night-crows.md +1 -1
- package/docs-src/node-cache-cleaner.md +2 -2
- package/docs-src/node-package-packer.md +1 -1
- package/docs-src/opencode-cli.md +155 -0
- package/docs-src/package-resolutions-updater.md +1 -1
- package/docs-src/rmpath.md +1 -1
- package/docs-src/run-by-checksum.md +1 -1
- package/docs-src/submodule-remove.md +1 -1
- package/docs-src/upload-backend.md +29 -0
- package/docs-src/vscode-cli.md +84 -0
- package/docs-src/workflow-badge.md +120 -0
- package/lib/binary-collections/config-types.cjs +17 -0
- package/lib/binary-collections/config-types.d.ts +12 -0
- package/lib/binary-collections/config-types.js +2 -0
- package/lib/binary-collections/config-types.mjs +7 -0
- package/lib/binary-collections/config.cjs +28 -8
- package/lib/binary-collections/config.d.cts +26 -8
- package/lib/binary-collections/config.mjs +2 -2
- package/lib/binary-collections/findScript.cjs +49 -25
- package/lib/binary-collections/findScript.mjs +2 -2
- package/lib/binary-collections/listScript.cjs +49 -25
- package/lib/binary-collections/listScript.mjs +2 -2
- package/lib/binary-collections.cjs +49 -25
- package/lib/binary-collections.mjs +6 -6
- package/lib/changelog.cjs +142 -4
- package/lib/changelog.mjs +9 -5
- package/lib/chunk-3T6AMFI3.mjs +52 -0
- package/lib/{chunk-2MN4VPV2.mjs → chunk-3ZF2QMDK.mjs} +4 -4
- package/lib/chunk-56BVU63B.mjs +86 -0
- package/lib/chunk-7N52Z4IJ.mjs +39 -0
- package/lib/chunk-B77D3SR4.mjs +28 -0
- package/lib/chunk-BPED62FN.mjs +115 -0
- package/lib/{chunk-RDN6HF5Z.mjs → chunk-DHFRWM2W.mjs} +1 -1
- package/lib/chunk-DPEE3FBB.mjs +146 -0
- package/lib/{chunk-MGPYPKIE.mjs → chunk-H7AE4IO3.mjs} +5 -1
- package/lib/{chunk-H44UWUFY.mjs → chunk-J4M5EL5P.mjs} +3 -0
- package/lib/chunk-KCJYREA2.mjs +67 -0
- package/lib/chunk-LACQTD5V.mjs +225 -0
- package/lib/{chunk-TBWXE7ST.mjs → chunk-NHD4HLSU.mjs} +24 -31
- package/lib/{chunk-RDGDLSPD.mjs → chunk-OWNVMKAA.mjs} +6 -5
- package/lib/chunk-SKVF4TMD.mjs +59 -0
- package/lib/{chunk-BZWVHODJ.mjs → chunk-TDUUOAQD.mjs} +5 -5
- package/lib/chunk-TP3O2JGW.mjs +88 -0
- package/lib/{chunk-FLYSZFLW.mjs → chunk-UAEKSLAX.mjs} +1 -1
- package/lib/chunk-UDZBVKXH.mjs +94 -0
- package/lib/chunk-UEOWRYAN.mjs +32 -0
- package/lib/chunk-V6PTSDW5.mjs +82 -0
- package/lib/{chunk-NQXUYO67.mjs → chunk-WNUEY6VJ.mjs} +49 -25
- package/lib/chunk-X7UVQ6ZC.mjs +183 -0
- package/lib/chunk-XW5NZAKI.mjs +82 -0
- package/lib/{chunk-LVSPEFU2.mjs → chunk-Z53IUBUN.mjs} +6 -5
- package/lib/{chunk-CD3HF3LK.mjs → chunk-Z7RM46Q4.mjs} +5 -11
- package/lib/chunk-ZB4IQ6VJ.mjs +46 -0
- package/lib/del-gradle.cjs +1 -1
- package/lib/del-gradle.mjs +22 -16
- package/lib/del-node-modules.cjs +1 -1
- package/lib/del-node-modules.mjs +148 -142
- package/lib/find-node-modules-cli.cjs +1 -1
- package/lib/find-node-modules-cli.mjs +10 -4
- package/lib/{git-diff-cli.cjs → git/git-diff-cli.cjs} +32 -12
- package/lib/{git-diff-cli.mjs → git/git-diff-cli.mjs} +7 -7
- package/lib/{git-diff.cjs → git/git-diff.cjs} +30 -10
- package/lib/{git-diff.js → git/git-diff.js} +3 -3
- package/lib/{git-diff.mjs → git/git-diff.mjs} +6 -6
- package/lib/{git-fix.cjs → git/git-fix.cjs} +142 -3
- package/lib/{git-fix.mjs → git/git-fix.mjs} +19 -14
- package/lib/{git-purge.cjs → git/git-purge.cjs} +1 -1
- package/lib/{git-purge.mjs → git/git-purge.mjs} +4 -4
- package/lib/git/user-config.cjs +139 -1
- package/lib/git/user-config.mjs +3 -1
- package/lib/{clean-github-actions-caches-cli.cjs → github-workflows/clean-github-actions-caches-cli.cjs} +46 -10
- package/lib/{clean-github-actions-caches-cli.mjs → github-workflows/clean-github-actions-caches-cli.mjs} +7 -6
- package/lib/{clean-github-actions-caches.cjs → github-workflows/clean-github-actions-caches.cjs} +46 -10
- package/lib/{clean-github-actions-caches.mjs → github-workflows/clean-github-actions-caches.mjs} +5 -4
- package/lib/github-workflows/generate-test-ci-step-cli.cjs +240 -0
- package/lib/github-workflows/generate-test-ci-step-cli.d.mts +2 -0
- package/lib/github-workflows/generate-test-ci-step-cli.mjs +132 -0
- package/lib/github-workflows/get-latest-workflow-status-cli.cjs +549 -0
- package/lib/github-workflows/get-latest-workflow-status-cli.d.mts +2 -0
- package/lib/github-workflows/get-latest-workflow-status-cli.mjs +61 -0
- package/lib/github-workflows/get-latest-workflow-status.cjs +56 -0
- package/lib/github-workflows/get-latest-workflow-status.d.mts +1 -0
- package/lib/github-workflows/get-latest-workflow-status.mjs +8 -0
- package/lib/github-workflows/utils.cjs +279 -0
- package/lib/github-workflows/utils.d.cts +76 -0
- package/lib/github-workflows/utils.mjs +8 -0
- package/lib/github-workflows/workflow-badge-cli.cjs +730 -0
- package/lib/github-workflows/workflow-badge-cli.d.mts +2 -0
- package/lib/github-workflows/workflow-badge-cli.mjs +98 -0
- package/lib/github-workflows/workflow-badge-generator.cjs +200 -0
- package/lib/github-workflows/workflow-badge-generator.d.mts +14 -0
- package/lib/github-workflows/workflow-badge-generator.mjs +8 -0
- package/lib/github-workflows/workflow-test-data.cjs +73 -0
- package/lib/github-workflows/workflow-test-data.d.cts +63 -0
- package/lib/github-workflows/workflow-test-data.mjs +6 -0
- package/lib/node-cache-cleaner-cli.mjs +3 -3
- package/lib/opencode/cli/auth-rotate.cjs +458 -0
- package/lib/opencode/cli/auth-rotate.d.ts +3 -0
- package/lib/opencode/cli/auth-rotate.js +65 -0
- package/lib/opencode/cli/auth-rotate.mjs +14 -0
- package/lib/opencode/cli/auth-rotate.runner.cjs +454 -0
- package/lib/opencode/cli/auth-rotate.runner.d.ts +1 -0
- package/lib/opencode/cli/auth-rotate.runner.js +8 -0
- package/lib/opencode/cli/auth-rotate.runner.mjs +21 -0
- package/lib/opencode/cli/list-projects.cjs +184 -0
- package/lib/opencode/cli/list-projects.d.ts +1 -0
- package/lib/opencode/cli/list-projects.js +32 -0
- package/lib/opencode/cli/list-projects.mjs +11 -0
- package/lib/opencode/cli/list-sessions.cjs +215 -0
- package/lib/opencode/cli/list-sessions.d.ts +1 -0
- package/lib/opencode/cli/list-sessions.js +45 -0
- package/lib/opencode/cli/list-sessions.mjs +11 -0
- package/lib/opencode/database.cjs +349 -0
- package/lib/opencode/database.d.ts +91 -0
- package/lib/opencode/database.js +252 -0
- package/lib/opencode/database.mjs +28 -0
- package/lib/opencode/database.runner.cjs +145 -0
- package/lib/opencode/database.runner.d.ts +1 -0
- package/lib/opencode/database.runner.js +56 -0
- package/lib/opencode/database.runner.mjs +37 -0
- package/lib/opencode/install-opencode-plugins-cli.cjs +82 -0
- package/lib/opencode/install-opencode-plugins-cli.d.ts +1 -0
- package/lib/opencode/install-opencode-plugins-cli.js +78 -0
- package/lib/opencode/install-opencode-plugins-cli.mjs +65 -0
- package/lib/opencode/opencode-zen.runner.cjs +48 -0
- package/lib/opencode/opencode-zen.runner.d.mts +1 -0
- package/lib/opencode/opencode-zen.runner.mjs +31 -0
- package/lib/opencode/sqlite.cjs +114 -0
- package/lib/opencode/sqlite.d.ts +18 -0
- package/lib/opencode/sqlite.js +82 -0
- package/lib/opencode/sqlite.mjs +10 -0
- package/lib/opencode/storage.cjs +124 -0
- package/lib/opencode/storage.d.ts +27 -0
- package/lib/opencode/storage.js +101 -0
- package/lib/opencode/storage.mjs +38 -0
- package/lib/opencode/storage.runner.cjs +50 -0
- package/lib/opencode/storage.runner.d.ts +1 -0
- package/lib/opencode/storage.runner.js +13 -0
- package/lib/opencode/storage.runner.mjs +29 -0
- package/lib/opencode/types.cjs +17 -0
- package/lib/opencode/types.d.ts +31 -0
- package/lib/opencode/types.js +2 -0
- package/lib/opencode/types.mjs +7 -0
- package/lib/opencode/utils/check-api.cjs +373 -0
- package/lib/opencode/utils/check-api.d.ts +16 -0
- package/lib/opencode/utils/check-api.js +132 -0
- package/lib/opencode/utils/check-api.mjs +12 -0
- package/lib/opencode/utils/check-api.runner.cjs +0 -0
- package/lib/opencode/utils/check-api.runner.d.ts +0 -0
- package/lib/opencode/utils/check-api.runner.js +1 -0
- package/lib/opencode/utils/check-api.runner.mjs +7 -0
- package/lib/opencode-cli.cjs +796 -0
- package/lib/opencode-cli.d.ts +2 -0
- package/lib/opencode-cli.js +116 -0
- package/lib/opencode-cli.mjs +116 -0
- package/lib/package-resolutions-updater-cli.cjs +189 -154
- package/lib/package-resolutions-updater-cli.mjs +3 -2
- package/lib/package-resolutions-updater.cjs +189 -154
- package/lib/package-resolutions-updater.d.mts +12 -3
- package/lib/package-resolutions-updater.mjs +3 -2
- package/lib/print-directory-tree.cjs +139 -3
- package/lib/print-directory-tree.mjs +6 -3
- package/lib/print-tarball-tree-cli.cjs +305 -0
- package/lib/print-tarball-tree-cli.d.mts +2 -0
- package/lib/print-tarball-tree-cli.mjs +54 -0
- package/lib/print-tarball-tree.cjs +43 -216
- package/lib/print-tarball-tree.d.mts +4 -1
- package/lib/print-tarball-tree.mjs +12 -66
- package/lib/rmpath-cli.cjs +139 -5
- package/lib/rmpath-cli.mjs +3 -1
- package/lib/rmpath.cjs +155 -11
- package/lib/rmpath.mjs +3 -1
- package/lib/run-by-checksum/hash.cjs +50 -56
- package/lib/run-by-checksum/hash.d.cts +24 -0
- package/lib/run-by-checksum/hash.mjs +3 -7
- package/lib/run-by-checksum/run.cjs +95 -42
- package/lib/run-by-checksum/run.js +3 -3
- package/lib/run-by-checksum/run.mjs +2 -2
- package/lib/run-by-checksum-cli.cjs +96 -58
- package/lib/run-by-checksum-cli.mjs +2 -2
- package/lib/submodule-install.cjs +138 -4
- package/lib/submodule-install.mjs +5 -4
- package/lib/submodule-remove-cli.cjs +139 -5
- package/lib/submodule-remove-cli.mjs +3 -1
- package/lib/submodule-remove.cjs +154 -5
- package/lib/submodule-remove.mjs +3 -1
- package/lib/utils/findEnvFiles.cjs +3 -0
- package/lib/utils/findEnvFiles.d.cts +2 -2
- package/lib/utils/findEnvFiles.mjs +1 -1
- package/lib/utils/isDebug.cjs +13 -0
- package/lib/utils/isDebug.d.cts +9 -0
- package/lib/utils/isDebug.mjs +6 -0
- package/lib/vscode/project.cjs +0 -0
- package/lib/vscode/project.d.ts +0 -0
- package/lib/vscode/project.js +1 -0
- package/lib/vscode/project.mjs +7 -0
- package/lib/vscode/storage.cjs +138 -0
- package/lib/vscode/storage.d.ts +51 -0
- package/lib/vscode/storage.js +169 -0
- package/lib/vscode/storage.mjs +42 -0
- package/lib/vscode/storage.runner.cjs +125 -0
- package/lib/vscode/storage.runner.d.ts +1 -0
- package/lib/vscode/storage.runner.js +47 -0
- package/lib/vscode/storage.runner.mjs +60 -0
- package/lib/vscode-cli.cjs +155 -0
- package/lib/vscode-cli.d.ts +2 -0
- package/lib/vscode-cli.js +80 -0
- package/lib/vscode-cli.mjs +71 -0
- package/package.json +50 -26
- package/readme.md +104 -8
- package/releases/readme.md +1 -1
- package/src/github-workflows/generate-test-ci-step-cli.mjs +126 -0
- package/vendor/clue/ndjson-react/README.md +365 -0
- package/vendor/composer/pcre/README.md +189 -0
- package/vendor/composer/semver/README.md +99 -0
- package/vendor/composer/xdebug-handler/README.md +305 -0
- package/vendor/ergebnis/agent-detector/README.md +107 -0
- package/vendor/evenement/evenement/README.md +64 -0
- package/vendor/fidry/cpu-core-counter/README.md +138 -0
- package/vendor/friendsofphp/php-cs-fixer/README.md +97 -0
- package/vendor/psr/container/README.md +13 -0
- package/vendor/psr/event-dispatcher/README.md +6 -0
- package/vendor/psr/log/README.md +58 -0
- package/vendor/react/cache/README.md +367 -0
- package/vendor/react/child-process/README.md +619 -0
- package/vendor/react/dns/README.md +453 -0
- package/vendor/react/event-loop/README.md +930 -0
- package/vendor/react/promise/README.md +722 -0
- package/vendor/react/socket/README.md +1564 -0
- package/vendor/react/stream/README.md +1249 -0
- package/vendor/sebastian/diff/README.md +151 -0
- package/vendor/symfony/console/README.md +30 -0
- package/vendor/symfony/deprecation-contracts/README.md +26 -0
- package/vendor/symfony/event-dispatcher/README.md +25 -0
- package/vendor/symfony/event-dispatcher-contracts/README.md +9 -0
- package/vendor/symfony/filesystem/README.md +23 -0
- package/vendor/symfony/finder/README.md +24 -0
- package/vendor/symfony/options-resolver/README.md +25 -0
- package/vendor/symfony/polyfill-ctype/README.md +12 -0
- package/vendor/symfony/polyfill-intl-grapheme/README.md +32 -0
- package/vendor/symfony/polyfill-intl-normalizer/README.md +14 -0
- package/vendor/symfony/polyfill-mbstring/README.md +13 -0
- package/vendor/symfony/polyfill-php80/README.md +25 -0
- package/vendor/symfony/polyfill-php81/README.md +18 -0
- package/vendor/symfony/polyfill-php84/README.md +23 -0
- package/vendor/symfony/polyfill-php85/README.md +20 -0
- package/vendor/symfony/process/README.md +23 -0
- package/vendor/symfony/service-contracts/README.md +9 -0
- package/vendor/symfony/stopwatch/README.md +52 -0
- package/vendor/symfony/string/README.md +24 -0
- package/lib/chunk-WSHVPGNM.mjs +0 -44
- package/lib/chunk-X2B3X7D4.mjs +0 -35
- package/lib/del-gradle.js +0 -16
- package/lib/del-node-modules.js +0 -211
- package/lib/find-node-modules-cli.js +0 -4
- package/lib/run-by-checksum/hash.d.ts +0 -14
- package/lib/run-by-checksum/hash.js +0 -85
- package/readme.html +0 -784
- /package/lib/{clean-github-actions-caches-cli.d.cts → del-gradle.d.cts} +0 -0
- /package/lib/{del-gradle.d.ts → del-node-modules.d.cts} +0 -0
- /package/lib/{find-node-modules-cli.d.ts → find-node-modules-cli.d.cts} +0 -0
- /package/lib/{git-diff-cli.d.ts → git/git-diff-cli.d.ts} +0 -0
- /package/lib/{git-diff-cli.js → git/git-diff-cli.js} +0 -0
- /package/lib/{git-diff.d.ts → git/git-diff.d.ts} +0 -0
- /package/lib/{git-fix.d.cts → git/git-fix.d.cts} +0 -0
- /package/lib/{git-purge.d.cts → git/git-purge.d.cts} +0 -0
- /package/lib/{del-node-modules.d.ts → github-workflows/clean-github-actions-caches-cli.d.cts} +0 -0
- /package/lib/{clean-github-actions-caches.d.cts → github-workflows/clean-github-actions-caches.d.cts} +0 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# opencode-request-logger
|
|
2
|
+
|
|
3
|
+
An [OpenCode](https://opencode.ai) plugin that logs raw LLM request bodies to disk for debugging and analysis.
|
|
4
|
+
|
|
5
|
+
## What it does
|
|
6
|
+
|
|
7
|
+
Intercepts outgoing fetch calls to LLM providers (Anthropic, OpenAI, Google, Bedrock, etc.) and writes each request body as a timestamped JSON file. Logs are organized by session ID.
|
|
8
|
+
|
|
9
|
+
**Log location:** `~/.config/opencode/logs/request-logger/<sessionId>/<timestamp>_<seq>.json`
|
|
10
|
+
|
|
11
|
+
Each file contains:
|
|
12
|
+
|
|
13
|
+
```json
|
|
14
|
+
{
|
|
15
|
+
"timestamp": "2026-03-04T12:00:00.000Z",
|
|
16
|
+
"url": "https://api.anthropic.com/v1/messages",
|
|
17
|
+
"body": { "...raw request body..." }
|
|
18
|
+
}
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## How it works
|
|
22
|
+
|
|
23
|
+
Two interception layers ensure coverage across all providers:
|
|
24
|
+
|
|
25
|
+
1. **`globalThis.fetch` wrapper** -- catches most providers since the AI SDK routes through fetch
|
|
26
|
+
2. **`chat.params` hook** -- wraps the per-request fetch passed to `streamText`, catching providers that bypass `globalThis.fetch` (e.g. AWS Bedrock)
|
|
27
|
+
|
|
28
|
+
Only requests with an AI-shaped body (containing `messages`, `input`, or `contents` arrays) are logged.
|
|
29
|
+
|
|
30
|
+
## Installation
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
# From the plugin directory
|
|
34
|
+
bun install
|
|
35
|
+
bun run build
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Then add to your OpenCode config (`~/.config/opencode/opencode.jsonc`):
|
|
39
|
+
|
|
40
|
+
```json
|
|
41
|
+
{
|
|
42
|
+
"plugin": [ "./plugin/opencode-request-logger" ]
|
|
43
|
+
}
|
|
44
|
+
```
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<!---
|
|
2
|
+
Licensed to the Apache Software Foundation (ASF) under one
|
|
3
|
+
or more contributor license agreements. See the NOTICE file
|
|
4
|
+
distributed with this work for additional information
|
|
5
|
+
regarding copyright ownership. The ASF licenses this file
|
|
6
|
+
to you under the Apache License, Version 2.0 (the
|
|
7
|
+
"License"); you may not use this file except in compliance
|
|
8
|
+
with the License. You may obtain a copy of the License at
|
|
9
|
+
|
|
10
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
|
|
12
|
+
Unless required by applicable law or agreed to in writing,
|
|
13
|
+
software distributed under the License is distributed on an
|
|
14
|
+
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
15
|
+
KIND, either express or implied. See the License for the
|
|
16
|
+
specific language governing permissions and limitations
|
|
17
|
+
under the License.
|
|
18
|
+
-->
|
|
19
|
+
|
|
20
|
+
The ORC and JSON files come from the `examples` directory in the Apache ORC
|
|
21
|
+
source tree:
|
|
22
|
+
https://github.com/apache/orc/tree/main/examples
|
|
@@ -1,254 +1,323 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
+
'use strict';
|
|
2
3
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
* Used to launch external scripts/programs.
|
|
8
|
-
*
|
|
9
|
-
* - path:
|
|
10
|
-
* Safely handles file paths across operating systems.
|
|
11
|
-
*
|
|
12
|
-
* - fs:
|
|
13
|
-
* Used to check whether files exist.
|
|
14
|
-
*/
|
|
15
|
-
const { spawnSync } = require('child_process');
|
|
16
|
-
const path = require('path');
|
|
17
|
-
const fs = require('fs');
|
|
18
|
-
const which = require('which');
|
|
19
|
-
const { isWindows } = require('../src/utils/isWindows.js');
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* __dirname
|
|
23
|
-
* Absolute directory path of this launcher script.
|
|
24
|
-
*
|
|
25
|
-
* __filename
|
|
26
|
-
* Absolute path of this launcher file itself.
|
|
27
|
-
*
|
|
28
|
-
* base
|
|
29
|
-
* Filename without extension.
|
|
30
|
-
*
|
|
31
|
-
* Example:
|
|
32
|
-
* File = "/tools/mytool.js"
|
|
33
|
-
*
|
|
34
|
-
* binDir = "/tools"
|
|
35
|
-
* base = "mytool"
|
|
36
|
-
*/
|
|
37
|
-
const binDir = __dirname;
|
|
38
|
-
const base = path.basename(__filename, path.extname(__filename));
|
|
4
|
+
var require$$0 = require('child_process');
|
|
5
|
+
var require$$1 = require('path');
|
|
6
|
+
var require$$2 = require('fs');
|
|
7
|
+
var require$$3 = require('which');
|
|
39
8
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
* based on the current operating system.
|
|
43
|
-
*
|
|
44
|
-
* Windows:
|
|
45
|
-
* .cmd
|
|
46
|
-
* .bat
|
|
47
|
-
* .ps1
|
|
48
|
-
* .vbs
|
|
49
|
-
*
|
|
50
|
-
* Linux/macOS:
|
|
51
|
-
* .sh
|
|
52
|
-
* executable file without extension
|
|
53
|
-
*/
|
|
54
|
-
const candidates = process.platform === 'win32' ? ['.cmd', '.bat', '.ps1', '.vbs'] : ['.sh', ''];
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Search for the first matching script
|
|
58
|
-
* in the same directory as this launcher.
|
|
59
|
-
*
|
|
60
|
-
* Example:
|
|
61
|
-
* If base = "mytool"
|
|
62
|
-
*
|
|
63
|
-
* Windows checks:
|
|
64
|
-
* mytool.cmd
|
|
65
|
-
* mytool.bat
|
|
66
|
-
* mytool.ps1
|
|
67
|
-
* mytool.vbs
|
|
68
|
-
*
|
|
69
|
-
* Linux/macOS checks:
|
|
70
|
-
* mytool.sh
|
|
71
|
-
* mytool
|
|
72
|
-
*/
|
|
73
|
-
let found = null;
|
|
74
|
-
|
|
75
|
-
for (const ext of candidates) {
|
|
76
|
-
const script = path.join(binDir, base + ext);
|
|
77
|
-
const exists = fs.existsSync(script);
|
|
78
|
-
// console.log(`Checking for ${script}: ${exists ? 'found' : 'not found'}`);
|
|
79
|
-
if (exists) {
|
|
80
|
-
found = script;
|
|
81
|
-
break;
|
|
82
|
-
}
|
|
9
|
+
function getDefaultExportFromCjs (x) {
|
|
10
|
+
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
|
83
11
|
}
|
|
84
12
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
}
|
|
13
|
+
function getAugmentedNamespace(n) {
|
|
14
|
+
if (Object.prototype.hasOwnProperty.call(n, '__esModule')) return n;
|
|
15
|
+
var f = n.default;
|
|
16
|
+
if (typeof f == "function") {
|
|
17
|
+
var a = function a () {
|
|
18
|
+
var isInstance = false;
|
|
19
|
+
try {
|
|
20
|
+
isInstance = this instanceof a;
|
|
21
|
+
} catch (e) {}
|
|
22
|
+
if (isInstance) {
|
|
23
|
+
return Reflect.construct(f, arguments, this.constructor);
|
|
24
|
+
}
|
|
25
|
+
return f.apply(this, arguments);
|
|
26
|
+
};
|
|
27
|
+
a.prototype = f.prototype;
|
|
28
|
+
} else a = {};
|
|
29
|
+
Object.defineProperty(a, '__esModule', {value: true});
|
|
30
|
+
Object.keys(n).forEach(function (k) {
|
|
31
|
+
var d = Object.getOwnPropertyDescriptor(n, k);
|
|
32
|
+
Object.defineProperty(a, k, d.get ? d : {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function () {
|
|
35
|
+
return n[k];
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
return a;
|
|
101
40
|
}
|
|
102
41
|
|
|
42
|
+
var binaryExecutor$1 = {};
|
|
43
|
+
|
|
103
44
|
/**
|
|
104
|
-
*
|
|
105
|
-
*
|
|
45
|
+
* Determines if the current platform is Windows
|
|
46
|
+
* @returns {boolean} true if running on Windows, false otherwise
|
|
106
47
|
*/
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
process.exit(1);
|
|
48
|
+
function isWindows() {
|
|
49
|
+
return process.platform === 'win32' || /^(msys|cygwin)$/.test(process.env.OSTYPE || '');
|
|
110
50
|
}
|
|
111
51
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
const isPs1 = found.endsWith('.ps1');
|
|
117
|
-
const isCmd = found.endsWith('.cmd');
|
|
118
|
-
const isUnixShell = found.endsWith('.sh') || path.extname(found) === '';
|
|
52
|
+
var isWindows$1 = /*#__PURE__*/Object.freeze({
|
|
53
|
+
__proto__: null,
|
|
54
|
+
isWindows: isWindows
|
|
55
|
+
});
|
|
119
56
|
|
|
120
|
-
|
|
121
|
-
* cmd
|
|
122
|
-
* The executable program to launch.
|
|
123
|
-
*
|
|
124
|
-
* args
|
|
125
|
-
* Arguments passed to the executable.
|
|
126
|
-
*/
|
|
127
|
-
let cmd, args;
|
|
57
|
+
var require$$4 = /*@__PURE__*/getAugmentedNamespace(isWindows$1);
|
|
128
58
|
|
|
129
|
-
|
|
130
|
-
* PowerShell scripts:
|
|
131
|
-
*
|
|
132
|
-
* Run through powershell.exe because .ps1 files
|
|
133
|
-
* are not directly executable like binaries.
|
|
134
|
-
*
|
|
135
|
-
* Flags:
|
|
136
|
-
* -NoProfile
|
|
137
|
-
* Prevent loading user profile scripts.
|
|
138
|
-
*
|
|
139
|
-
* -ExecutionPolicy Bypass
|
|
140
|
-
* Allow script execution even if policy blocks it.
|
|
141
|
-
*
|
|
142
|
-
* -File
|
|
143
|
-
* Specifies the script to execute.
|
|
144
|
-
*
|
|
145
|
-
* process.argv.slice(2)
|
|
146
|
-
* Forward all user-provided command-line arguments.
|
|
147
|
-
*/
|
|
148
|
-
if (isPs1) {
|
|
149
|
-
cmd = 'powershell.exe';
|
|
150
|
-
|
|
151
|
-
args = ['-NoProfile', '-ExecutionPolicy', 'Bypass', '-File', found, ...process.argv.slice(2)];
|
|
152
|
-
|
|
153
|
-
/**
|
|
154
|
-
* CMD batch files:
|
|
155
|
-
*
|
|
156
|
-
* Run through cmd.exe using:
|
|
157
|
-
* /c
|
|
158
|
-
* which means:
|
|
159
|
-
* "execute command and terminate"
|
|
160
|
-
*/
|
|
161
|
-
} else if (isCmd) {
|
|
162
|
-
cmd = 'cmd.exe';
|
|
163
|
-
|
|
164
|
-
args = ['/c', found, ...process.argv.slice(2)];
|
|
165
|
-
|
|
166
|
-
/**
|
|
167
|
-
* Other scripts:
|
|
168
|
-
*
|
|
169
|
-
* Usually:
|
|
170
|
-
* - shell scripts (.sh)
|
|
171
|
-
* - executable binaries
|
|
172
|
-
*
|
|
173
|
-
* These can be executed directly.
|
|
174
|
-
*/
|
|
175
|
-
} else if (isUnixShell) {
|
|
176
|
-
// Capture shebang scripts (no extension) and .sh scripts
|
|
177
|
-
const shebang = fs.readFileSync(found, 'utf8').split('\n')[0].trim();
|
|
178
|
-
const interpreter = shebang.startsWith('#!')
|
|
179
|
-
? shebang
|
|
180
|
-
.slice(2)
|
|
181
|
-
.trim()
|
|
182
|
-
.replace(/^\/usr\/bin\/env\s+/, '')
|
|
183
|
-
.replace(/^\/bin\/env\s+/, '')
|
|
184
|
-
.replace(/^\/usr\/bin\//, '')
|
|
185
|
-
.replace(/^\/bin\//, '')
|
|
186
|
-
: null;
|
|
187
|
-
|
|
188
|
-
if (interpreter) {
|
|
189
|
-
const resolvedOrNull = which.sync(interpreter, { nothrow: true });
|
|
190
|
-
if (!resolvedOrNull) {
|
|
191
|
-
if (['bash', 'sh'].includes(interpreter) && isWindows()) {
|
|
192
|
-
const locationsToCheck = [
|
|
193
|
-
'C:\\Program Files\\Git\\usr\\bin',
|
|
194
|
-
'C:\\Program Files\\Git\\bin',
|
|
195
|
-
'C:\\Program Files (x86)\\Git\\usr\\bin',
|
|
196
|
-
'C:\\msys64\\usr\\bin',
|
|
197
|
-
'C:\\msys64\\bin',
|
|
198
|
-
'C:\\cygwin64\\bin',
|
|
199
|
-
'C:\\cygwin\\bin',
|
|
200
|
-
'C:\\MinGW\\bin',
|
|
201
|
-
'C:\\MinGW\\msys\\1.0\\bin'
|
|
202
|
-
];
|
|
203
|
-
for (const location of locationsToCheck) {
|
|
204
|
-
const potentialPath = path.join(location, 'bash.exe');
|
|
205
|
-
if (fs.existsSync(potentialPath)) {
|
|
206
|
-
cmd = potentialPath;
|
|
207
|
-
args = [found, ...process.argv.slice(2)];
|
|
208
|
-
break;
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
} else {
|
|
213
|
-
cmd = resolvedOrNull || interpreter;
|
|
214
|
-
args = [found, ...process.argv.slice(2)];
|
|
215
|
-
}
|
|
216
|
-
} else {
|
|
217
|
-
cmd = found;
|
|
218
|
-
args = process.argv.slice(2);
|
|
219
|
-
}
|
|
220
|
-
} else {
|
|
221
|
-
cmd = found;
|
|
222
|
-
args = process.argv.slice(2);
|
|
223
|
-
}
|
|
59
|
+
var hasRequiredBinaryExecutor;
|
|
224
60
|
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
61
|
+
function requireBinaryExecutor () {
|
|
62
|
+
if (hasRequiredBinaryExecutor) return binaryExecutor$1;
|
|
63
|
+
hasRequiredBinaryExecutor = 1;
|
|
64
|
+
/**
|
|
65
|
+
* Built-in Node.js modules:
|
|
66
|
+
*
|
|
67
|
+
* - child_process:
|
|
68
|
+
* Used to launch external scripts/programs.
|
|
69
|
+
*
|
|
70
|
+
* - path:
|
|
71
|
+
* Safely handles file paths across operating systems.
|
|
72
|
+
*
|
|
73
|
+
* - fs:
|
|
74
|
+
* Used to check whether files exist.
|
|
75
|
+
*/
|
|
76
|
+
const { spawnSync } = require$$0;
|
|
77
|
+
const path = require$$1;
|
|
78
|
+
const fs = require$$2;
|
|
79
|
+
const which = require$$3;
|
|
80
|
+
const { isWindows } = require$$4;
|
|
233
81
|
|
|
234
|
-
/**
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
82
|
+
/**
|
|
83
|
+
* __dirname
|
|
84
|
+
* Absolute directory path of this launcher script.
|
|
85
|
+
*
|
|
86
|
+
* __filename
|
|
87
|
+
* Absolute path of this launcher file itself.
|
|
88
|
+
*
|
|
89
|
+
* base
|
|
90
|
+
* Filename without extension.
|
|
91
|
+
*
|
|
92
|
+
* Example:
|
|
93
|
+
* File = "/tools/mytool.js"
|
|
94
|
+
*
|
|
95
|
+
* binDir = "/tools"
|
|
96
|
+
* base = "mytool"
|
|
97
|
+
*/
|
|
98
|
+
const binDir = __dirname;
|
|
99
|
+
const base = path.basename(__filename, path.extname(__filename));
|
|
246
100
|
|
|
247
|
-
/**
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
101
|
+
/**
|
|
102
|
+
* Determine which script extensions to search for
|
|
103
|
+
* based on the current operating system.
|
|
104
|
+
*
|
|
105
|
+
* Windows:
|
|
106
|
+
* .cmd
|
|
107
|
+
* .bat
|
|
108
|
+
* .ps1
|
|
109
|
+
* .vbs
|
|
110
|
+
*
|
|
111
|
+
* Linux/macOS:
|
|
112
|
+
* .sh
|
|
113
|
+
* executable file without extension
|
|
114
|
+
*/
|
|
115
|
+
const candidates = process.platform === 'win32' ? ['.cmd', '.bat', '.ps1', '.vbs'] : ['.sh', ''];
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Search for the first matching script
|
|
119
|
+
* in the same directory as this launcher.
|
|
120
|
+
*
|
|
121
|
+
* Example:
|
|
122
|
+
* If base = "mytool"
|
|
123
|
+
*
|
|
124
|
+
* Windows checks:
|
|
125
|
+
* mytool.cmd
|
|
126
|
+
* mytool.bat
|
|
127
|
+
* mytool.ps1
|
|
128
|
+
* mytool.vbs
|
|
129
|
+
*
|
|
130
|
+
* Linux/macOS checks:
|
|
131
|
+
* mytool.sh
|
|
132
|
+
* mytool
|
|
133
|
+
*/
|
|
134
|
+
let found = null;
|
|
135
|
+
|
|
136
|
+
for (const ext of candidates) {
|
|
137
|
+
const script = path.join(binDir, base + ext);
|
|
138
|
+
const exists = fs.existsSync(script);
|
|
139
|
+
// console.log(`Checking for ${script}: ${exists ? 'found' : 'not found'}`);
|
|
140
|
+
if (exists) {
|
|
141
|
+
found = script;
|
|
142
|
+
break;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/**
|
|
147
|
+
* If no matching script was found,
|
|
148
|
+
* try check if `bash` is available and if so, check for a .sh script.
|
|
149
|
+
*/
|
|
150
|
+
if (!found) {
|
|
151
|
+
try {
|
|
152
|
+
spawnSync('bash', ['--version'], { stdio: 'ignore' });
|
|
153
|
+
const bashScript = [path.join(binDir, base), path.join(binDir, base + '.sh')].find((script) =>
|
|
154
|
+
fs.existsSync(script)
|
|
155
|
+
);
|
|
156
|
+
if (bashScript) {
|
|
157
|
+
found = bashScript;
|
|
158
|
+
}
|
|
159
|
+
} catch {
|
|
160
|
+
// bash is not available, do nothing
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
/**
|
|
165
|
+
* If no matching script was found,
|
|
166
|
+
* print an error and exit with failure code 1.
|
|
167
|
+
*/
|
|
168
|
+
if (!found) {
|
|
169
|
+
console.error(`No script found for ${base} in ${binDir}`);
|
|
170
|
+
process.exit(1);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Detect special script types
|
|
175
|
+
* that require a shell/interpreter.
|
|
176
|
+
*/
|
|
177
|
+
const isPs1 = found.endsWith('.ps1');
|
|
178
|
+
const isCmd = found.endsWith('.cmd');
|
|
179
|
+
const isUnixShell = found.endsWith('.sh') || path.extname(found) === '';
|
|
180
|
+
|
|
181
|
+
/**
|
|
182
|
+
* cmd
|
|
183
|
+
* The executable program to launch.
|
|
184
|
+
*
|
|
185
|
+
* args
|
|
186
|
+
* Arguments passed to the executable.
|
|
187
|
+
*/
|
|
188
|
+
let cmd, args;
|
|
189
|
+
|
|
190
|
+
/**
|
|
191
|
+
* PowerShell scripts:
|
|
192
|
+
*
|
|
193
|
+
* Run through powershell.exe because .ps1 files
|
|
194
|
+
* are not directly executable like binaries.
|
|
195
|
+
*
|
|
196
|
+
* Flags:
|
|
197
|
+
* -NoProfile
|
|
198
|
+
* Prevent loading user profile scripts.
|
|
199
|
+
*
|
|
200
|
+
* -ExecutionPolicy Bypass
|
|
201
|
+
* Allow script execution even if policy blocks it.
|
|
202
|
+
*
|
|
203
|
+
* -File
|
|
204
|
+
* Specifies the script to execute.
|
|
205
|
+
*
|
|
206
|
+
* process.argv.slice(2)
|
|
207
|
+
* Forward all user-provided command-line arguments.
|
|
208
|
+
*/
|
|
209
|
+
if (isPs1) {
|
|
210
|
+
cmd = 'powershell.exe';
|
|
211
|
+
|
|
212
|
+
args = ['-NoProfile', '-ExecutionPolicy', 'Bypass', '-File', found, ...process.argv.slice(2)];
|
|
213
|
+
|
|
214
|
+
/**
|
|
215
|
+
* CMD batch files:
|
|
216
|
+
*
|
|
217
|
+
* Run through cmd.exe using:
|
|
218
|
+
* /c
|
|
219
|
+
* which means:
|
|
220
|
+
* "execute command and terminate"
|
|
221
|
+
*/
|
|
222
|
+
} else if (isCmd) {
|
|
223
|
+
cmd = 'cmd.exe';
|
|
224
|
+
|
|
225
|
+
args = ['/c', found, ...process.argv.slice(2)];
|
|
226
|
+
|
|
227
|
+
/**
|
|
228
|
+
* Other scripts:
|
|
229
|
+
*
|
|
230
|
+
* Usually:
|
|
231
|
+
* - shell scripts (.sh)
|
|
232
|
+
* - executable binaries
|
|
233
|
+
*
|
|
234
|
+
* These can be executed directly.
|
|
235
|
+
*/
|
|
236
|
+
} else if (isUnixShell) {
|
|
237
|
+
// Capture shebang scripts (no extension) and .sh scripts
|
|
238
|
+
const shebang = fs.readFileSync(found, 'utf8').split('\n')[0].trim();
|
|
239
|
+
const interpreter = shebang.startsWith('#!')
|
|
240
|
+
? shebang
|
|
241
|
+
.slice(2)
|
|
242
|
+
.trim()
|
|
243
|
+
.replace(/^\/usr\/bin\/env\s+/, '')
|
|
244
|
+
.replace(/^\/bin\/env\s+/, '')
|
|
245
|
+
.replace(/^\/usr\/bin\//, '')
|
|
246
|
+
.replace(/^\/bin\//, '')
|
|
247
|
+
: null;
|
|
248
|
+
|
|
249
|
+
if (interpreter) {
|
|
250
|
+
const resolvedOrNull = which.sync(interpreter, { nothrow: true });
|
|
251
|
+
if (!resolvedOrNull) {
|
|
252
|
+
if (['bash', 'sh'].includes(interpreter) && isWindows()) {
|
|
253
|
+
const locationsToCheck = [
|
|
254
|
+
'C:\\Program Files\\Git\\usr\\bin',
|
|
255
|
+
'C:\\Program Files\\Git\\bin',
|
|
256
|
+
'C:\\Program Files (x86)\\Git\\usr\\bin',
|
|
257
|
+
'C:\\msys64\\usr\\bin',
|
|
258
|
+
'C:\\msys64\\bin',
|
|
259
|
+
'C:\\cygwin64\\bin',
|
|
260
|
+
'C:\\cygwin\\bin',
|
|
261
|
+
'C:\\MinGW\\bin',
|
|
262
|
+
'C:\\MinGW\\msys\\1.0\\bin'
|
|
263
|
+
];
|
|
264
|
+
for (const location of locationsToCheck) {
|
|
265
|
+
const potentialPath = path.join(location, 'bash.exe');
|
|
266
|
+
if (fs.existsSync(potentialPath)) {
|
|
267
|
+
cmd = potentialPath;
|
|
268
|
+
args = [found, ...process.argv.slice(2)];
|
|
269
|
+
break;
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
} else {
|
|
274
|
+
cmd = resolvedOrNull || interpreter;
|
|
275
|
+
args = [found, ...process.argv.slice(2)];
|
|
276
|
+
}
|
|
277
|
+
} else {
|
|
278
|
+
cmd = found;
|
|
279
|
+
args = process.argv.slice(2);
|
|
280
|
+
}
|
|
281
|
+
} else {
|
|
282
|
+
cmd = found;
|
|
283
|
+
args = process.argv.slice(2);
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
console.log(
|
|
287
|
+
`Executing: ${path.isAbsolute(cmd) ? path.relative(process.cwd(), cmd) : cmd} ${args
|
|
288
|
+
.map((f) => {
|
|
289
|
+
if (path.isAbsolute(f)) return path.relative(process.cwd(), f);
|
|
290
|
+
return f;
|
|
291
|
+
})
|
|
292
|
+
.join(' ')}`
|
|
293
|
+
);
|
|
294
|
+
|
|
295
|
+
/**
|
|
296
|
+
* Execute the selected script synchronously.
|
|
297
|
+
*
|
|
298
|
+
* stdio: "inherit"
|
|
299
|
+
* Shares the current terminal with the child process,
|
|
300
|
+
* so stdout/stderr/input behave normally.
|
|
301
|
+
*
|
|
302
|
+
* spawnSync waits until the child process exits.
|
|
303
|
+
*/
|
|
304
|
+
const result = spawnSync(cmd, args, {
|
|
305
|
+
stdio: 'inherit'
|
|
306
|
+
});
|
|
307
|
+
|
|
308
|
+
/**
|
|
309
|
+
* Exit using the same exit code
|
|
310
|
+
* returned by the child process.
|
|
311
|
+
*
|
|
312
|
+
* If result.status is null/undefined,
|
|
313
|
+
* default to exit code 1.
|
|
314
|
+
*/
|
|
315
|
+
process.exit(result.status ?? 1);
|
|
316
|
+
return binaryExecutor$1;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
var binaryExecutorExports = requireBinaryExecutor();
|
|
320
|
+
var binaryExecutor = /*@__PURE__*/getDefaultExportFromCjs(binaryExecutorExports);
|
|
321
|
+
|
|
322
|
+
module.exports = binaryExecutor;
|
|
323
|
+
//# sourceMappingURL=binary-executor.cjs.map
|