@ludeo/cli 1.4.7 → 1.4.8

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 CHANGED
@@ -27,7 +27,33 @@ ludeo auth status
27
27
  ```
28
28
 
29
29
  ### 2. Upload Your Build
30
- Upload your game build with a simple command. The CLI supports three build creation types:
30
+
31
+ #### Interactive Mode (Recommended for First-Time Users)
32
+ Simply run the upload command without flags to start the interactive wizard:
33
+ ```bash
34
+ ludeo builds upload
35
+ ```
36
+
37
+ The interactive mode will guide you through:
38
+ 1. **Game ID** - Enter your game's unique identifier
39
+ 2. **Build Creation Type** - Choose between `new`, or `sdkFree`
40
+ 3. **Build Type** - Select `major` or `minor` (with warning for major builds)
41
+ 4. **Major Version Selection** - If creating a minor build, select from existing major versions
42
+ 5. **Game Version** - Enter the version number (e.g., 1.2.3)
43
+ 6. **SDK Version** - Enter the Ludeo SDK version (not required for sdkFree)
44
+ 7. **Executable Path** - Path to your game executable relative to build directory
45
+ 8. **Local Directory** - Path to your build files
46
+ 9. **Changes Description** - Optional description of what changed
47
+
48
+ Before uploading, you'll see a summary of all options and the equivalent CLI command for future use in scripts or CI/CD pipelines.
49
+
50
+ To disable interactive mode (for CI/CD or scripts):
51
+ ```bash
52
+ ludeo builds upload --no-interactive [flags...]
53
+ ```
54
+
55
+ #### Command-Line Mode
56
+ Upload your game build with a simple command. The CLI supports two build creation types (**modification builds are not supported from the CLI—use [Studio Labs](https://studio.ludeo.com) for those**):
31
57
 
32
58
  #### New Build (Complete build from scratch) - DEFAULT
33
59
  ```bash
@@ -52,21 +78,6 @@ ludeo builds upload \
52
78
  --sdk-version "2.0.0"
53
79
  ```
54
80
 
55
- #### Modification Build (Based on an existing build)
56
- ```bash
57
- ludeo builds upload \
58
- --game-id YOUR_GAME_ID \
59
- --exec-path game.exe \
60
- --local-directory ./builds \
61
- --build-creation-type modification \
62
- --build-type minor \
63
- --game-version "1.2.4" \
64
- --sdk-version "2.0.0" \
65
- --base-build-id EXISTING_BUILD_ID \
66
- --major-build-id MAJOR_BUILD_ID \
67
- --changes-description "Minor bug fixes"
68
- ```
69
-
70
81
  #### SDK Free Build (Performance testing without Ludeo SDK)
71
82
  ```bash
72
83
  ludeo builds upload \
@@ -81,11 +92,12 @@ ludeo builds upload \
81
92
 
82
93
  ### 3. Build Types and Requirements
83
94
 
84
- **Build Creation Types:**
95
+ **Build Creation Types (CLI):**
85
96
  - `new`: Complete build from scratch (requires game-version, sdk-version, build-type) **[DEFAULT]**
86
- - `modification`: Based on an existing build (requires base-build-id, game-version, sdk-version, build-type)
87
97
  - `sdkFree`: Performance testing without Ludeo SDK (requires game-version, build-type; sdk-version not required)
88
98
 
