@signageos/cli 2.5.1 → 2.6.0

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.
Files changed (32) hide show
  1. package/dist/Applet/Generate/appletGenerateCommand.js +1 -1
  2. package/dist/CustomScript/customScriptFacade.d.ts +5 -5
  3. package/dist/CustomScript/customScriptFacade.js +5 -4
  4. package/dist/Plugin/Generate/pluginGenerateCommand.d.ts +7 -0
  5. package/dist/Plugin/Generate/pluginGenerateCommand.js +38 -0
  6. package/dist/Plugin/Generate/pluginGenerateFacade.d.ts +12 -0
  7. package/dist/Plugin/Generate/pluginGenerateFacade.js +108 -0
  8. package/dist/Plugin/Upload/pluginUploadCommand.d.ts +25 -0
  9. package/dist/Plugin/Upload/pluginUploadCommand.js +70 -0
  10. package/dist/Plugin/pluginCommand.d.ts +27 -0
  11. package/dist/Plugin/pluginCommand.js +26 -0
  12. package/dist/Plugin/pluginFacade.d.ts +62 -0
  13. package/dist/Plugin/pluginFacade.js +251 -0
  14. package/dist/Runner/Generate/runnerGenerateCommand.d.ts +7 -0
  15. package/dist/Runner/Generate/runnerGenerateCommand.js +38 -0
  16. package/dist/Runner/Generate/runnerGenerateFacade.d.ts +12 -0
  17. package/dist/Runner/Generate/runnerGenerateFacade.js +108 -0
  18. package/dist/Runner/Upload/runnerUploadCommand.d.ts +25 -0
  19. package/dist/Runner/Upload/runnerUploadCommand.js +72 -0
  20. package/dist/Runner/runnerCommand.d.ts +27 -0
  21. package/dist/Runner/runnerCommand.js +26 -0
  22. package/dist/Runner/runnerFacede.d.ts +15 -0
  23. package/dist/Runner/runnerFacede.js +234 -0
  24. package/dist/index.js +3 -1
  25. package/docs/index.md +2 -0
  26. package/docs/plugin/generate/index.md +43 -0
  27. package/docs/plugin/index.md +72 -0
  28. package/docs/plugin/upload/index.md +50 -0
  29. package/docs/runner/generate/index.md +43 -0
  30. package/docs/runner/index.md +72 -0
  31. package/docs/runner/upload/index.md +50 -0
  32. package/package.json +4 -8
