skillpkg-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 (73) hide show
  1. package/dist/cli.d.ts +9 -0
  2. package/dist/cli.d.ts.map +1 -0
  3. package/dist/cli.js +119 -0
  4. package/dist/cli.js.map +1 -0
  5. package/dist/commands/export.d.ts +13 -0
  6. package/dist/commands/export.d.ts.map +1 -0
  7. package/dist/commands/export.js +117 -0
  8. package/dist/commands/export.js.map +1 -0
  9. package/dist/commands/import.d.ts +12 -0
  10. package/dist/commands/import.d.ts.map +1 -0
  11. package/dist/commands/import.js +126 -0
  12. package/dist/commands/import.js.map +1 -0
  13. package/dist/commands/info.d.ts +10 -0
  14. package/dist/commands/info.d.ts.map +1 -0
  15. package/dist/commands/info.js +118 -0
  16. package/dist/commands/info.js.map +1 -0
  17. package/dist/commands/init.d.ts +10 -0
  18. package/dist/commands/init.d.ts.map +1 -0
  19. package/dist/commands/init.js +161 -0
  20. package/dist/commands/init.js.map +1 -0
  21. package/dist/commands/install.d.ts +10 -0
  22. package/dist/commands/install.d.ts.map +1 -0
  23. package/dist/commands/install.js +190 -0
  24. package/dist/commands/install.js.map +1 -0
  25. package/dist/commands/list.d.ts +10 -0
  26. package/dist/commands/list.d.ts.map +1 -0
  27. package/dist/commands/list.js +74 -0
  28. package/dist/commands/list.js.map +1 -0
  29. package/dist/commands/login.d.ts +22 -0
  30. package/dist/commands/login.d.ts.map +1 -0
  31. package/dist/commands/login.js +100 -0
  32. package/dist/commands/login.js.map +1 -0
  33. package/dist/commands/publish.d.ts +12 -0
  34. package/dist/commands/publish.d.ts.map +1 -0
  35. package/dist/commands/publish.js +161 -0
  36. package/dist/commands/publish.js.map +1 -0
  37. package/dist/commands/search.d.ts +13 -0
  38. package/dist/commands/search.d.ts.map +1 -0
  39. package/dist/commands/search.js +94 -0
  40. package/dist/commands/search.js.map +1 -0
  41. package/dist/commands/sync.d.ts +10 -0
  42. package/dist/commands/sync.d.ts.map +1 -0
  43. package/dist/commands/sync.js +162 -0
  44. package/dist/commands/sync.js.map +1 -0
  45. package/dist/commands/uninstall.d.ts +10 -0
  46. package/dist/commands/uninstall.d.ts.map +1 -0
  47. package/dist/commands/uninstall.js +48 -0
  48. package/dist/commands/uninstall.js.map +1 -0
  49. package/dist/index.d.ts +3 -0
  50. package/dist/index.d.ts.map +1 -0
  51. package/dist/index.js +17 -0
  52. package/dist/index.js.map +1 -0
  53. package/dist/ui/index.d.ts +8 -0
  54. package/dist/ui/index.d.ts.map +1 -0
  55. package/dist/ui/index.js +8 -0
  56. package/dist/ui/index.js.map +1 -0
  57. package/dist/ui/logger.d.ts +43 -0
  58. package/dist/ui/logger.d.ts.map +1 -0
  59. package/dist/ui/logger.js +77 -0
  60. package/dist/ui/logger.js.map +1 -0
  61. package/dist/ui/prompt.d.ts +35 -0
  62. package/dist/ui/prompt.d.ts.map +1 -0
  63. package/dist/ui/prompt.js +66 -0
  64. package/dist/ui/prompt.js.map +1 -0
  65. package/dist/ui/spinner.d.ts +16 -0
  66. package/dist/ui/spinner.d.ts.map +1 -0
  67. package/dist/ui/spinner.js +30 -0
  68. package/dist/ui/spinner.js.map +1 -0
  69. package/dist/ui/table.d.ts +20 -0
  70. package/dist/ui/table.d.ts.map +1 -0
  71. package/dist/ui/table.js +46 -0
  72. package/dist/ui/table.js.map +1 -0
  73. package/package.json +67 -0
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Conditionally apply chalk styling
3
+ */
4
+ declare const c: import("chalk").ChalkInstance | {
5
+ green: (s: string) => string;
6
+ red: (s: string) => string;
7
+ yellow: (s: string) => string;
8
+ blue: (s: string) => string;
9
+ cyan: (s: string) => string;
10
+ gray: (s: string) => string;
11
+ bold: (s: string) => string;
12
+ dim: (s: string) => string;
13
+ };
14
+ /**
15
+ * Logger object with various log levels
16
+ */
17
+ export declare const logger: {
18
+ /** Log info message (blue) */
19
+ info: (message: string) => void;
20
+ /** Log success message (green) */
21
+ success: (message: string) => void;
22
+ /** Log warning message (yellow) */
23
+ warn: (message: string) => void;
24
+ /** Log error message (red) */
25
+ error: (message: string) => void;
26
+ /** Log debug message (gray) */
27
+ debug: (message: string) => void;
28
+ /** Log plain message */
29
+ log: (message: string) => void;
30
+ /** Log a blank line */
31
+ blank: () => void;
32
+ /** Log a header */
33
+ header: (title: string) => void;
34
+ /** Log key-value pair */
35
+ pair: (key: string, value: string) => void;
36
+ /** Log a list item */
37
+ item: (text: string) => void;
38
+ };
39
+ /**
40
+ * Chalk colors for external use
41
+ */
42
+ export { c as colors };
43
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/ui/logger.ts"],"names":[],"mappings":"AAUA;;GAEG;AACH,QAAA,MAAM,CAAC;eAEU,MAAM;aACR,MAAM;gBACH,MAAM;cACR,MAAM;cACN,MAAM;cACN,MAAM;cACN,MAAM;aACP,MAAM;CAEZ,CAAC;AAEV;;GAEG;AACH,eAAO,MAAM,MAAM;IACjB,8BAA8B;oBACd,MAAM;IAItB,kCAAkC;uBACf,MAAM;IAIzB,mCAAmC;oBACnB,MAAM;IAItB,8BAA8B;qBACb,MAAM;IAIvB,+BAA+B;qBACd,MAAM;IAMvB,wBAAwB;mBACT,MAAM;IAIrB,uBAAuB;;IAKvB,mBAAmB;oBACH,MAAM;IAMtB,yBAAyB;gBACb,MAAM,SAAS,MAAM;IAIjC,sBAAsB;iBACT,MAAM;CAGpB,CAAC;AAEF;;GAEG;AACH,OAAO,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC"}
@@ -0,0 +1,77 @@
1
+ /**
2
+ * Logger utilities with chalk colors
3
+ */
4
+ import chalk from 'chalk';
5
+ /**
6
+ * Check if colors should be disabled
7
+ */
8
+ const noColor = process.env.NO_COLOR !== undefined || process.env.TERM === 'dumb';
9
+ /**
10
+ * Conditionally apply chalk styling
11
+ */
12
+ const c = noColor
13
+ ? {
14
+ green: (s) => s,
15
+ red: (s) => s,
16
+ yellow: (s) => s,
17
+ blue: (s) => s,
18
+ cyan: (s) => s,
19
+ gray: (s) => s,
20
+ bold: (s) => s,
21
+ dim: (s) => s,
22
+ }
23
+ : chalk;
24
+ /**
25
+ * Logger object with various log levels
26
+ */
27
+ export const logger = {
28
+ /** Log info message (blue) */
29
+ info: (message) => {
30
+ console.log(c.blue('ℹ'), message);
31
+ },
32
+ /** Log success message (green) */
33
+ success: (message) => {
34
+ console.log(c.green('✓'), message);
35
+ },
36
+ /** Log warning message (yellow) */
37
+ warn: (message) => {
38
+ console.log(c.yellow('⚠'), message);
39
+ },
40
+ /** Log error message (red) */
41
+ error: (message) => {
42
+ console.error(c.red('✖'), message);
43
+ },
44
+ /** Log debug message (gray) */
45
+ debug: (message) => {
46
+ if (process.env.DEBUG) {
47
+ console.log(c.gray('⋯'), c.gray(message));
48
+ }
49
+ },
50
+ /** Log plain message */
51
+ log: (message) => {
52
+ console.log(message);
53
+ },
54
+ /** Log a blank line */
55
+ blank: () => {
56
+ console.log();
57
+ },
58
+ /** Log a header */
59
+ header: (title) => {
60
+ console.log();
61
+ console.log(c.bold(title));
62
+ console.log(c.dim('─'.repeat(title.length)));
63
+ },
64
+ /** Log key-value pair */
65
+ pair: (key, value) => {
66
+ console.log(` ${c.dim(key + ':')} ${value}`);
67
+ },
68
+ /** Log a list item */
69
+ item: (text) => {
70
+ console.log(` ${c.dim('•')} ${text}`);
71
+ },
72
+ };
73
+ /**
74
+ * Chalk colors for external use
75
+ */
76
+ export { c as colors };
77
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/ui/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ export type PromptQuestion = {
2
+ type: 'input' | 'password' | 'confirm' | 'list' | 'checkbox';
3
+ name: string;
4
+ message: string;
5
+ default?: unknown;
6
+ choices?: Array<{
7
+ name: string;
8
+ value: unknown;
9
+ } | string>;
10
+ validate?: (input: unknown) => boolean | string;
11
+ };
12
+ /**
13
+ * Create an interactive prompt
14
+ */
15
+ export declare function createPrompt<T extends Record<string, unknown>>(questions: PromptQuestion[]): Promise<T>;
16
+ /**
17
+ * Simple confirm prompt
18
+ */
19
+ export declare function confirm(message: string, defaultValue?: boolean): Promise<boolean>;
20
+ /**
21
+ * Simple input prompt
22
+ */
23
+ export declare function input(message: string, defaultValue?: string): Promise<string>;
24
+ /**
25
+ * Simple password prompt
26
+ */
27
+ export declare function password(message: string): Promise<string>;
28
+ /**
29
+ * Simple list selection prompt
30
+ */
31
+ export declare function select<T>(message: string, choices: Array<{
32
+ name: string;
33
+ value: T;
34
+ }>): Promise<T>;
35
+ //# sourceMappingURL=prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/ui/prompt.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,MAAM,GAAG,UAAU,CAAC;IAC7D,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,GAAG,MAAM,CAAC,CAAC;IAC3D,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,GAAG,MAAM,CAAC;CACjD,CAAC;AAEF;;GAEG;AACH,wBAAsB,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,SAAS,EAAE,cAAc,EAAE,GAC1B,OAAO,CAAC,CAAC,CAAC,CAEZ;AAED;;GAEG;AACH,wBAAsB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,UAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,CAUrF;AAED;;GAEG;AACH,wBAAsB,KAAK,CACzB,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,MAAM,CAAC,CAUjB;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAS/D;AAED;;GAEG;AACH,wBAAsB,MAAM,CAAC,CAAC,EAC5B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAE,CAAC,GACzC,OAAO,CAAC,CAAC,CAAC,CAUZ"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Prompt utilities using inquirer
3
+ */
4
+ import inquirer from 'inquirer';
5
+ /**
6
+ * Create an interactive prompt
7
+ */
8
+ export async function createPrompt(questions) {
9
+ return inquirer.prompt(questions);
10
+ }
11
+ /**
12
+ * Simple confirm prompt
13
+ */
14
+ export async function confirm(message, defaultValue = false) {
15
+ const { result } = await createPrompt([
16
+ {
17
+ type: 'confirm',
18
+ name: 'result',
19
+ message,
20
+ default: defaultValue,
21
+ },
22
+ ]);
23
+ return result;
24
+ }
25
+ /**
26
+ * Simple input prompt
27
+ */
28
+ export async function input(message, defaultValue) {
29
+ const { result } = await createPrompt([
30
+ {
31
+ type: 'input',
32
+ name: 'result',
33
+ message,
34
+ default: defaultValue,
35
+ },
36
+ ]);
37
+ return result;
38
+ }
39
+ /**
40
+ * Simple password prompt
41
+ */
42
+ export async function password(message) {
43
+ const { result } = await createPrompt([
44
+ {
45
+ type: 'password',
46
+ name: 'result',
47
+ message,
48
+ },
49
+ ]);
50
+ return result;
51
+ }
52
+ /**
53
+ * Simple list selection prompt
54
+ */
55
+ export async function select(message, choices) {
56
+ const { result } = await createPrompt([
57
+ {
58
+ type: 'list',
59
+ name: 'result',
60
+ message,
61
+ choices,
62
+ },
63
+ ]);
64
+ return result;
65
+ }
66
+ //# sourceMappingURL=prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/ui/prompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,QAAQ,MAAM,UAAU,CAAC;AAWhC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,SAA2B;IAE3B,OAAO,QAAQ,CAAC,MAAM,CAAC,SAAkD,CAAe,CAAC;AAC3F,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAe,EAAE,YAAY,GAAG,KAAK;IACjE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,YAAY,CAAsB;QACzD;YACE,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,QAAQ;YACd,OAAO;YACP,OAAO,EAAE,YAAY;SACtB;KACF,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,KAAK,CACzB,OAAe,EACf,YAAqB;IAErB,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,YAAY,CAAqB;QACxD;YACE,IAAI,EAAE,OAAO;YACb,IAAI,EAAE,QAAQ;YACd,OAAO;YACP,OAAO,EAAE,YAAY;SACtB;KACF,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAe;IAC5C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,YAAY,CAAqB;QACxD;YACE,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,QAAQ;YACd,OAAO;SACR;KACF,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,OAAe,EACf,OAA0C;IAE1C,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,YAAY,CAAgB;QACnD;YACE,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,QAAQ;YACd,OAAO;YACP,OAAO;SACR;KACF,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Spinner utilities with ora
3
+ */
4
+ import { type Ora } from 'ora';
5
+ /**
6
+ * Create a spinner instance
7
+ */
8
+ export declare function createSpinner(text: string): Ora;
9
+ /**
10
+ * Run an async task with a spinner
11
+ */
12
+ export declare function withSpinner<T>(text: string, task: () => Promise<T>, options?: {
13
+ successText?: string;
14
+ failText?: string;
15
+ }): Promise<T>;
16
+ //# sourceMappingURL=spinner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../../src/ui/spinner.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAY,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAEpC;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,GAAG,CAK/C;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,CAAC,EACjC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACtB,OAAO,GAAE;IACP,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACd,GACL,OAAO,CAAC,CAAC,CAAC,CAYZ"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Spinner utilities with ora
3
+ */
4
+ import ora, {} from 'ora';
5
+ /**
6
+ * Create a spinner instance
7
+ */
8
+ export function createSpinner(text) {
9
+ return ora({
10
+ text,
11
+ spinner: 'dots',
12
+ });
13
+ }
14
+ /**
15
+ * Run an async task with a spinner
16
+ */
17
+ export async function withSpinner(text, task, options = {}) {
18
+ const spinner = createSpinner(text);
19
+ spinner.start();
20
+ try {
21
+ const result = await task();
22
+ spinner.succeed(options.successText || text);
23
+ return result;
24
+ }
25
+ catch (error) {
26
+ spinner.fail(options.failText || text);
27
+ throw error;
28
+ }
29
+ }
30
+ //# sourceMappingURL=spinner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spinner.js","sourceRoot":"","sources":["../../src/ui/spinner.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,GAAG,EAAE,EAAY,MAAM,KAAK,CAAC;AAEpC;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,GAAG,CAAC;QACT,IAAI;QACJ,OAAO,EAAE,MAAM;KAChB,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,IAAY,EACZ,IAAsB,EACtB,UAGI,EAAE;IAEN,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IACpC,OAAO,CAAC,KAAK,EAAE,CAAC;IAEhB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;QAC5B,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,IAAI,CAAC,CAAC;QAC7C,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC;QACvC,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Table utilities with cli-table3
3
+ */
4
+ import Table from 'cli-table3';
5
+ /**
6
+ * Table options
7
+ */
8
+ export interface TableOptions {
9
+ head: string[];
10
+ colWidths?: number[];
11
+ }
12
+ /**
13
+ * Create a styled table
14
+ */
15
+ export declare function createTable(options: TableOptions): Table.Table;
16
+ /**
17
+ * Print a table
18
+ */
19
+ export declare function printTable(table: Table.Table): void;
20
+ //# sourceMappingURL=table.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/ui/table.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,YAAY,CAAC;AAG/B;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,YAAY,GAAG,KAAK,CAAC,KAAK,CAgC9D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,GAAG,IAAI,CAEnD"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Table utilities with cli-table3
3
+ */
4
+ import Table from 'cli-table3';
5
+ import { colors } from './logger.js';
6
+ /**
7
+ * Create a styled table
8
+ */
9
+ export function createTable(options) {
10
+ const tableConfig = {
11
+ head: options.head.map((h) => colors.cyan(h)),
12
+ style: {
13
+ head: [],
14
+ border: [],
15
+ },
16
+ chars: {
17
+ top: '─',
18
+ 'top-mid': '┬',
19
+ 'top-left': '┌',
20
+ 'top-right': '┐',
21
+ bottom: '─',
22
+ 'bottom-mid': '┴',
23
+ 'bottom-left': '└',
24
+ 'bottom-right': '┘',
25
+ left: '│',
26
+ 'left-mid': '├',
27
+ mid: '─',
28
+ 'mid-mid': '┼',
29
+ right: '│',
30
+ 'right-mid': '┤',
31
+ middle: '│',
32
+ },
33
+ };
34
+ // Only add colWidths if provided (cli-table3 crashes with undefined)
35
+ if (options.colWidths) {
36
+ tableConfig.colWidths = options.colWidths;
37
+ }
38
+ return new Table(tableConfig);
39
+ }
40
+ /**
41
+ * Print a table
42
+ */
43
+ export function printTable(table) {
44
+ console.log(table.toString());
45
+ }
46
+ //# sourceMappingURL=table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/ui/table.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAUrC;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,OAAqB;IAC/C,MAAM,WAAW,GAAkC;QACjD,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7C,KAAK,EAAE;YACL,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,EAAE;SACX;QACD,KAAK,EAAE;YACL,GAAG,EAAE,GAAG;YACR,SAAS,EAAE,GAAG;YACd,UAAU,EAAE,GAAG;YACf,WAAW,EAAE,GAAG;YAChB,MAAM,EAAE,GAAG;YACX,YAAY,EAAE,GAAG;YACjB,aAAa,EAAE,GAAG;YAClB,cAAc,EAAE,GAAG;YACnB,IAAI,EAAE,GAAG;YACT,UAAU,EAAE,GAAG;YACf,GAAG,EAAE,GAAG;YACR,SAAS,EAAE,GAAG;YACd,KAAK,EAAE,GAAG;YACV,WAAW,EAAE,GAAG;YAChB,MAAM,EAAE,GAAG;SACZ;KACF,CAAC;IAEF,qEAAqE;IACrE,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,WAAW,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;IAC5C,CAAC;IAED,OAAO,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,KAAkB;IAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;AAChC,CAAC"}
package/package.json ADDED
@@ -0,0 +1,67 @@
1
+ {
2
+ "name": "skillpkg-cli",
3
+ "version": "0.1.0",
4
+ "description": "CLI for skillpkg - Agent Skills Package Manager. Install once, use everywhere.",
5
+ "type": "module",
6
+ "bin": {
7
+ "skillpkg": "./dist/index.js"
8
+ },
9
+ "exports": {
10
+ ".": {
11
+ "import": "./dist/index.js",
12
+ "types": "./dist/index.d.ts"
13
+ }
14
+ },
15
+ "files": [
16
+ "dist"
17
+ ],
18
+ "scripts": {
19
+ "build": "tsc",
20
+ "dev": "tsc --watch",
21
+ "start": "node dist/index.js"
22
+ },
23
+ "keywords": [
24
+ "cli",
25
+ "skillpkg",
26
+ "agent",
27
+ "skills",
28
+ "ai",
29
+ "claude",
30
+ "copilot",
31
+ "codex",
32
+ "llm",
33
+ "package-manager"
34
+ ],
35
+ "author": "miles990",
36
+ "license": "MIT",
37
+ "repository": {
38
+ "type": "git",
39
+ "url": "git+https://github.com/miles990/skillpkg.git",
40
+ "directory": "packages/cli"
41
+ },
42
+ "homepage": "https://github.com/miles990/skillpkg#readme",
43
+ "bugs": {
44
+ "url": "https://github.com/miles990/skillpkg/issues"
45
+ },
46
+ "publishConfig": {
47
+ "access": "public"
48
+ },
49
+ "engines": {
50
+ "node": ">=18.0.0"
51
+ },
52
+ "dependencies": {
53
+ "skillpkg-core": "workspace:*",
54
+ "chalk": "^5.3.0",
55
+ "cli-table3": "^0.6.3",
56
+ "commander": "^12.0.0",
57
+ "inquirer": "^9.2.0",
58
+ "ora": "^8.0.0",
59
+ "tar-stream": "^3.1.7"
60
+ },
61
+ "devDependencies": {
62
+ "@types/inquirer": "^9.0.0",
63
+ "@types/node": "^20.10.0",
64
+ "@types/tar-stream": "^3.1.4",
65
+ "typescript": "^5.3.0"
66
+ }
67
+ }