@sembix/cli 0.1.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 (61) hide show
  1. package/.env.example +6 -0
  2. package/LICENSE +15 -0
  3. package/README.md +698 -0
  4. package/config.example.yaml +118 -0
  5. package/dist/commands/hub-integration.d.ts +3 -0
  6. package/dist/commands/hub-integration.d.ts.map +1 -0
  7. package/dist/commands/hub-integration.js +107 -0
  8. package/dist/commands/hub-integration.js.map +1 -0
  9. package/dist/commands/setup.d.ts +3 -0
  10. package/dist/commands/setup.d.ts.map +1 -0
  11. package/dist/commands/setup.js +282 -0
  12. package/dist/commands/setup.js.map +1 -0
  13. package/dist/commands/update.d.ts +3 -0
  14. package/dist/commands/update.d.ts.map +1 -0
  15. package/dist/commands/update.js +498 -0
  16. package/dist/commands/update.js.map +1 -0
  17. package/dist/config-schema.d.ts +417 -0
  18. package/dist/config-schema.d.ts.map +1 -0
  19. package/dist/config-schema.js +152 -0
  20. package/dist/config-schema.js.map +1 -0
  21. package/dist/config.d.ts +6 -0
  22. package/dist/config.d.ts.map +1 -0
  23. package/dist/config.js +17 -0
  24. package/dist/config.js.map +1 -0
  25. package/dist/index.d.ts +3 -0
  26. package/dist/index.d.ts.map +1 -0
  27. package/dist/index.js +260 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/prompts/environment-setup.d.ts +4 -0
  30. package/dist/prompts/environment-setup.d.ts.map +1 -0
  31. package/dist/prompts/environment-setup.js +689 -0
  32. package/dist/prompts/environment-setup.js.map +1 -0
  33. package/dist/prompts/hub-integration-step.d.ts +21 -0
  34. package/dist/prompts/hub-integration-step.d.ts.map +1 -0
  35. package/dist/prompts/hub-integration-step.js +104 -0
  36. package/dist/prompts/hub-integration-step.js.map +1 -0
  37. package/dist/prompts/hub-integration.d.ts +4 -0
  38. package/dist/prompts/hub-integration.d.ts.map +1 -0
  39. package/dist/prompts/hub-integration.js +141 -0
  40. package/dist/prompts/hub-integration.js.map +1 -0
  41. package/dist/prompts/prompt-helpers.d.ts +18 -0
  42. package/dist/prompts/prompt-helpers.d.ts.map +1 -0
  43. package/dist/prompts/prompt-helpers.js +50 -0
  44. package/dist/prompts/prompt-helpers.js.map +1 -0
  45. package/dist/types.d.ts +144 -0
  46. package/dist/types.d.ts.map +1 -0
  47. package/dist/types.js +23 -0
  48. package/dist/types.js.map +1 -0
  49. package/dist/utils/config-loader.d.ts +34 -0
  50. package/dist/utils/config-loader.d.ts.map +1 -0
  51. package/dist/utils/config-loader.js +377 -0
  52. package/dist/utils/config-loader.js.map +1 -0
  53. package/dist/utils/github.d.ts +38 -0
  54. package/dist/utils/github.d.ts.map +1 -0
  55. package/dist/utils/github.js +188 -0
  56. package/dist/utils/github.js.map +1 -0
  57. package/dist/utils/ui.d.ts +18 -0
  58. package/dist/utils/ui.d.ts.map +1 -0
  59. package/dist/utils/ui.js +62 -0
  60. package/dist/utils/ui.js.map +1 -0
  61. package/package.json +80 -0
