qskills 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/LICENSE +21 -0
- package/README.md +512 -0
- package/bin/qskills.js +10 -0
- package/dist/commands/config.d.ts +3 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +142 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/knowledge/add.d.ts +14 -0
- package/dist/commands/knowledge/add.d.ts.map +1 -0
- package/dist/commands/knowledge/add.js +89 -0
- package/dist/commands/knowledge/add.js.map +1 -0
- package/dist/commands/knowledge/index.d.ts +3 -0
- package/dist/commands/knowledge/index.d.ts.map +1 -0
- package/dist/commands/knowledge/index.js +46 -0
- package/dist/commands/knowledge/index.js.map +1 -0
- package/dist/commands/knowledge/list.d.ts +10 -0
- package/dist/commands/knowledge/list.d.ts.map +1 -0
- package/dist/commands/knowledge/list.js +55 -0
- package/dist/commands/knowledge/list.js.map +1 -0
- package/dist/commands/knowledge/remove.d.ts +6 -0
- package/dist/commands/knowledge/remove.d.ts.map +1 -0
- package/dist/commands/knowledge/remove.js +33 -0
- package/dist/commands/knowledge/remove.js.map +1 -0
- package/dist/commands/knowledge/search.d.ts +9 -0
- package/dist/commands/knowledge/search.d.ts.map +1 -0
- package/dist/commands/knowledge/search.js +59 -0
- package/dist/commands/knowledge/search.js.map +1 -0
- package/dist/commands/skill/add.d.ts +11 -0
- package/dist/commands/skill/add.d.ts.map +1 -0
- package/dist/commands/skill/add.js +100 -0
- package/dist/commands/skill/add.js.map +1 -0
- package/dist/commands/skill/index.d.ts +3 -0
- package/dist/commands/skill/index.d.ts.map +1 -0
- package/dist/commands/skill/index.js +51 -0
- package/dist/commands/skill/index.js.map +1 -0
- package/dist/commands/skill/list.d.ts +8 -0
- package/dist/commands/skill/list.d.ts.map +1 -0
- package/dist/commands/skill/list.js +52 -0
- package/dist/commands/skill/list.js.map +1 -0
- package/dist/commands/skill/remove.d.ts +7 -0
- package/dist/commands/skill/remove.d.ts.map +1 -0
- package/dist/commands/skill/remove.js +33 -0
- package/dist/commands/skill/remove.js.map +1 -0
- package/dist/commands/skill/search.d.ts +7 -0
- package/dist/commands/skill/search.d.ts.map +1 -0
- package/dist/commands/skill/search.js +57 -0
- package/dist/commands/skill/search.js.map +1 -0
- package/dist/commands/skill/sync.d.ts +7 -0
- package/dist/commands/skill/sync.d.ts.map +1 -0
- package/dist/commands/skill/sync.js +83 -0
- package/dist/commands/skill/sync.js.map +1 -0
- package/dist/commands/sync.d.ts +3 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +63 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/core/config.d.ts +16 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/config.js +68 -0
- package/dist/core/config.js.map +1 -0
- package/dist/core/git-sync.d.ts +31 -0
- package/dist/core/git-sync.d.ts.map +1 -0
- package/dist/core/git-sync.js +240 -0
- package/dist/core/git-sync.js.map +1 -0
- package/dist/core/init.d.ts +3 -0
- package/dist/core/init.d.ts.map +1 -0
- package/dist/core/init.js +134 -0
- package/dist/core/init.js.map +1 -0
- package/dist/core/scanner.d.ts +27 -0
- package/dist/core/scanner.d.ts.map +1 -0
- package/dist/core/scanner.js +126 -0
- package/dist/core/scanner.js.map +1 -0
- package/dist/core/storage.d.ts +41 -0
- package/dist/core/storage.d.ts.map +1 -0
- package/dist/core/storage.js +293 -0
- package/dist/core/storage.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/types/index.d.ts +134 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +26 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/file.d.ts +16 -0
- package/dist/utils/file.d.ts.map +1 -0
- package/dist/utils/file.js +102 -0
- package/dist/utils/file.js.map +1 -0
- package/dist/utils/helpers.d.ts +7 -0
- package/dist/utils/helpers.d.ts.map +1 -0
- package/dist/utils/helpers.js +27 -0
- package/dist/utils/helpers.js.map +1 -0
- package/dist/utils/logger.d.ts +12 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +50 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +72 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { randomUUID } from 'crypto';
|
|
2
|
+
export function generateId() {
|
|
3
|
+
return randomUUID();
|
|
4
|
+
}
|
|
5
|
+
export function expandPath(path) {
|
|
6
|
+
if (path.startsWith('~')) {
|
|
7
|
+
return path.replace('~', process.env.HOME || process.env.USERPROFILE || '');
|
|
8
|
+
}
|
|
9
|
+
return path;
|
|
10
|
+
}
|
|
11
|
+
export function validateName(name) {
|
|
12
|
+
return /^[a-zA-Z0-9_-]+$/.test(name) && name.length > 0 && name.length <= 64;
|
|
13
|
+
}
|
|
14
|
+
export function sanitizeTags(tags) {
|
|
15
|
+
return tags
|
|
16
|
+
.split(',')
|
|
17
|
+
.map(t => t.trim().toLowerCase())
|
|
18
|
+
.filter(t => t.length > 0);
|
|
19
|
+
}
|
|
20
|
+
export async function sleep(ms) {
|
|
21
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
22
|
+
}
|
|
23
|
+
export function formatDate(date) {
|
|
24
|
+
const d = typeof date === 'string' ? new Date(date) : date;
|
|
25
|
+
return d.toISOString();
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,MAAM,UAAU,UAAU;IACxB,OAAO,UAAU,EAAE,CAAC;AACtB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,IAAI;SACR,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SAChC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,EAAU;IACpC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAmB;IAC5C,MAAM,CAAC,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC3D,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
type LogLevel = 'debug' | 'info' | 'warn' | 'error';
|
|
2
|
+
export declare function setLogLevel(level: LogLevel): void;
|
|
3
|
+
export declare const logger: {
|
|
4
|
+
debug(message: string): void;
|
|
5
|
+
info(message: string): void;
|
|
6
|
+
warn(message: string): void;
|
|
7
|
+
error(message: string): void;
|
|
8
|
+
success(message: string): void;
|
|
9
|
+
fail(message: string): void;
|
|
10
|
+
};
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAEA,KAAK,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAWpD,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAEjD;AAaD,eAAO,MAAM,MAAM;mBACF,MAAM,GAAG,IAAI;kBAKd,MAAM,GAAG,IAAI;kBAKb,MAAM,GAAG,IAAI;mBAKZ,MAAM,GAAG,IAAI;qBAKX,MAAM,GAAG,IAAI;kBAGhB,MAAM,GAAG,IAAI;CAG5B,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
const LOG_LEVELS = {
|
|
3
|
+
debug: 0,
|
|
4
|
+
info: 1,
|
|
5
|
+
warn: 2,
|
|
6
|
+
error: 3
|
|
7
|
+
};
|
|
8
|
+
let currentLevel = 'info';
|
|
9
|
+
export function setLogLevel(level) {
|
|
10
|
+
currentLevel = level;
|
|
11
|
+
}
|
|
12
|
+
function formatMessage(level, message) {
|
|
13
|
+
const timestamp = new Date().toISOString();
|
|
14
|
+
const prefix = {
|
|
15
|
+
debug: chalk.gray('[DEBUG]'),
|
|
16
|
+
info: chalk.blue('[INFO]'),
|
|
17
|
+
warn: chalk.yellow('[WARN]'),
|
|
18
|
+
error: chalk.red('[ERROR]')
|
|
19
|
+
};
|
|
20
|
+
return `${prefix[level]} ${message}`;
|
|
21
|
+
}
|
|
22
|
+
export const logger = {
|
|
23
|
+
debug(message) {
|
|
24
|
+
if (LOG_LEVELS[currentLevel] <= LOG_LEVELS.debug) {
|
|
25
|
+
console.error(formatMessage('debug', message));
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
info(message) {
|
|
29
|
+
if (LOG_LEVELS[currentLevel] <= LOG_LEVELS.info) {
|
|
30
|
+
console.log(formatMessage('info', message));
|
|
31
|
+
}
|
|
32
|
+
},
|
|
33
|
+
warn(message) {
|
|
34
|
+
if (LOG_LEVELS[currentLevel] <= LOG_LEVELS.warn) {
|
|
35
|
+
console.warn(formatMessage('warn', message));
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
error(message) {
|
|
39
|
+
if (LOG_LEVELS[currentLevel] <= LOG_LEVELS.error) {
|
|
40
|
+
console.error(formatMessage('error', message));
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
success(message) {
|
|
44
|
+
console.log(chalk.green('✓') + ' ' + message);
|
|
45
|
+
},
|
|
46
|
+
fail(message) {
|
|
47
|
+
console.log(chalk.red('✗') + ' ' + message);
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,UAAU,GAA6B;IAC3C,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACT,CAAC;AAEF,IAAI,YAAY,GAAa,MAAM,CAAC;AAEpC,MAAM,UAAU,WAAW,CAAC,KAAe;IACzC,YAAY,GAAG,KAAK,CAAC;AACvB,CAAC;AAED,SAAS,aAAa,CAAC,KAAe,EAAE,OAAe;IACrD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,MAAM,GAA6B;QACvC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;QAC5B,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC1B,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC;QAC5B,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC;KAC5B,CAAC;IACF,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,KAAK,CAAC,OAAe;QACnB,IAAI,UAAU,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YACjD,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IACD,IAAI,CAAC,OAAe;QAClB,IAAI,UAAU,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;YAChD,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IACD,IAAI,CAAC,OAAe;QAClB,IAAI,UAAU,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,IAAI,EAAE,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IACD,KAAK,CAAC,OAAe;QACnB,IAAI,UAAU,CAAC,YAAY,CAAC,IAAI,UAAU,CAAC,KAAK,EAAE,CAAC;YACjD,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACjD,CAAC;IACH,CAAC;IACD,OAAO,CAAC,OAAe;QACrB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,OAAO,CAAC,CAAC;IAC9C,CAAC;CACF,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "qskills",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "CLI skill management tool for developers - manage skills, knowledge base, and sync across devices",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"qskills": "./bin/qskills.js"
|
|
8
|
+
},
|
|
9
|
+
"main": "./dist/index.js",
|
|
10
|
+
"exports": {
|
|
11
|
+
".": "./dist/index.js"
|
|
12
|
+
},
|
|
13
|
+
"files": [
|
|
14
|
+
"bin",
|
|
15
|
+
"dist",
|
|
16
|
+
"templates"
|
|
17
|
+
],
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build": "tsc",
|
|
20
|
+
"dev": "tsc --watch",
|
|
21
|
+
"test": "vitest run",
|
|
22
|
+
"test:watch": "vitest",
|
|
23
|
+
"test:coverage": "vitest run --coverage",
|
|
24
|
+
"lint": "eslint src --ext .ts",
|
|
25
|
+
"prepublishOnly": "npm run build && npm test"
|
|
26
|
+
},
|
|
27
|
+
"keywords": [
|
|
28
|
+
"cli",
|
|
29
|
+
"skill",
|
|
30
|
+
"skills",
|
|
31
|
+
"knowledge-base",
|
|
32
|
+
"developer-tools",
|
|
33
|
+
"code-snippets",
|
|
34
|
+
"sync",
|
|
35
|
+
"git",
|
|
36
|
+
"snippet-manager",
|
|
37
|
+
"productivity"
|
|
38
|
+
],
|
|
39
|
+
"author": "",
|
|
40
|
+
"license": "MIT",
|
|
41
|
+
"repository": {
|
|
42
|
+
"type": "git",
|
|
43
|
+
"url": "https://github.com/your-username/qskills.git"
|
|
44
|
+
},
|
|
45
|
+
"bugs": {
|
|
46
|
+
"url": "https://github.com/your-username/qskills/issues"
|
|
47
|
+
},
|
|
48
|
+
"homepage": "https://github.com/your-username/qskills#readme",
|
|
49
|
+
"dependencies": {
|
|
50
|
+
"commander": "^12.0.0",
|
|
51
|
+
"@inquirer/prompts": "^7.0.0",
|
|
52
|
+
"isomorphic-git": "^1.27.0",
|
|
53
|
+
"chalk": "^5.3.0",
|
|
54
|
+
"ora": "^8.0.0",
|
|
55
|
+
"conf": "^13.0.0",
|
|
56
|
+
"cli-table3": "^0.6.3"
|
|
57
|
+
},
|
|
58
|
+
"devDependencies": {
|
|
59
|
+
"typescript": "^5.0.0",
|
|
60
|
+
"vitest": "^1.0.0",
|
|
61
|
+
"@types/node": "^20.0.0",
|
|
62
|
+
"@vitest/coverage-v8": "^1.0.0"
|
|
63
|
+
},
|
|
64
|
+
"engines": {
|
|
65
|
+
"node": ">=16.0.0"
|
|
66
|
+
},
|
|
67
|
+
"os": [
|
|
68
|
+
"win32",
|
|
69
|
+
"darwin",
|
|
70
|
+
"linux"
|
|
71
|
+
]
|
|
72
|
+
}
|