@prampta/sdk 0.3.2 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/README.md +91 -229
- package/dist/index.d.mts +316 -0
- package/dist/index.d.ts +316 -3
- package/dist/index.js +707 -2
- package/dist/index.mjs +657 -0
- package/package.json +28 -46
- package/dist/client.d.ts +0 -75
- package/dist/client.d.ts.map +0 -1
- package/dist/client.js +0 -221
- package/dist/client.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/mcp.d.ts +0 -3
- package/dist/mcp.d.ts.map +0 -1
- package/dist/mcp.js +0 -324
- package/dist/mcp.js.map +0 -1
- package/dist/types.d.ts +0 -60
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
package/dist/mcp.js
DELETED
|
@@ -1,324 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
3
|
-
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
4
|
-
import { z } from 'zod';
|
|
5
|
-
// --- Config ---
|
|
6
|
-
const API_URL = (process.env.PRAMPTA_API_URL || 'https://api.prampta.com').replace(/\/+$/, '');
|
|
7
|
-
const API_KEY = process.env.PRAMPTA_API_KEY || '';
|
|
8
|
-
const TIMEOUT_MS = 30_000;
|
|
9
|
-
const MAX_RETRIES = 3;
|
|
10
|
-
const RETRY_DELAY_MS = 1000;
|
|
11
|
-
const VERSION = '0.3.1';
|
|
12
|
-
function validateConfig() {
|
|
13
|
-
if (!API_KEY) {
|
|
14
|
-
process.stderr.write('Error: PRAMPTA_API_KEY environment variable is required.\n' +
|
|
15
|
-
'Get your key at https://prampta.com (Profile → API Keys).\n');
|
|
16
|
-
process.exit(1);
|
|
17
|
-
}
|
|
18
|
-
if (!API_KEY.startsWith('pk_')) {
|
|
19
|
-
process.stderr.write('Error: PRAMPTA_API_KEY must start with "pk_".\n' +
|
|
20
|
-
'Get a valid key at https://prampta.com (Profile → API Keys).\n');
|
|
21
|
-
process.exit(1);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
validateConfig();
|
|
25
|
-
// --- Logging ---
|
|
26
|
-
function log(level, message, data) {
|
|
27
|
-
const entry = { timestamp: new Date().toISOString(), level, message, ...data };
|
|
28
|
-
process.stderr.write(JSON.stringify(entry) + '\n');
|
|
29
|
-
}
|
|
30
|
-
// --- API client ---
|
|
31
|
-
function sanitizeErrorMessage(msg) {
|
|
32
|
-
return msg
|
|
33
|
-
.replace(/pk_[a-zA-Z0-9_-]+/g, 'pk_***')
|
|
34
|
-
.replace(/Bearer\s+\S+/gi, 'Bearer ***');
|
|
35
|
-
}
|
|
36
|
-
async function sleep(ms) {
|
|
37
|
-
return new Promise(resolve => setTimeout(resolve, ms));
|
|
38
|
-
}
|
|
39
|
-
async function api(method, path, body, options) {
|
|
40
|
-
const retries = options?.retries ?? MAX_RETRIES;
|
|
41
|
-
let lastError = null;
|
|
42
|
-
for (let attempt = 0; attempt <= retries; attempt++) {
|
|
43
|
-
const headers = {
|
|
44
|
-
'User-Agent': `prampta-sdk/${VERSION}`,
|
|
45
|
-
'Accept': 'application/json',
|
|
46
|
-
};
|
|
47
|
-
if (!options?.noAuth)
|
|
48
|
-
headers['Authorization'] = `Bearer ${API_KEY}`;
|
|
49
|
-
if (body)
|
|
50
|
-
headers['Content-Type'] = 'application/json';
|
|
51
|
-
const controller = new AbortController();
|
|
52
|
-
const timeout = setTimeout(() => controller.abort(), TIMEOUT_MS);
|
|
53
|
-
try {
|
|
54
|
-
const res = await fetch(`${API_URL}${path}`, {
|
|
55
|
-
method,
|
|
56
|
-
headers,
|
|
57
|
-
body: body ? JSON.stringify(body) : undefined,
|
|
58
|
-
signal: controller.signal,
|
|
59
|
-
});
|
|
60
|
-
clearTimeout(timeout);
|
|
61
|
-
if (res.status === 204)
|
|
62
|
-
return {};
|
|
63
|
-
if (res.status === 429) {
|
|
64
|
-
const retryAfter = res.headers.get('Retry-After');
|
|
65
|
-
const waitMs = retryAfter ? parseInt(retryAfter, 10) * 1000 : RETRY_DELAY_MS * (attempt + 1);
|
|
66
|
-
if (attempt < retries) {
|
|
67
|
-
log('warn', 'Rate limited, retrying', { attempt, waitMs });
|
|
68
|
-
await sleep(waitMs);
|
|
69
|
-
continue;
|
|
70
|
-
}
|
|
71
|
-
throw new Error('Rate limit exceeded. Try again later.');
|
|
72
|
-
}
|
|
73
|
-
if (res.status >= 500 && attempt < retries) {
|
|
74
|
-
log('warn', 'Server error, retrying', { status: res.status, attempt });
|
|
75
|
-
await sleep(RETRY_DELAY_MS * (attempt + 1));
|
|
76
|
-
continue;
|
|
77
|
-
}
|
|
78
|
-
let data;
|
|
79
|
-
try {
|
|
80
|
-
data = await res.json();
|
|
81
|
-
}
|
|
82
|
-
catch {
|
|
83
|
-
throw new Error(`API returned non-JSON response (${res.status})`);
|
|
84
|
-
}
|
|
85
|
-
if (!res.ok) {
|
|
86
|
-
const errMsg = (data && typeof data === 'object' && 'error' in data)
|
|
87
|
-
? String(data.error)
|
|
88
|
-
: `API error ${res.status}`;
|
|
89
|
-
throw new Error(sanitizeErrorMessage(errMsg));
|
|
90
|
-
}
|
|
91
|
-
return data;
|
|
92
|
-
}
|
|
93
|
-
catch (e) {
|
|
94
|
-
clearTimeout(timeout);
|
|
95
|
-
if (e instanceof Error) {
|
|
96
|
-
if (e.name === 'AbortError' || e.message.includes('fetch')) {
|
|
97
|
-
lastError = new Error(sanitizeErrorMessage(`Request failed: ${e.message}`));
|
|
98
|
-
if (attempt < retries) {
|
|
99
|
-
log('warn', 'Network error, retrying', { error: e.message, attempt });
|
|
100
|
-
await sleep(RETRY_DELAY_MS * (attempt + 1));
|
|
101
|
-
continue;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
throw e;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
else {
|
|
109
|
-
lastError = new Error('Unknown error occurred');
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
throw lastError ?? new Error('Request failed after retries');
|
|
114
|
-
}
|
|
115
|
-
function formatPromptText(p, includeContent = true) {
|
|
116
|
-
const lines = [
|
|
117
|
-
`${p.ppCode} ${p.title}`,
|
|
118
|
-
`${p.category} · ${(p.tags || []).join(', ')}`,
|
|
119
|
-
`${p.uses} uses · ${p.likes} likes${p.authorName ? ` · by ${p.authorName}` : ''}`,
|
|
120
|
-
];
|
|
121
|
-
if (p.version && p.version > 1)
|
|
122
|
-
lines[0] += ` (V${p.version})`;
|
|
123
|
-
if (p.branch)
|
|
124
|
-
lines[0] += ` (B:${p.branch})`;
|
|
125
|
-
if (includeContent && p.content)
|
|
126
|
-
lines.push('', p.content);
|
|
127
|
-
if (p.media && Object.keys(p.media).length > 0)
|
|
128
|
-
lines.push('', `[${Object.keys(p.media).length} media attachment(s)]`);
|
|
129
|
-
return lines.join('\n');
|
|
130
|
-
}
|
|
131
|
-
function buildContentBlocks(p, includeContent = true) {
|
|
132
|
-
const blocks = [{ type: 'text', text: formatPromptText(p, includeContent) }];
|
|
133
|
-
if (p.media) {
|
|
134
|
-
for (const [hash, dataUrl] of Object.entries(p.media)) {
|
|
135
|
-
const match = dataUrl.match(/^data:([^;]+);base64,(.+)$/);
|
|
136
|
-
if (match && match[1].startsWith('image/')) {
|
|
137
|
-
blocks.push({ type: 'image', data: match[2], mimeType: match[1] });
|
|
138
|
-
}
|
|
139
|
-
else {
|
|
140
|
-
blocks.push({ type: 'text', text: `[Attachment ${hash}: non-image file]` });
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
return blocks;
|
|
145
|
-
}
|
|
146
|
-
const ok = (text) => ({ content: [{ type: 'text', text }] });
|
|
147
|
-
const okB = (blocks) => ({ content: blocks });
|
|
148
|
-
const err = (text) => ({ content: [{ type: 'text', text }], isError: true });
|
|
149
|
-
// --- MCP Server ---
|
|
150
|
-
const server = new McpServer({
|
|
151
|
-
name: 'prampta',
|
|
152
|
-
version: VERSION,
|
|
153
|
-
description: 'PRAMPTA prompt library — search, decode, and create AI prompts. Use the `pp` tool as a universal slash command: `/pp <query>` to search, `/pp <PP-CODE>` to fetch, `/pp create <text>` to create.',
|
|
154
|
-
});
|
|
155
|
-
server.tool('prampta_decode', "Get a prompt's full content from PRAMPTA by its PP code. Returns images inline if attached.", { code: z.string().min(5).max(80).describe('PP code (e.g. PP-3YGBM5V0HN-4)') }, async ({ code }) => {
|
|
156
|
-
try {
|
|
157
|
-
const data = await api('GET', `/api/decode?code=${encodeURIComponent(code)}`);
|
|
158
|
-
return okB(buildContentBlocks(data));
|
|
159
|
-
}
|
|
160
|
-
catch (e) {
|
|
161
|
-
return err(`Could not decode ${code}: ${e.message}`);
|
|
162
|
-
}
|
|
163
|
-
});
|
|
164
|
-
server.tool('prampta_lookup', 'Get prompt metadata from PRAMPTA without the full content', { code: z.string().min(5).max(80).describe('PP code to look up') }, async ({ code }) => {
|
|
165
|
-
try {
|
|
166
|
-
const data = await api('GET', `/api/lookup?code=${encodeURIComponent(code)}`);
|
|
167
|
-
return ok(formatPromptText(data, false));
|
|
168
|
-
}
|
|
169
|
-
catch (e) {
|
|
170
|
-
return err(`Could not look up ${code}: ${e.message}`);
|
|
171
|
-
}
|
|
172
|
-
});
|
|
173
|
-
server.tool('prampta_search', 'Search the PRAMPTA prompt library', {
|
|
174
|
-
query: z.string().optional().describe('Search text'),
|
|
175
|
-
category: z.enum(['development', 'design', 'marketing', 'data', 'writing', 'business']).optional().describe('Filter by category'),
|
|
176
|
-
limit: z.number().min(1).max(50).optional().describe('Max results (default 10)'),
|
|
177
|
-
}, async ({ query, category, limit }) => {
|
|
178
|
-
try {
|
|
179
|
-
const params = new URLSearchParams();
|
|
180
|
-
if (query)
|
|
181
|
-
params.set('search', query);
|
|
182
|
-
if (category)
|
|
183
|
-
params.set('category', category);
|
|
184
|
-
params.set('limit', String(limit || 10));
|
|
185
|
-
const qs = params.toString();
|
|
186
|
-
const data = await api('GET', `/api/search${qs ? `?${qs}` : ''}`);
|
|
187
|
-
const prompts = Array.isArray(data) ? data : (data.prompts ?? []);
|
|
188
|
-
const total = Array.isArray(data) ? data.length : (data.total ?? prompts.length);
|
|
189
|
-
if (prompts.length === 0)
|
|
190
|
-
return ok('No prompts found.');
|
|
191
|
-
const lines = prompts.map((p, i) => `${i + 1}. ${formatPromptText(p, false)}`);
|
|
192
|
-
lines.push('', `${total} total results`);
|
|
193
|
-
return ok(lines.join('\n\n'));
|
|
194
|
-
}
|
|
195
|
-
catch (e) {
|
|
196
|
-
return err(`Search failed: ${e.message}`);
|
|
197
|
-
}
|
|
198
|
-
});
|
|
199
|
-
server.tool('prampta_create', 'Create a new prompt on PRAMPTA and get its PP code. Supports text and media attachments.', {
|
|
200
|
-
content: z.string().min(10).max(50000).describe('Prompt text (10-50,000 chars)'),
|
|
201
|
-
title: z.string().max(200).optional().describe('Optional title'),
|
|
202
|
-
media: z.record(z.string(), z.string()).optional().describe('Media attachments: { "img1": "data:image/png;base64,..." }'),
|
|
203
|
-
}, async ({ content, title, media }) => {
|
|
204
|
-
try {
|
|
205
|
-
const body = { content, title };
|
|
206
|
-
if (media && Object.keys(media).length > 0)
|
|
207
|
-
body.media = media;
|
|
208
|
-
const data = await api('POST', '/api/create', body);
|
|
209
|
-
const lines = [`Created: ${data.ppCode}`, `Title: ${data.title}`, `Category: ${data.category}`, `Tags: ${(data.tags ?? []).join(', ')}`];
|
|
210
|
-
if (media && Object.keys(media).length > 0)
|
|
211
|
-
lines.push(`Media: ${Object.keys(media).length} attachment(s) included`);
|
|
212
|
-
return ok(lines.join('\n'));
|
|
213
|
-
}
|
|
214
|
-
catch (e) {
|
|
215
|
-
return err(`Failed to create prompt: ${e.message}`);
|
|
216
|
-
}
|
|
217
|
-
});
|
|
218
|
-
server.tool('prampta_my_prompts', 'List your own prompts on PRAMPTA (first 20 shown)', {}, async () => {
|
|
219
|
-
try {
|
|
220
|
-
const data = await api('GET', '/api/mine');
|
|
221
|
-
const prompts = Array.isArray(data) ? data : [];
|
|
222
|
-
if (prompts.length === 0)
|
|
223
|
-
return ok('No prompts yet.');
|
|
224
|
-
const lines = prompts.slice(0, 20).map((p, i) => `${i + 1}. ${formatPromptText(p, false)}`);
|
|
225
|
-
if (prompts.length > 20)
|
|
226
|
-
lines.push(`\n... and ${prompts.length - 20} more`);
|
|
227
|
-
return ok(lines.join('\n\n'));
|
|
228
|
-
}
|
|
229
|
-
catch (e) {
|
|
230
|
-
return err(`Failed to list prompts: ${e.message}`);
|
|
231
|
-
}
|
|
232
|
-
});
|
|
233
|
-
server.tool('prampta_health', 'Check PRAMPTA API connectivity and authentication status', {}, async () => {
|
|
234
|
-
try {
|
|
235
|
-
const start = Date.now();
|
|
236
|
-
await api('GET', '/health', undefined, { noAuth: true, retries: 1 });
|
|
237
|
-
const latency = Date.now() - start;
|
|
238
|
-
try {
|
|
239
|
-
await api('GET', '/api/mine', undefined, { retries: 1 });
|
|
240
|
-
return ok(`PRAMPTA API is healthy\nLatency: ${latency}ms\nAuthentication: Valid`);
|
|
241
|
-
}
|
|
242
|
-
catch (authErr) {
|
|
243
|
-
return ok(`PRAMPTA API is reachable\nLatency: ${latency}ms\nAuthentication: Failed - ${authErr.message}`);
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
|
-
catch (e) {
|
|
247
|
-
return err(`PRAMPTA API unreachable: ${e.message}`);
|
|
248
|
-
}
|
|
249
|
-
});
|
|
250
|
-
server.tool('pp', 'Slash command: /pp <query> searches the library, /pp <PP-CODE> decodes a prompt, /pp create <text> creates a new prompt. The universal PRAMPTA entry point.', {
|
|
251
|
-
input: z.string().min(1).max(50000).describe('One of: a search query ("data analysis"), a PP code ("PP-3YGBM5V0HN-4"), or "create <prompt text>"'),
|
|
252
|
-
}, async ({ input }) => {
|
|
253
|
-
const trimmed = input.trim();
|
|
254
|
-
// /pp create <text>
|
|
255
|
-
if (/^create\s+/i.test(trimmed)) {
|
|
256
|
-
const content = trimmed.replace(/^create\s+/i, '').trim();
|
|
257
|
-
if (content.length < 10)
|
|
258
|
-
return err('Prompt must be at least 10 characters. Usage: /pp create <your prompt text>');
|
|
259
|
-
try {
|
|
260
|
-
const data = await api('POST', '/api/create', { content });
|
|
261
|
-
return ok([
|
|
262
|
-
`Created: ${data.ppCode}`,
|
|
263
|
-
`Title: ${data.title}`,
|
|
264
|
-
`Category: ${data.category}`,
|
|
265
|
-
`Tags: ${(data.tags ?? []).join(', ')}`,
|
|
266
|
-
].join('\n'));
|
|
267
|
-
}
|
|
268
|
-
catch (e) {
|
|
269
|
-
return err(`Failed to create prompt: ${e.message}`);
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
// /pp <PP-CODE>
|
|
273
|
-
if (/^PP-[A-Z0-9]+-[A-Z0-9]+$/i.test(trimmed)) {
|
|
274
|
-
try {
|
|
275
|
-
const data = await api('GET', `/api/decode?code=${encodeURIComponent(trimmed.toUpperCase())}`);
|
|
276
|
-
return okB(buildContentBlocks(data));
|
|
277
|
-
}
|
|
278
|
-
catch (e) {
|
|
279
|
-
return err(`Could not decode ${trimmed}: ${e.message}`);
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
// /pp <query> — search
|
|
283
|
-
try {
|
|
284
|
-
const params = new URLSearchParams({ search: trimmed, limit: '8' });
|
|
285
|
-
const data = await api('GET', `/api/search?${params}`);
|
|
286
|
-
const prompts = Array.isArray(data) ? data : (data.prompts ?? []);
|
|
287
|
-
const total = Array.isArray(data) ? data.length : (data.total ?? prompts.length);
|
|
288
|
-
if (prompts.length === 0)
|
|
289
|
-
return ok(`No prompts found for "${trimmed}". Try /pp create ${trimmed}`);
|
|
290
|
-
const lines = prompts.map((p, i) => `${i + 1}. ${formatPromptText(p, false)}`);
|
|
291
|
-
lines.push('', `${total} total — use /pp <PP-CODE> to fetch any prompt's full content`);
|
|
292
|
-
return ok(lines.join('\n\n'));
|
|
293
|
-
}
|
|
294
|
-
catch (e) {
|
|
295
|
-
return err(`Search failed: ${e.message}`);
|
|
296
|
-
}
|
|
297
|
-
});
|
|
298
|
-
let isShuttingDown = false;
|
|
299
|
-
function shutdown(signal) {
|
|
300
|
-
if (isShuttingDown)
|
|
301
|
-
return;
|
|
302
|
-
isShuttingDown = true;
|
|
303
|
-
log('info', 'Shutting down', { signal });
|
|
304
|
-
process.exit(0);
|
|
305
|
-
}
|
|
306
|
-
process.on('SIGTERM', () => shutdown('SIGTERM'));
|
|
307
|
-
process.on('SIGINT', () => shutdown('SIGINT'));
|
|
308
|
-
process.on('uncaughtException', (e) => { log('error', 'Uncaught exception', { error: e.message, stack: e.stack }); process.exit(1); });
|
|
309
|
-
process.on('unhandledRejection', (r) => { log('error', 'Unhandled rejection', { reason: String(r) }); });
|
|
310
|
-
// --- Start ---
|
|
311
|
-
async function main() {
|
|
312
|
-
try {
|
|
313
|
-
log('info', 'Starting PRAMPTA MCP server', { version: VERSION, apiUrl: API_URL });
|
|
314
|
-
const transport = new StdioServerTransport();
|
|
315
|
-
await server.connect(transport);
|
|
316
|
-
log('info', 'PRAMPTA MCP server connected');
|
|
317
|
-
}
|
|
318
|
-
catch (e) {
|
|
319
|
-
log('error', 'Failed to start server', { error: e instanceof Error ? e.message : String(e) });
|
|
320
|
-
process.exit(1);
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
main();
|
|
324
|
-
//# sourceMappingURL=mcp.js.map
|
package/dist/mcp.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../src/mcp.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
DELETED
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
export interface Prompt {
|
|
2
|
-
id: string;
|
|
3
|
-
ppCode: string;
|
|
4
|
-
ppCodeCore: string;
|
|
5
|
-
title: string;
|
|
6
|
-
content: string;
|
|
7
|
-
category: string;
|
|
8
|
-
tags: string[];
|
|
9
|
-
authorId: string | null;
|
|
10
|
-
authorName: string | null;
|
|
11
|
-
group: string | null;
|
|
12
|
-
version: number;
|
|
13
|
-
branch: string | null;
|
|
14
|
-
lineageId: string | null;
|
|
15
|
-
parentId: string | null;
|
|
16
|
-
uses: number;
|
|
17
|
-
likes: number;
|
|
18
|
-
visibility: 'public' | 'private';
|
|
19
|
-
hasAccessKey: boolean;
|
|
20
|
-
status: string;
|
|
21
|
-
previewImage: string | null;
|
|
22
|
-
createdAt: number;
|
|
23
|
-
media?: Record<string, string>;
|
|
24
|
-
}
|
|
25
|
-
export interface PromptMetadata extends Omit<Prompt, 'content'> {
|
|
26
|
-
}
|
|
27
|
-
export interface CreateResult {
|
|
28
|
-
ppCode: string;
|
|
29
|
-
title: string;
|
|
30
|
-
category: string;
|
|
31
|
-
tags: string[];
|
|
32
|
-
}
|
|
33
|
-
export interface SearchResult {
|
|
34
|
-
prompts: Prompt[];
|
|
35
|
-
total: number;
|
|
36
|
-
page: number;
|
|
37
|
-
totalPages: number;
|
|
38
|
-
}
|
|
39
|
-
export interface CreateOptions {
|
|
40
|
-
content: string;
|
|
41
|
-
title?: string;
|
|
42
|
-
media?: Record<string, string>;
|
|
43
|
-
}
|
|
44
|
-
export interface SearchOptions {
|
|
45
|
-
query?: string;
|
|
46
|
-
category?: 'development' | 'design' | 'marketing' | 'data' | 'writing' | 'business';
|
|
47
|
-
limit?: number;
|
|
48
|
-
page?: number;
|
|
49
|
-
}
|
|
50
|
-
export interface PramptaConfig {
|
|
51
|
-
/** Your PRAMPTA API key (starts with "pk_") */
|
|
52
|
-
apiKey: string;
|
|
53
|
-
/** Base URL for the API (default: "https://prampta.com") */
|
|
54
|
-
baseUrl?: string;
|
|
55
|
-
/** Request timeout in milliseconds (default: 30000) */
|
|
56
|
-
timeoutMs?: number;
|
|
57
|
-
/** Maximum number of retries for failed requests (default: 3) */
|
|
58
|
-
maxRetries?: number;
|
|
59
|
-
}
|
|
60
|
-
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,QAAQ,GAAG,SAAS,CAAC;IACjC,YAAY,EAAE,OAAO,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC;CAAG;AAElE,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,aAAa,GAAG,QAAQ,GAAG,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;IACpF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,+CAA+C;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
|
package/dist/types.js
DELETED
package/dist/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|