uixskills 0.1.0 → 0.2.1
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 +23 -29
- package/dist/add.d.ts +1 -0
- package/dist/add.d.ts.map +1 -1
- package/dist/add.js +48 -7
- package/dist/add.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/utils.d.ts +3 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +35 -19
- package/dist/utils.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -1,50 +1,40 @@
|
|
|
1
1
|
# UIXskills CLI
|
|
2
2
|
|
|
3
|
-
Install UI/UX skills from the
|
|
3
|
+
Install UI/UX skills from the UIXskills Gallery with a single command.
|
|
4
4
|
|
|
5
|
-
##
|
|
5
|
+
## Quick Start
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
|
-
#
|
|
9
|
-
npx uixskills add
|
|
8
|
+
# Install a skill by name
|
|
9
|
+
npx uixskills add button
|
|
10
10
|
|
|
11
|
-
#
|
|
12
|
-
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
## Commands
|
|
16
|
-
|
|
17
|
-
### Add a skill
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
# Install a skill from GitHub
|
|
21
|
-
npx uixskills add hooosberg/react-glassmorphism
|
|
11
|
+
# Install a core library
|
|
12
|
+
npx uixskills add hooosberg/UIXskills
|
|
22
13
|
|
|
23
14
|
# Install to a custom directory
|
|
24
|
-
npx uixskills add
|
|
25
|
-
|
|
26
|
-
# Force overwrite existing files
|
|
27
|
-
npx uixskills add hooosberg/react-glassmorphism --force
|
|
15
|
+
npx uixskills add button --dir ./my-skills
|
|
28
16
|
```
|
|
29
17
|
|
|
30
|
-
|
|
18
|
+
## CLI Commands
|
|
19
|
+
|
|
20
|
+
### List & Search
|
|
31
21
|
|
|
32
22
|
```bash
|
|
33
|
-
#
|
|
23
|
+
# List top skills
|
|
34
24
|
npx uixskills list
|
|
35
25
|
|
|
36
|
-
#
|
|
37
|
-
npx uixskills
|
|
26
|
+
# Search for skills
|
|
27
|
+
npx uixskills search glassmorphism
|
|
38
28
|
```
|
|
39
29
|
|
|
40
|
-
|
|
30
|
+
## Advanced Usage
|
|
41
31
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
32
|
+
### Install from GitHub Repository
|
|
33
|
+
|
|
34
|
+
You can install any repository that has a `uixskill.json` file directly:
|
|
45
35
|
|
|
46
|
-
|
|
47
|
-
npx uixskills
|
|
36
|
+
```bash
|
|
37
|
+
npx uixskills add owner/repo
|
|
48
38
|
```
|
|
49
39
|
|
|
50
40
|
## Creating a Skill
|
|
@@ -69,3 +59,7 @@ Then submit your skill at [uixskills.com/skills/submit](https://uixskills.com/sk
|
|
|
69
59
|
## License
|
|
70
60
|
|
|
71
61
|
MIT
|
|
62
|
+
|
|
63
|
+
## Keywords
|
|
64
|
+
|
|
65
|
+
uixskills, ui, ux, skills, cli, design, components
|
package/dist/add.d.ts
CHANGED
package/dist/add.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../src/add.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../src/add.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,UAAU,UAAU;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;CAClB;AAyBD,wBAAsB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAqG/E"}
|
package/dist/add.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
3
|
* Add command - Install a skill from GitHub
|
|
4
|
+
* Supports both direct repo (owner/repo) and name resolution via API
|
|
4
5
|
*/
|
|
5
6
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
6
7
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
@@ -12,15 +13,55 @@ const ora_1 = __importDefault(require("ora"));
|
|
|
12
13
|
const promises_1 = __importDefault(require("fs/promises"));
|
|
13
14
|
const path_1 = __importDefault(require("path"));
|
|
14
15
|
const utils_js_1 = require("./utils.js");
|
|
16
|
+
const API_BASE = 'https://uixskills.com/api';
|
|
17
|
+
/**
|
|
18
|
+
* Resolve skill name to GitHub repo via API
|
|
19
|
+
*/
|
|
20
|
+
async function resolveSkillName(name) {
|
|
21
|
+
try {
|
|
22
|
+
const response = await fetch(`${API_BASE}/skills/resolve?name=${encodeURIComponent(name)}`);
|
|
23
|
+
if (response.ok) {
|
|
24
|
+
return await response.json();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
// API not available, fall back to direct GitHub
|
|
29
|
+
}
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
15
32
|
async function addSkill(repo, options) {
|
|
16
|
-
|
|
33
|
+
const spinner = (0, ora_1.default)(`Resolving ${chalk_1.default.cyan(repo)}...`).start();
|
|
34
|
+
let owner;
|
|
35
|
+
let repoName;
|
|
36
|
+
let isOfficial = false;
|
|
37
|
+
// Check if input is owner/repo format or just a name
|
|
17
38
|
const repoPattern = /^[a-zA-Z0-9_-]+\/[a-zA-Z0-9_.-]+$/;
|
|
18
|
-
if (
|
|
19
|
-
|
|
20
|
-
|
|
39
|
+
if (repoPattern.test(repo)) {
|
|
40
|
+
// Direct owner/repo format
|
|
41
|
+
[owner, repoName] = repo.split('/');
|
|
42
|
+
spinner.text = `Fetching skill from ${chalk_1.default.cyan(repo)}...`;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
// Try to resolve name via API
|
|
46
|
+
spinner.text = `Looking up "${chalk_1.default.cyan(repo)}" in registry...`;
|
|
47
|
+
const resolved = await resolveSkillName(repo);
|
|
48
|
+
if (resolved) {
|
|
49
|
+
owner = resolved.github_owner;
|
|
50
|
+
repoName = resolved.github_repo;
|
|
51
|
+
isOfficial = resolved.is_official;
|
|
52
|
+
spinner.text = `Found: ${chalk_1.default.cyan(`${owner}/${repoName}`)}${isOfficial ? chalk_1.default.blue(' ✓ Official') : ''}`;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
spinner.fail(chalk_1.default.red(`Skill "${repo}" not found in registry`));
|
|
56
|
+
console.log(chalk_1.default.yellow('\nTry using the full repository path:'));
|
|
57
|
+
console.log(chalk_1.default.gray(` npx uixskills add owner/repo-name`));
|
|
58
|
+
process.exit(1);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
// Show warning for community skills
|
|
62
|
+
if (!isOfficial && !repo.includes('/')) {
|
|
63
|
+
console.log(chalk_1.default.yellow('\n⚠️ This is a community skill, not officially verified.'));
|
|
21
64
|
}
|
|
22
|
-
const [owner, repoName] = repo.split('/');
|
|
23
|
-
const spinner = (0, ora_1.default)(`Fetching skill from ${chalk_1.default.cyan(repo)}...`).start();
|
|
24
65
|
try {
|
|
25
66
|
// 1. Fetch skill manifest
|
|
26
67
|
spinner.text = 'Fetching skill manifest...';
|
|
@@ -66,7 +107,7 @@ async function addSkill(repo, options) {
|
|
|
66
107
|
await (0, utils_js_1.recordInstall)(owner, repoName);
|
|
67
108
|
spinner.succeed(chalk_1.default.green(`Skill installed successfully!`));
|
|
68
109
|
console.log(`
|
|
69
|
-
${chalk_1.default.bold('Installed:')} ${chalk_1.default.cyan(manifest.name || repoName)}
|
|
110
|
+
${chalk_1.default.bold('Installed:')} ${chalk_1.default.cyan(manifest.name || repoName)}${isOfficial ? chalk_1.default.blue(' ✓ Official') : chalk_1.default.gray(' (Community)')}
|
|
70
111
|
${chalk_1.default.bold('Location:')} ${chalk_1.default.gray(targetDir)}
|
|
71
112
|
${chalk_1.default.bold('Files:')} ${files.length} files
|
|
72
113
|
|
package/dist/add.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../src/add.ts"],"names":[],"mappings":";AAAA
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../src/add.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* Install UI/UX skills from the UIXskills gallery
|
|
6
6
|
*
|
|
7
7
|
* Usage:
|
|
8
|
-
* npx uixskills add <
|
|
8
|
+
* npx uixskills add <skill>
|
|
9
9
|
* npx uixskills list
|
|
10
10
|
* npx uixskills search <query>
|
|
11
11
|
*/
|
|
@@ -32,12 +32,12 @@ program
|
|
|
32
32
|
.addHelpText('beforeAll', logo);
|
|
33
33
|
// Add command
|
|
34
34
|
program
|
|
35
|
-
.command('add <
|
|
36
|
-
.description('Install a skill
|
|
35
|
+
.command('add <skill>')
|
|
36
|
+
.description('Install a skill (format: skill-name or owner/repo)')
|
|
37
37
|
.option('-d, --dir <directory>', 'Target directory for installation', './.uixskills')
|
|
38
38
|
.option('-f, --force', 'Overwrite existing files', false)
|
|
39
|
-
.action(async (
|
|
40
|
-
await (0, add_js_1.addSkill)(
|
|
39
|
+
.action(async (skill, options) => {
|
|
40
|
+
await (0, add_js_1.addSkill)(skill, options);
|
|
41
41
|
});
|
|
42
42
|
// List command
|
|
43
43
|
program
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAEA;;;;;;;;GAQG;;;;;AAEH,yCAAoC;AACpC,kDAA0B;AAC1B,qCAAoC;AACpC,uCAAuC;AACvC,2CAA2C;AAE3C,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,aAAa;AACb,MAAM,IAAI,GAAG;EACX,eAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC;EACvD,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,+BAA+B,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC;EAC/F,eAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC;CACxD,CAAC;AAEF,OAAO;KACF,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,iEAAiE,CAAC;KAC9E,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AAEpC,cAAc;AACd,OAAO;KACF,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAEA;;;;;;;;GAQG;;;;;AAEH,yCAAoC;AACpC,kDAA0B;AAC1B,qCAAoC;AACpC,uCAAuC;AACvC,2CAA2C;AAE3C,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,aAAa;AACb,MAAM,IAAI,GAAG;EACX,eAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC;EACvD,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,eAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,+BAA+B,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC;EAC/F,eAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC;CACxD,CAAC;AAEF,OAAO;KACF,IAAI,CAAC,WAAW,CAAC;KACjB,WAAW,CAAC,iEAAiE,CAAC;KAC9E,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AAEpC,cAAc;AACd,OAAO;KACF,OAAO,CAAC,aAAa,CAAC;KACtB,WAAW,CAAC,oDAAoD,CAAC;KACjE,MAAM,CAAC,uBAAuB,EAAE,mCAAmC,EAAE,cAAc,CAAC;KACpF,MAAM,CAAC,aAAa,EAAE,0BAA0B,EAAE,KAAK,CAAC;KACxD,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,OAAwC,EAAE,EAAE;IACtE,MAAM,IAAA,iBAAQ,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACnC,CAAC,CAAC,CAAC;AAEP,eAAe;AACf,OAAO;KACF,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,4CAA4C,CAAC;KACzD,MAAM,CAAC,sBAAsB,EAAE,0BAA0B,EAAE,IAAI,CAAC;KAChE,MAAM,CAAC,gBAAgB,EAAE,4BAA4B,EAAE,KAAK,CAAC;KAC7D,MAAM,CAAC,KAAK,EAAE,OAA8C,EAAE,EAAE;IAC7D,MAAM,IAAA,oBAAU,EAAC,OAAO,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEP,iBAAiB;AACjB,OAAO;KACF,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,sBAAsB,EAAE,2BAA2B,EAAE,IAAI,CAAC;KACjE,MAAM,CAAC,KAAK,EAAE,KAAa,EAAE,OAA2B,EAAE,EAAE;IACzD,MAAM,IAAA,wBAAY,EAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACvC,CAAC,CAAC,CAAC;AAEP,kBAAkB;AAClB,OAAO,CAAC,KAAK,EAAE,CAAC;AAEhB,mCAAmC;AACnC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAChC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClB,OAAO,CAAC,UAAU,EAAE,CAAC;AACzB,CAAC"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -28,6 +28,9 @@ export declare function formatInstalls(count: number): string;
|
|
|
28
28
|
* Fetch skill manifest from GitHub repo
|
|
29
29
|
*/
|
|
30
30
|
export declare function fetchSkillManifest(owner: string, repo: string): Promise<SkillManifest | null>;
|
|
31
|
+
/**
|
|
32
|
+
* Download skill files from GitHub
|
|
33
|
+
*/
|
|
31
34
|
/**
|
|
32
35
|
* Download skill files from GitHub
|
|
33
36
|
*/
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,KAAK;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMpD;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACpC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAsC/B;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACpC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,cAAc,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,MAAM,WAAW,aAAa;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,KAAK;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMpD;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACpC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,GACb,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAsC/B;AAED;;GAEG;AACH;;GAEG;AACH,wBAAsB,kBAAkB,CACpC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,cAAc,EAAE,CAAC,CA4E3B;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAc9E;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAClC,KAAK,GAAE,MAAW,EAClB,QAAQ,GAAE,OAAe,GAC1B,OAAO,CAAC,KAAK,EAAE,CAAC,CAUlB;AAED;;GAEG;AACH,wBAAsB,eAAe,CACjC,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAW,GACnB,OAAO,CAAC,KAAK,EAAE,CAAC,CAUlB"}
|
package/dist/utils.js
CHANGED
|
@@ -58,34 +58,50 @@ async function fetchSkillManifest(owner, repo) {
|
|
|
58
58
|
}
|
|
59
59
|
return null;
|
|
60
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* Download skill files from GitHub
|
|
63
|
+
*/
|
|
61
64
|
/**
|
|
62
65
|
* Download skill files from GitHub
|
|
63
66
|
*/
|
|
64
67
|
async function downloadSkillFiles(owner, repo, files) {
|
|
65
68
|
const downloadedFiles = [];
|
|
66
|
-
|
|
69
|
+
// Helper to recursively fetch files
|
|
70
|
+
async function fetchRecursive(path, basePath = '') {
|
|
67
71
|
try {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
if (
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
content: await fileResponse.text(),
|
|
81
|
-
});
|
|
82
|
-
}
|
|
72
|
+
const apiUrl = `https://api.github.com/repos/${owner}/${repo}/contents/${path}`;
|
|
73
|
+
const response = await fetch(apiUrl);
|
|
74
|
+
if (response.ok) {
|
|
75
|
+
const contents = await response.json();
|
|
76
|
+
for (const item of contents) {
|
|
77
|
+
if (item.type === 'file' && item.download_url) {
|
|
78
|
+
const fileResponse = await fetch(item.download_url);
|
|
79
|
+
if (fileResponse.ok) {
|
|
80
|
+
downloadedFiles.push({
|
|
81
|
+
path: item.path, // GitHub API returns full path in repo
|
|
82
|
+
content: await fileResponse.text(),
|
|
83
|
+
});
|
|
83
84
|
}
|
|
84
85
|
}
|
|
86
|
+
else if (item.type === 'dir') {
|
|
87
|
+
// Recursively fetch directory
|
|
88
|
+
await fetchRecursive(item.path);
|
|
89
|
+
}
|
|
85
90
|
}
|
|
86
91
|
}
|
|
92
|
+
}
|
|
93
|
+
catch (error) {
|
|
94
|
+
console.warn(`Warning: Could not access ${path}`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
for (const filePath of files) {
|
|
98
|
+
try {
|
|
99
|
+
// Check if it looks like a directory or wildcard
|
|
100
|
+
if (filePath.endsWith('/') || !filePath.includes('.')) {
|
|
101
|
+
await fetchRecursive(filePath.replace(/\/$/, ''));
|
|
102
|
+
}
|
|
87
103
|
else {
|
|
88
|
-
// Single file
|
|
104
|
+
// Single file try
|
|
89
105
|
const url = `${GITHUB_RAW_BASE}/${owner}/${repo}/main/${filePath}`;
|
|
90
106
|
const response = await fetch(url);
|
|
91
107
|
if (response.ok) {
|
|
@@ -100,8 +116,8 @@ async function downloadSkillFiles(owner, repo, files) {
|
|
|
100
116
|
console.warn(`Warning: Could not download ${filePath}`);
|
|
101
117
|
}
|
|
102
118
|
}
|
|
103
|
-
// If no specific files, download common patterns
|
|
104
|
-
if (downloadedFiles.length === 0) {
|
|
119
|
+
// If no specific files and no downloaded files, download common patterns
|
|
120
|
+
if (downloadedFiles.length === 0 && files.length === 0) {
|
|
105
121
|
const commonFiles = ['README.md', 'index.ts', 'index.tsx', 'index.js', 'styles.css'];
|
|
106
122
|
for (const file of commonFiles) {
|
|
107
123
|
try {
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";AAAA;;GAEG;;AA8BH,wCAMC;AAKD,gDAyCC;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":";AAAA;;GAEG;;AA8BH,wCAMC;AAKD,gDAyCC;AAQD,gDAgFC;AAKD,sCAcC;AAKD,4CAaC;AAKD,0CAaC;AA/ND,MAAM,QAAQ,GAAG,2BAA2B,CAAC;AAC7C,MAAM,eAAe,GAAG,mCAAmC,CAAC;AAwB5D;;GAEG;AACH,SAAgB,cAAc,CAAC,KAAa;IACxC,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,CAAC;QAAE,OAAO,GAAG,CAAC;IACtC,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;QAChB,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;IAC/D,CAAC;IACD,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;AAC5B,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,kBAAkB,CACpC,KAAa,EACb,IAAY;IAEZ,0BAA0B;IAC1B,IAAI,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CACxB,GAAG,eAAe,IAAI,KAAK,IAAI,IAAI,qBAAqB,CAC3D,CAAC;QACF,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YACd,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAmB,CAAC;QAClD,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACL,0BAA0B;IAC9B,CAAC;IAED,iBAAiB;IACjB,IAAI,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CACxB,GAAG,eAAe,IAAI,KAAK,IAAI,IAAI,kBAAkB,CACxD,CAAC;QACF,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YACd,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAmB,CAAC;QAClD,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACL,SAAS;IACb,CAAC;IAED,oBAAoB;IACpB,IAAI,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CACxB,GAAG,eAAe,IAAI,KAAK,IAAI,IAAI,uBAAuB,CAC7D,CAAC;QACF,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;YACd,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAmB,CAAC;QAClD,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACL,SAAS;IACb,CAAC;IAED,OAAO,IAAI,CAAC;AAChB,CAAC;AAED;;GAEG;AACH;;GAEG;AACI,KAAK,UAAU,kBAAkB,CACpC,KAAa,EACb,IAAY,EACZ,KAAe;IAEf,MAAM,eAAe,GAAqB,EAAE,CAAC;IAE7C,oCAAoC;IACpC,KAAK,UAAU,cAAc,CAAC,IAAY,EAAE,WAAmB,EAAE;QAC7D,IAAI,CAAC;YACD,MAAM,MAAM,GAAG,gCAAgC,KAAK,IAAI,IAAI,aAAa,IAAI,EAAE,CAAC;YAChF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC;YAErC,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACd,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,EAA+E,CAAC;gBAEpH,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;oBAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;wBAC5C,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBACpD,IAAI,YAAY,CAAC,EAAE,EAAE,CAAC;4BAClB,eAAe,CAAC,IAAI,CAAC;gCACjB,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,uCAAuC;gCACxD,OAAO,EAAE,MAAM,YAAY,CAAC,IAAI,EAAE;6BACrC,CAAC,CAAC;wBACP,CAAC;oBACL,CAAC;yBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;wBAC7B,8BAA8B;wBAC9B,MAAM,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBACpC,CAAC;gBACL,CAAC;YACL,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,6BAA6B,IAAI,EAAE,CAAC,CAAC;QACtD,CAAC;IACL,CAAC;IAED,KAAK,MAAM,QAAQ,IAAI,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC;YACD,iDAAiD;YACjD,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpD,MAAM,cAAc,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;YACtD,CAAC;iBAAM,CAAC;gBACJ,kBAAkB;gBAClB,MAAM,GAAG,GAAG,GAAG,eAAe,IAAI,KAAK,IAAI,IAAI,SAAS,QAAQ,EAAE,CAAC;gBACnE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;gBAElC,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACd,eAAe,CAAC,IAAI,CAAC;wBACjB,IAAI,EAAE,QAAQ;wBACd,OAAO,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE;qBACjC,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,IAAI,CAAC,+BAA+B,QAAQ,EAAE,CAAC,CAAC;QAC5D,CAAC;IACL,CAAC;IAED,yEAAyE;IACzE,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrD,MAAM,WAAW,GAAG,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QAErF,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACD,MAAM,GAAG,GAAG,GAAG,eAAe,IAAI,KAAK,IAAI,IAAI,SAAS,IAAI,EAAE,CAAC;gBAC/D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;gBAElC,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACd,eAAe,CAAC,IAAI,CAAC;wBACjB,IAAI,EAAE,IAAI;wBACV,OAAO,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE;qBACjC,CAAC,CAAC;gBACP,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACL,SAAS;YACb,CAAC;QACL,CAAC;IACL,CAAC;IAED,OAAO,eAAe,CAAC;AAC3B,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,aAAa,CAAC,KAAa,EAAE,IAAY;IAC3D,IAAI,CAAC;QACD,MAAM,KAAK,CAAC,GAAG,QAAQ,iBAAiB,EAAE;YACtC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACjB,YAAY,EAAE,KAAK;gBACnB,WAAW,EAAE,IAAI;gBACjB,WAAW,EAAE,OAAO;aACvB,CAAC;SACL,CAAC,CAAC;IACP,CAAC;IAAC,MAAM,CAAC;QACL,kDAAkD;IACtD,CAAC;AACL,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,gBAAgB,CAClC,QAAgB,EAAE,EAClB,WAAoB,KAAK;IAEzB,MAAM,QAAQ,GAAG,MAAM,KAAK,CACxB,GAAG,QAAQ,6BAA6B,KAAK,aAAa,QAAQ,EAAE,CACvE,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAa,CAAC;AAC5C,CAAC;AAED;;GAEG;AACI,KAAK,UAAU,eAAe,CACjC,KAAa,EACb,QAAgB,EAAE;IAElB,MAAM,QAAQ,GAAG,MAAM,KAAK,CACxB,GAAG,QAAQ,oBAAoB,kBAAkB,CAAC,KAAK,CAAC,UAAU,KAAK,EAAE,CAC5E,CAAC;IAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO,MAAM,QAAQ,CAAC,IAAI,EAAa,CAAC;AAC5C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "uixskills",
|
|
3
|
-
"version": "0.1
|
|
4
|
-
"description": "CLI tool for installing UI/UX skills
|
|
3
|
+
"version": "0.2.1",
|
|
4
|
+
"description": "CLI tool for installing UI/UX skills",
|
|
5
5
|
"author": "UIXskills",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|