@osaas/cli 4.25.0 → 4.26.1

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/dist/cli.js CHANGED
@@ -42,6 +42,7 @@ const cmd_8 = require("./architect/cmd");
42
42
  const cmd_9 = require("./vod/cmd");
43
43
  const cmd_10 = require("./web/cmd");
44
44
  const login_1 = require("./login");
45
+ const cmd_11 = require("./myapp/cmd");
45
46
  const util_1 = require("./user/util");
46
47
  const cli = new commander_1.Command();
47
48
  // Read package.json
@@ -80,5 +81,6 @@ cli.addCommand((0, cmd_7.default)());
80
81
  cli.addCommand((0, cmd_8.cmdChat)());
81
82
  cli.addCommand((0, cmd_9.cmdVod)());
82
83
  cli.addCommand((0, cmd_10.cmdWeb)());
84
+ cli.addCommand((0, cmd_11.cmdMyapp)());
83
85
  cli.parse(process.argv);
84
86
  //# sourceMappingURL=cli.js.map
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,2BAAkC;AAClC,+BAA4B;AAC5B,yCAAoC;AACpC,sDAAmC;AACnC,oDAAsC;AACtC,qDAAoC;AACpC,yDAAyC;AACzC,qDAAiC;AACjC,yDAAyC;AACzC,2DAA6C;AAC7C,mDAA6B;AAC7B,yCAA0C;AAC1C,mCAAmC;AACnC,oCAAmC;AACnC,mCAAmC;AACnC,sCAA0C;AAE1C,MAAM,GAAG,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE1B,oBAAoB;AACpB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,IAAA,iBAAY,EAAC,IAAA,WAAI,EAAC,SAAS,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAC5D,CAAC;AAEF,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,eAAe,EAAE,4BAA4B,CAAC,CAAC;AAEhF,GAAG;KACA,aAAa,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;KAC1C,MAAM,CACL,qBAAqB,EACrB,oDAAoD,EACpD,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,MAAM,CAClC,CAAC;AAEJ,GAAG,CAAC,UAAU,CAAC,IAAA,gBAAQ,GAAE,CAAC,CAAC;AAC3B,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE;IAC1C,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,CAAC;IAChE,IAAI,WAAW,KAAK,OAAO,EAAE;QAC3B,MAAM,UAAU,GAAG,WAAW,CAAC,eAAe,EAAE,CAAC;QACjD,MAAM,WAAW,GAAG,UAAU,EAAE,GAAG,IAAI,MAAM,CAAC;QAC9C,MAAM,IAAA,kBAAW,EAAC,WAAW,CAAC,CAAC;KAChC;AACH,CAAC,CAAC,CAAC;AAEH,GAAG,CAAC,UAAU,CAAC,IAAA,aAAQ,GAAE,CAAC,CAAC;AAC3B,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AAClC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;AACpC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;AACtC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC;AACpC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AAClC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;AACrC,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC;AACjD,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,sBAAsB,EAAE,CAAC,CAAC;AACjD,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;AAChD,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAC;AAC3C,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;AACrC,GAAG,CAAC,UAAU,CAAC,IAAA,aAAW,GAAE,CAAC,CAAC;AAC9B,GAAG,CAAC,UAAU,CAAC,IAAA,aAAU,GAAE,CAAC,CAAC;AAC7B,GAAG,CAAC,UAAU,CAAC,IAAA,aAAO,GAAE,CAAC,CAAC;AAC1B,GAAG,CAAC,UAAU,CAAC,IAAA,aAAW,GAAE,CAAC,CAAC;AAC9B,GAAG,CAAC,UAAU,CAAC,IAAA,aAAa,GAAE,CAAC,CAAC;AAChC,GAAG,CAAC,UAAU,CAAC,IAAA,aAAK,GAAE,CAAC,CAAC;AACxB,GAAG,CAAC,UAAU,CAAC,IAAA,aAAO,GAAE,CAAC,CAAC;AAC1B,GAAG,CAAC,UAAU,CAAC,IAAA,YAAM,GAAE,CAAC,CAAC;AACzB,GAAG,CAAC,UAAU,CAAC,IAAA,aAAM,GAAE,CAAC,CAAC;AACzB,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function cmdMyapp(): Command;
3
+ //# sourceMappingURL=cmd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cmd.d.ts","sourceRoot":"","sources":["../../src/myapp/cmd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC,wBAAgB,QAAQ,YAwFvB"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.cmdMyapp = void 0;
4
+ const commander_1 = require("commander");
5
+ const client_core_1 = require("@osaas/client-core");
6
+ const util_1 = require("../user/util");
7
+ function cmdMyapp() {
8
+ const myapp = new commander_1.Command('myapp');
9
+ myapp
10
+ .command('list')
11
+ .description('List all my apps')
12
+ .action(async (options, command) => {
13
+ try {
14
+ const globalOpts = command.optsWithGlobals();
15
+ const environment = globalOpts?.env || 'prod';
16
+ const ctx = new client_core_1.Context({ environment });
17
+ const apps = await (0, client_core_1.listMyApps)(ctx);
18
+ apps.forEach((app) => {
19
+ console.log(`${app.name} (${app.type}): ${app.url || 'no url yet'}`);
20
+ });
21
+ }
22
+ catch (err) {
23
+ console.log(err.message);
24
+ }
25
+ });
26
+ myapp
27
+ .command('create')
28
+ .description('Create a new app')
29
+ .argument('<name>', 'App name')
30
+ .argument('<type>', 'App type (nodejs or python)')
31
+ .argument('<gitHubUrl>', 'GitHub repository URL')
32
+ .option('--github-token <token>', 'GitHub token for private repos')
33
+ .option('--config-service <name>', 'Config service reference')
34
+ .action(async (name, type, gitHubUrl, options, command) => {
35
+ try {
36
+ const globalOpts = command.optsWithGlobals();
37
+ const environment = globalOpts?.env || 'prod';
38
+ const ctx = new client_core_1.Context({ environment });
39
+ const app = await (0, client_core_1.createMyApp)(ctx, {
40
+ name,
41
+ type,
42
+ gitHubUrl,
43
+ gitHubToken: options.githubToken,
44
+ configService: options.configService
45
+ });
46
+ console.log(`App ${app.name} created successfully.`);
47
+ if (app.appDns) {
48
+ console.log(`DNS: ${app.appDns}`);
49
+ }
50
+ }
51
+ catch (err) {
52
+ console.log(err.message);
53
+ }
54
+ });
55
+ myapp
56
+ .command('describe')
57
+ .description('Show app details')
58
+ .argument('<appId>', 'App ID')
59
+ .action(async (appId, options, command) => {
60
+ try {
61
+ const globalOpts = command.optsWithGlobals();
62
+ const environment = globalOpts?.env || 'prod';
63
+ const ctx = new client_core_1.Context({ environment });
64
+ const app = await (0, client_core_1.getMyApp)(ctx, appId);
65
+ console.log(JSON.stringify(app, null, 2));
66
+ }
67
+ catch (err) {
68
+ console.log(err.message);
69
+ }
70
+ });
71
+ myapp
72
+ .command('remove')
73
+ .description('Remove an app')
74
+ .argument('<appId>', 'App ID')
75
+ .option('-y, --yes', 'Skip confirmation')
76
+ .action(async (appId, options, command) => {
77
+ try {
78
+ if (!options.yes) {
79
+ await (0, util_1.confirm)(`Are you sure you want to remove app ${appId}? (yes/no) `);
80
+ }
81
+ const globalOpts = command.optsWithGlobals();
82
+ const environment = globalOpts?.env || 'prod';
83
+ const ctx = new client_core_1.Context({ environment });
84
+ await (0, client_core_1.removeMyApp)(ctx, appId);
85
+ console.log(`App ${appId} removed successfully.`);
86
+ }
87
+ catch (err) {
88
+ console.log(err.message);
89
+ }
90
+ });
91
+ return myapp;
92
+ }
93
+ exports.cmdMyapp = cmdMyapp;
94
+ //# sourceMappingURL=cmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cmd.js","sourceRoot":"","sources":["../../src/myapp/cmd.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@osaas/cli",
3
- "version": "4.25.0",
3
+ "version": "4.26.1",
4
4
  "description": "Open Source Cloud CLI",