99
+ **Note:** Modification builds (builds based on an existing build) are **not supported from the CLI**. Create modification builds from [Studio Labs](https://studio.ludeo.com) only.
100
+
89
101
  **Build Types:**
90
102
  - `major`: Major version build
91
103
  - `minor`: Minor version build (requires major-build-id)
@@ -93,6 +105,26 @@ ludeo builds upload \
93
105
  **Additional Flags:**
94
106
  - `--runtime-environment`: Runtime environment (windows/proton) - only available for Ludeo admins
95
107
  - `--request-id`: Optional request ID for tracking
108
+ - `--no-interactive`: Disable interactive prompts (for CI/CD or scripts)
109
+ - `--dry-run`: Preview the upload without making any changes
110
+
111
+ #### Dry-Run Mode
112
+ Preview what would be uploaded without making any changes:
113
+ ```bash
114
+ ludeo builds upload --dry-run \
115
+ --game-id YOUR_GAME_ID \
116
+ --exec-path game.exe \
117
+ --local-directory ./builds \
118
+ --build-type major \
119
+ --game-version "1.2.3" \
120
+ --sdk-version "2.0.0"
121
+ ```
122
+
123
+ Dry-run will:
124
+ - Validate all parameters and directory structure
125
+ - Scan and display all files that would be uploaded
126
+ - Show total file count and size
127
+ - NOT create any build metadata or upload files
96
128
 
97
129
  ### 4. Manage Builds
98
130
  ```bash
@@ -111,9 +143,11 @@ ludeo auth logout
111
143
 
112
144
  ## Features
113
145
 
146
+ - **Interactive Mode**: Guided wizard for easy build uploads - just run `ludeo builds upload` and follow the prompts
114
147
  - **Easy Upload**: Upload complete game builds with a single command
115
148
  - **Large File Support**: Automatically handles large files and multiple files
116
149
  - **Progress Tracking**: Real-time progress updates during uploads
150
+ - **Dry-Run Mode**: Preview uploads without making changes using `--dry-run`
117
151
  - **Cross-Platform**: Works on Windows, macOS, and Linux
118
152
  - **Automatic Updates**: Keep your CLI up to date with npm
119
153
 
@@ -230,4 +264,3 @@ Need help? Here's how to get support:
230
264
  3. Contact the Ludeo platform team for additional assistance
231
265
 
232
266
  For detailed documentation and advanced usage, visit the [Ludeo Developer Portal](https://developers.ludeo.com).
233
-
package/README.npm.md ADDED
@@ -0,0 +1,222 @@
1
+ # Ludeo CLI
2
+
3
+ The official Ludeo CLI tool for uploading game builds to the Ludeo platform. Install via npm for easy setup and automatic updates.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install -g @ludeo/cli
9
+ ```
10
+
11
+ Verify the installation:
12
+ ```bash
13
+ ludeo version
14
+ ```
15
+
16
+ ## Quick Start
17
+
18
+ ### 1. Authentication
19
+ Get your access token from the Ludeo platform and save it:
20
+ ```bash
21
+ ludeo auth set-token --access-token YOUR_ACCESS_TOKEN
22
+ ```
23
+
24
+ You can also check if a token is saved:
25
+ ```bash
26
+ ludeo auth status
27
+ ```
28
+
29
+ ### 2. Upload Your Build
30
+
31
+ #### Interactive Mode (Recommended for First-Time Users)
32
+ Simply run the upload command without flags to start the interactive wizard:
33
+ ```bash
34
+ ludeo builds upload
35
+ ```
36
+
37
+ The interactive mode will guide you through:
38
+ 1. **Game ID** - Enter your game's unique identifier
39
+ 2. **Build Creation Type** - Choose between `new`, or `sdkFree`
40
+ 3. **Build Type** - Select `major` or `minor` (with warning for major builds)
41
+ 4. **Major Version Selection** - If creating a minor build, select from existing major versions
42
+ 5. **Game Version** - Enter the version number (e.g., 1.2.3)
43
+ 6. **SDK Version** - Enter the Ludeo SDK version (not required for sdkFree)
44
+ 7. **Executable Path** - Path to your game executable relative to build directory
45
+ 8. **Local Directory** - Path to your build files
46
+ 9. **Changes Description** - Optional description of what changed
47
+
48
+ Before uploading, you'll see a summary of all options and the equivalent CLI command for future use in scripts or CI/CD pipelines.
49
+
50
+ To disable interactive mode (for CI/CD or scripts):
51
+ ```bash
52
+ ludeo builds upload --no-interactive [flags...]
53
+ ```
54
+
55
+ #### Command-Line Mode
56
+ Upload your game build with a simple command. The CLI supports two build creation types (**modification builds are not supported from the CLI—use [Studio Labs](https://studio.ludeo.com) for those**):
57
+
58
+ #### New Build (Complete build from scratch) - DEFAULT
59
+ ```bash
60
+ # With explicit build-creation-type
61
+ ludeo builds upload \
62
+ --game-id YOUR_GAME_ID \
63
+ --exec-path game.exe \
64
+ --local-directory ./builds \
65
+ --build-creation-type new \
66
+ --build-type major \
67
+ --game-version "1.2.3" \
68
+ --sdk-version "2.0.0" \
69
+ --changes-description "Bug fixes and performance improvements"
70
+
71
+ # Or simply omit --build-creation-type (defaults to "new")
72
+ ludeo builds upload \
73
+ --game-id YOUR_GAME_ID \
74
+ --exec-path game.exe \
75
+ --local-directory ./builds \
76
+ --build-type major \
77
+ --game-version "1.2.3" \
78
+ --sdk-version "2.0.0"
79
+ ```
80
+
81
+ #### SDK Free Build (Performance testing without Ludeo SDK)
82
+ ```bash
83
+ ludeo builds upload \
84
+ --game-id YOUR_GAME_ID \
85
+ --exec-path game.exe \
86
+ --local-directory ./builds \
87
+ --build-creation-type sdkFree \
88
+ --build-type major \
89
+ --game-version "1.2.3" \
90
+ --changes-description "Performance testing build"
91
+ ```
92
+
93
+ ### 3. Build Types and Requirements
94
+
95
+ **Build Creation Types (CLI):**
96
+ - `new`: Complete build from scratch (requires game-version, sdk-version, build-type) **[DEFAULT]**
97
+ - `sdkFree`: Performance testing without Ludeo SDK (requires game-version, build-type; sdk-version not required)
98
+
99
+ **Note:** Modification builds (builds based on an existing build) are **not supported from the CLI**. Create modification builds from [Studio Labs](https://studio.ludeo.com) only.
100
+
101
+ **Build Types:**
102
+ - `major`: Major version build
103
+ - `minor`: Minor version build (requires major-build-id)
104
+
105
+ **Additional Flags:**
106
+ - `--runtime-environment`: Runtime environment (windows/proton) - only available for Ludeo admins
107
+ - `--request-id`: Optional request ID for tracking
108
+ - `--no-interactive`: Disable interactive prompts (for CI/CD or scripts)
109
+ - `--dry-run`: Preview the upload without making any changes
110
+
111
+ #### Dry-Run Mode
112
+ Preview what would be uploaded without making any changes:
113
+ ```bash
114
+ ludeo builds upload --dry-run \
115
+ --game-id YOUR_GAME_ID \
116
+ --exec-path game.exe \
117
+ --local-directory ./builds \
118
+ --build-type major \
119
+ --game-version "1.2.3" \
120
+ --sdk-version "2.0.0"
121
+ ```
122
+
123
+ Dry-run will:
124
+ - Validate all parameters and directory structure
125
+ - Scan and display all files that would be uploaded
126
+ - Show total file count and size
127
+ - NOT create any build metadata or upload files
128
+
129
+ ### 4. Manage Builds
130
+ ```bash
131
+ # List your builds
132
+ ludeo builds list --game-id YOUR_GAME_ID
133
+
134
+ # Get build details
135
+ ludeo builds get --game-id YOUR_GAME_ID --build-id BUILD_ID
136
+
137
+ # Check if token is saved
138
+ ludeo auth status
139
+
140
+ # Remove saved token when done
141
+ ludeo auth logout
142
+ ```
143
+
144
+ ## Features
145
+
146
+ - **Interactive Mode**: Guided wizard for easy build uploads - just run `ludeo builds upload` and follow the prompts
147
+ - **Easy Upload**: Upload complete game builds with a single command
148
+ - **Large File Support**: Automatically handles large files and multiple files
149
+ - **Progress Tracking**: Real-time progress updates during uploads
150
+ - **Dry-Run Mode**: Preview uploads without making changes using `--dry-run`
151
+ - **Cross-Platform**: Works on Windows, macOS, and Linux
152
+ - **Automatic Updates**: Keep your CLI up to date with npm
153
+
154
+ ## Updating
155
+
156
+ ```bash
157
+ npm update -g @ludeo/cli
158
+ ```
159
+
160
+ ## CI/CD Integration
161
+
162
+ ### GitHub Actions
163
+ ```yaml
164
+ - name: Install Ludeo CLI
165
+ run: npm install -g @ludeo/cli
166
+
167
+ - name: Upload Build
168
+ run: |
169
+ ludeo auth set-token --access-token ${{ secrets.LUDEO_ACCESS_TOKEN }}
170
+ ludeo builds upload \
171
+ --game-id ${{ env.GAME_ID }} \
172
+ --exec-path game.exe \
173
+ --local-directory ./builds \
174
+ --build-creation-type new \
175
+ --build-type major \
176
+ --game-version ${{ env.GAME_VERSION }} \
177
+ --sdk-version ${{ env.SDK_VERSION }}
178
+ ```
179
+
180
+ ## Troubleshooting
181
+
182
+ ### Installation Issues
183
+
184
+ **Binary not found error:**
185
+ ```bash
186
+ npm rebuild @ludeo/cli
187
+ ```
188
+
189
+ **Permission issues (macOS/Linux):**
190
+ ```bash
191
+ sudo npm install -g @ludeo/cli
192
+ ```
193
+
194
+ **Windows issues:**
195
+ - Run PowerShell as Administrator
196
+ - Ensure Node.js is properly installed
197
+
198
+ ### Common Issues
199
+
200
+ **Authentication errors:**
201
+ - Verify your access token is valid
202
+ - Check if token is saved with `ludeo auth status`
203
+ - Make sure you've saved your token with `ludeo auth set-token`
204
+
205
+ **Upload failures:**
206
+ - Ensure your build directory exists and is readable
207
+ - Check your internet connection
208
+ - Verify file paths are correct
209
+
210
+ **Large files:**
211
+ - Large files may take time to upload
212
+ - Ensure stable internet connection
213
+
214
+ ## Support
215
+
216
+ Need help? Here's how to get support:
217
+
218
+ 1. Check this README and troubleshooting section
219
+ 2. Run `npm rebuild @ludeo/cli` if you encounter issues
220
+ 3. Contact the Ludeo platform team for additional assistance
221
+
222
+ For detailed documentation and advanced usage, visit the [Ludeo Developer Portal](https://developers.ludeo.com).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ludeo/cli",
3
- "version": "1.4.7",
3
+ "version": "1.4.8",
4
4
  "description": "Ludeo CLI - Upload game builds and manage content on the Ludeo platform",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -26,6 +26,7 @@
26
26
  ],
27
27
  "author": "Ludeo Team",
28
28
  "license": "MIT",
29
+ "readme": "README.npm.md",
29
30
  "repository": {
30
31
  "type": "git",
31
32
  "url": "git+https://github.com/ludeo/cli.git"
@@ -37,7 +38,8 @@
37
38
  "bin/",
38
39
  "dist/",
39
40
  "scripts/",
40
- "LICENSE"
41
+ "LICENSE",
42
+ "README.npm.md"
41
43
  ],
42
44
  "os": [
43
45
  "win32",
@@ -0,0 +1,54 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Build README variants from docs/readme/*.md fragments.
4
+ * - README.md = full (repo, includes Testing) — for GitHub
5
+ * - README.npm.md = usage only (no Testing) — for NPM package page
6
+ *
7
+ * Run: node scripts/build-readme.js
8
+ */
9
+
10
+ const fs = require('fs');
11
+ const path = require('path');
12
+
13
+ const ROOT = path.resolve(__dirname, '..');
14
+ const README_DIR = path.join(ROOT, 'docs', 'readme');
15
+
16
+ const FRAGMENTS_ORDER = [
17
+ '01-title-intro.md',
18
+ '02-installation.md',
19
+ '03-quick-start.md',
20
+ '04-features.md',
21
+ '05-testing.md',
22
+ '06-updating.md',
23
+ '07-cicd.md',
24
+ '08-troubleshooting.md',
25
+ '09-support.md',
26
+ ];
27
+
28
+ const NPM_EXCLUDE = new Set(['05-testing.md']);
29
+
30
+ function buildVariant(excludeSet) {
31
+ const parts = [];
32
+ for (const name of FRAGMENTS_ORDER) {
33
+ if (excludeSet && excludeSet.has(name)) continue;
34
+ const file = path.join(README_DIR, name);
35
+ if (!fs.existsSync(file)) {
36
+ console.warn(`Warning: fragment missing: ${name}`);
37
+ continue;
38
+ }
39
+ parts.push(fs.readFileSync(file, 'utf8').trim());
40
+ }
41
+ return parts.join('\n\n');
42
+ }
43
+
44
+ function main() {
45
+ const repoReadme = buildVariant(null);
46
+ const npmReadme = buildVariant(NPM_EXCLUDE);
47
+
48
+ fs.writeFileSync(path.join(ROOT, 'README.md'), repoReadme + '\n', 'utf8');
49
+ fs.writeFileSync(path.join(ROOT, 'README.npm.md'), npmReadme + '\n', 'utf8');
50
+
51
+ console.log('Built README.md (repo, full) and README.npm.md (npm, usage only)');
52
+ }
53
+
54
+ main();