skillpkg-core 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.
- package/dist/adapters/base.d.ts +48 -0
- package/dist/adapters/base.d.ts.map +1 -0
- package/dist/adapters/base.js +54 -0
- package/dist/adapters/base.js.map +1 -0
- package/dist/adapters/claude-code.d.ts +39 -0
- package/dist/adapters/claude-code.d.ts.map +1 -0
- package/dist/adapters/claude-code.js +172 -0
- package/dist/adapters/claude-code.js.map +1 -0
- package/dist/adapters/cline.d.ts +43 -0
- package/dist/adapters/cline.d.ts.map +1 -0
- package/dist/adapters/cline.js +157 -0
- package/dist/adapters/cline.js.map +1 -0
- package/dist/adapters/codex.d.ts +31 -0
- package/dist/adapters/codex.d.ts.map +1 -0
- package/dist/adapters/codex.js +117 -0
- package/dist/adapters/codex.js.map +1 -0
- package/dist/adapters/copilot.d.ts +44 -0
- package/dist/adapters/copilot.d.ts.map +1 -0
- package/dist/adapters/copilot.js +183 -0
- package/dist/adapters/copilot.js.map +1 -0
- package/dist/adapters/index.d.ts +11 -0
- package/dist/adapters/index.d.ts.map +1 -0
- package/dist/adapters/index.js +13 -0
- package/dist/adapters/index.js.map +1 -0
- package/dist/adapters/manager.d.ts +51 -0
- package/dist/adapters/manager.d.ts.map +1 -0
- package/dist/adapters/manager.js +147 -0
- package/dist/adapters/manager.js.map +1 -0
- package/dist/adapters/types.d.ts +93 -0
- package/dist/adapters/types.d.ts.map +1 -0
- package/dist/adapters/types.js +2 -0
- package/dist/adapters/types.js.map +1 -0
- package/dist/exporter/exporter.d.ts +54 -0
- package/dist/exporter/exporter.d.ts.map +1 -0
- package/dist/exporter/exporter.js +303 -0
- package/dist/exporter/exporter.js.map +1 -0
- package/dist/exporter/index.d.ts +6 -0
- package/dist/exporter/index.d.ts.map +1 -0
- package/dist/exporter/index.js +6 -0
- package/dist/exporter/index.js.map +1 -0
- package/dist/exporter/types.d.ts +38 -0
- package/dist/exporter/types.d.ts.map +1 -0
- package/dist/exporter/types.js +5 -0
- package/dist/exporter/types.js.map +1 -0
- package/dist/importer/importer.d.ts +37 -0
- package/dist/importer/importer.d.ts.map +1 -0
- package/dist/importer/importer.js +204 -0
- package/dist/importer/importer.js.map +1 -0
- package/dist/importer/index.d.ts +6 -0
- package/dist/importer/index.d.ts.map +1 -0
- package/dist/importer/index.js +6 -0
- package/dist/importer/index.js.map +1 -0
- package/dist/importer/types.d.ts +43 -0
- package/dist/importer/types.d.ts.map +1 -0
- package/dist/importer/types.js +2 -0
- package/dist/importer/types.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/parser/index.d.ts +23 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +24 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/parser/parser.d.ts +64 -0
- package/dist/parser/parser.d.ts.map +1 -0
- package/dist/parser/parser.js +121 -0
- package/dist/parser/parser.js.map +1 -0
- package/dist/parser/schema.d.ts +155 -0
- package/dist/parser/schema.d.ts.map +1 -0
- package/dist/parser/schema.js +147 -0
- package/dist/parser/schema.js.map +1 -0
- package/dist/parser/validator.d.ts +38 -0
- package/dist/parser/validator.d.ts.map +1 -0
- package/dist/parser/validator.js +125 -0
- package/dist/parser/validator.js.map +1 -0
- package/dist/registry/auth.d.ts +38 -0
- package/dist/registry/auth.d.ts.map +1 -0
- package/dist/registry/auth.js +142 -0
- package/dist/registry/auth.js.map +1 -0
- package/dist/registry/client.d.ts +80 -0
- package/dist/registry/client.d.ts.map +1 -0
- package/dist/registry/client.js +238 -0
- package/dist/registry/client.js.map +1 -0
- package/dist/registry/index.d.ts +10 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +9 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/registry/types.d.ts +94 -0
- package/dist/registry/types.d.ts.map +1 -0
- package/dist/registry/types.js +18 -0
- package/dist/registry/types.js.map +1 -0
- package/dist/store/config.d.ts +30 -0
- package/dist/store/config.d.ts.map +1 -0
- package/dist/store/config.js +112 -0
- package/dist/store/config.js.map +1 -0
- package/dist/store/index.d.ts +21 -0
- package/dist/store/index.d.ts.map +1 -0
- package/dist/store/index.js +24 -0
- package/dist/store/index.js.map +1 -0
- package/dist/store/manager.d.ts +113 -0
- package/dist/store/manager.d.ts.map +1 -0
- package/dist/store/manager.js +250 -0
- package/dist/store/manager.js.map +1 -0
- package/dist/store/paths.d.ts +37 -0
- package/dist/store/paths.d.ts.map +1 -0
- package/dist/store/paths.js +60 -0
- package/dist/store/paths.js.map +1 -0
- package/dist/store/registry.d.ts +34 -0
- package/dist/store/registry.d.ts.map +1 -0
- package/dist/store/registry.js +105 -0
- package/dist/store/registry.js.map +1 -0
- package/dist/types.d.ts +130 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +8 -0
- package/dist/types.js.map +1 -0
- package/package.json +61 -0
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Importer - Import skills from various platform formats
|
|
3
|
+
*
|
|
4
|
+
* Uses platform adapters to detect and import skills
|
|
5
|
+
*/
|
|
6
|
+
import { readdir, stat } from 'fs/promises';
|
|
7
|
+
import { join } from 'path';
|
|
8
|
+
import { createAdapterManager } from '../adapters/manager.js';
|
|
9
|
+
/**
|
|
10
|
+
* Importer class
|
|
11
|
+
*/
|
|
12
|
+
export class Importer {
|
|
13
|
+
adapters;
|
|
14
|
+
constructor() {
|
|
15
|
+
const manager = createAdapterManager();
|
|
16
|
+
this.adapters = manager.listAdapters();
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Detect importable files in a path
|
|
20
|
+
*/
|
|
21
|
+
async detect(path) {
|
|
22
|
+
const detected = [];
|
|
23
|
+
const stats = await stat(path).catch(() => null);
|
|
24
|
+
if (!stats) {
|
|
25
|
+
return detected;
|
|
26
|
+
}
|
|
27
|
+
if (stats.isFile()) {
|
|
28
|
+
// Single file - check each adapter
|
|
29
|
+
for (const adapter of this.adapters) {
|
|
30
|
+
if (await adapter.canImport(path)) {
|
|
31
|
+
detected.push({
|
|
32
|
+
path,
|
|
33
|
+
platform: adapter.name,
|
|
34
|
+
displayName: adapter.displayName,
|
|
35
|
+
});
|
|
36
|
+
break; // First match wins
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
else if (stats.isDirectory()) {
|
|
41
|
+
// Directory - scan for importable files
|
|
42
|
+
await this.scanDirectory(path, detected);
|
|
43
|
+
}
|
|
44
|
+
return detected;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Scan directory recursively for importable files
|
|
48
|
+
*/
|
|
49
|
+
async scanDirectory(dirPath, detected, depth = 0) {
|
|
50
|
+
// Limit recursion depth
|
|
51
|
+
if (depth > 5)
|
|
52
|
+
return;
|
|
53
|
+
try {
|
|
54
|
+
const entries = await readdir(dirPath, { withFileTypes: true });
|
|
55
|
+
for (const entry of entries) {
|
|
56
|
+
const fullPath = join(dirPath, entry.name);
|
|
57
|
+
if (entry.isFile()) {
|
|
58
|
+
// Check if any adapter can import this file
|
|
59
|
+
for (const adapter of this.adapters) {
|
|
60
|
+
if (await adapter.canImport(fullPath)) {
|
|
61
|
+
detected.push({
|
|
62
|
+
path: fullPath,
|
|
63
|
+
platform: adapter.name,
|
|
64
|
+
displayName: adapter.displayName,
|
|
65
|
+
});
|
|
66
|
+
break;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
else if (entry.isDirectory()) {
|
|
71
|
+
// Skip common non-skill directories
|
|
72
|
+
if (this.shouldSkipDirectory(entry.name)) {
|
|
73
|
+
continue;
|
|
74
|
+
}
|
|
75
|
+
// Recurse into subdirectory
|
|
76
|
+
await this.scanDirectory(fullPath, detected, depth + 1);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
// Ignore permission errors, etc.
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Check if a directory should be skipped during scanning
|
|
86
|
+
*/
|
|
87
|
+
shouldSkipDirectory(name) {
|
|
88
|
+
const skipDirs = [
|
|
89
|
+
'node_modules',
|
|
90
|
+
'.git',
|
|
91
|
+
'.svn',
|
|
92
|
+
'dist',
|
|
93
|
+
'build',
|
|
94
|
+
'coverage',
|
|
95
|
+
'__pycache__',
|
|
96
|
+
'.venv',
|
|
97
|
+
'venv',
|
|
98
|
+
];
|
|
99
|
+
return skipDirs.includes(name);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Import a single file
|
|
103
|
+
*/
|
|
104
|
+
async importFile(path, options = {}) {
|
|
105
|
+
// Find adapter that can import this file
|
|
106
|
+
let targetAdapter = null;
|
|
107
|
+
if (options.platform) {
|
|
108
|
+
// Use specified platform
|
|
109
|
+
targetAdapter =
|
|
110
|
+
this.adapters.find((a) => a.name === options.platform) || null;
|
|
111
|
+
if (targetAdapter && !(await targetAdapter.canImport(path))) {
|
|
112
|
+
return {
|
|
113
|
+
path,
|
|
114
|
+
success: false,
|
|
115
|
+
error: `File is not a valid ${targetAdapter.displayName} format`,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
// Auto-detect platform
|
|
121
|
+
for (const adapter of this.adapters) {
|
|
122
|
+
if (await adapter.canImport(path)) {
|
|
123
|
+
targetAdapter = adapter;
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
if (!targetAdapter) {
|
|
129
|
+
return {
|
|
130
|
+
path,
|
|
131
|
+
success: false,
|
|
132
|
+
error: 'No compatible platform adapter found',
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
try {
|
|
136
|
+
const skill = await targetAdapter.import(path);
|
|
137
|
+
return {
|
|
138
|
+
path,
|
|
139
|
+
success: true,
|
|
140
|
+
skill,
|
|
141
|
+
platform: targetAdapter.name,
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
catch (error) {
|
|
145
|
+
return {
|
|
146
|
+
path,
|
|
147
|
+
success: false,
|
|
148
|
+
platform: targetAdapter.name,
|
|
149
|
+
error: error instanceof Error ? error.message : String(error),
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Import multiple files (batch import)
|
|
155
|
+
*/
|
|
156
|
+
async importBatch(paths, options = {}) {
|
|
157
|
+
const result = {
|
|
158
|
+
imported: [],
|
|
159
|
+
failed: [],
|
|
160
|
+
skipped: [],
|
|
161
|
+
total: paths.length,
|
|
162
|
+
};
|
|
163
|
+
for (const path of paths) {
|
|
164
|
+
const importResult = await this.importFile(path, options);
|
|
165
|
+
if (importResult.success) {
|
|
166
|
+
result.imported.push(importResult);
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
result.failed.push(importResult);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
return result;
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Import from a path (file or directory)
|
|
176
|
+
*/
|
|
177
|
+
async importFrom(path, options = {}) {
|
|
178
|
+
// First detect importable files
|
|
179
|
+
const detected = await this.detect(path);
|
|
180
|
+
if (detected.length === 0) {
|
|
181
|
+
return {
|
|
182
|
+
imported: [],
|
|
183
|
+
failed: [],
|
|
184
|
+
skipped: [
|
|
185
|
+
{
|
|
186
|
+
path,
|
|
187
|
+
success: false,
|
|
188
|
+
error: 'No importable files found',
|
|
189
|
+
},
|
|
190
|
+
],
|
|
191
|
+
total: 0,
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
// Import all detected files
|
|
195
|
+
return this.importBatch(detected.map((d) => d.path), options);
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
/**
|
|
199
|
+
* Create a new Importer instance
|
|
200
|
+
*/
|
|
201
|
+
export function createImporter() {
|
|
202
|
+
return new Importer();
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=importer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"importer.js","sourceRoot":"","sources":["../../src/importer/importer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAQ9D;;GAEG;AACH,MAAM,OAAO,QAAQ;IACX,QAAQ,CAAoB;IAEpC;QACE,MAAM,OAAO,GAAG,oBAAoB,EAAE,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,IAAY;QACvB,MAAM,QAAQ,GAAmB,EAAE,CAAC;QACpC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QAEjD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;YACnB,mCAAmC;YACnC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACpC,IAAI,MAAM,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;oBAClC,QAAQ,CAAC,IAAI,CAAC;wBACZ,IAAI;wBACJ,QAAQ,EAAE,OAAO,CAAC,IAAI;wBACtB,WAAW,EAAE,OAAO,CAAC,WAAW;qBACjC,CAAC,CAAC;oBACH,MAAM,CAAC,mBAAmB;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YAC/B,wCAAwC;YACxC,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,aAAa,CACzB,OAAe,EACf,QAAwB,EACxB,QAAgB,CAAC;QAEjB,wBAAwB;QACxB,IAAI,KAAK,GAAG,CAAC;YAAE,OAAO;QAEtB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAEhE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAE3C,IAAI,KAAK,CAAC,MAAM,EAAE,EAAE,CAAC;oBACnB,4CAA4C;oBAC5C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACpC,IAAI,MAAM,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;4BACtC,QAAQ,CAAC,IAAI,CAAC;gCACZ,IAAI,EAAE,QAAQ;gCACd,QAAQ,EAAE,OAAO,CAAC,IAAI;gCACtB,WAAW,EAAE,OAAO,CAAC,WAAW;6BACjC,CAAC,CAAC;4BACH,MAAM;wBACR,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;oBAC/B,oCAAoC;oBACpC,IAAI,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;wBACzC,SAAS;oBACX,CAAC;oBAED,4BAA4B;oBAC5B,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;gBAC1D,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,iCAAiC;QACnC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,IAAY;QACtC,MAAM,QAAQ,GAAG;YACf,cAAc;YACd,MAAM;YACN,MAAM;YACN,MAAM;YACN,OAAO;YACP,UAAU;YACV,aAAa;YACb,OAAO;YACP,MAAM;SACP,CAAC;QACF,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CACd,IAAY,EACZ,UAAyB,EAAE;QAE3B,yCAAyC;QACzC,IAAI,aAAa,GAA2B,IAAI,CAAC;QAEjD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,yBAAyB;YACzB,aAAa;gBACX,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC;YACjE,IAAI,aAAa,IAAI,CAAC,CAAC,MAAM,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC;gBAC5D,OAAO;oBACL,IAAI;oBACJ,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,uBAAuB,aAAa,CAAC,WAAW,SAAS;iBACjE,CAAC;YACJ,CAAC;QACH,CAAC;aAAM,CAAC;YACN,uBAAuB;YACvB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACpC,IAAI,MAAM,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;oBAClC,aAAa,GAAG,OAAO,CAAC;oBACxB,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO;gBACL,IAAI;gBACJ,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,sCAAsC;aAC9C,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC/C,OAAO;gBACL,IAAI;gBACJ,OAAO,EAAE,IAAI;gBACb,KAAK;gBACL,QAAQ,EAAE,aAAa,CAAC,IAAI;aAC7B,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO;gBACL,IAAI;gBACJ,OAAO,EAAE,KAAK;gBACd,QAAQ,EAAE,aAAa,CAAC,IAAI;gBAC5B,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;aAC9D,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CACf,KAAe,EACf,UAAyB,EAAE;QAE3B,MAAM,MAAM,GAAsB;YAChC,QAAQ,EAAE,EAAE;YACZ,MAAM,EAAE,EAAE;YACV,OAAO,EAAE,EAAE;YACX,KAAK,EAAE,KAAK,CAAC,MAAM;SACpB,CAAC;QAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAE1D,IAAI,YAAY,CAAC,OAAO,EAAE,CAAC;gBACzB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACrC,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CACd,IAAY,EACZ,UAAyB,EAAE;QAE3B,gCAAgC;QAChC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEzC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO;gBACL,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,EAAE;gBACV,OAAO,EAAE;oBACP;wBACE,IAAI;wBACJ,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,2BAA2B;qBACnC;iBACF;gBACD,KAAK,EAAE,CAAC;aACT,CAAC;QACJ,CAAC;QAED,4BAA4B;QAC5B,OAAO,IAAI,CAAC,WAAW,CACrB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAC3B,OAAO,CACR,CAAC;IACJ,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,IAAI,QAAQ,EAAE,CAAC;AACxB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Importer module - Import skills from various platform formats
|
|
3
|
+
*/
|
|
4
|
+
export type { ImportResult, BatchImportResult, ImportOptions, DetectedFile, } from './types.js';
|
|
5
|
+
export { Importer, createImporter } from './importer.js';
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/importer/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACV,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,YAAY,GACb,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/importer/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,WAAW;AACX,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Importer types
|
|
3
|
+
*/
|
|
4
|
+
import type { Skill } from '../types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Import result for a single file
|
|
7
|
+
*/
|
|
8
|
+
export interface ImportResult {
|
|
9
|
+
path: string;
|
|
10
|
+
success: boolean;
|
|
11
|
+
skill?: Skill;
|
|
12
|
+
platform?: string;
|
|
13
|
+
error?: string;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Batch import result
|
|
17
|
+
*/
|
|
18
|
+
export interface BatchImportResult {
|
|
19
|
+
imported: ImportResult[];
|
|
20
|
+
failed: ImportResult[];
|
|
21
|
+
skipped: ImportResult[];
|
|
22
|
+
total: number;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Import options
|
|
26
|
+
*/
|
|
27
|
+
export interface ImportOptions {
|
|
28
|
+
/** Dry run - don't actually save */
|
|
29
|
+
dryRun?: boolean;
|
|
30
|
+
/** Target platform to import from (auto-detect if not specified) */
|
|
31
|
+
platform?: string;
|
|
32
|
+
/** Whether to overwrite existing skills */
|
|
33
|
+
overwrite?: boolean;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Detected file info
|
|
37
|
+
*/
|
|
38
|
+
export interface DetectedFile {
|
|
39
|
+
path: string;
|
|
40
|
+
platform: string;
|
|
41
|
+
displayName: string;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/importer/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEzC;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,oCAAoC;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/importer/types.ts"],"names":[],"mappings":""}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @skillpkg/core
|
|
3
|
+
*
|
|
4
|
+
* Core library for skillpkg - Agent Skills Package Manager
|
|
5
|
+
*/
|
|
6
|
+
export declare const VERSION = "0.0.1";
|
|
7
|
+
export * from './types.js';
|
|
8
|
+
export * from './parser/index.js';
|
|
9
|
+
export * from './store/index.js';
|
|
10
|
+
export * from './adapters/index.js';
|
|
11
|
+
export * from './importer/index.js';
|
|
12
|
+
export * from './exporter/index.js';
|
|
13
|
+
export * from './registry/index.js';
|
|
14
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,OAAO,UAAU,CAAC;AAG/B,cAAc,YAAY,CAAC;AAG3B,cAAc,mBAAmB,CAAC;AAGlC,cAAc,kBAAkB,CAAC;AAGjC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,qBAAqB,CAAC;AAGpC,cAAc,qBAAqB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @skillpkg/core
|
|
3
|
+
*
|
|
4
|
+
* Core library for skillpkg - Agent Skills Package Manager
|
|
5
|
+
*/
|
|
6
|
+
export const VERSION = '0.0.1';
|
|
7
|
+
// Types
|
|
8
|
+
export * from './types.js';
|
|
9
|
+
// Parser module
|
|
10
|
+
export * from './parser/index.js';
|
|
11
|
+
// Store module
|
|
12
|
+
export * from './store/index.js';
|
|
13
|
+
// Adapters module
|
|
14
|
+
export * from './adapters/index.js';
|
|
15
|
+
// Importer module
|
|
16
|
+
export * from './importer/index.js';
|
|
17
|
+
// Exporter module
|
|
18
|
+
export * from './exporter/index.js';
|
|
19
|
+
// Registry module
|
|
20
|
+
export * from './registry/index.js';
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,QAAQ;AACR,cAAc,YAAY,CAAC;AAE3B,gBAAgB;AAChB,cAAc,mBAAmB,CAAC;AAElC,eAAe;AACf,cAAc,kBAAkB,CAAC;AAEjC,kBAAkB;AAClB,cAAc,qBAAqB,CAAC;AAEpC,kBAAkB;AAClB,cAAc,qBAAqB,CAAC;AAEpC,kBAAkB;AAClB,cAAc,qBAAqB,CAAC;AAEpC,kBAAkB;AAClB,cAAc,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parser module - public API
|
|
3
|
+
*
|
|
4
|
+
* Provides YAML parsing and validation for skill.yaml files.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* import { parse, validate, stringify } from '@skillpkg/core/parser';
|
|
9
|
+
*
|
|
10
|
+
* const result = parse(yamlContent);
|
|
11
|
+
* if (result.success) {
|
|
12
|
+
* console.log(result.data.name);
|
|
13
|
+
* } else {
|
|
14
|
+
* console.error(result.errors);
|
|
15
|
+
* }
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export { parse, stringify, parseAndValidate } from './parser.js';
|
|
19
|
+
export type { ParseResult, ParseError, ParseOptions } from './parser.js';
|
|
20
|
+
export { validate } from './validator.js';
|
|
21
|
+
export type { ValidationResult, ValidationError, ValidationWarning } from './validator.js';
|
|
22
|
+
export { skillSchema, fieldDescriptions } from './schema.js';
|
|
23
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACjE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAGzE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAG3F,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parser module - public API
|
|
3
|
+
*
|
|
4
|
+
* Provides YAML parsing and validation for skill.yaml files.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```typescript
|
|
8
|
+
* import { parse, validate, stringify } from '@skillpkg/core/parser';
|
|
9
|
+
*
|
|
10
|
+
* const result = parse(yamlContent);
|
|
11
|
+
* if (result.success) {
|
|
12
|
+
* console.log(result.data.name);
|
|
13
|
+
* } else {
|
|
14
|
+
* console.error(result.errors);
|
|
15
|
+
* }
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
// Parser functions
|
|
19
|
+
export { parse, stringify, parseAndValidate } from './parser.js';
|
|
20
|
+
// Validator functions
|
|
21
|
+
export { validate } from './validator.js';
|
|
22
|
+
// Schema
|
|
23
|
+
export { skillSchema, fieldDescriptions } from './schema.js';
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/parser/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,mBAAmB;AACnB,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAGjE,sBAAsB;AACtB,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,SAAS;AACT,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { Skill } from '../types.js';
|
|
2
|
+
import { type ValidationResult } from './validator.js';
|
|
3
|
+
/**
|
|
4
|
+
* Parse error with line/column information
|
|
5
|
+
*/
|
|
6
|
+
export interface ParseError {
|
|
7
|
+
/** Error message */
|
|
8
|
+
message: string;
|
|
9
|
+
/** Line number (1-indexed) */
|
|
10
|
+
line?: number;
|
|
11
|
+
/** Column number (1-indexed) */
|
|
12
|
+
column?: number;
|
|
13
|
+
/** Error code */
|
|
14
|
+
code: 'YAML_SYNTAX' | 'VALIDATION' | 'UNKNOWN';
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Parse result
|
|
18
|
+
*/
|
|
19
|
+
export interface ParseResult<T> {
|
|
20
|
+
/** Whether parsing succeeded */
|
|
21
|
+
success: boolean;
|
|
22
|
+
/** Parsed data (if successful) */
|
|
23
|
+
data?: T;
|
|
24
|
+
/** Parse errors (if failed) */
|
|
25
|
+
errors?: ParseError[];
|
|
26
|
+
/** Validation warnings (even if successful) */
|
|
27
|
+
warnings?: string[];
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Parse options
|
|
31
|
+
*/
|
|
32
|
+
export interface ParseOptions {
|
|
33
|
+
/** Whether to validate after parsing (default: true) */
|
|
34
|
+
validate?: boolean;
|
|
35
|
+
/** Whether to include warnings in result (default: true) */
|
|
36
|
+
includeWarnings?: boolean;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Parse a skill.yaml string into a Skill object
|
|
40
|
+
*
|
|
41
|
+
* @param content - The YAML content to parse
|
|
42
|
+
* @param options - Parse options
|
|
43
|
+
* @returns ParseResult with the parsed Skill or errors
|
|
44
|
+
*/
|
|
45
|
+
export declare function parse(content: string, options?: ParseOptions): ParseResult<Skill>;
|
|
46
|
+
/**
|
|
47
|
+
* Stringify a Skill object to YAML
|
|
48
|
+
*
|
|
49
|
+
* @param skill - The Skill object to stringify
|
|
50
|
+
* @returns YAML string
|
|
51
|
+
*/
|
|
52
|
+
export declare function stringify(skill: Skill): string;
|
|
53
|
+
/**
|
|
54
|
+
* Parse and validate, returning both results
|
|
55
|
+
*
|
|
56
|
+
* @param content - The YAML content to parse
|
|
57
|
+
* @returns Object with parsed skill and validation result
|
|
58
|
+
*/
|
|
59
|
+
export declare function parseAndValidate(content: string): {
|
|
60
|
+
skill: Skill | null;
|
|
61
|
+
validation: ValidationResult;
|
|
62
|
+
parseErrors?: ParseError[];
|
|
63
|
+
};
|
|
64
|
+
//# sourceMappingURL=parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/parser/parser.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAY,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iBAAiB;IACjB,IAAI,EAAE,aAAa,GAAG,YAAY,GAAG,SAAS,CAAC;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,gCAAgC;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,kCAAkC;IAClC,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,+BAA+B;IAC/B,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;IACtB,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,wDAAwD;IACxD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4DAA4D;IAC5D,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;GAMG;AACH,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,YAAiB,GAAG,WAAW,CAAC,KAAK,CAAC,CA+ErF;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAO9C;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG;IACjD,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC;CAC5B,CAiBA"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* YAML parser for skill.yaml files
|
|
3
|
+
*/
|
|
4
|
+
import { parse as parseYaml, stringify as stringifyYaml, YAMLParseError } from 'yaml';
|
|
5
|
+
import { validate } from './validator.js';
|
|
6
|
+
/**
|
|
7
|
+
* Parse a skill.yaml string into a Skill object
|
|
8
|
+
*
|
|
9
|
+
* @param content - The YAML content to parse
|
|
10
|
+
* @param options - Parse options
|
|
11
|
+
* @returns ParseResult with the parsed Skill or errors
|
|
12
|
+
*/
|
|
13
|
+
export function parse(content, options = {}) {
|
|
14
|
+
const { validate: shouldValidate = true, includeWarnings = true } = options;
|
|
15
|
+
try {
|
|
16
|
+
// Parse YAML
|
|
17
|
+
const data = parseYaml(content, {
|
|
18
|
+
prettyErrors: true,
|
|
19
|
+
});
|
|
20
|
+
// Check if data is an object
|
|
21
|
+
if (typeof data !== 'object' || data === null) {
|
|
22
|
+
return {
|
|
23
|
+
success: false,
|
|
24
|
+
errors: [
|
|
25
|
+
{
|
|
26
|
+
message: 'skill.yaml must contain an object',
|
|
27
|
+
code: 'VALIDATION',
|
|
28
|
+
},
|
|
29
|
+
],
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
// Validate if requested
|
|
33
|
+
if (shouldValidate) {
|
|
34
|
+
const validationResult = validate(data);
|
|
35
|
+
if (!validationResult.valid) {
|
|
36
|
+
return {
|
|
37
|
+
success: false,
|
|
38
|
+
errors: validationResult.errors.map((e) => ({
|
|
39
|
+
message: `${e.path}: ${e.message}${e.expected ? ` (expected: ${e.expected})` : ''}`,
|
|
40
|
+
code: 'VALIDATION',
|
|
41
|
+
})),
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
// Return with warnings
|
|
45
|
+
const warnings = includeWarnings
|
|
46
|
+
? validationResult.warnings.map((w) => `${w.path}: ${w.message}`)
|
|
47
|
+
: undefined;
|
|
48
|
+
return {
|
|
49
|
+
success: true,
|
|
50
|
+
data: data,
|
|
51
|
+
warnings: warnings?.length ? warnings : undefined,
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
return {
|
|
55
|
+
success: true,
|
|
56
|
+
data: data,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
// Handle YAML parse errors
|
|
61
|
+
if (error instanceof YAMLParseError) {
|
|
62
|
+
return {
|
|
63
|
+
success: false,
|
|
64
|
+
errors: [
|
|
65
|
+
{
|
|
66
|
+
message: error.message,
|
|
67
|
+
line: error.linePos?.[0]?.line,
|
|
68
|
+
column: error.linePos?.[0]?.col,
|
|
69
|
+
code: 'YAML_SYNTAX',
|
|
70
|
+
},
|
|
71
|
+
],
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
// Handle unknown errors
|
|
75
|
+
return {
|
|
76
|
+
success: false,
|
|
77
|
+
errors: [
|
|
78
|
+
{
|
|
79
|
+
message: error instanceof Error ? error.message : 'Unknown error',
|
|
80
|
+
code: 'UNKNOWN',
|
|
81
|
+
},
|
|
82
|
+
],
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Stringify a Skill object to YAML
|
|
88
|
+
*
|
|
89
|
+
* @param skill - The Skill object to stringify
|
|
90
|
+
* @returns YAML string
|
|
91
|
+
*/
|
|
92
|
+
export function stringify(skill) {
|
|
93
|
+
return stringifyYaml(skill, {
|
|
94
|
+
indent: 2,
|
|
95
|
+
lineWidth: 0, // Don't wrap lines
|
|
96
|
+
defaultStringType: 'QUOTE_DOUBLE',
|
|
97
|
+
defaultKeyType: 'PLAIN',
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Parse and validate, returning both results
|
|
102
|
+
*
|
|
103
|
+
* @param content - The YAML content to parse
|
|
104
|
+
* @returns Object with parsed skill and validation result
|
|
105
|
+
*/
|
|
106
|
+
export function parseAndValidate(content) {
|
|
107
|
+
const parseResult = parse(content, { validate: false });
|
|
108
|
+
if (!parseResult.success || !parseResult.data) {
|
|
109
|
+
return {
|
|
110
|
+
skill: null,
|
|
111
|
+
validation: { valid: false, errors: [], warnings: [] },
|
|
112
|
+
parseErrors: parseResult.errors,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
const validation = validate(parseResult.data);
|
|
116
|
+
return {
|
|
117
|
+
skill: validation.valid ? parseResult.data : null,
|
|
118
|
+
validation,
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/parser/parser.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,SAAS,IAAI,aAAa,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAEtF,OAAO,EAAE,QAAQ,EAAyB,MAAM,gBAAgB,CAAC;AAwCjE;;;;;;GAMG;AACH,MAAM,UAAU,KAAK,CAAC,OAAe,EAAE,UAAwB,EAAE;IAC/D,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI,EAAE,eAAe,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAE5E,IAAI,CAAC;QACH,aAAa;QACb,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,EAAE;YAC9B,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;QAEH,6BAA6B;QAC7B,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAC9C,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE;oBACN;wBACE,OAAO,EAAE,mCAAmC;wBAC5C,IAAI,EAAE,YAAY;qBACnB;iBACF;aACF,CAAC;QACJ,CAAC;QAED,wBAAwB;QACxB,IAAI,cAAc,EAAE,CAAC;YACnB,MAAM,gBAAgB,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAExC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;gBAC5B,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;wBAC1C,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;wBACnF,IAAI,EAAE,YAAqB;qBAC5B,CAAC,CAAC;iBACJ,CAAC;YACJ,CAAC;YAED,uBAAuB;YACvB,MAAM,QAAQ,GAAG,eAAe;gBAC9B,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC;gBACjE,CAAC,CAAC,SAAS,CAAC;YAEd,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,IAAI,EAAE,IAAa;gBACnB,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;aAClD,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,IAAa;SACpB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,2BAA2B;QAC3B,IAAI,KAAK,YAAY,cAAc,EAAE,CAAC;YACpC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE;oBACN;wBACE,OAAO,EAAE,KAAK,CAAC,OAAO;wBACtB,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI;wBAC9B,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG;wBAC/B,IAAI,EAAE,aAAa;qBACpB;iBACF;aACF,CAAC;QACJ,CAAC;QAED,wBAAwB;QACxB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE;gBACN;oBACE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;oBACjE,IAAI,EAAE,SAAS;iBAChB;aACF;SACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,KAAY;IACpC,OAAO,aAAa,CAAC,KAAK,EAAE;QAC1B,MAAM,EAAE,CAAC;QACT,SAAS,EAAE,CAAC,EAAE,mBAAmB;QACjC,iBAAiB,EAAE,cAAc;QACjC,cAAc,EAAE,OAAO;KACxB,CAAC,CAAC;AACL,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAe;IAK9C,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IAExD,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAC9C,OAAO;YACL,KAAK,EAAE,IAAI;YACX,UAAU,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;YACtD,WAAW,EAAE,WAAW,CAAC,MAAM;SAChC,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAE9C,OAAO;QACL,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;QACjD,UAAU;KACX,CAAC;AACJ,CAAC"}
|