openpets 1.0.11 → 1.0.12
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 +3758 -7222
- package/dist/src/core/build-pet.d.ts.map +1 -1
- package/dist/src/core/build-pet.js +7 -0
- package/dist/src/core/build-pet.js.map +1 -1
- package/dist/src/core/cli.js +456 -130
- package/dist/src/core/cli.js.map +1 -1
- package/dist/src/core/ensure-npmignore.d.ts +30 -0
- package/dist/src/core/ensure-npmignore.d.ts.map +1 -0
- package/dist/src/core/ensure-npmignore.js +121 -0
- package/dist/src/core/ensure-npmignore.js.map +1 -0
- package/dist/src/core/index.d.ts +6 -3
- package/dist/src/core/index.d.ts.map +1 -1
- package/dist/src/core/index.js +9 -3
- package/dist/src/core/index.js.map +1 -1
- package/dist/src/core/mcp-generator.d.ts +56 -0
- package/dist/src/core/mcp-generator.d.ts.map +1 -0
- package/dist/src/core/mcp-generator.js +1438 -0
- package/dist/src/core/mcp-generator.js.map +1 -0
- package/dist/src/core/mcp-server.js +0 -0
- package/dist/src/core/openapi-generator.d.ts +59 -0
- package/dist/src/core/openapi-generator.d.ts.map +1 -0
- package/dist/src/core/openapi-generator.js +800 -0
- package/dist/src/core/openapi-generator.js.map +1 -0
- package/dist/src/core/pet-config.d.ts +107 -49
- package/dist/src/core/pet-config.d.ts.map +1 -1
- package/dist/src/core/pet-config.js +6 -4
- package/dist/src/core/pet-config.js.map +1 -1
- package/dist/src/core/pet-downloader.d.ts +16 -0
- package/dist/src/core/pet-downloader.d.ts.map +1 -1
- package/dist/src/core/pet-downloader.js +145 -3
- package/dist/src/core/pet-downloader.js.map +1 -1
- package/dist/src/core/publish-pet.d.ts +29 -0
- package/dist/src/core/publish-pet.d.ts.map +1 -0
- package/dist/src/core/publish-pet.js +372 -0
- package/dist/src/core/publish-pet.js.map +1 -0
- package/dist/src/core/sdk-generator.d.ts +92 -0
- package/dist/src/core/sdk-generator.d.ts.map +1 -0
- package/dist/src/core/sdk-generator.js +567 -0
- package/dist/src/core/sdk-generator.js.map +1 -0
- package/dist/src/core/search-pets.d.ts +5 -0
- package/dist/src/core/search-pets.d.ts.map +1 -1
- package/dist/src/core/search-pets.js +43 -0
- package/dist/src/core/search-pets.js.map +1 -1
- package/dist/src/core/security-scanner.d.ts +49 -0
- package/dist/src/core/security-scanner.d.ts.map +1 -0
- package/dist/src/core/security-scanner.js +255 -0
- package/dist/src/core/security-scanner.js.map +1 -0
- package/dist/src/core/tool-lister.d.ts +61 -0
- package/dist/src/core/tool-lister.d.ts.map +1 -0
- package/dist/src/core/tool-lister.js +333 -0
- package/dist/src/core/tool-lister.js.map +1 -0
- package/dist/src/core/validate-pet.d.ts +2 -0
- package/dist/src/core/validate-pet.d.ts.map +1 -1
- package/dist/src/core/validate-pet.js +93 -1
- package/dist/src/core/validate-pet.js.map +1 -1
- package/dist/src/sdk/plugin-factory.d.ts +86 -0
- package/dist/src/sdk/plugin-factory.d.ts.map +1 -1
- package/dist/src/sdk/plugin-factory.js +450 -53
- package/dist/src/sdk/plugin-factory.js.map +1 -1
- package/dist/src/sdk/prompts-manager.d.ts +6 -0
- package/dist/src/sdk/prompts-manager.d.ts.map +1 -0
- package/dist/src/sdk/prompts-manager.js +162 -0
- package/dist/src/sdk/prompts-manager.js.map +1 -0
- package/package.json +1 -1
- package/dist/src/core/local-cache.d.ts +0 -69
- package/dist/src/core/local-cache.d.ts.map +0 -1
- package/dist/src/core/local-cache.js +0 -212
- package/dist/src/core/local-cache.js.map +0 -1
- package/dist/src/core/plugin-factory.d.ts +0 -58
- package/dist/src/core/plugin-factory.d.ts.map +0 -1
- package/dist/src/core/plugin-factory.js +0 -212
- package/dist/src/core/plugin-factory.js.map +0 -1
|
@@ -0,0 +1,372 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pet publishing module for the OpenPets CLI.
|
|
3
|
+
* Handles security checks, version management, and npm publishing.
|
|
4
|
+
*/
|
|
5
|
+
import { join, dirname } from 'node:path';
|
|
6
|
+
import { existsSync, readFileSync, writeFileSync, readdirSync, statSync } from 'node:fs';
|
|
7
|
+
import { fileURLToPath } from 'node:url';
|
|
8
|
+
import { spawn } from 'node:child_process';
|
|
9
|
+
import { ensureNpmIgnore } from './ensure-npmignore.js';
|
|
10
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
11
|
+
const __dirname = dirname(__filename);
|
|
12
|
+
/**
|
|
13
|
+
* Finds the project root by looking for pets/ directory and workspace config
|
|
14
|
+
*/
|
|
15
|
+
function findProjectRoot() {
|
|
16
|
+
let currentDir = process.cwd();
|
|
17
|
+
for (let i = 0; i < 20; i++) {
|
|
18
|
+
const petsDir = join(currentDir, 'pets');
|
|
19
|
+
const packageJson = join(currentDir, 'package.json');
|
|
20
|
+
if (existsSync(petsDir) && existsSync(packageJson) && !currentDir.includes('node_modules')) {
|
|
21
|
+
try {
|
|
22
|
+
const pkg = JSON.parse(readFileSync(packageJson, 'utf8'));
|
|
23
|
+
if (pkg.workspaces && Array.isArray(pkg.workspaces) && pkg.workspaces.includes('pets/*')) {
|
|
24
|
+
return currentDir;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
// Continue searching
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
const parent = dirname(currentDir);
|
|
32
|
+
if (parent === currentDir)
|
|
33
|
+
break;
|
|
34
|
+
currentDir = parent;
|
|
35
|
+
}
|
|
36
|
+
// Fall back to trying relative paths from this module
|
|
37
|
+
const possibleRoots = [
|
|
38
|
+
join(__dirname, '../..'),
|
|
39
|
+
join(__dirname, '../../..'),
|
|
40
|
+
process.cwd()
|
|
41
|
+
];
|
|
42
|
+
for (const root of possibleRoots) {
|
|
43
|
+
const petsDir = join(root, 'pets');
|
|
44
|
+
if (existsSync(petsDir)) {
|
|
45
|
+
return root;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
throw new Error(`Could not find project root from ${process.cwd()}`);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Finds an available version by checking npm registry
|
|
52
|
+
*/
|
|
53
|
+
async function findAvailableVersion(pkgName, currentVersion) {
|
|
54
|
+
let [major, minor, patch] = currentVersion.split('.').map(Number);
|
|
55
|
+
let version = currentVersion;
|
|
56
|
+
let attempts = 0;
|
|
57
|
+
const maxAttempts = 10;
|
|
58
|
+
while (attempts < maxAttempts) {
|
|
59
|
+
try {
|
|
60
|
+
const result = await runCommand('npm', ['view', `${pkgName}@${version}`, 'version']);
|
|
61
|
+
const existingVersion = result.trim().split('\n')[0];
|
|
62
|
+
if (existingVersion === version) {
|
|
63
|
+
patch++;
|
|
64
|
+
const newVersion = `${major}.${minor}.${patch}`;
|
|
65
|
+
console.log(`⚠️ Version ${version} already published, trying ${newVersion}`);
|
|
66
|
+
version = newVersion;
|
|
67
|
+
attempts++;
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
return version;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
// Version doesn't exist, we can use it
|
|
75
|
+
return version;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
throw new Error(`Could not find available version after ${maxAttempts} attempts`);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Runs a command and returns stdout
|
|
82
|
+
*/
|
|
83
|
+
function runCommand(cmd, args, cwd) {
|
|
84
|
+
return new Promise((resolve, reject) => {
|
|
85
|
+
const child = spawn(cmd, args, {
|
|
86
|
+
cwd,
|
|
87
|
+
stdio: ['inherit', 'pipe', 'pipe'],
|
|
88
|
+
shell: process.platform === 'win32'
|
|
89
|
+
});
|
|
90
|
+
let stdout = '';
|
|
91
|
+
let stderr = '';
|
|
92
|
+
child.stdout?.on('data', (data) => {
|
|
93
|
+
stdout += data.toString();
|
|
94
|
+
});
|
|
95
|
+
child.stderr?.on('data', (data) => {
|
|
96
|
+
stderr += data.toString();
|
|
97
|
+
});
|
|
98
|
+
child.on('error', reject);
|
|
99
|
+
child.on('exit', (code) => {
|
|
100
|
+
if (code !== 0) {
|
|
101
|
+
reject(new Error(stderr || `Command failed with code ${code}`));
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
resolve(stdout);
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Runs a command with inherited stdio (for user-visible output)
|
|
111
|
+
*/
|
|
112
|
+
function runCommandInherit(cmd, args, cwd) {
|
|
113
|
+
return new Promise((resolve, reject) => {
|
|
114
|
+
const child = spawn(cmd, args, {
|
|
115
|
+
cwd,
|
|
116
|
+
stdio: 'inherit',
|
|
117
|
+
shell: process.platform === 'win32'
|
|
118
|
+
});
|
|
119
|
+
child.on('error', reject);
|
|
120
|
+
child.on('exit', (code) => {
|
|
121
|
+
if (code !== 0) {
|
|
122
|
+
reject(new Error(`Command failed with code ${code}`));
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
resolve();
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Auto-detects pet name from current directory
|
|
132
|
+
*/
|
|
133
|
+
function detectPetName() {
|
|
134
|
+
const cwd = process.cwd();
|
|
135
|
+
const pkgPath = join(cwd, 'package.json');
|
|
136
|
+
if (existsSync(pkgPath)) {
|
|
137
|
+
try {
|
|
138
|
+
const pkg = JSON.parse(readFileSync(pkgPath, 'utf-8'));
|
|
139
|
+
if (pkg.name && pkg.name.startsWith('@openpets/')) {
|
|
140
|
+
return pkg.name.replace('@openpets/', '');
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
// Ignore parse errors
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
// Try to detect from path
|
|
148
|
+
if (cwd.includes('/pets/')) {
|
|
149
|
+
const parts = cwd.split('/pets/');
|
|
150
|
+
if (parts[1]) {
|
|
151
|
+
return parts[1].split('/')[0];
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
return null;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Gets list of available pets
|
|
158
|
+
*/
|
|
159
|
+
function getAvailablePets(projectRoot) {
|
|
160
|
+
const petsDir = join(projectRoot, 'pets');
|
|
161
|
+
if (!existsSync(petsDir))
|
|
162
|
+
return [];
|
|
163
|
+
return readdirSync(petsDir).filter(dir => {
|
|
164
|
+
const petPath = join(petsDir, dir);
|
|
165
|
+
return statSync(petPath).isDirectory() && dir !== '_TEMPLATE_';
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Publishes a pet to npm.
|
|
170
|
+
*
|
|
171
|
+
* @param petName - Name of the pet to publish (auto-detects if not provided)
|
|
172
|
+
* @param options - Publishing options
|
|
173
|
+
* @returns Result of the publish operation
|
|
174
|
+
*/
|
|
175
|
+
export async function publishPet(petName, options = {}) {
|
|
176
|
+
const { preview = false, channel = 'latest', scope = '@openpets', otp } = options;
|
|
177
|
+
// Normalize scope (ensure it starts with @ if provided, or empty for unscoped)
|
|
178
|
+
const normalizedScope = scope === '' ? '' : (scope.startsWith('@') ? scope : `@${scope}`);
|
|
179
|
+
// Auto-detect pet name if not provided
|
|
180
|
+
let finalPetName = petName;
|
|
181
|
+
if (!finalPetName) {
|
|
182
|
+
finalPetName = detectPetName();
|
|
183
|
+
if (finalPetName) {
|
|
184
|
+
console.log(`📦 Detected pet: ${finalPetName}`);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
if (!finalPetName) {
|
|
188
|
+
const projectRoot = findProjectRoot();
|
|
189
|
+
const availablePets = getAvailablePets(projectRoot);
|
|
190
|
+
console.error('❌ Pet name required');
|
|
191
|
+
console.error('Usage: pets publish <pet-name> [--preview] [--channel <channel>] [--scope <scope>] [--otp <code>]');
|
|
192
|
+
if (availablePets.length > 0) {
|
|
193
|
+
console.error('\nAvailable pets:');
|
|
194
|
+
availablePets.forEach(pet => console.error(` - ${pet}`));
|
|
195
|
+
}
|
|
196
|
+
return { success: false, message: 'Pet name required' };
|
|
197
|
+
}
|
|
198
|
+
// Find pet directory
|
|
199
|
+
const projectRoot = findProjectRoot();
|
|
200
|
+
const petDir = join(projectRoot, 'pets', finalPetName);
|
|
201
|
+
const packageJsonPath = join(petDir, 'package.json');
|
|
202
|
+
if (!existsSync(petDir)) {
|
|
203
|
+
return { success: false, message: `Pet directory not found: pets/${finalPetName}` };
|
|
204
|
+
}
|
|
205
|
+
if (!existsSync(packageJsonPath)) {
|
|
206
|
+
return { success: false, message: `package.json not found in pets/${finalPetName}` };
|
|
207
|
+
}
|
|
208
|
+
// Build the full package name based on scope
|
|
209
|
+
const fullPackageName = normalizedScope ? `${normalizedScope}/${finalPetName}` : finalPetName;
|
|
210
|
+
console.log(`Publishing ${fullPackageName}...`);
|
|
211
|
+
console.log(`Channel: ${channel}`);
|
|
212
|
+
console.log(`Preview: ${preview}`);
|
|
213
|
+
if (normalizedScope !== '@openpets') {
|
|
214
|
+
console.log(`Scope: ${normalizedScope || '(unscoped)'}`);
|
|
215
|
+
}
|
|
216
|
+
// Step 0: Ensure .npmignore exists
|
|
217
|
+
console.log("🔍 Ensuring .npmignore exists...");
|
|
218
|
+
const npmignoreResult = await ensureNpmIgnore(petDir);
|
|
219
|
+
if (npmignoreResult.action === "created") {
|
|
220
|
+
console.log("✅ Created .npmignore with secure defaults");
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
console.log("✓ .npmignore already exists");
|
|
224
|
+
}
|
|
225
|
+
// Security check will be done on tarball contents (more accurate as it respects .npmignore)
|
|
226
|
+
console.log("🔒 Security will be checked on tarball contents...");
|
|
227
|
+
// Read and prepare package.json
|
|
228
|
+
const pkg = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
|
|
229
|
+
const originalPkg = JSON.parse(JSON.stringify(pkg));
|
|
230
|
+
// Ensure correct package name based on scope
|
|
231
|
+
if (!pkg.name || normalizedScope !== '@openpets') {
|
|
232
|
+
// Override package name if no name set, or if using a custom scope
|
|
233
|
+
pkg.name = fullPackageName;
|
|
234
|
+
}
|
|
235
|
+
else if (!pkg.name.startsWith('@openpets/')) {
|
|
236
|
+
// Default behavior: force @openpets scope if no custom scope specified
|
|
237
|
+
pkg.name = fullPackageName;
|
|
238
|
+
}
|
|
239
|
+
// Step 2: Check and auto-bump version if needed
|
|
240
|
+
if (!preview) {
|
|
241
|
+
console.log(`🔍 Checking version availability for ${pkg.name}@${pkg.version}...`);
|
|
242
|
+
const availableVersion = await findAvailableVersion(pkg.name, pkg.version);
|
|
243
|
+
if (availableVersion !== pkg.version) {
|
|
244
|
+
console.log(`✨ Auto-bumping to ${availableVersion}`);
|
|
245
|
+
pkg.version = availableVersion;
|
|
246
|
+
originalPkg.version = availableVersion;
|
|
247
|
+
writeFileSync(packageJsonPath, JSON.stringify(originalPkg, null, 2) + '\n');
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
console.log(`✓ Version ${pkg.version} is available`);
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
// Set publish config
|
|
254
|
+
pkg.publishConfig = { access: "public" };
|
|
255
|
+
// Set files whitelist
|
|
256
|
+
pkg.files = [
|
|
257
|
+
"index.ts",
|
|
258
|
+
"index.js",
|
|
259
|
+
"client.ts",
|
|
260
|
+
"client.js",
|
|
261
|
+
"*.d.ts",
|
|
262
|
+
"lib/**/*",
|
|
263
|
+
"src/**/*",
|
|
264
|
+
"commands.json",
|
|
265
|
+
"public/**/*",
|
|
266
|
+
"prompts/**/*",
|
|
267
|
+
"README.md"
|
|
268
|
+
];
|
|
269
|
+
// Resolve workspace dependencies
|
|
270
|
+
const tempPkg = JSON.parse(JSON.stringify(pkg));
|
|
271
|
+
const depTypes = ['dependencies', 'devDependencies', 'peerDependencies'];
|
|
272
|
+
for (const depType of depTypes) {
|
|
273
|
+
if (tempPkg[depType]) {
|
|
274
|
+
const resolvedDeps = {};
|
|
275
|
+
for (const [dep, version] of Object.entries(tempPkg[depType])) {
|
|
276
|
+
if (typeof version === 'string') {
|
|
277
|
+
if (version.startsWith('workspace:')) {
|
|
278
|
+
// Resolve workspace dependency to published version
|
|
279
|
+
if (dep === 'openpets' || dep === 'pets' || dep === 'openpets-sdk') {
|
|
280
|
+
// Read version from SDK package.json
|
|
281
|
+
const sdkPackagePath = join(projectRoot, 'src', 'sdk', 'package.json');
|
|
282
|
+
if (existsSync(sdkPackagePath)) {
|
|
283
|
+
const sdkPackage = JSON.parse(readFileSync(sdkPackagePath, 'utf-8'));
|
|
284
|
+
resolvedDeps[sdkPackage.name] = `^${sdkPackage.version}`;
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
else {
|
|
288
|
+
// Skip other workspace deps
|
|
289
|
+
continue;
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
else {
|
|
293
|
+
resolvedDeps[dep] = version;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
tempPkg[depType] = Object.keys(resolvedDeps).length > 0 ? resolvedDeps : undefined;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
// Write temporary package.json for publishing
|
|
301
|
+
writeFileSync(packageJsonPath, JSON.stringify(tempPkg, null, 2));
|
|
302
|
+
// Step 3: Verify tarball contents
|
|
303
|
+
console.log("📦 Creating test tarball to verify contents...");
|
|
304
|
+
try {
|
|
305
|
+
const packOutput = await runCommand('npm', ['pack', '--dry-run'], petDir);
|
|
306
|
+
const forbiddenPatterns = [
|
|
307
|
+
/\.env/,
|
|
308
|
+
/\.pem$/,
|
|
309
|
+
/\.key$/,
|
|
310
|
+
/credentials.*\.json/,
|
|
311
|
+
/private[_-]?key/,
|
|
312
|
+
/\breference\//,
|
|
313
|
+
/\breports?\//
|
|
314
|
+
];
|
|
315
|
+
const lines = packOutput.split('\n');
|
|
316
|
+
for (const line of lines) {
|
|
317
|
+
for (const pattern of forbiddenPatterns) {
|
|
318
|
+
if (pattern.test(line)) {
|
|
319
|
+
// Restore original package.json
|
|
320
|
+
writeFileSync(packageJsonPath, JSON.stringify(originalPkg, null, 2) + '\n');
|
|
321
|
+
throw new Error(`🔴 CRITICAL: Forbidden file would be published: ${line.trim()}`);
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
console.log("✅ Tarball verification passed - no sensitive files detected");
|
|
326
|
+
}
|
|
327
|
+
catch (e) {
|
|
328
|
+
// Restore original package.json on error
|
|
329
|
+
writeFileSync(packageJsonPath, JSON.stringify(originalPkg, null, 2) + '\n');
|
|
330
|
+
if (e.message.includes('CRITICAL')) {
|
|
331
|
+
return { success: false, message: e.message };
|
|
332
|
+
}
|
|
333
|
+
// Non-critical error, continue
|
|
334
|
+
console.log("⚠️ Tarball verification skipped:", e.message);
|
|
335
|
+
}
|
|
336
|
+
// Step 4: Publish
|
|
337
|
+
if (!preview) {
|
|
338
|
+
const isCI = process.env.CI === 'true' || process.env.GITHUB_ACTIONS === 'true';
|
|
339
|
+
const publishArgs = ['publish', '--tag', channel, '--access', 'public'];
|
|
340
|
+
if (isCI) {
|
|
341
|
+
publishArgs.push('--provenance');
|
|
342
|
+
}
|
|
343
|
+
if (otp) {
|
|
344
|
+
publishArgs.push('--otp', otp);
|
|
345
|
+
}
|
|
346
|
+
try {
|
|
347
|
+
await runCommandInherit('npm', publishArgs, petDir);
|
|
348
|
+
}
|
|
349
|
+
catch (e) {
|
|
350
|
+
// Restore original package.json
|
|
351
|
+
writeFileSync(packageJsonPath, JSON.stringify(originalPkg, null, 2) + '\n');
|
|
352
|
+
return { success: false, message: `Publish failed: ${e.message}` };
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
else {
|
|
356
|
+
console.log("Preview mode - skipping actual publish");
|
|
357
|
+
console.log("Would publish:", JSON.stringify(tempPkg, null, 2));
|
|
358
|
+
}
|
|
359
|
+
// Restore original package.json (but keep version bump)
|
|
360
|
+
writeFileSync(packageJsonPath, JSON.stringify(originalPkg, null, 2) + '\n');
|
|
361
|
+
const message = preview
|
|
362
|
+
? `Preview completed for ${fullPackageName}`
|
|
363
|
+
: `${fullPackageName}@${pkg.version} published successfully`;
|
|
364
|
+
console.log(`✓ ${message}`);
|
|
365
|
+
return {
|
|
366
|
+
success: true,
|
|
367
|
+
message,
|
|
368
|
+
version: pkg.version,
|
|
369
|
+
packageName: fullPackageName
|
|
370
|
+
};
|
|
371
|
+
}
|
|
372
|
+
//# sourceMappingURL=publish-pet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish-pet.js","sourceRoot":"","sources":["../../../publish-pet.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SDK Tool Generator
|
|
3
|
+
*
|
|
4
|
+
* Generates OpenPets-compatible tool definitions from TypeScript SDK packages.
|
|
5
|
+
* Similar to how hey-api generates TypeScript clients from OpenAPI specs.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* pets generate-sdk # Run from inside a pet directory with sdkGenerator in package.json
|
|
9
|
+
* pets generate-sdk --output client.ts # Custom output file
|
|
10
|
+
*
|
|
11
|
+
* This tool:
|
|
12
|
+
* 1. Reads SDK configuration from package.json
|
|
13
|
+
* 2. Generates OpenPets-compatible ToolDefinition[] exports
|
|
14
|
+
* 3. Creates a client.ts file that wraps the SDK methods as tools
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* SDK method definition for a single API method
|
|
18
|
+
*/
|
|
19
|
+
export interface SDKMethod {
|
|
20
|
+
name: string;
|
|
21
|
+
description: string;
|
|
22
|
+
namespace: string;
|
|
23
|
+
fullPath: string;
|
|
24
|
+
inputSchema: {
|
|
25
|
+
type: string;
|
|
26
|
+
properties: Record<string, {
|
|
27
|
+
type: string;
|
|
28
|
+
description?: string;
|
|
29
|
+
required?: boolean;
|
|
30
|
+
enum?: string[];
|
|
31
|
+
}>;
|
|
32
|
+
required: string[];
|
|
33
|
+
};
|
|
34
|
+
outputType?: string;
|
|
35
|
+
isPaginated?: boolean;
|
|
36
|
+
isReadOnly?: boolean;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* SDK namespace configuration
|
|
40
|
+
*/
|
|
41
|
+
export interface SDKNamespaceConfig {
|
|
42
|
+
name: string;
|
|
43
|
+
methods: string[];
|
|
44
|
+
readOnlyMethods?: string[];
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Full SDK generator configuration
|
|
48
|
+
*/
|
|
49
|
+
export interface SDKGeneratorConfig {
|
|
50
|
+
/** NPM package name of the SDK (e.g., "@polar-sh/sdk") */
|
|
51
|
+
sdkPackage: string;
|
|
52
|
+
/** Pet name for tool naming (e.g., "polar") */
|
|
53
|
+
petName: string;
|
|
54
|
+
/** Main class name exported by SDK (e.g., "Polar") */
|
|
55
|
+
mainClassName: string;
|
|
56
|
+
/** Environment variable name for the token (e.g., "POLAR_TOKEN") */
|
|
57
|
+
tokenEnvVar: string;
|
|
58
|
+
/** Description of the SDK */
|
|
59
|
+
description: string;
|
|
60
|
+
/** Optional organization ID env var */
|
|
61
|
+
orgIdEnvVar?: string;
|
|
62
|
+
/** Namespace definitions with methods */
|
|
63
|
+
namespaces: SDKNamespaceConfig[];
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Options for the SDK generator
|
|
67
|
+
*/
|
|
68
|
+
export interface GenerateSDKOptions {
|
|
69
|
+
outputFile?: string;
|
|
70
|
+
dryRun?: boolean;
|
|
71
|
+
verbose?: boolean;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Result of SDK generation
|
|
75
|
+
*/
|
|
76
|
+
export interface GenerateSDKResult {
|
|
77
|
+
success: boolean;
|
|
78
|
+
message: string;
|
|
79
|
+
toolCount?: number;
|
|
80
|
+
outputPath?: string;
|
|
81
|
+
methods?: SDKMethod[];
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Built-in Polar SDK configuration
|
|
85
|
+
*/
|
|
86
|
+
declare function createPolarSDKConfig(): SDKGeneratorConfig;
|
|
87
|
+
/**
|
|
88
|
+
* Main SDK generation function
|
|
89
|
+
*/
|
|
90
|
+
export declare function generateSDKTools(options?: GenerateSDKOptions): Promise<GenerateSDKResult>;
|
|
91
|
+
export { createPolarSDKConfig };
|
|
92
|
+
//# sourceMappingURL=sdk-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sdk-generator.d.ts","sourceRoot":"","sources":["../../../sdk-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AASH;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE;QACX,IAAI,EAAE,MAAM,CAAA;QACZ,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE;YACzB,IAAI,EAAE,MAAM,CAAA;YACZ,WAAW,CAAC,EAAE,MAAM,CAAA;YACpB,QAAQ,CAAC,EAAE,OAAO,CAAA;YAClB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;SAChB,CAAC,CAAA;QACF,QAAQ,EAAE,MAAM,EAAE,CAAA;KACnB,CAAA;IACD,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,0DAA0D;IAC1D,UAAU,EAAE,MAAM,CAAA;IAClB,+CAA+C;IAC/C,OAAO,EAAE,MAAM,CAAA;IACf,sDAAsD;IACtD,aAAa,EAAE,MAAM,CAAA;IACrB,oEAAoE;IACpE,WAAW,EAAE,MAAM,CAAA;IACnB,6BAA6B;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,yCAAyC;IACzC,UAAU,EAAE,kBAAkB,EAAE,CAAA;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,SAAS,EAAE,CAAA;CACtB;AA+DD;;GAEG;AACH,iBAAS,oBAAoB,IAAI,kBAAkB,CAqGlD;AAiWD;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA0EnG;AAGD,OAAO,EAAE,oBAAoB,EAAE,CAAA"}
|