@@ -0,0 +1,234 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
36
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
37
+ return new (P || (P = Promise))(function (resolve, reject) {
38
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
39
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
40
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
41
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
42
+ });
43
+ };
44
+ var __importDefault = (this && this.__importDefault) || function (mod) {
45
+ return (mod && mod.__esModule) ? mod : { "default": mod };
46
+ };
47
+ Object.defineProperty(exports, "__esModule", { value: true });
48
+ exports.ensureRunnerVersion = ensureRunnerVersion;
49
+ exports.uploadCode = uploadCode;
50
+ exports.loadSchemas = loadSchemas;
51
+ const path = __importStar(require("path"));
52
+ const os = __importStar(require("os"));
53
+ const fs = __importStar(require("fs-extra"));
54
+ const prompts_1 = __importDefault(require("prompts"));
55
+ const chalk_1 = __importDefault(require("chalk"));
56
+ const log_1 = require("@signageos/sdk/dist/Console/log");
57
+ const archive_1 = require("../Lib/archive");
58
+ const fileSystem_1 = require("../Lib/fileSystem");
59
+ const runtimeFileSystem_1 = require("@signageos/sdk/dist/Development/runtimeFileSystem");
60
+ const customScriptFacade_1 = require("../CustomScript/customScriptFacade");
61
+ const PLUGIN_BUILDS_DIRNAME = 'plugin_builds';
62
+ function ensureRunnerVersion(restApi, config, schema) {
63
+ return __awaiter(this, void 0, void 0, function* () {
64
+ const runner = yield ensureRunner(restApi, config);
65
+ const runnerVersion = yield restApi.runner.version.get({ runnerUid: runner.uid, version: config.version });
66
+ if (runnerVersion) {
67
+ return runnerVersion;
68
+ }
69
+ const response = yield (0, prompts_1.default)({
70
+ type: 'confirm',
71
+ name: 'newVersion',
72
+ message: `Do you want to create new runner version ${config.version}?`,
73
+ });
74
+ if (!response.newVersion) {
75
+ throw new Error('Runner version creation was canceled.');
76
+ }
77
+ (0, log_1.log)('info', chalk_1.default.yellow(`Creating Runner version ${config.version}`));
78
+ return yield restApi.runner.version.create({
79
+ runnerUid: runner.uid,
80
+ version: config.version,
81
+ description: config.description,
82
+ input: schema.input,
83
+ output: schema.output,
84
+ telemetry: schema.telemetry,
85
+ configDefinition: config.configDefinition,
86
+ });
87
+ });
88
+ }
89
+ function ensureRunner(restApi, config) {
90
+ return __awaiter(this, void 0, void 0, function* () {
91
+ if (config.uid) {
92
+ const runner = yield restApi.runner.get(config.uid);
93
+ if (runner) {
94
+ yield restApi.runner.update(runner.uid, {
95
+ name: config.name,
96
+ title: config.name,
97
+ description: config.description,
98
+ });
99
+ return runner;
100
+ }
101
+ throw new Error(`Runner with uid "${config.uid}" not found`);
102
+ }
103
+ const response = yield (0, prompts_1.default)({
104
+ type: 'confirm',
105
+ name: 'create',
106
+ message: `Runner "${config.name}" does not exist. Do you want to create it?`,
107
+ });
108
+ if (!response.create) {
109
+ throw new Error('Runner upload was canceled.');
110
+ }
111
+ (0, log_1.log)('info', chalk_1.default.yellow(`Creating Runner "${config.name}"`));
112
+ const createdRunner = yield restApi.runner.create({
113
+ name: config.name,
114
+ title: config.name,
115
+ description: config.description,
116
+ });
117
+ // TODO ask for permission or read from CLI arg
118
+ (0, log_1.log)('info', chalk_1.default.yellow('Adding Runner uid to the config file'));
119
+ yield (0, customScriptFacade_1.addToConfigFile)(process.cwd(), { uid: createdRunner.uid });
120
+ return createdRunner;
121
+ });
122
+ }
123
+ function uploadCode(_a) {
124
+ return __awaiter(this, arguments, void 0, function* ({ restApi, workDir, platform, config, runnerVersion, }) {
125
+ const { mainFile, runtime } = config;
126
+ const codeArchive = yield generateRunnerPlatformCodeArchive(workDir, config, runnerVersion, platform);
127
+ const runnerVersionPlatform = yield restApi.runner.version.platform.get({
128
+ runnerUid: runnerVersion.runnerUid,
129
+ version: runnerVersion.version,
130
+ platform,
131
+ });
132
+ if ((runnerVersionPlatform === null || runnerVersionPlatform === void 0 ? void 0 : runnerVersionPlatform.md5Checksum) === codeArchive.md5Checksum) {
133
+ (0, log_1.log)('info', chalk_1.default.yellow(`Skipping upload for ${platform} - no changes detected`));
134
+ return;
135
+ }
136
+ try {
137
+ (0, log_1.log)('info', chalk_1.default.yellow(`Uploading files for ${platform}`));
138
+ yield uploadCodeArchive({
139
+ restApi,
140
+ runnerVersion,
141
+ platform,
142
+ codeArchive,
143
+ });
144
+ yield restApi.runner.version.platform.update({
145
+ runnerUid: runnerVersion.runnerUid,
146
+ version: runnerVersion.version,
147
+ platform,
148
+ mainFile,
149
+ runtime,
150
+ md5Checksum: codeArchive.md5Checksum,
151
+ });
152
+ }
153
+ finally {
154
+ yield codeArchive.delete();
155
+ }
156
+ });
157
+ }
158
+ function uploadCodeArchive(_a) {
159
+ return __awaiter(this, arguments, void 0, function* ({ restApi, runnerVersion, platform, codeArchive, }) {
160
+ const filePath = codeArchive.filePath;
161
+ const fileSize = (yield fs.stat(filePath)).size;
162
+ const fileStream = fs.createReadStream(filePath);
163
+ yield restApi.runner.version.platform.archive.upload({
164
+ runnerUid: runnerVersion.runnerUid,
165
+ version: runnerVersion.version,
166
+ platform,
167
+ md5Checksum: codeArchive.md5Checksum,
168
+ size: fileSize,
169
+ stream: fileStream,
170
+ });
171
+ });
172
+ }
173
+ /**
174
+ * Generates an archive with the code for a particular platform, defined by the provided configuration.
175
+ *
176
+ * Archive is generated and stored in the runtime /tmp/signageos/runner_scripts_builds/:uid/:version/ directory.
177
+ * After archive isn't needed anymore, it should be deleted using the delete method.
178
+ */
179
+ function generateRunnerPlatformCodeArchive(workDir, config, runnerVersion, platform) {
180
+ return __awaiter(this, void 0, void 0, function* () {
181
+ const buildsDir = yield ensureBuildsDirectory(runnerVersion);
182
+ const archiveFileName = `${platform}.zip`;
183
+ const archiveFilePath = path.join(buildsDir, archiveFileName);
184
+ yield (0, archive_1.generateZip)(workDir, config.rootDir, archiveFilePath);
185
+ const md5Checksum = yield (0, fileSystem_1.getFileMD5Checksum)(archiveFilePath);
186
+ return {
187
+ filePath: archiveFilePath,
188
+ md5Checksum,
189
+ delete() {
190
+ return __awaiter(this, void 0, void 0, function* () {
191
+ yield fs.unlink(archiveFilePath);
192
+ });
193
+ },
194
+ };
195
+ });
196
+ }
197
+ /**
198
+ * Ensure that the runtime directory for runner script version exists in the current working directory.
199
+ *
200
+ * This directory is used to store temporary files generated by the CLI.
201
+ */
202
+ function ensureBuildsDirectory(runnerVersion) {
203
+ return __awaiter(this, void 0, void 0, function* () {
204
+ const runtimeDir = yield ensureRuntimeDir();
205
+ const buildsDir = path.join(runtimeDir, runnerVersion.runnerUid, runnerVersion.version);
206
+ yield fs.ensureDir(buildsDir);
207
+ return buildsDir;
208
+ });
209
+ }
210
+ /**
211
+ * Ensure that the runtime directory exists in the current working directory.
212
+ *
213
+ * This directory is used to store temporary files generated by the CLI.
214
+ */
215
+ function ensureRuntimeDir() {
216
+ return __awaiter(this, void 0, void 0, function* () {
217
+ const runtimeDir = path.join(os.tmpdir(), runtimeFileSystem_1.RUNTIME_DIRNAME, PLUGIN_BUILDS_DIRNAME);
218
+ yield fs.ensureDir(runtimeDir);
219
+ return runtimeDir;
220
+ });
221
+ }
222
+ function loadSchemas(workDir) {
223
+ return __awaiter(this, void 0, void 0, function* () {
224
+ const filePath = getConfigFilePath(workDir);
225
+ if (!(yield fs.pathExists(filePath))) {
226
+ throw new Error(`Config file schema.json not found`);
227
+ }
228
+ const fileContent = fs.readFileSync(filePath, 'utf-8');
229
+ return JSON.parse(fileContent);
230
+ });
231
+ }
232
+ function getConfigFilePath(workDir) {
233
+ return path.join(workDir, 'schema.json');
234
+ }
package/dist/index.js CHANGED
@@ -20,6 +20,8 @@ const deviceCommand_1 = require("./Device/deviceCommand");
20
20
  const generalCommand_1 = require("./generalCommand");
