sphereai-cli 1.0.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/README.md +529 -0
- package/dist/commands/auth.d.ts +3 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +194 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/execute.d.ts +3 -0
- package/dist/commands/execute.d.ts.map +1 -0
- package/dist/commands/execute.js +165 -0
- package/dist/commands/execute.js.map +1 -0
- package/dist/commands/files.d.ts +3 -0
- package/dist/commands/files.d.ts.map +1 -0
- package/dist/commands/files.js +235 -0
- package/dist/commands/files.js.map +1 -0
- package/dist/commands/models.d.ts +3 -0
- package/dist/commands/models.d.ts.map +1 -0
- package/dist/commands/models.js +70 -0
- package/dist/commands/models.js.map +1 -0
- package/dist/commands/prompts.d.ts +3 -0
- package/dist/commands/prompts.d.ts.map +1 -0
- package/dist/commands/prompts.js +72 -0
- package/dist/commands/prompts.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +103 -0
- package/dist/index.js.map +1 -0
- package/dist/services/api-client.d.ts +16 -0
- package/dist/services/api-client.d.ts.map +1 -0
- package/dist/services/api-client.js +125 -0
- package/dist/services/api-client.js.map +1 -0
- package/dist/services/auth-service.d.ts +28 -0
- package/dist/services/auth-service.d.ts.map +1 -0
- package/dist/services/auth-service.js +171 -0
- package/dist/services/auth-service.js.map +1 -0
- package/dist/services/cli-api-client.d.ts +20 -0
- package/dist/services/cli-api-client.d.ts.map +1 -0
- package/dist/services/cli-api-client.js +83 -0
- package/dist/services/cli-api-client.js.map +1 -0
- package/dist/services/config-service.d.ts +43 -0
- package/dist/services/config-service.d.ts.map +1 -0
- package/dist/services/config-service.js +97 -0
- package/dist/services/config-service.js.map +1 -0
- package/dist/services/file-tracking-service.d.ts +62 -0
- package/dist/services/file-tracking-service.d.ts.map +1 -0
- package/dist/services/file-tracking-service.js +207 -0
- package/dist/services/file-tracking-service.js.map +1 -0
- package/dist/types/api-types.d.ts +67 -0
- package/dist/types/api-types.d.ts.map +1 -0
- package/dist/types/api-types.js +10 -0
- package/dist/types/api-types.js.map +1 -0
- package/dist/utils/errors.d.ts +35 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +82 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/file-walker.d.ts +31 -0
- package/dist/utils/file-walker.d.ts.map +1 -0
- package/dist/utils/file-walker.js +118 -0
- package/dist/utils/file-walker.js.map +1 -0
- package/dist/utils/formatters.d.ts +35 -0
- package/dist/utils/formatters.d.ts.map +1 -0
- package/dist/utils/formatters.js +101 -0
- package/dist/utils/formatters.js.map +1 -0
- package/dist/utils/ignore-parser.d.ts +21 -0
- package/dist/utils/ignore-parser.d.ts.map +1 -0
- package/dist/utils/ignore-parser.js +170 -0
- package/dist/utils/ignore-parser.js.map +1 -0
- package/dist/utils/sphereignore.d.ts +34 -0
- package/dist/utils/sphereignore.d.ts.map +1 -0
- package/dist/utils/sphereignore.js +148 -0
- package/dist/utils/sphereignore.js.map +1 -0
- package/package.json +48 -0
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Custom error class for CLI errors
|
|
3
|
+
*/
|
|
4
|
+
export declare class CLIError extends Error {
|
|
5
|
+
code?: string | undefined;
|
|
6
|
+
constructor(message: string, code?: string | undefined);
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Authentication error
|
|
10
|
+
*/
|
|
11
|
+
export declare class AuthenticationError extends CLIError {
|
|
12
|
+
constructor(message?: string);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Configuration error
|
|
16
|
+
*/
|
|
17
|
+
export declare class ConfigurationError extends CLIError {
|
|
18
|
+
constructor(message: string);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* API error
|
|
22
|
+
*/
|
|
23
|
+
export declare class APIError extends CLIError {
|
|
24
|
+
statusCode?: number | undefined;
|
|
25
|
+
constructor(message: string, statusCode?: number | undefined);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Handle and display errors
|
|
29
|
+
*/
|
|
30
|
+
export declare function handleError(err: unknown): void;
|
|
31
|
+
/**
|
|
32
|
+
* Require authentication and throw error if not authenticated
|
|
33
|
+
*/
|
|
34
|
+
export declare function requireAuth(token: string | undefined): asserts token is string;
|
|
35
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;IACG,IAAI,CAAC,EAAE,MAAM;gBAArC,OAAO,EAAE,MAAM,EAAS,IAAI,CAAC,EAAE,MAAM,YAAA;CAKlD;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,QAAQ;gBACnC,OAAO,GAAE,MAAuE;CAI7F;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,QAAQ;gBAClC,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,qBAAa,QAAS,SAAQ,QAAQ;IACA,UAAU,CAAC,EAAE,MAAM;gBAA3C,OAAO,EAAE,MAAM,EAAS,UAAU,CAAC,EAAE,MAAM,YAAA;CAIxD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAkB9C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAI9E"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.APIError = exports.ConfigurationError = exports.AuthenticationError = exports.CLIError = void 0;
|
|
4
|
+
exports.handleError = handleError;
|
|
5
|
+
exports.requireAuth = requireAuth;
|
|
6
|
+
const formatters_1 = require("./formatters");
|
|
7
|
+
/**
|
|
8
|
+
* Custom error class for CLI errors
|
|
9
|
+
*/
|
|
10
|
+
class CLIError extends Error {
|
|
11
|
+
constructor(message, code) {
|
|
12
|
+
super(message);
|
|
13
|
+
this.code = code;
|
|
14
|
+
this.name = 'CLIError';
|
|
15
|
+
Object.setPrototypeOf(this, CLIError.prototype);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.CLIError = CLIError;
|
|
19
|
+
/**
|
|
20
|
+
* Authentication error
|
|
21
|
+
*/
|
|
22
|
+
class AuthenticationError extends CLIError {
|
|
23
|
+
constructor(message = 'Authentication required. Please login using "sphereai login"') {
|
|
24
|
+
super(message, 'AUTH_REQUIRED');
|
|
25
|
+
this.name = 'AuthenticationError';
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.AuthenticationError = AuthenticationError;
|
|
29
|
+
/**
|
|
30
|
+
* Configuration error
|
|
31
|
+
*/
|
|
32
|
+
class ConfigurationError extends CLIError {
|
|
33
|
+
constructor(message) {
|
|
34
|
+
super(message, 'CONFIG_ERROR');
|
|
35
|
+
this.name = 'ConfigurationError';
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
exports.ConfigurationError = ConfigurationError;
|
|
39
|
+
/**
|
|
40
|
+
* API error
|
|
41
|
+
*/
|
|
42
|
+
class APIError extends CLIError {
|
|
43
|
+
constructor(message, statusCode) {
|
|
44
|
+
super(message, 'API_ERROR');
|
|
45
|
+
this.statusCode = statusCode;
|
|
46
|
+
this.name = 'APIError';
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
exports.APIError = APIError;
|
|
50
|
+
/**
|
|
51
|
+
* Handle and display errors
|
|
52
|
+
*/
|
|
53
|
+
function handleError(err) {
|
|
54
|
+
if (err instanceof CLIError) {
|
|
55
|
+
(0, formatters_1.error)(err.message);
|
|
56
|
+
if (process.env.DEBUG) {
|
|
57
|
+
console.error('Stack trace:', err.stack);
|
|
58
|
+
}
|
|
59
|
+
process.exit(1);
|
|
60
|
+
}
|
|
61
|
+
else if (err instanceof Error) {
|
|
62
|
+
(0, formatters_1.error)(err.message);
|
|
63
|
+
if (process.env.DEBUG) {
|
|
64
|
+
console.error('Stack trace:', err.stack);
|
|
65
|
+
}
|
|
66
|
+
process.exit(1);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
(0, formatters_1.error)('An unexpected error occurred');
|
|
70
|
+
console.error(err);
|
|
71
|
+
process.exit(1);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Require authentication and throw error if not authenticated
|
|
76
|
+
*/
|
|
77
|
+
function requireAuth(token) {
|
|
78
|
+
if (!token) {
|
|
79
|
+
throw new AuthenticationError();
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":";;;AA8CA,kCAkBC;AAKD,kCAIC;AAzED,6CAAqD;AAErD;;GAEG;AACH,MAAa,QAAS,SAAQ,KAAK;IACjC,YAAY,OAAe,EAAS,IAAa;QAC/C,KAAK,CAAC,OAAO,CAAC,CAAC;QADmB,SAAI,GAAJ,IAAI,CAAS;QAE/C,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;QACvB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;CACF;AAND,4BAMC;AAED;;GAEG;AACH,MAAa,mBAAoB,SAAQ,QAAQ;IAC/C,YAAY,UAAkB,8DAA8D;QAC1F,KAAK,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;CACF;AALD,kDAKC;AAED;;GAEG;AACH,MAAa,kBAAmB,SAAQ,QAAQ;IAC9C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF;AALD,gDAKC;AAED;;GAEG;AACH,MAAa,QAAS,SAAQ,QAAQ;IACpC,YAAY,OAAe,EAAS,UAAmB;QACrD,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;QADM,eAAU,GAAV,UAAU,CAAS;QAErD,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;IACzB,CAAC;CACF;AALD,4BAKC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,GAAY;IACtC,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;QAC5B,IAAA,kBAAY,EAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1B,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;SAAM,IAAI,GAAG,YAAY,KAAK,EAAE,CAAC;QAChC,IAAA,kBAAY,EAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1B,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,IAAA,kBAAY,EAAC,8BAA8B,CAAC,CAAC;QAC7C,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAgB,WAAW,CAAC,KAAyB;IACnD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,mBAAmB,EAAE,CAAC;IAClC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export interface FileWalkerOptions {
|
|
2
|
+
ignoreFilePath?: string;
|
|
3
|
+
includeDotFiles?: boolean;
|
|
4
|
+
maxDepth?: number;
|
|
5
|
+
}
|
|
6
|
+
export declare class FileWalker {
|
|
7
|
+
private ignoreParser;
|
|
8
|
+
private options;
|
|
9
|
+
constructor(options?: FileWalkerOptions);
|
|
10
|
+
/**
|
|
11
|
+
* Walk through a directory and return all non-ignored files
|
|
12
|
+
*/
|
|
13
|
+
walk(dir: string): string[];
|
|
14
|
+
/**
|
|
15
|
+
* Recursively walk through directories
|
|
16
|
+
*/
|
|
17
|
+
private walkRecursive;
|
|
18
|
+
/**
|
|
19
|
+
* Filter a list of file paths based on ignore patterns
|
|
20
|
+
*/
|
|
21
|
+
filterFiles(files: string[], baseDir?: string): string[];
|
|
22
|
+
/**
|
|
23
|
+
* Check if a specific file should be ignored
|
|
24
|
+
*/
|
|
25
|
+
shouldIgnore(filePath: string): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* Get the ignore patterns (for debugging)
|
|
28
|
+
*/
|
|
29
|
+
getIgnorePatterns(): any;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=file-walker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-walker.d.ts","sourceRoot":"","sources":["../../src/utils/file-walker.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,iBAAiB;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,OAAO,CAA8B;gBAEjC,OAAO,GAAE,iBAAsB;IAc3C;;OAEG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE;IAM3B;;OAEG;IACH,OAAO,CAAC,aAAa;IAmCrB;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IAOxD;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAIvC;;OAEG;IACH,iBAAiB;CAGlB"}
|
|
@@ -0,0 +1,118 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.FileWalker = void 0;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
const ignore_parser_1 = require("./ignore-parser");
|
|
40
|
+
class FileWalker {
|
|
41
|
+
constructor(options = {}) {
|
|
42
|
+
this.ignoreParser = new ignore_parser_1.IgnoreParser();
|
|
43
|
+
this.options = {
|
|
44
|
+
ignoreFilePath: options.ignoreFilePath || '.sphereignore',
|
|
45
|
+
includeDotFiles: options.includeDotFiles ?? false,
|
|
46
|
+
maxDepth: options.maxDepth ?? Infinity
|
|
47
|
+
};
|
|
48
|
+
// Load ignore patterns if file exists
|
|
49
|
+
if (this.options.ignoreFilePath && fs.existsSync(this.options.ignoreFilePath)) {
|
|
50
|
+
this.ignoreParser.parseFile(this.options.ignoreFilePath);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Walk through a directory and return all non-ignored files
|
|
55
|
+
*/
|
|
56
|
+
walk(dir) {
|
|
57
|
+
const files = [];
|
|
58
|
+
this.walkRecursive(dir, dir, files, 0);
|
|
59
|
+
return files;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Recursively walk through directories
|
|
63
|
+
*/
|
|
64
|
+
walkRecursive(baseDir, currentDir, files, depth) {
|
|
65
|
+
if (depth > this.options.maxDepth) {
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
let entries;
|
|
69
|
+
try {
|
|
70
|
+
entries = fs.readdirSync(currentDir, { withFileTypes: true });
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
// Skip directories we can't read
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
for (const entry of entries) {
|
|
77
|
+
const fullPath = path.join(currentDir, entry.name);
|
|
78
|
+
const relativePath = path.relative(baseDir, fullPath);
|
|
79
|
+
// Skip dot files/directories if not included
|
|
80
|
+
if (!this.options.includeDotFiles && entry.name.startsWith('.')) {
|
|
81
|
+
continue;
|
|
82
|
+
}
|
|
83
|
+
// Check if this path should be ignored
|
|
84
|
+
if (this.ignoreParser.shouldIgnore(relativePath)) {
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
if (entry.isDirectory()) {
|
|
88
|
+
this.walkRecursive(baseDir, fullPath, files, depth + 1);
|
|
89
|
+
}
|
|
90
|
+
else if (entry.isFile()) {
|
|
91
|
+
files.push(fullPath);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Filter a list of file paths based on ignore patterns
|
|
97
|
+
*/
|
|
98
|
+
filterFiles(files, baseDir) {
|
|
99
|
+
return files.filter(file => {
|
|
100
|
+
const relativePath = baseDir ? path.relative(baseDir, file) : file;
|
|
101
|
+
return !this.ignoreParser.shouldIgnore(relativePath);
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Check if a specific file should be ignored
|
|
106
|
+
*/
|
|
107
|
+
shouldIgnore(filePath) {
|
|
108
|
+
return this.ignoreParser.shouldIgnore(filePath);
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Get the ignore patterns (for debugging)
|
|
112
|
+
*/
|
|
113
|
+
getIgnorePatterns() {
|
|
114
|
+
return this.ignoreParser.getPatterns();
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
exports.FileWalker = FileWalker;
|
|
118
|
+
//# sourceMappingURL=file-walker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-walker.js","sourceRoot":"","sources":["../../src/utils/file-walker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { User, PromptResponse } from '../types/api-types';
|
|
2
|
+
export type OutputFormat = 'json' | 'table';
|
|
3
|
+
/**
|
|
4
|
+
* Format output based on the specified format
|
|
5
|
+
*/
|
|
6
|
+
export declare function formatOutput(data: any, format: OutputFormat): string;
|
|
7
|
+
/**
|
|
8
|
+
* Format user information
|
|
9
|
+
*/
|
|
10
|
+
export declare function formatUser(user: User, format?: OutputFormat): string;
|
|
11
|
+
/**
|
|
12
|
+
* Display success message
|
|
13
|
+
*/
|
|
14
|
+
export declare function success(message: string): void;
|
|
15
|
+
/**
|
|
16
|
+
* Display error message
|
|
17
|
+
*/
|
|
18
|
+
export declare function error(message: string): void;
|
|
19
|
+
/**
|
|
20
|
+
* Display warning message
|
|
21
|
+
*/
|
|
22
|
+
export declare function warning(message: string): void;
|
|
23
|
+
/**
|
|
24
|
+
* Display info message
|
|
25
|
+
*/
|
|
26
|
+
export declare function info(message: string): void;
|
|
27
|
+
/**
|
|
28
|
+
* Format prompts list
|
|
29
|
+
*/
|
|
30
|
+
export declare function formatPrompts(prompts: PromptResponse[], format?: OutputFormat): string;
|
|
31
|
+
/**
|
|
32
|
+
* Format prompt details
|
|
33
|
+
*/
|
|
34
|
+
export declare function formatPromptDetails(prompt: PromptResponse, format?: OutputFormat): string;
|
|
35
|
+
//# sourceMappingURL=formatters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatters.d.ts","sourceRoot":"","sources":["../../src/utils/formatters.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE1D,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC;AAE5C;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM,CAKpE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,GAAE,YAAsB,GAAG,MAAM,CAsB7E;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7C;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE3C;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7C;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,MAAM,GAAE,YAAsB,GAAG,MAAM,CAuB/F;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,cAAc,EAAE,MAAM,GAAE,YAAsB,GAAG,MAAM,CAqBlG"}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.formatOutput = formatOutput;
|
|
7
|
+
exports.formatUser = formatUser;
|
|
8
|
+
exports.success = success;
|
|
9
|
+
exports.error = error;
|
|
10
|
+
exports.warning = warning;
|
|
11
|
+
exports.info = info;
|
|
12
|
+
exports.formatPrompts = formatPrompts;
|
|
13
|
+
exports.formatPromptDetails = formatPromptDetails;
|
|
14
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
15
|
+
const cli_table3_1 = __importDefault(require("cli-table3"));
|
|
16
|
+
/**
|
|
17
|
+
* Format output based on the specified format
|
|
18
|
+
*/
|
|
19
|
+
function formatOutput(data, format) {
|
|
20
|
+
if (format === 'json') {
|
|
21
|
+
return JSON.stringify(data, null, 2);
|
|
22
|
+
}
|
|
23
|
+
return data;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Format user information
|
|
27
|
+
*/
|
|
28
|
+
function formatUser(user, format = 'table') {
|
|
29
|
+
if (format === 'json') {
|
|
30
|
+
return JSON.stringify(user, null, 2);
|
|
31
|
+
}
|
|
32
|
+
const table = new cli_table3_1.default({
|
|
33
|
+
head: [chalk_1.default.cyan('Field'), chalk_1.default.cyan('Value')],
|
|
34
|
+
colWidths: [20, 50]
|
|
35
|
+
});
|
|
36
|
+
table.push(['ID', user.id.toString()], ['Name', user.name || 'N/A'], ['Email', user.email || 'N/A'], ['Role', user.role], ['Customer ID', user.customerId.toString()], ['Customer Name', user.customerName], ['Active', user.active ? chalk_1.default.green('Yes') : chalk_1.default.red('No')], ['Created At', new Date(user.createdAt).toLocaleString()]);
|
|
37
|
+
return table.toString();
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Display success message
|
|
41
|
+
*/
|
|
42
|
+
function success(message) {
|
|
43
|
+
console.log(chalk_1.default.green('✓'), message);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Display error message
|
|
47
|
+
*/
|
|
48
|
+
function error(message) {
|
|
49
|
+
console.error(chalk_1.default.red('✗'), message);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Display warning message
|
|
53
|
+
*/
|
|
54
|
+
function warning(message) {
|
|
55
|
+
console.log(chalk_1.default.yellow('⚠'), message);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Display info message
|
|
59
|
+
*/
|
|
60
|
+
function info(message) {
|
|
61
|
+
console.log(chalk_1.default.blue('ℹ'), message);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Format prompts list
|
|
65
|
+
*/
|
|
66
|
+
function formatPrompts(prompts, format = 'table') {
|
|
67
|
+
if (format === 'json') {
|
|
68
|
+
return JSON.stringify(prompts, null, 2);
|
|
69
|
+
}
|
|
70
|
+
const table = new cli_table3_1.default({
|
|
71
|
+
head: [
|
|
72
|
+
chalk_1.default.cyan('ID'),
|
|
73
|
+
chalk_1.default.cyan('Name'),
|
|
74
|
+
chalk_1.default.cyan('Temperature')
|
|
75
|
+
],
|
|
76
|
+
colWidths: [7, 80, 13]
|
|
77
|
+
});
|
|
78
|
+
prompts.forEach(prompt => {
|
|
79
|
+
table.push([
|
|
80
|
+
prompt.id.toString(),
|
|
81
|
+
prompt.name || 'N/A',
|
|
82
|
+
prompt.temperature.toFixed(2)
|
|
83
|
+
]);
|
|
84
|
+
});
|
|
85
|
+
return table.toString();
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Format prompt details
|
|
89
|
+
*/
|
|
90
|
+
function formatPromptDetails(prompt, format = 'table') {
|
|
91
|
+
if (format === 'json') {
|
|
92
|
+
return JSON.stringify(prompt, null, 2);
|
|
93
|
+
}
|
|
94
|
+
const table = new cli_table3_1.default({
|
|
95
|
+
head: [chalk_1.default.cyan('Field'), chalk_1.default.cyan('Value')],
|
|
96
|
+
colWidths: [25, 75]
|
|
97
|
+
});
|
|
98
|
+
table.push(['ID', prompt.id.toString()], ['Name', prompt.name || 'N/A'], ['Short Description', prompt.shortDescription || 'N/A'], ['Temperature', prompt.temperature.toFixed(2)], ['Customer ID', prompt.customerId?.toString() || 'N/A'], ['Created At', new Date(prompt.createdAt).toLocaleString()], ['Updated At', prompt.updatedAt ? new Date(prompt.updatedAt).toLocaleString() : 'N/A']);
|
|
99
|
+
return table.toString();
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=formatters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatters.js","sourceRoot":"","sources":["../../src/utils/formatters.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export interface IgnorePattern {
|
|
2
|
+
pattern: string;
|
|
3
|
+
isNegation: boolean;
|
|
4
|
+
isDirectory: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare class IgnoreParser {
|
|
7
|
+
private patterns;
|
|
8
|
+
/**
|
|
9
|
+
* Parse a .sphereignore file and extract patterns
|
|
10
|
+
* Supports:
|
|
11
|
+
* - File extensions (*.log, *.tmp)
|
|
12
|
+
* - Specific file names (config.local.json)
|
|
13
|
+
* - Directory patterns (node_modules/, dist/)
|
|
14
|
+
* - Negation patterns (!important.log)
|
|
15
|
+
* - Comments (# this is a comment)
|
|
16
|
+
* - Wildcards (src/**/ (): any;
|
|
17
|
+
test: any;
|
|
18
|
+
ts: any;
|
|
19
|
+
(): any;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=ignore-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ignore-parser.d.ts","sourceRoot":"","sources":["../../src/utils/ignore-parser.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAuB;IAEvC;;;;;;;;2BAQuB,CAAC;IAAC,IAAI,MAAA;IAAC,EAAE,MAAA;IAC9B;CAAA"}
|
|
@@ -0,0 +1,170 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.IgnoreParser = void 0;
|
|
37
|
+
const fs = __importStar(require("fs"));
|
|
38
|
+
const path = __importStar(require("path"));
|
|
39
|
+
class IgnoreParser {
|
|
40
|
+
constructor() {
|
|
41
|
+
this.patterns = [];
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Parse a .sphereignore file and extract patterns
|
|
45
|
+
* Supports:
|
|
46
|
+
* - File extensions (*.log, *.tmp)
|
|
47
|
+
* - Specific file names (config.local.json)
|
|
48
|
+
* - Directory patterns (node_modules/, dist/)
|
|
49
|
+
* - Negation patterns (!important.log)
|
|
50
|
+
* - Comments (# this is a comment)
|
|
51
|
+
* - Wildcards (src/**/ *() { }
|
|
52
|
+
*() { }
|
|
53
|
+
}
|
|
54
|
+
exports.IgnoreParser = IgnoreParser;
|
|
55
|
+
/;
|
|
56
|
+
parseFile(ignoreFilePath, string);
|
|
57
|
+
void {
|
|
58
|
+
if(, fs) { }, : .existsSync(ignoreFilePath)
|
|
59
|
+
};
|
|
60
|
+
{
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const content = fs.readFileSync(ignoreFilePath, 'utf-8');
|
|
64
|
+
const lines = content.split(/\r?\n/);
|
|
65
|
+
for (const line of lines) {
|
|
66
|
+
const trimmed = line.trim();
|
|
67
|
+
// Skip empty lines and comments
|
|
68
|
+
if (!trimmed || trimmed.startsWith('#')) {
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
const pattern = this.parsePattern(trimmed);
|
|
72
|
+
this.patterns.push(pattern);
|
|
73
|
+
}
|
|
74
|
+
parsePattern(line, string);
|
|
75
|
+
IgnorePattern;
|
|
76
|
+
{
|
|
77
|
+
let pattern = line;
|
|
78
|
+
let isNegation = false;
|
|
79
|
+
// Check for negation pattern
|
|
80
|
+
if (pattern.startsWith('!')) {
|
|
81
|
+
isNegation = true;
|
|
82
|
+
pattern = pattern.substring(1);
|
|
83
|
+
}
|
|
84
|
+
// Check if it's a directory pattern
|
|
85
|
+
const isDirectory = pattern.endsWith('/');
|
|
86
|
+
if (isDirectory) {
|
|
87
|
+
pattern = pattern.slice(0, -1);
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
pattern: pattern,
|
|
91
|
+
isNegation,
|
|
92
|
+
isDirectory
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Check if a file path should be ignored
|
|
97
|
+
*/
|
|
98
|
+
shouldIgnore(filePath, string);
|
|
99
|
+
boolean;
|
|
100
|
+
{
|
|
101
|
+
const normalizedPath = filePath.replace(/\\/g, '/');
|
|
102
|
+
let ignored = false;
|
|
103
|
+
for (const { pattern, isNegation, isDirectory } of this.patterns) {
|
|
104
|
+
const matches = this.matchPattern(normalizedPath, pattern, isDirectory);
|
|
105
|
+
if (matches) {
|
|
106
|
+
ignored = !isNegation;
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return ignored;
|
|
110
|
+
}
|
|
111
|
+
matchPattern(filePath, string, pattern, string, isDirectory, boolean);
|
|
112
|
+
boolean;
|
|
113
|
+
{
|
|
114
|
+
const fileName = path.basename(filePath);
|
|
115
|
+
const normalizedPattern = pattern.replace(/\\/g, '/');
|
|
116
|
+
// If it's a directory pattern, check if path contains the directory
|
|
117
|
+
if (isDirectory) {
|
|
118
|
+
return filePath.includes(normalizedPattern + '/') ||
|
|
119
|
+
filePath.startsWith(normalizedPattern + '/');
|
|
120
|
+
}
|
|
121
|
+
// Handle extension patterns (*.log, *.tmp)
|
|
122
|
+
if (normalizedPattern.startsWith('*.')) {
|
|
123
|
+
const extension = normalizedPattern.substring(1); // includes the dot
|
|
124
|
+
return fileName.endsWith(extension);
|
|
125
|
+
}
|
|
126
|
+
// Handle wildcards with path segments (src/**/*.test.ts)
|
|
127
|
+
if (normalizedPattern.includes('**')) {
|
|
128
|
+
const regexPattern = this.convertGlobToRegex(normalizedPattern);
|
|
129
|
+
return regexPattern.test(filePath);
|
|
130
|
+
}
|
|
131
|
+
// Handle simple wildcards (*.log, test-*.js)
|
|
132
|
+
if (normalizedPattern.includes('*')) {
|
|
133
|
+
const regexPattern = this.convertSimpleWildcardToRegex(normalizedPattern);
|
|
134
|
+
return regexPattern.test(fileName);
|
|
135
|
+
}
|
|
136
|
+
// Exact match for file name or path
|
|
137
|
+
return fileName === normalizedPattern || filePath === normalizedPattern ||
|
|
138
|
+
filePath.endsWith('/' + normalizedPattern);
|
|
139
|
+
}
|
|
140
|
+
convertGlobToRegex(pattern, string);
|
|
141
|
+
RegExp;
|
|
142
|
+
{
|
|
143
|
+
let regexStr = pattern
|
|
144
|
+
.replace(/\./g, '\\.')
|
|
145
|
+
.replace(/\*\*/g, '___DOUBLE_STAR___')
|
|
146
|
+
.replace(/\*/g, '[^/]*')
|
|
147
|
+
.replace(/___DOUBLE_STAR___/g, '.*')
|
|
148
|
+
.replace(/\?/g, '.');
|
|
149
|
+
// Anchor the pattern
|
|
150
|
+
regexStr = '^' + regexStr + '$';
|
|
151
|
+
return new RegExp(regexStr);
|
|
152
|
+
}
|
|
153
|
+
convertSimpleWildcardToRegex(pattern, string);
|
|
154
|
+
RegExp;
|
|
155
|
+
{
|
|
156
|
+
const regexStr = pattern
|
|
157
|
+
.replace(/\./g, '\\.')
|
|
158
|
+
.replace(/\*/g, '.*')
|
|
159
|
+
.replace(/\?/g, '.');
|
|
160
|
+
return new RegExp('^' + regexStr + '$');
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Get all patterns (for debugging)
|
|
164
|
+
*/
|
|
165
|
+
getPatterns();
|
|
166
|
+
IgnorePattern[];
|
|
167
|
+
{
|
|
168
|
+
return this.patterns;
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=ignore-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ignore-parser.js","sourceRoot":"","sources":["../../src/utils/ignore-parser.ts"],"names":[],"mappings":"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"}
|