openpets 1.0.5 → 1.0.7
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/data/api.json +6658 -0
- package/dist/src/core/ai-client-base/index.d.ts +47 -0
- package/dist/src/core/ai-client-base/index.d.ts.map +1 -0
- package/dist/src/core/ai-client-base/index.js +168 -0
- package/dist/src/core/ai-client-base/index.js.map +1 -0
- package/dist/src/core/browser.d.ts +10 -0
- package/dist/src/core/browser.d.ts.map +1 -0
- package/{browser.ts → dist/src/core/browser.js} +4 -4
- package/dist/src/core/browser.js.map +1 -0
- package/dist/src/core/build-pet.d.ts +2 -0
- package/dist/src/core/build-pet.d.ts.map +1 -0
- package/dist/src/core/build-pet.js +392 -0
- package/dist/src/core/build-pet.js.map +1 -0
- package/dist/src/core/cli.d.ts +3 -0
- package/dist/src/core/cli.d.ts.map +1 -0
- package/dist/src/core/cli.js +244 -0
- package/dist/src/core/cli.js.map +1 -0
- package/dist/src/core/config-manager.d.ts +13 -0
- package/dist/src/core/config-manager.d.ts.map +1 -0
- package/dist/src/core/config-manager.js +59 -0
- package/dist/src/core/config-manager.js.map +1 -0
- package/dist/src/core/deploy-pet.d.ts +2 -0
- package/dist/src/core/deploy-pet.d.ts.map +1 -0
- package/dist/src/core/deploy-pet.js +66 -0
- package/dist/src/core/deploy-pet.js.map +1 -0
- package/dist/src/core/index.d.ts +12 -0
- package/dist/src/core/index.d.ts.map +1 -0
- package/dist/src/core/index.js +12 -0
- package/dist/src/core/index.js.map +1 -0
- package/dist/src/core/local-cache.d.ts +69 -0
- package/dist/src/core/local-cache.d.ts.map +1 -0
- package/dist/src/core/local-cache.js +212 -0
- package/dist/src/core/local-cache.js.map +1 -0
- package/dist/src/core/logger.d.ts.map +1 -0
- package/{logger.js → dist/src/core/logger.js} +8 -9
- package/dist/src/core/logger.js.map +1 -0
- package/dist/src/core/mautrix-bridge.d.ts +93 -0
- package/dist/src/core/mautrix-bridge.d.ts.map +1 -0
- package/dist/src/core/mautrix-bridge.js +1046 -0
- package/dist/src/core/mautrix-bridge.js.map +1 -0
- package/dist/src/core/mcp-factory.d.ts +12 -0
- package/dist/src/core/mcp-factory.d.ts.map +1 -0
- package/dist/src/core/mcp-factory.js +143 -0
- package/dist/src/core/mcp-factory.js.map +1 -0
- package/dist/src/core/mcp-server.d.ts +3 -0
- package/dist/src/core/mcp-server.d.ts.map +1 -0
- package/dist/src/core/mcp-server.js +55 -0
- package/dist/src/core/mcp-server.js.map +1 -0
- package/dist/src/core/migrate-plugin.d.ts +15 -0
- package/dist/src/core/migrate-plugin.d.ts.map +1 -0
- package/dist/src/core/migrate-plugin.js +181 -0
- package/dist/src/core/migrate-plugin.js.map +1 -0
- package/dist/src/core/pets-registry.d.ts +47 -0
- package/dist/src/core/pets-registry.d.ts.map +1 -0
- package/dist/src/core/pets-registry.js +109 -0
- package/dist/src/core/pets-registry.js.map +1 -0
- package/dist/src/core/plugin-factory.d.ts +58 -0
- package/dist/src/core/plugin-factory.d.ts.map +1 -0
- package/dist/src/core/plugin-factory.js +212 -0
- package/dist/src/core/plugin-factory.js.map +1 -0
- package/dist/src/core/prompt-utils.d.ts +14 -0
- package/dist/src/core/prompt-utils.d.ts.map +1 -0
- package/dist/src/core/prompt-utils.js +106 -0
- package/dist/src/core/prompt-utils.js.map +1 -0
- package/dist/src/core/schema-helpers.d.ts +30 -0
- package/dist/src/core/schema-helpers.d.ts.map +1 -0
- package/dist/src/core/schema-helpers.js +46 -0
- package/dist/src/core/schema-helpers.js.map +1 -0
- package/dist/src/core/search-pets.d.ts +29 -0
- package/dist/src/core/search-pets.d.ts.map +1 -0
- package/dist/src/core/search-pets.js +196 -0
- package/dist/src/core/search-pets.js.map +1 -0
- package/dist/src/core/types.d.ts +63 -0
- package/dist/src/core/types.d.ts.map +1 -0
- package/dist/src/core/types.js +2 -0
- package/dist/src/core/types.js.map +1 -0
- package/dist/src/core/validate-pet.d.ts +40 -0
- package/dist/src/core/validate-pet.d.ts.map +1 -0
- package/dist/src/core/validate-pet.js +650 -0
- package/dist/src/core/validate-pet.js.map +1 -0
- package/package.json +15 -28
- package/ai-client-base/index.ts +0 -229
- package/build-pet.ts +0 -429
- package/cli.ts +0 -268
- package/config-manager.ts +0 -82
- package/deploy-pet.ts +0 -91
- package/index.ts +0 -10
- package/local-cache.ts +0 -280
- package/logger.ts +0 -143
- package/mcp-factory.ts +0 -180
- package/mcp-server.ts +0 -69
- package/migrate-plugin.ts +0 -220
- package/pets-registry.ts +0 -160
- package/plugin-factory.ts +0 -300
- package/prompt-utils.ts +0 -130
- package/schema-helpers.ts +0 -59
- package/search-pets.ts +0 -267
- package/types.ts +0 -68
- package/validate-pet.ts +0 -749
- /package/{logger.d.ts → dist/src/core/logger.d.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-pets.d.ts","sourceRoot":"","sources":["../../../search-pets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,SAAS,CAAC;AAcnC,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAC9C,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAwID,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAkEvE;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,GAAG,CAgB5E;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAKjD"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
const REMOTE_API_URL = "https://pets.studio/api.json";
|
|
2
|
+
function isDevMode() {
|
|
3
|
+
if (typeof process !== 'undefined' && process.env) {
|
|
4
|
+
return process.env.PETS_DEV_MODE === "true" || process.env.PETS_DEV_MODE === "1";
|
|
5
|
+
}
|
|
6
|
+
if (typeof window !== 'undefined' && window.PETS_DEV_MODE) {
|
|
7
|
+
return true;
|
|
8
|
+
}
|
|
9
|
+
return false;
|
|
10
|
+
}
|
|
11
|
+
let searchIndex = null;
|
|
12
|
+
let apiDataCache = null;
|
|
13
|
+
async function fetchApiData() {
|
|
14
|
+
if (apiDataCache)
|
|
15
|
+
return apiDataCache;
|
|
16
|
+
if (isDevMode()) {
|
|
17
|
+
try {
|
|
18
|
+
const localApiData = await import("../../data/api.json");
|
|
19
|
+
apiDataCache = localApiData.default;
|
|
20
|
+
return apiDataCache;
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
console.warn("Failed to load local api.json, falling back to remote:", error);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
try {
|
|
27
|
+
const response = await fetch(REMOTE_API_URL);
|
|
28
|
+
if (!response.ok) {
|
|
29
|
+
throw new Error(`Failed to fetch API data: ${response.status} ${response.statusText}`);
|
|
30
|
+
}
|
|
31
|
+
apiDataCache = await response.json();
|
|
32
|
+
return apiDataCache;
|
|
33
|
+
}
|
|
34
|
+
catch (error) {
|
|
35
|
+
console.error("Failed to fetch remote API data:", error);
|
|
36
|
+
if (!isDevMode()) {
|
|
37
|
+
try {
|
|
38
|
+
const localApiData = await import("../../data/api.json");
|
|
39
|
+
console.warn("Using local api.json as fallback");
|
|
40
|
+
apiDataCache = localApiData.default;
|
|
41
|
+
return apiDataCache;
|
|
42
|
+
}
|
|
43
|
+
catch (fallbackError) {
|
|
44
|
+
console.error("Failed to load local api.json as fallback:", fallbackError);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
throw new Error("Unable to load API data from remote or local sources");
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
async function buildSearchIndex() {
|
|
51
|
+
if (searchIndex)
|
|
52
|
+
return searchIndex;
|
|
53
|
+
const apiData = await fetchApiData();
|
|
54
|
+
searchIndex = Object.entries(apiData).map(([petId, petData]) => {
|
|
55
|
+
const toolsText = petData.tools
|
|
56
|
+
? petData.tools
|
|
57
|
+
.map((t) => `${t.name} ${t.description}`)
|
|
58
|
+
.join(" ")
|
|
59
|
+
.toLowerCase()
|
|
60
|
+
: "";
|
|
61
|
+
const queriesText = petData.queries
|
|
62
|
+
? petData.queries.join(" ").toLowerCase()
|
|
63
|
+
: "";
|
|
64
|
+
const scenariosText = petData.scenarios
|
|
65
|
+
? Object.values(petData.scenarios).flat().join(" ").toLowerCase()
|
|
66
|
+
: "";
|
|
67
|
+
const shortId = petId.replace("openpets/", "");
|
|
68
|
+
return {
|
|
69
|
+
id: shortId,
|
|
70
|
+
nameLower: petData.name.toLowerCase(),
|
|
71
|
+
descLower: petData.description.toLowerCase(),
|
|
72
|
+
keywordsLower: petData.keywords?.map((k) => k.toLowerCase()) || [],
|
|
73
|
+
toolsText,
|
|
74
|
+
queriesText,
|
|
75
|
+
scenariosText,
|
|
76
|
+
data: petData,
|
|
77
|
+
};
|
|
78
|
+
});
|
|
79
|
+
return searchIndex;
|
|
80
|
+
}
|
|
81
|
+
function calculateScore(searchTerm, index) {
|
|
82
|
+
const fields = [];
|
|
83
|
+
let maxScore = 0;
|
|
84
|
+
if (index.nameLower.includes(searchTerm)) {
|
|
85
|
+
const isExact = index.nameLower === searchTerm;
|
|
86
|
+
const startsWithSearch = index.nameLower.startsWith(searchTerm);
|
|
87
|
+
fields.push("name");
|
|
88
|
+
maxScore = isExact ? 100 : startsWithSearch ? 95 : 85;
|
|
89
|
+
}
|
|
90
|
+
if (index.keywordsLower.some((k) => k.includes(searchTerm))) {
|
|
91
|
+
fields.push("keywords");
|
|
92
|
+
maxScore = Math.max(maxScore, 90);
|
|
93
|
+
}
|
|
94
|
+
if (index.descLower.includes(searchTerm)) {
|
|
95
|
+
fields.push("description");
|
|
96
|
+
maxScore = Math.max(maxScore, 75);
|
|
97
|
+
}
|
|
98
|
+
if (index.toolsText && index.toolsText.includes(searchTerm)) {
|
|
99
|
+
fields.push("tools");
|
|
100
|
+
maxScore = Math.max(maxScore, 70);
|
|
101
|
+
}
|
|
102
|
+
if (index.queriesText && index.queriesText.includes(searchTerm)) {
|
|
103
|
+
fields.push("queries");
|
|
104
|
+
maxScore = Math.max(maxScore, 60);
|
|
105
|
+
}
|
|
106
|
+
if (index.scenariosText && index.scenariosText.includes(searchTerm)) {
|
|
107
|
+
fields.push("scenarios");
|
|
108
|
+
maxScore = Math.max(maxScore, 50);
|
|
109
|
+
}
|
|
110
|
+
return fields.length > 0 ? { score: maxScore, fields } : null;
|
|
111
|
+
}
|
|
112
|
+
export async function searchPets(query) {
|
|
113
|
+
if (!query || query.trim().length === 0) {
|
|
114
|
+
return [];
|
|
115
|
+
}
|
|
116
|
+
const searchTerm = query.toLowerCase().trim();
|
|
117
|
+
const searchTerms = searchTerm.split(/\s+/).filter((t) => t.length > 0);
|
|
118
|
+
const index = await buildSearchIndex();
|
|
119
|
+
const results = [];
|
|
120
|
+
for (const item of index) {
|
|
121
|
+
let bestMatch = null;
|
|
122
|
+
if (searchTerms.length === 1) {
|
|
123
|
+
bestMatch = calculateScore(searchTerm, item);
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
const matches = searchTerms
|
|
127
|
+
.map((term) => calculateScore(term, item))
|
|
128
|
+
.filter(Boolean);
|
|
129
|
+
if (matches.length === searchTerms.length) {
|
|
130
|
+
const allFields = new Set();
|
|
131
|
+
let totalScore = 0;
|
|
132
|
+
matches.forEach((m) => {
|
|
133
|
+
if (m) {
|
|
134
|
+
m.fields.forEach((f) => allFields.add(f));
|
|
135
|
+
totalScore += m.score;
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
bestMatch = {
|
|
139
|
+
score: Math.min(100, Math.floor(totalScore / searchTerms.length)),
|
|
140
|
+
fields: Array.from(allFields),
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
else if (matches.length > 0) {
|
|
144
|
+
const allFields = new Set();
|
|
145
|
+
let maxScore = 0;
|
|
146
|
+
matches.forEach((m) => {
|
|
147
|
+
if (m) {
|
|
148
|
+
m.fields.forEach((f) => allFields.add(f));
|
|
149
|
+
maxScore = Math.max(maxScore, m.score);
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
bestMatch = {
|
|
153
|
+
score: Math.floor(maxScore * 0.7),
|
|
154
|
+
fields: Array.from(allFields),
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
if (bestMatch) {
|
|
159
|
+
results.push({
|
|
160
|
+
id: item.id,
|
|
161
|
+
name: item.data.name,
|
|
162
|
+
description: item.data.description,
|
|
163
|
+
keywords: item.data.keywords || [],
|
|
164
|
+
matchReason: `Matched in: ${bestMatch.fields.join(", ")}`,
|
|
165
|
+
matchScore: bestMatch.score,
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return results.sort((a, b) => b.matchScore - a.matchScore);
|
|
170
|
+
}
|
|
171
|
+
export function clearSearchCache() {
|
|
172
|
+
searchIndex = null;
|
|
173
|
+
apiDataCache = null;
|
|
174
|
+
}
|
|
175
|
+
export function createPetFromApiData(petId, petData) {
|
|
176
|
+
const shortId = petId.replace("openpets/", "");
|
|
177
|
+
const { tools, ...restData } = petData;
|
|
178
|
+
return {
|
|
179
|
+
id: shortId,
|
|
180
|
+
...restData,
|
|
181
|
+
displayName: petData.title,
|
|
182
|
+
version: petData.version || "1.0.0",
|
|
183
|
+
source_code_url: petData.source_code_url || `https://github.com/raggle-ai/pets/tree/main/pets/${shortId}`,
|
|
184
|
+
queriesCount: petData.queries?.length || 0,
|
|
185
|
+
queries: petData.queries || [],
|
|
186
|
+
keywords: petData.keywords || [],
|
|
187
|
+
tools: tools?.map(t => ({ ...t, schema: {} })),
|
|
188
|
+
enabled: false,
|
|
189
|
+
opencodeJsonPath: "",
|
|
190
|
+
};
|
|
191
|
+
}
|
|
192
|
+
export async function getAllPets() {
|
|
193
|
+
const apiData = await fetchApiData();
|
|
194
|
+
return Object.entries(apiData).map(([petId, petData]) => createPetFromApiData(petId, petData));
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=search-pets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-pets.js","sourceRoot":"","sources":["../../../search-pets.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
export interface EnvVariable {
|
|
2
|
+
name: string;
|
|
3
|
+
description: string;
|
|
4
|
+
provider: string;
|
|
5
|
+
priority: number;
|
|
6
|
+
url?: string;
|
|
7
|
+
setupUrl?: string;
|
|
8
|
+
default?: string;
|
|
9
|
+
}
|
|
10
|
+
export interface Provider {
|
|
11
|
+
name: string;
|
|
12
|
+
description: string;
|
|
13
|
+
priority: number;
|
|
14
|
+
homepage?: string;
|
|
15
|
+
envVariables?: EnvVariable[];
|
|
16
|
+
}
|
|
17
|
+
export interface EnvVariables {
|
|
18
|
+
required?: EnvVariable[];
|
|
19
|
+
optional?: EnvVariable[];
|
|
20
|
+
note?: string;
|
|
21
|
+
}
|
|
22
|
+
export interface PetData {
|
|
23
|
+
name: string;
|
|
24
|
+
description: string;
|
|
25
|
+
keywords: string[];
|
|
26
|
+
source_code_url: string;
|
|
27
|
+
homepage?: string;
|
|
28
|
+
icon?: string;
|
|
29
|
+
envVariables?: EnvVariables;
|
|
30
|
+
queries: string[];
|
|
31
|
+
scenarios?: Record<string, string | string[]>;
|
|
32
|
+
providers?: Provider[];
|
|
33
|
+
connected_pets?: string[];
|
|
34
|
+
}
|
|
35
|
+
export interface Tool {
|
|
36
|
+
name: string;
|
|
37
|
+
description: string;
|
|
38
|
+
schema: Record<string, any>;
|
|
39
|
+
}
|
|
40
|
+
export interface Pet {
|
|
41
|
+
id: string;
|
|
42
|
+
name: string;
|
|
43
|
+
displayName: string;
|
|
44
|
+
description: string;
|
|
45
|
+
keywords: string[];
|
|
46
|
+
source_code_url: string;
|
|
47
|
+
version: string;
|
|
48
|
+
icon?: string;
|
|
49
|
+
homepage?: string;
|
|
50
|
+
envVariables?: EnvVariables;
|
|
51
|
+
queries: string[];
|
|
52
|
+
queriesCount: number;
|
|
53
|
+
tools?: Tool[];
|
|
54
|
+
scenarios?: Record<string, string | string[]>;
|
|
55
|
+
providers?: Provider[];
|
|
56
|
+
connected_pets?: string[];
|
|
57
|
+
enabled: boolean;
|
|
58
|
+
opencodeJsonPath: string;
|
|
59
|
+
}
|
|
60
|
+
export interface PetRegistry {
|
|
61
|
+
[key: string]: PetData;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,WAAW,EAAE,CAAA;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAA;IACxB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAA;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,eAAe,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAA;IAC7C,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,IAAI;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAC5B;AAED,MAAM,WAAW,GAAG;IAClB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,eAAe,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,YAAY,CAAA;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,IAAI,EAAE,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAA;IAC7C,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;IACtB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,OAAO,EAAE,OAAO,CAAA;IAChB,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export interface ValidationResult {
|
|
2
|
+
valid: boolean;
|
|
3
|
+
errors: string[];
|
|
4
|
+
warnings: string[];
|
|
5
|
+
codePatternWarnings?: string[];
|
|
6
|
+
}
|
|
7
|
+
export interface PackageValidation {
|
|
8
|
+
name: string;
|
|
9
|
+
path: string;
|
|
10
|
+
result: ValidationResult;
|
|
11
|
+
usesModernPattern?: boolean;
|
|
12
|
+
usesPluginFactory?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface ValidationReport {
|
|
15
|
+
total: number;
|
|
16
|
+
passed: number;
|
|
17
|
+
failed: number;
|
|
18
|
+
details: PackageValidation[];
|
|
19
|
+
}
|
|
20
|
+
export declare class PluginValidator {
|
|
21
|
+
private requiredFields;
|
|
22
|
+
private recommendedFields;
|
|
23
|
+
private requiredScripts;
|
|
24
|
+
validatePlugin(pluginPath: string): PackageValidation;
|
|
25
|
+
private validatePackageJson;
|
|
26
|
+
private validateProviders;
|
|
27
|
+
private validateEnvVariables;
|
|
28
|
+
private validateEnvExampleFile;
|
|
29
|
+
private validateScenarios;
|
|
30
|
+
private validateOptionalMetadata;
|
|
31
|
+
private isValidPluginName;
|
|
32
|
+
private getFolderName;
|
|
33
|
+
validatePluginByName(pluginName: string, petsDirectory: string): PackageValidation;
|
|
34
|
+
validateAllPlugins(petsDirectory: string): ValidationReport;
|
|
35
|
+
private getPluginDirectories;
|
|
36
|
+
private analyzeCodePatterns;
|
|
37
|
+
private detectNestedSchemas;
|
|
38
|
+
printReport(report: ValidationReport): void;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=validate-pet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-pet.d.ts","sourceRoot":"","sources":["../../../validate-pet.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAA;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,gBAAgB,CAAA;IACxB,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAA;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,iBAAiB,EAAE,CAAA;CAC7B;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,cAAc,CAYrB;IAED,OAAO,CAAC,iBAAiB,CAExB;IAED,OAAO,CAAC,eAAe,CAEtB;IAED,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB;IA4CrD,OAAO,CAAC,mBAAmB;IAwJ3B,OAAO,CAAC,iBAAiB;IAiEzB,OAAO,CAAC,oBAAoB;IA+C5B,OAAO,CAAC,sBAAsB;IA2D9B,OAAO,CAAC,iBAAiB;IAkCzB,OAAO,CAAC,wBAAwB;IAwGhC,OAAO,CAAC,iBAAiB;IAIzB,OAAO,CAAC,aAAa;IAIrB,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,iBAAiB;IAKlF,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,gBAAgB;IAoB3D,OAAO,CAAC,oBAAoB;IAe5B,OAAO,CAAC,mBAAmB;IAyD3B,OAAO,CAAC,mBAAmB;IA+B3B,WAAW,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI;CAqD5C"}
|