21
21
  const commandDefinition_1 = require("./Command/commandDefinition");
22
22
  const customScriptCommand_1 = require("./CustomScript/customScriptCommand");
23
+ const pluginCommand_1 = require("./Plugin/pluginCommand");
24
+ const runnerCommand_1 = require("./Runner/runnerCommand");
23
25
  const autocompleteCommand_1 = require("./Command/Autocomplete/autocompleteCommand");
24
26
  /**
25
27
  * The root command for the signageOS CLI tool that provides comprehensive management
@@ -47,7 +49,7 @@ const index = (0, commandDefinition_1.createCommandDefinition)({
47
49
  name: 'sos',
48
50
  description: 'SignageOS CLI - The central command-line tool for deploying, managing, and debugging signageOS projects and devices',
49
51
  optionList: generalCommand_1.GENERAL_OPTION_LIST,
50
- commands: [appletCommand_1.applet, loginCommand_1.login, organizationCommand_1.organization, timingCommand_1.timing, firmwareCommand_1.firmware, deviceCommand_1.device, customScriptCommand_1.customScript, autocompleteCommand_1.autocomplete],
52
+ commands: [appletCommand_1.applet, loginCommand_1.login, organizationCommand_1.organization, timingCommand_1.timing, firmwareCommand_1.firmware, deviceCommand_1.device, customScriptCommand_1.customScript, pluginCommand_1.plugin, runnerCommand_1.runner, autocompleteCommand_1.autocomplete],
51
53
  run() {
52
54
  return __awaiter(this, void 0, void 0, function* () {
53
55
  throw new Error('Unknown command');
package/docs/index.md CHANGED
@@ -161,6 +161,8 @@ sos --api-url https://api.custom.signageos.io applet list
161
161
  - [`sos timing`](/cli/timing/) - Timing management
162
162
  - [`sos device`](/cli/device/) - Device management
163
163
  - [`sos custom-script`](/cli/custom-script/) - Custom Script management
164
+ - [`sos plugin`](/cli/plugin/) - Plugin management
165
+ - [`sos runner`](/cli/runner/) - Runner management
164
166
  - [`sos autocomplete`](/cli/autocomplete/) - CLI auto-completion management
165
167
 
166
168
  ## See Also
@@ -0,0 +1,43 @@
1
+ ---
2
+ id: plugin-generate-index
3
+ title: generate
4
+ sidebar_position: 0
5
+ ---
6
+ # generate
7
+
8
+ Generates a local repository for developing a Plugin
9
+
10
+
11
+ ## Usage
12
+
13
+ ```bash
14
+ sos plugin generate [options]
15
+ ```
16
+
17
+ ## Global Options
18
+
19
+ All commands support the following global options:
20
+
21
+ | Option | Alias | Description |
22
+ |--------|-------|-------------|
23
+ | `--help` | `-h` | Display help information for any command |
24
+ | `--version` | `-v` | Display the installed version of the CLI |
25
+ | `--api-url` | `-u` | Override the API URL for REST requests |
26
+ | `--profile` | | Use a specific profile from ~/.sosrc config |
27
+
28
+ ### Examples
29
+
30
+ ```bash
31
+ # Show version
32
+ sos --version
33
+
34
+ # Get help for any command
35
+ sos applet --help
36
+ sos applet upload --help
37
+
38
+ # Use custom API endpoint
39
+ sos --api-url https://api.example.com applet upload
40
+
41
+ # Use specific profile
42
+ sos --profile production organization list
43
+ ```
@@ -0,0 +1,72 @@
1
+ ---
2
+ id: plugin-index
3
+ title: plugin
4
+ sidebar_position: 0
5
+ ---
6
+ # plugin
7
+
8
+ Plugin management
9
+
10
+
11
+ ## Usage
12
+
13
+ ```bash
14
+ sos plugin <subcommand> [options]
15
+ ```
16
+
17
+ ## Subcommands
18
+
19
+ ### generate
20
+
21
+ Generates a local repository for developing a Plugin
22
+
23
+ ```bash
24
+ sos plugin generate [options]
25
+ ```
26
+
27
+ [→ See detailed documentation](/cli/plugin/generate/)
28
+
29
+ ### upload
30
+
31
+ Uploads current plugin version
32
+
33
+ ```bash
34
+ sos plugin upload [options]
35
+ ```
36
+
37
+ [→ See detailed documentation](/cli/plugin/upload/)
38
+
39
+
40
+ ## Global Options
41
+
42
+ All commands support the following global options:
43
+
44
+ | Option | Alias | Description |
45
+ |--------|-------|-------------|
46
+ | `--help` | `-h` | Display help information for any command |
47
+ | `--version` | `-v` | Display the installed version of the CLI |
48
+ | `--api-url` | `-u` | Override the API URL for REST requests |
49
+ | `--profile` | | Use a specific profile from ~/.sosrc config |
50
+
51
+ ### Examples
52
+
53
+ ```bash
54
+ # Show version
55
+ sos --version
56
+
57
+ # Get help for any command
58
+ sos applet --help
59
+ sos applet upload --help
60
+
61
+ # Use custom API endpoint
62
+ sos --api-url https://api.example.com applet upload
63
+
64
+ # Use specific profile
65
+ sos --profile production organization list
66
+ ```
67
+
68
+
69
+ ## Related Commands
70
+
71
+ - [`sos plugin generate`](/cli/plugin/generate/) - Generates a local repository for developing a Plugin
72
+ - [`sos plugin upload`](/cli/plugin/upload/) - Uploads current plugin version
@@ -0,0 +1,50 @@
1
+ ---
2
+ id: plugin-upload-index
3
+ title: upload
4
+ sidebar_position: 0
5
+ ---
6
+ # upload
7
+
8
+ Uploads current plugin version
9
+
10
+
11
+ ## Usage
12
+
13
+ ```bash
14
+ sos plugin upload [options]
15
+ ```
16
+
17
+ ## Options
18
+
19
+ | Option | Description |
20
+ | --------------------------- | ---------------------------------------------------------------- |
21
+ | `--no-default-organization` | Prevent using the defaultOrganizationUid from ~/.sosrc (boolean) |
22
+ | `--organization-uid` | Organization UID (string) |
23
+
24
+ ## Global Options
25
+
26
+ All commands support the following global options:
27
+
28
+ | Option | Alias | Description |
29
+ |--------|-------|-------------|
30
+ | `--help` | `-h` | Display help information for any command |
31
+ | `--version` | `-v` | Display the installed version of the CLI |
32
+ | `--api-url` | `-u` | Override the API URL for REST requests |
33
+ | `--profile` | | Use a specific profile from ~/.sosrc config |
34
+
35
+ ### Examples
36
+
37
+ ```bash
38
+ # Show version
39
+ sos --version
40
+
41
+ # Get help for any command
42
+ sos applet --help
43
+ sos applet upload --help
44
+
45
+ # Use custom API endpoint
46
+ sos --api-url https://api.example.com applet upload
47
+
48
+ # Use specific profile
49
+ sos --profile production organization list
50
+ ```
@@ -0,0 +1,43 @@
1
+ ---
2
+ id: runner-generate-index
3
+ title: generate
4
+ sidebar_position: 0
5
+ ---
6
+ # generate
7
+
8
+ Generates a local repository for developing a Runner
9
+
10
+
11
+ ## Usage
12
+
13
+ ```bash
14
+ sos runner generate [options]
15
+ ```
16
+
17
+ ## Global Options
18
+
19
+ All commands support the following global options:
20
+
21
+ | Option | Alias | Description |
22
+ |--------|-------|-------------|
23
+ | `--help` | `-h` | Display help information for any command |
24
+ | `--version` | `-v` | Display the installed version of the CLI |
25
+ | `--api-url` | `-u` | Override the API URL for REST requests |
26
+ | `--profile` | | Use a specific profile from ~/.sosrc config |
27
+
28
+ ### Examples
29
+
30
+ ```bash
31
+ # Show version
32
+ sos --version
33
+
34
+ # Get help for any command
35
+ sos applet --help
36
+ sos applet upload --help
37
+
38
+ # Use custom API endpoint
39
+ sos --api-url https://api.example.com applet upload
40
+
41
+ # Use specific profile
42
+ sos --profile production organization list
43
+ ```
@@ -0,0 +1,72 @@
1
+ ---
2
+ id: runner-index
3
+ title: runner
4
+ sidebar_position: 0
5
+ ---
6
+ # runner
7
+
8
+ Runner management
9
+
10
+
11
+ ## Usage
12
+
13
+ ```bash
14
+ sos runner <subcommand> [options]
15
+ ```
16
+
17
+ ## Subcommands
18
+
19
+ ### generate
20
+
21
+ Generates a local repository for developing a Runner
22
+
23
+ ```bash
24
+ sos runner generate [options]
25
+ ```
26
+
27
+ [→ See detailed documentation](/cli/runner/generate/)
28
+
29
+ ### upload
30
+
31
+ Uploads current runner version
32
+
33
+ ```bash
34
+ sos runner upload [options]
35
+ ```
36
+
37
+ [→ See detailed documentation](/cli/runner/upload/)
38
+
39
+
40
+ ## Global Options
41
+
42
+ All commands support the following global options:
43
+
44
+ | Option | Alias | Description |
45
+ |--------|-------|-------------|
46
+ | `--help` | `-h` | Display help information for any command |
47
+ | `--version` | `-v` | Display the installed version of the CLI |
48
+ | `--api-url` | `-u` | Override the API URL for REST requests |
49
+ | `--profile` | | Use a specific profile from ~/.sosrc config |
50
+
51
+ ### Examples
52
+
53
+ ```bash
54
+ # Show version
55
+ sos --version
56
+
57
+ # Get help for any command
58
+ sos applet --help
59
+ sos applet upload --help
60
+
61
+ # Use custom API endpoint
62
+ sos --api-url https://api.example.com applet upload
63
+
64
+ # Use specific profile
65
+ sos --profile production organization list
66
+ ```
67
+
68
+
69
+ ## Related Commands
70
+
71
+ - [`sos runner generate`](/cli/runner/generate/) - Generates a local repository for developing a Runner
72
+ - [`sos runner upload`](/cli/runner/upload/) - Uploads current runner version
@@ -0,0 +1,50 @@
1
+ ---
2
+ id: runner-upload-index
3
+ title: upload
4
+ sidebar_position: 0
5
+ ---
6
+ # upload
7
+
8
+ Uploads current runner version
9
+
10
+
11
+ ## Usage
12
+
13
+ ```bash
14
+ sos runner upload [options]
15
+ ```
16
+
17
+ ## Options
18
+
19
+ | Option | Description |
20
+ | --------------------------- | ---------------------------------------------------------------- |
21
+ | `--no-default-organization` | Prevent using the defaultOrganizationUid from ~/.sosrc (boolean) |
22
+ | `--organization-uid` | Organization UID (string) |
23
+
24
+ ## Global Options
25
+
26
+ All commands support the following global options:
27
+
28
+ | Option | Alias | Description |
29
+ |--------|-------|-------------|
30
+ | `--help` | `-h` | Display help information for any command |
31
+ | `--version` | `-v` | Display the installed version of the CLI |
32
+ | `--api-url` | `-u` | Override the API URL for REST requests |
33
+ | `--profile` | | Use a specific profile from ~/.sosrc config |
34
+
35
+ ### Examples
36
+
37
+ ```bash
38
+ # Show version
39
+ sos --version
40
+
41
+ # Get help for any command
42
+ sos applet --help
43
+ sos applet upload --help
44
+
45
+ # Use custom API endpoint
46
+ sos --api-url https://api.example.com applet upload
47
+
48
+ # Use specific profile
49
+ sos --profile production organization list
50
+ ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@signageos/cli",
3
- "version": "2.5.1",
3
+ "version": "2.6.0",
4
4
  "main": "./dist/index.js",
5
5
  "author": "signageOS.io <dev@signageos.io>",
6
6
  "files": [
@@ -78,16 +78,12 @@
78
78
  "typescript": "5.8.3",
79
79
  "unzipper": "0.12.3"
80
80
  },
81
- "overrides": {
82
- "cross-spawn": "^7.0.6",
83
- "http-cache-semantics": "^4.2.0"
84
- },
85
81
  "dependencies": {
86
- "@signageos/file": "1.0.1",
87
- "@signageos/sdk": "1.28.1",
82
+ "@signageos/file": "2.0.1",
83
+ "@signageos/sdk": "2.0.2",
88
84
  "archiver": "7.0.1",
89
85
  "chalk": "2.4.2",
90
- "child-process-promise": "2.2.1",
86
+ "child-process-promise": "2.1.3",
91
87
  "cli-progress": "3.12.0",
92
88
  "command-line-args": "6.0.1",
93
89
  "command-line-usage": "7.0.3",