@nindroidsystems/pluginator 2.3.0 → 2.3.2
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/README.md +71 -208
- package/dist/cli.js +5 -347
- package/package.json +3 -3
- package/dist/crc32.linux-x64-gnu-23wcsc5b.node +0 -0
- package/dist/crc32.linux-x64-musl-4qzbwpa3.node +0 -0
package/README.md
CHANGED
|
@@ -1,43 +1,49 @@
|
|
|
1
1
|
# Pluginator
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
<a href="https://bun.sh" target="_blank" rel="noopener noreferrer"><img src="https://img.shields.io/badge/Built%20with-Bun-f9f1e1?logo=bun&logoColor=f9f1e1&labelColor=14151a" alt="Built with Bun"></a>
|
|
4
|
+
<a href="https://www.typescriptlang.org/" target="_blank" rel="noopener noreferrer"><img src="https://img.shields.io/badge/TypeScript-5.0-3178c6?logo=typescript&logoColor=white" alt="TypeScript"></a>
|
|
5
|
+
<a href="https://github.com/vadimdemedes/ink" target="_blank" rel="noopener noreferrer"><img src="https://img.shields.io/badge/Ink-React%20CLI-61dafb?logo=react&logoColor=white" alt="Ink React CLI"></a>
|
|
6
|
+
<a href="LICENSE"><img src="https://img.shields.io/badge/License-Proprietary-red" alt="License"></a>
|
|
7
|
+
<img src="https://img.shields.io/badge/Platform-Windows%20%7C%20macOS%20%7C%20Linux-blue" alt="Platform">
|
|
6
8
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
A sophisticated Minecraft server plugin manager with multi-source update checking, sync/backup workflows, and a modern terminal UI.
|
|
9
|
+
A powerful Minecraft server plugin manager with multi-source update checking, sync/backup workflows, and a modern terminal UI.
|
|
10
10
|
|
|
11
11
|
## Features
|
|
12
12
|
|
|
13
|
-
### Core
|
|
14
|
-
- **Multi-Source
|
|
15
|
-
- **Server Sync**
|
|
16
|
-
- **Smart Backups**
|
|
17
|
-
- **Modern Terminal UI**
|
|
18
|
-
- **Plugin
|
|
19
|
-
- **
|
|
20
|
-
- **
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
- **
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
- **
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
- **
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
- **
|
|
33
|
-
- **Widget Dashboard**
|
|
34
|
-
- **Tags & Groups** - Organize plugins with custom tags and groups
|
|
35
|
-
- **Profiles** - Save and switch between different plugin configurations
|
|
36
|
-
- **Scheduled Updates** - Configure automatic update windows with major version handling
|
|
37
|
-
- **Data Import/Export** - Export and import plugin configurations
|
|
13
|
+
### Core
|
|
14
|
+
- **Multi-Source Updates** — Check updates from Spigot, Modrinth, GitHub, CurseForge, Hangar, Jenkins, and custom web manifests
|
|
15
|
+
- **Server Sync** — Synchronize plugins between production and test servers
|
|
16
|
+
- **Smart Backups** — Timestamped tar.gz backups with automatic cleanup
|
|
17
|
+
- **Modern Terminal UI** — Interactive, keyboard-driven interface with 9 tabs and customizable themes
|
|
18
|
+
- **Plugin Registry** — 100+ popular plugins pre-configured with verified sources
|
|
19
|
+
- **Auto-Updater** — Automatic update checking with one-command updates
|
|
20
|
+
- **Checksum Verification** — SHA-256 verification for all downloads
|
|
21
|
+
|
|
22
|
+
### Analytics & Health
|
|
23
|
+
- **Health Dashboard** — Plugin health scoring based on compatibility, security, and update status
|
|
24
|
+
- **Performance Analytics** — Server performance monitoring with metrics and alerts
|
|
25
|
+
- **Recommendations Engine** — Smart plugin recommendations based on your setup
|
|
26
|
+
- **Server Panel Integrations** — Connect to AMP, Pterodactyl, Crafty Controller, and MCSManager
|
|
27
|
+
|
|
28
|
+
### Organization & Workflows
|
|
29
|
+
- **Tags & Groups** — Organize plugins with custom tags and groups
|
|
30
|
+
- **Profiles** — Save and switch between different plugin configurations
|
|
31
|
+
- **Scheduled Updates** — Configure automatic update windows with major version handling
|
|
32
|
+
- **Data Import/Export** — Export and import plugin configurations
|
|
33
|
+
- **Widget Dashboard** — Customizable dashboard with health, analytics, and streaming widgets
|
|
38
34
|
|
|
39
35
|
## Installation
|
|
40
36
|
|
|
37
|
+
### Download Binary
|
|
38
|
+
|
|
39
|
+
| Platform | Download |
|
|
40
|
+
|----------|----------|
|
|
41
|
+
| Windows (x64) | [pluginator-windows-x64.zip](https://github.com/NindroidA/pluginator/releases/latest) |
|
|
42
|
+
| macOS (Intel) | [pluginator-darwin-x64.tar.gz](https://github.com/NindroidA/pluginator/releases/latest) |
|
|
43
|
+
| macOS (Apple Silicon) | [pluginator-darwin-arm64.tar.gz](https://github.com/NindroidA/pluginator/releases/latest) |
|
|
44
|
+
| Linux (x64) | [pluginator-linux-x64.tar.gz](https://github.com/NindroidA/pluginator/releases/latest) |
|
|
45
|
+
| Linux (ARM64) | [pluginator-linux-arm64.tar.gz](https://github.com/NindroidA/pluginator/releases/latest) |
|
|
46
|
+
|
|
41
47
|
### Quick Install
|
|
42
48
|
|
|
43
49
|
```bash
|
|
@@ -59,171 +65,34 @@ curl -fsSL https://pluginator.dev/install.sh | bash
|
|
|
59
65
|
|
|
60
66
|
See [Installation Guide](docs/INSTALLATION.md) for detailed instructions.
|
|
61
67
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
- [Bun](https://bun.sh) v1.1.0 or higher (or Node.js 18+)
|
|
65
|
-
|
|
66
|
-
## Usage
|
|
67
|
-
|
|
68
|
-
### Interactive Mode (Default)
|
|
69
|
-
|
|
70
|
-
```bash
|
|
71
|
-
pluginator
|
|
72
|
-
```
|
|
73
|
-
|
|
74
|
-
This launches the interactive terminal UI with tab-based navigation.
|
|
75
|
-
|
|
76
|
-
#### Keyboard Shortcuts
|
|
77
|
-
|
|
78
|
-
Pluginator uses a state-aware input system (v1.4.0) for consistent behavior.
|
|
79
|
-
|
|
80
|
-
| Key | Action | Notes |
|
|
81
|
-
|-----|--------|-------|
|
|
82
|
-
| `Tab` / `Shift+Tab` | Navigate between tabs | |
|
|
83
|
-
| `1-9` | Jump to tab | Home/Servers/Plugins/Updates/Logs/Sync/Health/Recs/Perf |
|
|
84
|
-
| `j` / `↓` | Move down in lists | |
|
|
85
|
-
| `k` / `↑` | Move up in lists | |
|
|
86
|
-
| `g` / `G` | Jump to top/bottom | |
|
|
87
|
-
| `Ctrl+C` | Quit (press twice) | 2s timeout |
|
|
88
|
-
| `Ctrl+D` | Jump to Logs | Quick access |
|
|
89
|
-
| `?` | Show help | |
|
|
90
|
-
| `r` | Refresh | Home tab only |
|
|
91
|
-
| `s` | Scan servers | Home tab only, throttled 500ms |
|
|
92
|
-
| `u` | Check updates | Home tab only, throttled 1000ms |
|
|
93
|
-
| `b` | Quick backup | Home tab only |
|
|
94
|
-
| `c` | View changelog | In Updates view |
|
|
95
|
-
| `Space` | Toggle selection | |
|
|
96
|
-
| `Enter` | Confirm | |
|
|
97
|
-
| `Esc` | Cancel | Context-aware |
|
|
98
|
-
| `/` or `:` | Open command palette | 25+ commands |
|
|
99
|
-
|
|
100
|
-
Keys are validated against the current UI state to prevent accidental actions during operations.
|
|
101
|
-
|
|
102
|
-
## CLI Commands
|
|
68
|
+
## Quick Start
|
|
103
69
|
|
|
104
70
|
```bash
|
|
105
|
-
#
|
|
71
|
+
# Initialize configuration
|
|
106
72
|
pluginator setup
|
|
107
73
|
|
|
108
|
-
#
|
|
109
|
-
pluginator
|
|
110
|
-
|
|
111
|
-
# Migrate plugins from test to production
|
|
112
|
-
pluginator migrate
|
|
113
|
-
|
|
114
|
-
# Create a backup
|
|
115
|
-
pluginator backup
|
|
116
|
-
|
|
117
|
-
# Check for updates
|
|
118
|
-
pluginator check-updates
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
## Configuration
|
|
122
|
-
|
|
123
|
-
Configuration file: `config/pluginator.config`
|
|
124
|
-
|
|
125
|
-
```ini
|
|
126
|
-
# Debug mode (0 = off, 1 = on)
|
|
127
|
-
PLUGINATOR_DEBUG=0
|
|
128
|
-
|
|
129
|
-
# Server paths
|
|
130
|
-
PROD_SERVER_PATH=./SERVER/prod
|
|
131
|
-
TEST_SERVER_PATH=./SERVER/test
|
|
132
|
-
|
|
133
|
-
# Backup settings
|
|
134
|
-
BACKUP_DIR=./data/backups
|
|
135
|
-
MAX_BACKUPS=5
|
|
136
|
-
|
|
137
|
-
# Logging
|
|
138
|
-
LOGS_DIR=./data/logs
|
|
139
|
-
MAX_LOG_DAYS=30
|
|
140
|
-
|
|
141
|
-
# Minecraft version for compatibility checks
|
|
142
|
-
MINECRAFT_VERSION=1.21.1
|
|
143
|
-
|
|
144
|
-
# Network settings
|
|
145
|
-
API_TIMEOUT=30
|
|
146
|
-
DOWNLOAD_THREADS=2
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
## Plugin Sources
|
|
150
|
-
|
|
151
|
-
Pluginator supports multiple plugin sources:
|
|
152
|
-
|
|
153
|
-
| Source | API | Rate Limit |
|
|
154
|
-
|--------|-----|------------|
|
|
155
|
-
| Spigot | Spiget API v2 | ~100 req/min |
|
|
156
|
-
| Modrinth | Modrinth API v2 | 300 req/min |
|
|
157
|
-
| GitHub | GitHub API v3 | 60/hr (unauth), 5000/hr (auth) |
|
|
158
|
-
| CurseForge | CurseForge API | Requires API key |
|
|
159
|
-
| Jenkins | Jenkins REST API | Server-dependent |
|
|
160
|
-
| Hangar | Hangar API v1 | Generous |
|
|
161
|
-
| Web Manifest | Custom JSON | Unlimited |
|
|
162
|
-
|
|
163
|
-
## Theming
|
|
164
|
-
|
|
165
|
-
Choose from four built-in color themes: `default`, `ocean`, `forest`, `sunset`
|
|
166
|
-
|
|
167
|
-
```bash
|
|
168
|
-
pluginator --theme ocean
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
Or set in `~/.pluginator/config.json`:
|
|
172
|
-
```json
|
|
173
|
-
{ "theme": "ocean" }
|
|
174
|
-
```
|
|
175
|
-
|
|
74
|
+
# Launch interactive UI
|
|
75
|
+
pluginator
|
|
176
76
|
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
```json
|
|
182
|
-
{
|
|
183
|
-
"plugins": [
|
|
184
|
-
{
|
|
185
|
-
"name": "EssentialsX",
|
|
186
|
-
"type": "spigot",
|
|
187
|
-
"resourceId": "9089"
|
|
188
|
-
},
|
|
189
|
-
{
|
|
190
|
-
"name": "LuckPerms",
|
|
191
|
-
"type": "modrinth",
|
|
192
|
-
"projectSlug": "luckperms"
|
|
193
|
-
},
|
|
194
|
-
{
|
|
195
|
-
"name": "Vault",
|
|
196
|
-
"type": "github",
|
|
197
|
-
"repoSlug": "MilkBowl/Vault"
|
|
198
|
-
}
|
|
199
|
-
]
|
|
200
|
-
}
|
|
77
|
+
# Or use CLI commands
|
|
78
|
+
pluginator scan --prod # Scan production server
|
|
79
|
+
pluginator check-updates # Check for plugin updates
|
|
80
|
+
pluginator sync # Sync prod to test
|
|
201
81
|
```
|
|
202
82
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
| Type | Required Fields | Description |
|
|
206
|
-
|------|-----------------|-------------|
|
|
207
|
-
| `spigot` | `resourceId` | Spiget resource ID |
|
|
208
|
-
| `modrinth` | `projectSlug` | Modrinth project slug |
|
|
209
|
-
| `github` | `repoSlug` | GitHub owner/repo format |
|
|
210
|
-
| `bukkit` | `id` | CurseForge project ID |
|
|
211
|
-
| `web` | `sourceUrl` | Custom manifest URL |
|
|
212
|
-
| `jenkins` | `job` | Jenkins job name |
|
|
213
|
-
| `manual` | - | Manual updates only |
|
|
83
|
+
## Keyboard Shortcuts
|
|
214
84
|
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
85
|
+
| Key | Action |
|
|
86
|
+
|-----|--------|
|
|
87
|
+
| `1-9` | Switch tabs (Home/Servers/Plugins/Updates/Logs/Stats/Health/Recs/Perf) |
|
|
88
|
+
| `:` or `/` | Open command palette (25+ commands) |
|
|
89
|
+
| `j` / `k` or `↑` / `↓` | Navigate lists |
|
|
90
|
+
| `g` / `G` | Jump to top/bottom |
|
|
91
|
+
| `?` | Show help |
|
|
92
|
+
| `Ctrl+C` (2x) | Quit |
|
|
222
93
|
|
|
223
94
|
## Tier System
|
|
224
95
|
|
|
225
|
-
Pluginator offers tiered subscriptions for different usage levels:
|
|
226
|
-
|
|
227
96
|
| Tier | Price | Checks/Day | Downloads/Day |
|
|
228
97
|
|------|-------|------------|---------------|
|
|
229
98
|
| Free | $0 | 10 | 5 |
|
|
@@ -235,34 +104,28 @@ See [Tier System](docs/TIER_SYSTEM.md) for details.
|
|
|
235
104
|
|
|
236
105
|
## Documentation
|
|
237
106
|
|
|
238
|
-
|
|
239
|
-
- [
|
|
240
|
-
- [
|
|
241
|
-
- [
|
|
107
|
+
- [Installation](docs/INSTALLATION.md) — Quick install for all platforms
|
|
108
|
+
- [User Guide](docs/USER_GUIDE.md) — Complete usage documentation
|
|
109
|
+
- [Commands Reference](docs/COMMANDS.md) — Full command palette reference
|
|
110
|
+
- [Plugin Registry](docs/PLUGIN_REGISTRY.md) — Curated plugin database
|
|
111
|
+
- [Tier System](docs/TIER_SYSTEM.md) — Subscription tiers and features
|
|
112
|
+
- [Error Codes](docs/ERROR_CODES.md) — Error code reference (PLG-NNNN)
|
|
113
|
+
- [Security](docs/SECURITY.md) — Security policy and reporting
|
|
114
|
+
- [Changelog](docs/CHANGELOG.md) — Version history
|
|
242
115
|
|
|
243
|
-
|
|
244
|
-
- [Health System](docs/HEALTH_SYSTEM.md) - Plugin health scoring and dashboard
|
|
245
|
-
- [Analytics](docs/ANALYTICS.md) - Performance monitoring and alerts
|
|
246
|
-
- [Templates](docs/TEMPLATES.md) - Plugin configuration templates
|
|
247
|
-
- [Organization](docs/ORGANIZATION.md) - Tags, groups, profiles, and favorites
|
|
116
|
+
## Support
|
|
248
117
|
|
|
249
|
-
|
|
250
|
-
- [
|
|
251
|
-
- [
|
|
252
|
-
- [
|
|
253
|
-
- [File Organization](docs/FILE_ORGANIZATION.md) - Where files are stored
|
|
254
|
-
- [Auto-Updater](docs/AUTO_UPDATER.md) - Keeping Pluginator up to date
|
|
255
|
-
- [Security](docs/SECURITY.md) - Security considerations and best practices
|
|
256
|
-
- [Changelog](docs/CHANGELOG.md) - Version history
|
|
118
|
+
- **Bug Reports:** [Open an issue](https://github.com/NindroidA/pluginator/issues/new?template=bug-report.yml)
|
|
119
|
+
- **Feature Requests:** [Open an issue](https://github.com/NindroidA/pluginator/issues/new?template=feature-request.yml)
|
|
120
|
+
- **General Feedback:** [Open an issue](https://github.com/NindroidA/pluginator/issues/new?template=general-feedback.yml)
|
|
121
|
+
- **Plugin Partnerships:** [Partnership request](https://github.com/NindroidA/pluginator/issues/new?template=plugin-developer-request.yml)
|
|
257
122
|
|
|
258
|
-
##
|
|
123
|
+
## Development
|
|
259
124
|
|
|
260
|
-
|
|
125
|
+
This project's development has been accelerated through the use of AI-assisted development tools, including GitHub Copilot, Claude Code, and other AI programming assistants. These tools have enhanced productivity while maintaining code quality and best practices. All AI-generated code has been reviewed, tested, and refined to ensure reliability.
|
|
261
126
|
|
|
262
127
|
## License
|
|
263
128
|
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
## Development
|
|
129
|
+
Copyright (c) 2026 Nindroid Systems (Andrew Curtis - NindroidA). All Rights Reserved.
|
|
267
130
|
|
|
268
|
-
This
|
|
131
|
+
This is proprietary software. See [LICENSE](LICENSE) for details.
|
package/dist/cli.js
CHANGED
|
@@ -2359,7 +2359,7 @@ var require_commander = __commonJS((exports) => {
|
|
|
2359
2359
|
});
|
|
2360
2360
|
|
|
2361
2361
|
// package.json
|
|
2362
|
-
var version = "2.3.
|
|
2362
|
+
var version = "2.3.2", package_default;
|
|
2363
2363
|
var init_package = __esm(() => {
|
|
2364
2364
|
package_default = {
|
|
2365
2365
|
name: "@nindroidsystems/pluginator",
|
|
@@ -2383,7 +2383,7 @@ var init_package = __esm(() => {
|
|
|
2383
2383
|
"data/defaults"
|
|
2384
2384
|
],
|
|
2385
2385
|
scripts: {
|
|
2386
|
-
start: "rm -rf dist && bun build src/cli.ts --outdir dist --target bun && tsc --emitDeclarationOnly && bun run dist/cli.js",
|
|
2386
|
+
start: "rm -rf dist && bun build src/cli.ts --outdir dist --target bun --external @node-rs/crc32 && tsc --emitDeclarationOnly && bun run dist/cli.js",
|
|
2387
2387
|
dev: "./scripts/build-dev.sh && bun run src/dev/cli.ts",
|
|
2388
2388
|
typecheck: "tsc --noEmit",
|
|
2389
2389
|
lint: "biome check .",
|
|
@@ -2392,7 +2392,7 @@ var init_package = __esm(() => {
|
|
|
2392
2392
|
test: "bun test",
|
|
2393
2393
|
"test:coverage": "bun test --coverage",
|
|
2394
2394
|
"test:dev": "bun test tests/dev",
|
|
2395
|
-
build: "rm -rf dist && bun build src/cli.ts --outdir dist --target bun && tsc --emitDeclarationOnly",
|
|
2395
|
+
build: "rm -rf dist && bun build src/cli.ts --outdir dist --target bun --external @node-rs/crc32 && tsc --emitDeclarationOnly",
|
|
2396
2396
|
prepub: "bun run build",
|
|
2397
2397
|
clean: "./scripts/clean.sh",
|
|
2398
2398
|
"clean:all": "./scripts/clean.sh --all",
|
|
@@ -11808,348 +11808,6 @@ var require_simple_invariant = __commonJS((exports, module) => {
|
|
|
11808
11808
|
};
|
|
11809
11809
|
});
|
|
11810
11810
|
|
|
11811
|
-
// node_modules/@node-rs/crc32-linux-x64-musl/crc32.linux-x64-musl.node
|
|
11812
|
-
var require_crc32_linux_x64_musl = __commonJS((exports, module) => {
|
|
11813
|
-
module.exports = __require("./crc32.linux-x64-musl-4qzbwpa3.node");
|
|
11814
|
-
});
|
|
11815
|
-
|
|
11816
|
-
// node_modules/@node-rs/crc32-linux-x64-gnu/crc32.linux-x64-gnu.node
|
|
11817
|
-
var require_crc32_linux_x64_gnu = __commonJS((exports, module) => {
|
|
11818
|
-
module.exports = __require("./crc32.linux-x64-gnu-23wcsc5b.node");
|
|
11819
|
-
});
|
|
11820
|
-
|
|
11821
|
-
// node_modules/@node-rs/crc32/index.js
|
|
11822
|
-
var require_crc32 = __commonJS((exports, module) => {
|
|
11823
|
-
var __filename = "/home/runner/work/pluginator-dev/pluginator-dev/node_modules/@node-rs/crc32/index.js";
|
|
11824
|
-
var { createRequire } = __require("module");
|
|
11825
|
-
__require = createRequire(__filename);
|
|
11826
|
-
var { readFileSync: readFileSync2 } = __require("fs");
|
|
11827
|
-
var nativeBinding = null;
|
|
11828
|
-
var loadErrors = [];
|
|
11829
|
-
var isMusl = () => {
|
|
11830
|
-
let musl = false;
|
|
11831
|
-
if (process.platform === "linux") {
|
|
11832
|
-
musl = isMuslFromFilesystem();
|
|
11833
|
-
if (musl === null) {
|
|
11834
|
-
musl = isMuslFromReport();
|
|
11835
|
-
}
|
|
11836
|
-
if (musl === null) {
|
|
11837
|
-
musl = isMuslFromChildProcess();
|
|
11838
|
-
}
|
|
11839
|
-
}
|
|
11840
|
-
return musl;
|
|
11841
|
-
};
|
|
11842
|
-
var isFileMusl = (f) => f.includes("libc.musl-") || f.includes("ld-musl-");
|
|
11843
|
-
var isMuslFromFilesystem = () => {
|
|
11844
|
-
try {
|
|
11845
|
-
return readFileSync2("/usr/bin/ldd", "utf-8").includes("musl");
|
|
11846
|
-
} catch {
|
|
11847
|
-
return null;
|
|
11848
|
-
}
|
|
11849
|
-
};
|
|
11850
|
-
var isMuslFromReport = () => {
|
|
11851
|
-
const report = typeof process.report.getReport === "function" ? process.report.getReport() : null;
|
|
11852
|
-
if (!report) {
|
|
11853
|
-
return null;
|
|
11854
|
-
}
|
|
11855
|
-
if (report.header && report.header.glibcVersionRuntime) {
|
|
11856
|
-
return false;
|
|
11857
|
-
}
|
|
11858
|
-
if (Array.isArray(report.sharedObjects)) {
|
|
11859
|
-
if (report.sharedObjects.some(isFileMusl)) {
|
|
11860
|
-
return true;
|
|
11861
|
-
}
|
|
11862
|
-
}
|
|
11863
|
-
return false;
|
|
11864
|
-
};
|
|
11865
|
-
var isMuslFromChildProcess = () => {
|
|
11866
|
-
try {
|
|
11867
|
-
return __require("child_process").execSync("ldd --version", { encoding: "utf8" }).includes("musl");
|
|
11868
|
-
} catch (e) {
|
|
11869
|
-
return false;
|
|
11870
|
-
}
|
|
11871
|
-
};
|
|
11872
|
-
function requireNative() {
|
|
11873
|
-
if (process.platform === "android") {
|
|
11874
|
-
if (process.arch === "arm64") {
|
|
11875
|
-
try {
|
|
11876
|
-
return (()=>{throw new Error("Cannot require module "+"./crc32.android-arm64.node");})();
|
|
11877
|
-
} catch (e) {
|
|
11878
|
-
loadErrors.push(e);
|
|
11879
|
-
}
|
|
11880
|
-
try {
|
|
11881
|
-
return (()=>{throw new Error("Cannot require module "+"@node-rs/crc32-android-arm64");})();
|
|
11882
|
-
} catch (e) {
|
|
11883
|
-
loadErrors.push(e);
|
|
11884
|
-
}
|
|
11885
|
-
} else if (process.arch === "arm") {
|
|
11886
|
-
try {
|
|
11887
|
-
return (()=>{throw new Error("Cannot require module "+"./crc32.android-arm-eabi.node");})();
|
|
11888
|
-
} catch (e) {
|
|
11889
|
-
loadErrors.push(e);
|
|
11890
|
-
}
|
|
11891
|
-
try {
|
|
11892
|
-
return (()=>{throw new Error("Cannot require module "+"@node-rs/crc32-android-arm-eabi");})();
|
|
11893
|
-
} catch (e) {
|
|
11894
|
-
loadErrors.push(e);
|
|
11895
|
-
}
|
|
11896
|
-
} else {
|
|
11897
|
-
loadErrors.push(new Error(`Unsupported architecture on Android ${process.arch}`));
|
|
11898
|
-
}
|
|
11899
|
-
} else if (process.platform === "win32") {
|
|
11900
|
-
if (process.arch === "x64") {
|
|
11901
|
-
try {
|
|
11902
|
-
return (()=>{throw new Error("Cannot require module "+"./crc32.win32-x64-msvc.node");})();
|
|
11903
|
-
} catch (e) {
|
|
11904
|
-
loadErrors.push(e);
|
|
11905
|
-
}
|
|
11906
|
-
try {
|
|
11907
|
-
return (()=>{throw new Error("Cannot require module "+"@node-rs/crc32-win32-x64-msvc");})();
|
|
11908
|
-
} catch (e) {
|
|
11909
|
-
loadErrors.push(e);
|
|
11910
|
-
}
|
|
11911
|
-
} else if (process.arch === "ia32") {
|
|
11912
|
-
try {
|
|
11913
|
-
return (()=>{throw new Error("Cannot require module "+"./crc32.win32-ia32-msvc.node");})();
|
|
11914
|
-
} catch (e) {
|
|
11915
|
-
loadErrors.push(e);
|
|
11916
|
-
}
|
|
11917
|
-
try {
|
|
11918
|
-
return (()=>{throw new Error("Cannot require module "+"@node-rs/crc32-win32-ia32-msvc");})();
|
|
11919
|
-
} catch (e) {
|
|
11920
|
-
loadErrors.push(e);
|
|
11921
|
-
}
|
|
11922
|
-
} else if (process.arch === "arm64") {
|
|
11923
|
-
try {
|
|
11924
|
-
return (()=>{throw new Error("Cannot require module "+"./crc32.win32-arm64-msvc.node");})();
|
|
11925
|
-
} catch (e) {
|
|
11926
|
-
loadErrors.push(e);
|
|
11927
|
-
}
|
|
11928
|
-
try {
|
|
11929
|
-
return (()=>{throw new Error("Cannot require module "+"@node-rs/crc32-win32-arm64-msvc");})();
|
|
11930
|
-
} catch (e) {
|
|
11931
|
-
loadErrors.push(e);
|
|
11932
|
-
}
|
|
11933
|
-
} else {
|
|
11934
|
-
loadErrors.push(new Error(`Unsupported architecture on Windows: ${process.arch}`));
|
|
11935
|
-
}
|
|
11936
|
-
} else if (process.platform === "darwin") {
|
|
11937
|
-
try {
|
|
11938
|
-
return (()=>{throw new Error("Cannot require module "+"./crc32.darwin-universal.node");})();
|
|
11939
|
-
} catch (e) {
|
|
11940
|
-
loadErrors.push(e);
|
|
11941
|
-
}
|
|
11942
|
-
try {
|
|
11943
|
-
return (()=>{throw new Error("Cannot require module "+"@node-rs/crc32-darwin-universal");})();
|
|
11944
|
-
} catch (e) {
|
|
11945
|
-
loadErrors.push(e);
|
|
11946
|
-
}
|
|
11947
|
-
if (process.arch === "x64") {
|
|
11948
|
-
try {
|
|
11949
|
-
return (()=>{throw new Error("Cannot require module "+"./crc32.darwin-x64.node");})();
|
|
11950
|
-
} catch (e) {
|
|
11951
|
-
loadErrors.push(e);
|
|
11952
|
-
}
|
|
11953
|
-
try {
|
|
11954
|
-
return (()=>{throw new Error("Cannot require module "+"@node-rs/crc32-darwin-x64");})();
|
|
11955
|
-
} catch (e) {
|
|
11956
|
-
loadErrors.push(e);
|
|
11957
|
-
}
|
|
11958
|
-
} else if (process.arch === "arm64") {
|
|
11959
|
-
try {
|
|
11960
|
-
return (()=>{throw new Error("Cannot require module "+"./crc32.darwin-arm64.node");})();
|
|
11961
|
-
} catch (e) {
|
|
11962
|
-
loadErrors.push(e);
|
|
11963
|
-
}
|
|
11964
|
-
try {
|
|
11965
|
-
return (()=>{throw new Error("Cannot require module "+"@node-rs/crc32-darwin-arm64");})();
|
|
11966
|
-
} catch (e) {
|
|
11967
|
-
loadErrors.push(e);
|
|
11968
|
-
}
|
|
11969
|
-
} else {
|
|
11970
|
-
loadErrors.push(new Error(`Unsupported architecture on macOS: ${process.arch}`));
|
|
11971
|
-
}
|
|
11972
|
-
} else if (process.platform === "freebsd") {
|
|
11973
|
-
if (process.arch === "x64") {
|
|
11974
|
-
try {
|
|
11975
|
-
return (()=>{throw new Error("Cannot require module "+"./crc32.freebsd-x64.node");})();
|
|
11976
|
-
} catch (e) {
|
|
11977
|
-
loadErrors.push(e);
|
|
11978
|
-
}
|
|
11979
|
-
try {
|
|
11980
|
-
return (()=>{throw new Error("Cannot require module "+"@node-rs/crc32-freebsd-x64");})();
|
|
11981
|
-
} catch (e) {
|
|
11982
|
-
loadErrors.push(e);
|
|
11983
|
-
}
|
|
11984
|
-
} else if (process.arch === "arm64") {
|
|
11985
|
-
try {
|
|
11986
|
-
return (()=>{throw new Error("Cannot require module "+"./crc32.freebsd-arm64.node");})();
|
|
11987
|
-
} catch (e) {
|
|
11988
|
-
loadErrors.push(e);
|
|
11989
|
-
}
|
|
11990
|
-
try {
|
|
11991
|
-
return (()=>{throw new Error("Cannot require module "+"@node-rs/crc32-freebsd-arm64");})();
|
|
11992
|
-
} catch (e) {
|
|
11993
|
-
loadErrors.push(e);
|
|
11994
|
-
}
|
|
11995
|
-
} else {
|
|
11996
|
-
loadErrors.push(new Error(`Unsupported architecture on FreeBSD: ${process.arch}`));
|
|
11997
|
-
}
|
|
11998
|
-
} else if (process.platform === "linux") {
|
|
11999
|
-
if (process.arch === "x64") {
|
|
12000
|
-
if (isMusl()) {
|
|
12001
|
-
try {
|
|
12002
|
-
return (()=>{throw new Error("Cannot require module "+"./crc32.linux-x64-musl.node");})();
|
|
12003
|
-
} catch (e) {
|
|
12004
|
-
loadErrors.push(e);
|
|
12005
|
-
}
|
|
12006
|
-
try {
|
|
12007
|
-
return require_crc32_linux_x64_musl();
|
|
12008
|
-
} catch (e) {
|
|
12009
|
-
loadErrors.push(e);
|
|
12010
|
-
}
|
|
12011
|
-
} else {
|
|
12012
|
-
try {
|
|
12013
|
-
return (()=>{throw new Error("Cannot require module "+"./crc32.linux-x64-gnu.node");})();
|
|
12014
|
-
} catch (e) {
|
|
12015
|
-
loadErrors.push(e);
|
|
12016
|
-
}
|
|
12017
|
-
try {
|
|
12018
|
-
return require_crc32_linux_x64_gnu();
|
|
12019
|
-
} catch (e) {
|
|
12020
|
-
loadErrors.push(e);
|
|
12021
|
-
}
|
|
12022
|
-
}
|
|
12023
|
-
} else if (process.arch === "arm64") {
|
|
12024
|
-
if (isMusl()) {
|
|
12025
|
-
try {
|
|
12026
|
-
return (()=>{throw new Error("Cannot require module "+"./crc32.linux-arm64-musl.node");})();
|
|
12027
|
-
} catch (e) {
|
|
12028
|
-
loadErrors.push(e);
|
|
12029
|
-
}
|
|
12030
|
-
try {
|
|
12031
|
-
return (()=>{throw new Error("Cannot require module "+"@node-rs/crc32-linux-arm64-musl");})();
|
|
12032
|
-
} catch (e) {
|
|
12033
|
-
loadErrors.push(e);
|
|
12034
|
-
}
|
|
12035
|
-
} else {
|
|
12036
|
-
try {
|
|
12037
|
-
return (()=>{throw new Error("Cannot require module "+"./crc32.linux-arm64-gnu.node");})();
|
|
12038
|
-
} catch (e) {
|
|
12039
|
-
loadErrors.push(e);
|
|
12040
|
-
}
|
|
12041
|
-
try {
|
|
12042
|
-
return (()=>{throw new Error("Cannot require module "+"@node-rs/crc32-linux-arm64-gnu");})();
|
|
12043
|
-
} catch (e) {
|
|
12044
|
-
loadErrors.push(e);
|
|
12045
|
-
}
|
|
12046
|
-
}
|
|
12047
|
-
} else if (process.arch === "arm") {
|
|
12048
|
-
if (isMusl()) {
|
|
12049
|
-
try {
|
|
12050
|
-
return (()=>{throw new Error("Cannot require module "+"./crc32.linux-arm-musleabihf.node");})();
|
|
12051
|
-
} catch (e) {
|
|
12052
|
-
loadErrors.push(e);
|
|
12053
|
-
}
|
|
12054
|
-
try {
|
|
12055
|
-
return (()=>{throw new Error("Cannot require module "+"@node-rs/crc32-linux-arm-musleabihf");})();
|
|
12056
|
-
} catch (e) {
|
|
12057
|
-
loadErrors.push(e);
|
|
12058
|
-
}
|
|
12059
|
-
} else {
|
|
12060
|
-
try {
|
|
12061
|
-
return (()=>{throw new Error("Cannot require module "+"./crc32.linux-arm-gnueabihf.node");})();
|
|
12062
|
-
} catch (e) {
|
|
12063
|
-
loadErrors.push(e);
|
|
12064
|
-
}
|
|
12065
|
-
try {
|
|
12066
|
-
return (()=>{throw new Error("Cannot require module "+"@node-rs/crc32-linux-arm-gnueabihf");})();
|
|
12067
|
-
} catch (e) {
|
|
12068
|
-
loadErrors.push(e);
|
|
12069
|
-
}
|
|
12070
|
-
}
|
|
12071
|
-
} else if (process.arch === "riscv64") {
|
|
12072
|
-
if (isMusl()) {
|
|
12073
|
-
try {
|
|
12074
|
-
return (()=>{throw new Error("Cannot require module "+"./crc32.linux-riscv64-musl.node");})();
|
|
12075
|
-
} catch (e) {
|
|
12076
|
-
loadErrors.push(e);
|
|
12077
|
-
}
|
|
12078
|
-
try {
|
|
12079
|
-
return (()=>{throw new Error("Cannot require module "+"@node-rs/crc32-linux-riscv64-musl");})();
|
|
12080
|
-
} catch (e) {
|
|
12081
|
-
loadErrors.push(e);
|
|
12082
|
-
}
|
|
12083
|
-
} else {
|
|
12084
|
-
try {
|
|
12085
|
-
return (()=>{throw new Error("Cannot require module "+"./crc32.linux-riscv64-gnu.node");})();
|
|
12086
|
-
} catch (e) {
|
|
12087
|
-
loadErrors.push(e);
|
|
12088
|
-
}
|
|
12089
|
-
try {
|
|
12090
|
-
return (()=>{throw new Error("Cannot require module "+"@node-rs/crc32-linux-riscv64-gnu");})();
|
|
12091
|
-
} catch (e) {
|
|
12092
|
-
loadErrors.push(e);
|
|
12093
|
-
}
|
|
12094
|
-
}
|
|
12095
|
-
} else if (process.arch === "ppc64") {
|
|
12096
|
-
try {
|
|
12097
|
-
return (()=>{throw new Error("Cannot require module "+"./crc32.linux-ppc64-gnu.node");})();
|
|
12098
|
-
} catch (e) {
|
|
12099
|
-
loadErrors.push(e);
|
|
12100
|
-
}
|
|
12101
|
-
try {
|
|
12102
|
-
return (()=>{throw new Error("Cannot require module "+"@node-rs/crc32-linux-ppc64-gnu");})();
|
|
12103
|
-
} catch (e) {
|
|
12104
|
-
loadErrors.push(e);
|
|
12105
|
-
}
|
|
12106
|
-
} else if (process.arch === "s390x") {
|
|
12107
|
-
try {
|
|
12108
|
-
return (()=>{throw new Error("Cannot require module "+"./crc32.linux-s390x-gnu.node");})();
|
|
12109
|
-
} catch (e) {
|
|
12110
|
-
loadErrors.push(e);
|
|
12111
|
-
}
|
|
12112
|
-
try {
|
|
12113
|
-
return (()=>{throw new Error("Cannot require module "+"@node-rs/crc32-linux-s390x-gnu");})();
|
|
12114
|
-
} catch (e) {
|
|
12115
|
-
loadErrors.push(e);
|
|
12116
|
-
}
|
|
12117
|
-
} else {
|
|
12118
|
-
loadErrors.push(new Error(`Unsupported architecture on Linux: ${process.arch}`));
|
|
12119
|
-
}
|
|
12120
|
-
} else {
|
|
12121
|
-
loadErrors.push(new Error(`Unsupported OS: ${process.platform}, architecture: ${process.arch}`));
|
|
12122
|
-
}
|
|
12123
|
-
}
|
|
12124
|
-
nativeBinding = requireNative();
|
|
12125
|
-
if (!nativeBinding || process.env.NAPI_RS_FORCE_WASI) {
|
|
12126
|
-
try {
|
|
12127
|
-
nativeBinding = (()=>{throw new Error("Cannot require module "+"./crc32.wasi.cjs");})();
|
|
12128
|
-
} catch (err) {
|
|
12129
|
-
if (process.env.NAPI_RS_FORCE_WASI) {
|
|
12130
|
-
loadErrors.push(err);
|
|
12131
|
-
}
|
|
12132
|
-
}
|
|
12133
|
-
if (!nativeBinding) {
|
|
12134
|
-
try {
|
|
12135
|
-
nativeBinding = (()=>{throw new Error("Cannot require module "+"@node-rs/crc32-wasm32-wasi");})();
|
|
12136
|
-
} catch (err) {
|
|
12137
|
-
if (process.env.NAPI_RS_FORCE_WASI) {
|
|
12138
|
-
loadErrors.push(err);
|
|
12139
|
-
}
|
|
12140
|
-
}
|
|
12141
|
-
}
|
|
12142
|
-
}
|
|
12143
|
-
if (!nativeBinding) {
|
|
12144
|
-
if (loadErrors.length > 0) {
|
|
12145
|
-
throw new Error("Failed to load native binding", { cause: loadErrors });
|
|
12146
|
-
}
|
|
12147
|
-
throw new Error(`Failed to load native binding`);
|
|
12148
|
-
}
|
|
12149
|
-
exports.crc32 = nativeBinding.crc32;
|
|
12150
|
-
exports.crc32c = nativeBinding.crc32c;
|
|
12151
|
-
});
|
|
12152
|
-
|
|
12153
11811
|
// node_modules/yauzl-promise/lib/shared.js
|
|
12154
11812
|
var require_shared = __commonJS((exports, module) => {
|
|
12155
11813
|
var INTERNAL_SYMBOL = {};
|
|
@@ -12209,7 +11867,7 @@ var require_utils = __commonJS((exports, module) => {
|
|
|
12209
11867
|
var require_entry = __commonJS((exports, module) => {
|
|
12210
11868
|
var { createInflateRaw } = __require("zlib");
|
|
12211
11869
|
var { Transform: TransformStream, pipeline } = __require("stream");
|
|
12212
|
-
var calculateCrc32 =
|
|
11870
|
+
var calculateCrc32 = __require("@node-rs/crc32").crc32;
|
|
12213
11871
|
var { isObject: isObject2, isBoolean: isBoolean2, isPositiveInteger, isPositiveIntegerOrZero } = require_is_it_type();
|
|
12214
11872
|
var assert = require_simple_invariant();
|
|
12215
11873
|
var { INTERNAL_SYMBOL, uncertainUncompressedSizeEntriesRegistry } = require_shared();
|
|
@@ -12390,7 +12048,7 @@ var require_entry = __commonJS((exports, module) => {
|
|
|
12390
12048
|
|
|
12391
12049
|
// node_modules/yauzl-promise/lib/zip.js
|
|
12392
12050
|
var require_zip = __commonJS((exports, module) => {
|
|
12393
|
-
var calculateCrc32 =
|
|
12051
|
+
var calculateCrc32 = __require("@node-rs/crc32").crc32;
|
|
12394
12052
|
var assert = require_simple_invariant();
|
|
12395
12053
|
var { isPositiveIntegerOrZero } = require_is_it_type();
|
|
12396
12054
|
var Entry = require_entry();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nindroidsystems/pluginator",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.2",
|
|
4
4
|
"description": "A sophisticated Minecraft server plugin manager with multi-source update checking, sync/backup workflows, and a modern terminal UI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
"data/defaults"
|
|
21
21
|
],
|
|
22
22
|
"scripts": {
|
|
23
|
-
"start": "rm -rf dist && bun build src/cli.ts --outdir dist --target bun && tsc --emitDeclarationOnly && bun run dist/cli.js",
|
|
23
|
+
"start": "rm -rf dist && bun build src/cli.ts --outdir dist --target bun --external @node-rs/crc32 && tsc --emitDeclarationOnly && bun run dist/cli.js",
|
|
24
24
|
"dev": "./scripts/build-dev.sh && bun run src/dev/cli.ts",
|
|
25
25
|
"typecheck": "tsc --noEmit",
|
|
26
26
|
"lint": "biome check .",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"test": "bun test",
|
|
30
30
|
"test:coverage": "bun test --coverage",
|
|
31
31
|
"test:dev": "bun test tests/dev",
|
|
32
|
-
"build": "rm -rf dist && bun build src/cli.ts --outdir dist --target bun && tsc --emitDeclarationOnly",
|
|
32
|
+
"build": "rm -rf dist && bun build src/cli.ts --outdir dist --target bun --external @node-rs/crc32 && tsc --emitDeclarationOnly",
|
|
33
33
|
"prepub": "bun run build",
|
|
34
34
|
"clean": "./scripts/clean.sh",
|
|
35
35
|
"clean:all": "./scripts/clean.sh --all",
|
|
Binary file
|
|
Binary file
|