5
5
  "author": "Eyevinn Open Source Cloud <osc@eyevinn.se>",
6
6
  "homepage": "https://www.osaas.io",
@@ -21,12 +21,12 @@
21
21
  "test": "jest --pass-with-no-tests"
22
22
  },
23
23
  "dependencies": {
24
- "@osaas/client-ai": "^0.4.10",
25
- "@osaas/client-core": "^0.20.0",
26
- "@osaas/client-db": "^0.6.8",
27
- "@osaas/client-intercom": "^0.3.5",
28
- "@osaas/client-transcode": "^0.27.1",
29
- "@osaas/client-web": "^0.5.12",
24
+ "@osaas/client-ai": "^0.4.11",
25
+ "@osaas/client-core": "^0.21.0",
26
+ "@osaas/client-db": "^0.6.10",
27
+ "@osaas/client-intercom": "^0.3.6",
28
+ "@osaas/client-transcode": "^0.27.3",
29
+ "@osaas/client-web": "^0.5.14",
30
30
  "@types/promptly": "^3.0.5",
31
31
  "chalk": "4.1.2",
32
32
  "commander": "^12.1.0",
@@ -37,5 +37,5 @@
37
37
  "publishConfig": {
38
38
  "access": "public"
39
39
  },
40
- "gitHead": "256415ebd4ee729710330c7760e936b45d0188a3"
40
+ "gitHead": "8e2f3d3243f016edb63606864336dba3d114da34"
41
41
  }
