@osaas/cli 4.3.2 → 4.5.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.
- package/dist/cli.js +2 -0
- package/dist/cli.js.map +1 -1
- package/dist/web/cmd.d.ts +3 -0
- package/dist/web/cmd.d.ts.map +1 -0
- package/dist/web/cmd.js +65 -0
- package/dist/web/cmd.js.map +1 -0
- package/package.json +5 -4
- package/readme.md +15 -17
- package/src/cli.ts +2 -0
- package/src/web/cmd.ts +66 -0
package/dist/cli.js
CHANGED
|
@@ -40,6 +40,7 @@ const cmd_6 = __importDefault(require("./transcribe/cmd"));
|
|
|
40
40
|
const cmd_7 = __importDefault(require("./db/cmd"));
|
|
41
41
|
const cmd_8 = require("./architect/cmd");
|
|
42
42
|
const cmd_9 = require("./vod/cmd");
|
|
43
|
+
const cmd_10 = require("./web/cmd");
|
|
43
44
|
const cli = new commander_1.Command();
|
|
44
45
|
// Read package.json
|
|
45
46
|
const packageJson = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)(__dirname, '..', 'package.json'), 'utf8'));
|
|
@@ -61,5 +62,6 @@ cli.addCommand((0, cmd_6.default)());
|
|
|
61
62
|
cli.addCommand((0, cmd_7.default)());
|
|
62
63
|
cli.addCommand((0, cmd_8.cmdChat)());
|
|
63
64
|
cli.addCommand((0, cmd_9.cmdVod)());
|
|
65
|
+
cli.addCommand((0, cmd_10.cmdWeb)());
|
|
64
66
|
cli.parse(process.argv);
|
|
65
67
|
//# 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;AAEnC,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,CAAC,qBAAqB,EAAE,oBAAoB,CAAC,CAAC;AAEvD,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,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,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
|
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;AAEnC,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,CAAC,qBAAqB,EAAE,oBAAoB,CAAC,CAAC;AAEvD,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,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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cmd.d.ts","sourceRoot":"","sources":["../../src/web/cmd.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,wBAAgB,MAAM,YA6DrB"}
|
package/dist/web/cmd.js
ADDED
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cmdWeb = void 0;
|
|
4
|
+
const client_core_1 = require("@osaas/client-core");
|
|
5
|
+
const client_web_1 = require("@osaas/client-web");
|
|
6
|
+
const commander_1 = require("commander");
|
|
7
|
+
function cmdWeb() {
|
|
8
|
+
const web = new commander_1.Command('web');
|
|
9
|
+
web
|
|
10
|
+
.command('publish')
|
|
11
|
+
.description('Publish a website')
|
|
12
|
+
.argument('<name>', 'Name of website')
|
|
13
|
+
.argument('<dir>', 'Directory to publish')
|
|
14
|
+
.option('-s, --sync', 'Synchronize the bucket')
|
|
15
|
+
.action(async (name, dir, options, command) => {
|
|
16
|
+
try {
|
|
17
|
+
const globalOpts = command.optsWithGlobals();
|
|
18
|
+
const environment = globalOpts?.env || 'prod';
|
|
19
|
+
const ctx = new client_core_1.Context({ environment });
|
|
20
|
+
const website = await (0, client_web_1.publish)(name, dir, ctx, { sync: options.sync });
|
|
21
|
+
console.log(`Website published at: ${website.url}`);
|
|
22
|
+
console.log('CDN settings:');
|
|
23
|
+
console.log(` - Origin: ${new URL(website.bucket.endpoint).hostname}`);
|
|
24
|
+
console.log(` - Origin Headers: 'Host: ${new URL(website.bucket.endpoint).hostname}'`);
|
|
25
|
+
console.log(` - Origin Path: ${website.bucket.name}`);
|
|
26
|
+
console.log(` - Default root object: index.html`);
|
|
27
|
+
}
|
|
28
|
+
catch (err) {
|
|
29
|
+
console.log(err.message);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
web
|
|
33
|
+
.command('cdn-create')
|
|
34
|
+
.description('Create a CDN distribution for a service instance')
|
|
35
|
+
.argument('<serviceId>', 'Service Id')
|
|
36
|
+
.argument('<instanceName>', 'Instance name')
|
|
37
|
+
.option('--provider <provider>', 'CDN provider (default: cloudfront)')
|
|
38
|
+
.option('--origin-path <originPath>', 'Origin path (default: /)')
|
|
39
|
+
.action(async (serviceId, instanceName, options, command) => {
|
|
40
|
+
try {
|
|
41
|
+
const globalOpts = command.optsWithGlobals();
|
|
42
|
+
const environment = globalOpts?.env || 'prod';
|
|
43
|
+
const ctx = new client_core_1.Context({ environment });
|
|
44
|
+
if (!options.provider) {
|
|
45
|
+
options.provider = 'cloudfront';
|
|
46
|
+
}
|
|
47
|
+
if (options.provider === 'cloudfront') {
|
|
48
|
+
console.log('Creating CloudFront distribution...');
|
|
49
|
+
await (0, client_web_1.createCloudfrontDistribution)(serviceId, instanceName, ctx, {
|
|
50
|
+
originPath: options.originPath
|
|
51
|
+
});
|
|
52
|
+
console.log('CloudFront distribution created');
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
console.log('CDN provider not supported (available: cloudfront)');
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
catch (err) {
|
|
59
|
+
console.log(err.message);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
return web;
|
|
63
|
+
}
|
|
64
|
+
exports.cmdWeb = cmdWeb;
|
|
65
|
+
//# sourceMappingURL=cmd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cmd.js","sourceRoot":"","sources":["../../src/web/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.
|
|
3
|
+
"version": "4.5.0",
|
|
4
4
|
"description": "Open Source Cloud CLI",
|
|
5
5
|
"author": "Eyevinn Open Source Cloud <osc@eyevinn.se>",
|
|
6
6
|
"homepage": "https://www.osaas.io",
|
|
@@ -24,9 +24,10 @@
|
|
|
24
24
|
"dependencies": {
|
|
25
25
|
"@osaas/client-ai": "^0.4.2",
|
|
26
26
|
"@osaas/client-core": "^0.15.0",
|
|
27
|
-
"@osaas/client-db": "^0.4.
|
|
27
|
+
"@osaas/client-db": "^0.4.1",
|
|
28
28
|
"@osaas/client-intercom": "^0.2.2",
|
|
29
|
-
"@osaas/client-transcode": "^0.13.
|
|
29
|
+
"@osaas/client-transcode": "^0.13.3",
|
|
30
|
+
"@osaas/client-web": "^0.3.0",
|
|
30
31
|
"@types/promptly": "^3.0.5",
|
|
31
32
|
"chalk": "4.1.2",
|
|
32
33
|
"commander": "^12.1.0",
|
|
@@ -37,5 +38,5 @@
|
|
|
37
38
|
"publishConfig": {
|
|
38
39
|
"access": "public"
|
|
39
40
|
},
|
|
40
|
-
"gitHead": "
|
|
41
|
+
"gitHead": "66e8693b4c3a63556c8da544fdfdb1c243bbea82"
|
|
41
42
|
}
|
package/readme.md
CHANGED
|
@@ -20,31 +20,29 @@ npm install -g @osaas/cli
|
|
|
20
20
|
Usage: osc [options] [command]
|
|
21
21
|
|
|
22
22
|
Options:
|
|
23
|
-
-v, --version
|
|
24
|
-
--env <environment>
|
|
25
|
-
-h, --help
|
|
23
|
+
-v, --version Output the current version
|
|
24
|
+
--env <environment> Environment to use
|
|
25
|
+
-h, --help display help for command
|
|
26
26
|
|
|
27
27
|
Commands:
|
|
28
28
|
admin
|
|
29
|
-
list <serviceId>
|
|
30
|
-
create [options] <serviceId> <name>
|
|
31
|
-
describe <serviceId> <name>
|
|
32
|
-
remove <serviceId> <name>
|
|
33
|
-
logs <serviceId> <name>
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
encore
|
|
37
|
-
pipeline
|
|
38
|
-
packager [options] <source> <dest> Create streaming package from ABR bundle on S3
|
|
39
|
-
and store on another S3 bucket
|
|
29
|
+
list <serviceId> List all my service instances
|
|
30
|
+
create [options] <serviceId> <name> Create a service instance
|
|
31
|
+
describe <serviceId> <name> Get details for a service instance
|
|
32
|
+
remove <serviceId> <name> Remove a service instance
|
|
33
|
+
logs <serviceId> <name> Get logs for a service instance
|
|
34
|
+
packager [options] <source> <dest> Create streaming package from ABR bundle on S3
|
|
35
|
+
and store on another S3 bucket
|
|
40
36
|
compare
|
|
41
37
|
live
|
|
42
38
|
intercom
|
|
43
|
-
transcribe [options] <source>
|
|
44
|
-
|
|
39
|
+
transcribe [options] <source> Generate subtitles from video or audio using Open
|
|
40
|
+
AI Whisper
|
|
45
41
|
db
|
|
46
42
|
architect
|
|
47
|
-
|
|
43
|
+
vod
|
|
44
|
+
web
|
|
45
|
+
help [command] display help for command
|
|
48
46
|
```
|
|
49
47
|
|
|
50
48
|
## Examples
|
package/src/cli.ts
CHANGED
|
@@ -13,6 +13,7 @@ import cmdTranscribe from './transcribe/cmd';
|
|
|
13
13
|
import cmdDb from './db/cmd';
|
|
14
14
|
import { cmdChat } from './architect/cmd';
|
|
15
15
|
import { cmdVod } from './vod/cmd';
|
|
16
|
+
import { cmdWeb } from './web/cmd';
|
|
16
17
|
|
|
17
18
|
const cli = new Command();
|
|
18
19
|
|
|
@@ -41,4 +42,5 @@ cli.addCommand(cmdTranscribe());
|
|
|
41
42
|
cli.addCommand(cmdDb());
|
|
42
43
|
cli.addCommand(cmdChat());
|
|
43
44
|
cli.addCommand(cmdVod());
|
|
45
|
+
cli.addCommand(cmdWeb());
|
|
44
46
|
cli.parse(process.argv);
|
package/src/web/cmd.ts
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { Context } from '@osaas/client-core';
|
|
2
|
+
import { createCloudfrontDistribution, publish } from '@osaas/client-web';
|
|
3
|
+
import { Command } from 'commander';
|
|
4
|
+
|
|
5
|
+
export function cmdWeb() {
|
|
6
|
+
const web = new Command('web');
|
|
7
|
+
|
|
8
|
+
web
|
|
9
|
+
.command('publish')
|
|
10
|
+
.description('Publish a website')
|
|
11
|
+
.argument('<name>', 'Name of website')
|
|
12
|
+
.argument('<dir>', 'Directory to publish')
|
|
13
|
+
.option('-s, --sync', 'Synchronize the bucket')
|
|
14
|
+
.action(async (name, dir, options, command) => {
|
|
15
|
+
try {
|
|
16
|
+
const globalOpts = command.optsWithGlobals();
|
|
17
|
+
const environment = globalOpts?.env || 'prod';
|
|
18
|
+
const ctx = new Context({ environment });
|
|
19
|
+
|
|
20
|
+
const website = await publish(name, dir, ctx, { sync: options.sync });
|
|
21
|
+
console.log(`Website published at: ${website.url}`);
|
|
22
|
+
console.log('CDN settings:');
|
|
23
|
+
console.log(` - Origin: ${new URL(website.bucket.endpoint).hostname}`);
|
|
24
|
+
console.log(
|
|
25
|
+
` - Origin Headers: 'Host: ${
|
|
26
|
+
new URL(website.bucket.endpoint).hostname
|
|
27
|
+
}'`
|
|
28
|
+
);
|
|
29
|
+
console.log(` - Origin Path: ${website.bucket.name}`);
|
|
30
|
+
console.log(` - Default root object: index.html`);
|
|
31
|
+
} catch (err) {
|
|
32
|
+
console.log((err as Error).message);
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
web
|
|
37
|
+
.command('cdn-create')
|
|
38
|
+
.description('Create a CDN distribution for a service instance')
|
|
39
|
+
.argument('<serviceId>', 'Service Id')
|
|
40
|
+
.argument('<instanceName>', 'Instance name')
|
|
41
|
+
.option('--provider <provider>', 'CDN provider (default: cloudfront)')
|
|
42
|
+
.option('--origin-path <originPath>', 'Origin path (default: /)')
|
|
43
|
+
.action(async (serviceId, instanceName, options, command) => {
|
|
44
|
+
try {
|
|
45
|
+
const globalOpts = command.optsWithGlobals();
|
|
46
|
+
const environment = globalOpts?.env || 'prod';
|
|
47
|
+
const ctx = new Context({ environment });
|
|
48
|
+
|
|
49
|
+
if (!options.provider) {
|
|
50
|
+
options.provider = 'cloudfront';
|
|
51
|
+
}
|
|
52
|
+
if (options.provider === 'cloudfront') {
|
|
53
|
+
console.log('Creating CloudFront distribution...');
|
|
54
|
+
await createCloudfrontDistribution(serviceId, instanceName, ctx, {
|
|
55
|
+
originPath: options.originPath
|
|
56
|
+
});
|
|
57
|
+
console.log('CloudFront distribution created');
|
|
58
|
+
} else {
|
|
59
|
+
console.log('CDN provider not supported (available: cloudfront)');
|
|
60
|
+
}
|
|
61
|
+
} catch (err) {
|
|
62
|
+
console.log((err as Error).message);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
return web;
|
|
66
|
+
}
|