@@ -0,0 +1,18 @@
1
+ import { Ora } from 'ora';
2
+ /**
3
+ * UI utilities for consistent terminal output
4
+ */
5
+ export declare function banner(): void;
6
+ export declare function section(title: string): void;
7
+ export declare function success(message: string): void;
8
+ export declare function error(message: string): void;
9
+ export declare function warning(message: string): void;
10
+ export declare function info(message: string): void;
11
+ export declare function spinner(text: string): Ora;
12
+ export declare function table(data: Record<string, string>): void;
13
+ export declare function separator(): void;
14
+ export declare function link(url: string, label?: string): string;
15
+ export declare function highlight(text: string): string;
16
+ export declare function dim(text: string): string;
17
+ export declare function code(text: string): string;
18
+ //# sourceMappingURL=ui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.d.ts","sourceRoot":"","sources":["../../src/utils/ui.ts"],"names":[],"mappings":"AACA,OAAY,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE/B;;GAEG;AAEH,wBAAgB,MAAM,IAAI,IAAI,CAQ7B;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAI3C;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7C;AAED,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE3C;AAED,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7C;AAED,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAKzC;AAED,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CASxD;AAED,wBAAgB,SAAS,IAAI,IAAI,CAEhC;AAED,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED,wBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAExC;AAED,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzC"}
@@ -0,0 +1,62 @@
1
+ import chalk from 'chalk';
2
+ import ora from 'ora';
3
+ /**
4
+ * UI utilities for consistent terminal output
5
+ */
6
+ export function banner() {
7
+ console.log();
8
+ console.log(chalk.cyan.bold('┌─────────────────────────────────────────┐'));
9
+ console.log(chalk.cyan.bold('│ │'));
10
+ console.log(chalk.cyan.bold('│ ') + chalk.white.bold('Sembix Studio CLI') + chalk.cyan.bold(' │'));
11
+ console.log(chalk.cyan.bold('│ │'));
12
+ console.log(chalk.cyan.bold('└─────────────────────────────────────────┘'));
13
+ console.log();
14
+ }
15
+ export function section(title) {
16
+ console.log();
17
+ console.log(chalk.cyan.bold(`━━━ ${title} ━━━`));
18
+ console.log();
19
+ }
20
+ export function success(message) {
21
+ console.log(chalk.green('✓') + ' ' + message);
22
+ }
23
+ export function error(message) {
24
+ console.log(chalk.red('✗') + ' ' + message);
25
+ }
26
+ export function warning(message) {
27
+ console.log(chalk.yellow('⚠') + ' ' + message);
28
+ }
29
+ export function info(message) {
30
+ console.log(chalk.blue('ℹ') + ' ' + message);
31
+ }
32
+ export function spinner(text) {
33
+ return ora({
34
+ text,
35
+ color: 'cyan',
36
+ }).start();
37
+ }
38
+ export function table(data) {
39
+ const maxKeyLength = Math.max(...Object.keys(data).map(k => k.length));
40
+ console.log();
41
+ for (const [key, value] of Object.entries(data)) {
42
+ const paddedKey = key.padEnd(maxKeyLength);
43
+ console.log(` ${chalk.dim(paddedKey)} : ${chalk.white(value)}`);
44
+ }
45
+ console.log();
46
+ }
47
+ export function separator() {
48
+ console.log(chalk.dim('─'.repeat(50)));
49
+ }
50
+ export function link(url, label) {
51
+ return chalk.cyan.underline(label || url) + chalk.dim(` (${url})`);
52
+ }
53
+ export function highlight(text) {
54
+ return chalk.cyan.bold(text);
55
+ }
56
+ export function dim(text) {
57
+ return chalk.dim(text);
58
+ }
59
+ export function code(text) {
60
+ return chalk.yellow(`\`${text}\``);
61
+ }
62
+ //# sourceMappingURL=ui.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ui.js","sourceRoot":"","sources":["../../src/utils/ui.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,80 @@
1
+ {
2
+ "name": "@sembix/cli",
3
+ "version": "0.1.0",
4
+ "description": "CLI tool for managing Sembix products",
5
+ "type": "module",
6
+ "bin": {
7
+ "sembix": "dist/index.js",
8
+ "sembix-studio": "dist/index.js"
9
+ },
10
+ "scripts": {
11
+ "build": "tsc",
12
+ "dev": "tsx src/index.ts",
13
+ "start": "node dist/index.js",
14
+ "type-check": "tsc --noEmit",
15
+ "lint": "eslint src --ext .ts",
16
+ "lint:fix": "eslint src --ext .ts --fix",
17
+ "test": "echo \"No tests yet\" && exit 0",
18
+ "prepublishOnly": "npm run build"
19
+ },
20
+ "files": [
21
+ "dist/",
22
+ "README.md",
23
+ ".env.example",
24
+ "config.example.yaml"
25
+ ],
26
+ "keywords": [
27
+ "sembix",
28
+ "studio",
29
+ "cli",
30
+ "deployment",
31
+ "github-actions",
32
+ "aws",
33
+ "terraform",
34
+ "infrastructure"
35
+ ],
36
+ "author": "Sembix AI",
37
+ "license": "UNLICENSED",
38
+ "repository": {
39
+ "type": "git",
40
+ "url": "git+https://github.com/sembix-ai/sembix-cli.git"
41
+ },
42
+ "bugs": {
43
+ "url": "https://github.com/sembix-ai/sembix-cli/issues"
44
+ },
45
+ "homepage": "https://github.com/sembix-ai/sembix-cli#readme",
46
+ "publishConfig": {
47
+ "access": "public"
48
+ },
49
+ "dependencies": {
50
+ "@inquirer/prompts": "^7.2.0",
51
+ "@octokit/rest": "^21.0.2",
52
+ "chalk": "^5.3.0",
53
+ "commander": "^12.1.0",
54
+ "dotenv": "^16.4.7",
55
+ "js-yaml": "^4.1.0",
56
+ "libsodium-wrappers": "^0.7.15",
57
+ "ora": "^8.1.1",
58
+ "zod": "^3.23.8"
59
+ },
60
+ "devDependencies": {
61
+ "@types/js-yaml": "^4.0.9",
62
+ "@types/libsodium-wrappers": "^0.7.14",
63
+ "@types/node": "^20.17.10",
64
+ "@typescript-eslint/eslint-plugin": "^8.0.0",
65
+ "@typescript-eslint/parser": "^8.0.0",
66
+ "eslint": "^9.0.0",
67
+ "semantic-release": "^24.0.0",
68
+ "@semantic-release/changelog": "^6.0.3",
69
+ "@semantic-release/commit-analyzer": "^13.0.0",
70
+ "@semantic-release/git": "^10.0.1",
71
+ "@semantic-release/github": "^11.0.0",
72
+ "@semantic-release/npm": "^12.0.0",
73
+ "@semantic-release/release-notes-generator": "^14.0.0",
74
+ "tsx": "^4.19.2",
75
+ "typescript": "^5.8.0"
76
+ },
77
+ "engines": {
78
+ "node": ">=20.0.0"
79
+ }
80
+ }