package/src/cli.ts CHANGED
@@ -15,6 +15,7 @@ import { cmdChat } from './architect/cmd';
15
15
  import { cmdVod } from './vod/cmd';
16
16
  import { cmdWeb } from './web/cmd';
17
17
  import { cmdLogin } from './login';
18
+ import { cmdMyapp } from './myapp/cmd';
18
19
  import { ensureToken } from './user/util';
19
20
 
20
21
  const cli = new Command();
@@ -65,4 +66,5 @@ cli.addCommand(cmdDb());
65
66
  cli.addCommand(cmdChat());
66
67
  cli.addCommand(cmdVod());
67
68
  cli.addCommand(cmdWeb());
69
+ cli.addCommand(cmdMyapp());
68
70
  cli.parse(process.argv);
@@ -0,0 +1,99 @@
1
+ import { Command } from 'commander';
2
+ import {
3
+ Context,
4
+ listMyApps,
5
+ createMyApp,
6
+ getMyApp,
7
+ removeMyApp
8
+ } from '@osaas/client-core';
9
+ import { confirm } from '../user/util';
10
+
11
+ export function cmdMyapp() {
12
+ const myapp = new Command('myapp');
13
+
14
+ myapp
15
+ .command('list')
16
+ .description('List all my apps')
17
+ .action(async (options, command) => {
18
+ try {
19
+ const globalOpts = command.optsWithGlobals();
20
+ const environment = globalOpts?.env || 'prod';
21
+ const ctx = new Context({ environment });
22
+ const apps = await listMyApps(ctx);
23
+ apps.forEach((app) => {
24
+ console.log(`${app.name} (${app.type}): ${app.url || 'no url yet'}`);
25
+ });
26
+ } catch (err) {
27
+ console.log((err as Error).message);
28
+ }
29
+ });
30
+
31
+ myapp
32
+ .command('create')
33
+ .description('Create a new app')
34
+ .argument('<name>', 'App name')
35
+ .argument('<type>', 'App type (nodejs or python)')
36
+ .argument('<gitHubUrl>', 'GitHub repository URL')
37
+ .option('--github-token <token>', 'GitHub token for private repos')
38
+ .option('--config-service <name>', 'Config service reference')
39
+ .action(async (name, type, gitHubUrl, options, command) => {
40
+ try {
41
+ const globalOpts = command.optsWithGlobals();
42
+ const environment = globalOpts?.env || 'prod';
43
+ const ctx = new Context({ environment });
44
+ const app = await createMyApp(ctx, {
45
+ name,
46
+ type,
47
+ gitHubUrl,
48
+ gitHubToken: options.githubToken,
49
+ configService: options.configService
50
+ });
51
+ console.log(`App ${app.name} created successfully.`);
52
+ if (app.appDns) {
53
+ console.log(`DNS: ${app.appDns}`);
54
+ }
55
+ } catch (err) {
56
+ console.log((err as Error).message);
57
+ }
58
+ });
59
+
60
+ myapp
61
+ .command('describe')
62
+ .description('Show app details')
63
+ .argument('<appId>', 'App ID')
64
+ .action(async (appId, options, command) => {
65
+ try {
66
+ const globalOpts = command.optsWithGlobals();
67
+ const environment = globalOpts?.env || 'prod';
68
+ const ctx = new Context({ environment });
69
+ const app = await getMyApp(ctx, appId);
70
+ console.log(JSON.stringify(app, null, 2));
71
+ } catch (err) {
72
+ console.log((err as Error).message);
73
+ }
74
+ });
75
+
76
+ myapp
77
+ .command('remove')
78
+ .description('Remove an app')
79
+ .argument('<appId>', 'App ID')
80
+ .option('-y, --yes', 'Skip confirmation')
81
+ .action(async (appId, options, command) => {
82
+ try {
83
+ if (!options.yes) {
84
+ await confirm(
85
+ `Are you sure you want to remove app ${appId}? (yes/no) `
86
+ );
87
+ }
88
+ const globalOpts = command.optsWithGlobals();
89
+ const environment = globalOpts?.env || 'prod';
90
+ const ctx = new Context({ environment });
91
+ await removeMyApp(ctx, appId);
92
+ console.log(`App ${appId} removed successfully.`);
93
+ } catch (err) {
94
+ console.log((err as Error).message);
95
+ }
96
+ });
97
+
98
+ return myapp;
99
+ }