@opentabs-dev/opentabs-plugin-fiverr 0.0.109
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +58 -0
- package/dist/adapter.iife.js +15641 -0
- package/dist/adapter.iife.js.map +7 -0
- package/dist/fiverr-api.d.ts +23 -0
- package/dist/fiverr-api.d.ts.map +1 -0
- package/dist/fiverr-api.js +106 -0
- package/dist/fiverr-api.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +38 -0
- package/dist/index.js.map +1 -0
- package/dist/tools/draft-message.d.ts +12 -0
- package/dist/tools/draft-message.d.ts.map +1 -0
- package/dist/tools/draft-message.js +37 -0
- package/dist/tools/draft-message.js.map +1 -0
- package/dist/tools/get-conversation.d.ts +22 -0
- package/dist/tools/get-conversation.d.ts.map +1 -0
- package/dist/tools/get-conversation.js +28 -0
- package/dist/tools/get-conversation.js.map +1 -0
- package/dist/tools/get-current-page-context.d.ts +12 -0
- package/dist/tools/get-current-page-context.d.ts.map +1 -0
- package/dist/tools/get-current-page-context.js +39 -0
- package/dist/tools/get-current-page-context.js.map +1 -0
- package/dist/tools/get-gig-details.d.ts +41 -0
- package/dist/tools/get-gig-details.d.ts.map +1 -0
- package/dist/tools/get-gig-details.js +34 -0
- package/dist/tools/get-gig-details.js.map +1 -0
- package/dist/tools/get-seller-profile.d.ts +20 -0
- package/dist/tools/get-seller-profile.d.ts.map +1 -0
- package/dist/tools/get-seller-profile.js +27 -0
- package/dist/tools/get-seller-profile.js.map +1 -0
- package/dist/tools/list-conversations.d.ts +16 -0
- package/dist/tools/list-conversations.d.ts.map +1 -0
- package/dist/tools/list-conversations.js +24 -0
- package/dist/tools/list-conversations.js.map +1 -0
- package/dist/tools/schemas.d.ts +355 -0
- package/dist/tools/schemas.d.ts.map +1 -0
- package/dist/tools/schemas.js +223 -0
- package/dist/tools/schemas.js.map +1 -0
- package/dist/tools/search-gigs.d.ts +26 -0
- package/dist/tools/search-gigs.d.ts.map +1 -0
- package/dist/tools/search-gigs.js +42 -0
- package/dist/tools/search-gigs.js.map +1 -0
- package/dist/tools/send-message.d.ts +9 -0
- package/dist/tools/send-message.d.ts.map +1 -0
- package/dist/tools/send-message.js +31 -0
- package/dist/tools/send-message.js.map +1 -0
- package/dist/tools.json +819 -0
- package/package.json +67 -0
|
@@ -0,0 +1,355 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const gigSummarySchema: z.ZodObject<{
|
|
3
|
+
gig_id: z.ZodNumber;
|
|
4
|
+
title: z.ZodString;
|
|
5
|
+
url: z.ZodString;
|
|
6
|
+
seller_name: z.ZodString;
|
|
7
|
+
seller_display_name: z.ZodString;
|
|
8
|
+
seller_level: z.ZodString;
|
|
9
|
+
seller_country: z.ZodString;
|
|
10
|
+
is_pro: z.ZodBoolean;
|
|
11
|
+
rating: z.ZodNumber;
|
|
12
|
+
ratings_count: z.ZodNumber;
|
|
13
|
+
price: z.ZodNumber;
|
|
14
|
+
currency: z.ZodString;
|
|
15
|
+
num_packages: z.ZodNumber;
|
|
16
|
+
image: z.ZodString;
|
|
17
|
+
}, z.core.$strip>;
|
|
18
|
+
export interface RawGigSummary {
|
|
19
|
+
gigId?: number;
|
|
20
|
+
gig_id?: number;
|
|
21
|
+
title?: string;
|
|
22
|
+
gig_url?: string;
|
|
23
|
+
seller_name?: string;
|
|
24
|
+
seller_display_name?: string;
|
|
25
|
+
seller_level?: string;
|
|
26
|
+
seller_country?: string;
|
|
27
|
+
is_pro?: boolean;
|
|
28
|
+
buying_review_rating?: number;
|
|
29
|
+
buying_review_rating_count?: number;
|
|
30
|
+
price_i?: number;
|
|
31
|
+
num_of_packages?: number;
|
|
32
|
+
assets?: Array<{
|
|
33
|
+
cloud_img_main_gig?: string;
|
|
34
|
+
type?: string;
|
|
35
|
+
}>;
|
|
36
|
+
}
|
|
37
|
+
export declare const mapGigSummary: (g: RawGigSummary, currency: string) => {
|
|
38
|
+
gig_id: number;
|
|
39
|
+
title: string;
|
|
40
|
+
url: string;
|
|
41
|
+
seller_name: string;
|
|
42
|
+
seller_display_name: string;
|
|
43
|
+
seller_level: string;
|
|
44
|
+
seller_country: string;
|
|
45
|
+
is_pro: boolean;
|
|
46
|
+
rating: number;
|
|
47
|
+
ratings_count: number;
|
|
48
|
+
price: number;
|
|
49
|
+
currency: string;
|
|
50
|
+
num_packages: number;
|
|
51
|
+
image: string;
|
|
52
|
+
};
|
|
53
|
+
export declare const gigPackageSchema: z.ZodObject<{
|
|
54
|
+
id: z.ZodNumber;
|
|
55
|
+
title: z.ZodString;
|
|
56
|
+
description: z.ZodString;
|
|
57
|
+
price: z.ZodNumber;
|
|
58
|
+
duration: z.ZodNumber;
|
|
59
|
+
revisions: z.ZodNumber;
|
|
60
|
+
extra_fast: z.ZodBoolean;
|
|
61
|
+
features: z.ZodArray<z.ZodString>;
|
|
62
|
+
}, z.core.$strip>;
|
|
63
|
+
export declare const gigReviewSchema: z.ZodObject<{
|
|
64
|
+
id: z.ZodString;
|
|
65
|
+
reviewer: z.ZodString;
|
|
66
|
+
reviewer_country: z.ZodString;
|
|
67
|
+
rating: z.ZodNumber;
|
|
68
|
+
comment: z.ZodString;
|
|
69
|
+
created_at: z.ZodString;
|
|
70
|
+
}, z.core.$strip>;
|
|
71
|
+
export declare const gigDetailSchema: z.ZodObject<{
|
|
72
|
+
gig_id: z.ZodNumber;
|
|
73
|
+
title: z.ZodString;
|
|
74
|
+
status: z.ZodString;
|
|
75
|
+
category: z.ZodString;
|
|
76
|
+
subcategory: z.ZodString;
|
|
77
|
+
is_pro: z.ZodBoolean;
|
|
78
|
+
description: z.ZodString;
|
|
79
|
+
rating: z.ZodNumber;
|
|
80
|
+
ratings_count: z.ZodNumber;
|
|
81
|
+
orders_in_queue: z.ZodNumber;
|
|
82
|
+
seller_name: z.ZodString;
|
|
83
|
+
seller_one_liner: z.ZodString;
|
|
84
|
+
seller_country: z.ZodString;
|
|
85
|
+
seller_member_since: z.ZodString;
|
|
86
|
+
seller_response_time: z.ZodString;
|
|
87
|
+
packages: z.ZodArray<z.ZodObject<{
|
|
88
|
+
id: z.ZodNumber;
|
|
89
|
+
title: z.ZodString;
|
|
90
|
+
description: z.ZodString;
|
|
91
|
+
price: z.ZodNumber;
|
|
92
|
+
duration: z.ZodNumber;
|
|
93
|
+
revisions: z.ZodNumber;
|
|
94
|
+
extra_fast: z.ZodBoolean;
|
|
95
|
+
features: z.ZodArray<z.ZodString>;
|
|
96
|
+
}, z.core.$strip>>;
|
|
97
|
+
reviews: z.ZodArray<z.ZodObject<{
|
|
98
|
+
id: z.ZodString;
|
|
99
|
+
reviewer: z.ZodString;
|
|
100
|
+
reviewer_country: z.ZodString;
|
|
101
|
+
rating: z.ZodNumber;
|
|
102
|
+
comment: z.ZodString;
|
|
103
|
+
created_at: z.ZodString;
|
|
104
|
+
}, z.core.$strip>>;
|
|
105
|
+
}, z.core.$strip>;
|
|
106
|
+
interface RawPackage {
|
|
107
|
+
id?: number;
|
|
108
|
+
title?: string;
|
|
109
|
+
description?: string;
|
|
110
|
+
price?: number;
|
|
111
|
+
duration?: number;
|
|
112
|
+
revisions?: {
|
|
113
|
+
value?: number;
|
|
114
|
+
included?: boolean;
|
|
115
|
+
};
|
|
116
|
+
extraFast?: {
|
|
117
|
+
included?: boolean;
|
|
118
|
+
duration?: number;
|
|
119
|
+
};
|
|
120
|
+
features?: Array<{
|
|
121
|
+
label?: string;
|
|
122
|
+
name?: string;
|
|
123
|
+
} | string>;
|
|
124
|
+
}
|
|
125
|
+
interface RawReview {
|
|
126
|
+
id?: number | string;
|
|
127
|
+
username?: string;
|
|
128
|
+
reviewer_country?: string;
|
|
129
|
+
value?: number;
|
|
130
|
+
score?: number;
|
|
131
|
+
comment?: string;
|
|
132
|
+
created_at?: string | number;
|
|
133
|
+
}
|
|
134
|
+
export interface RawGigDetail {
|
|
135
|
+
general?: {
|
|
136
|
+
gigId?: number;
|
|
137
|
+
gigTitle?: string;
|
|
138
|
+
gigStatus?: string;
|
|
139
|
+
categoryName?: string;
|
|
140
|
+
subCategoryName?: string;
|
|
141
|
+
isPro?: boolean;
|
|
142
|
+
};
|
|
143
|
+
overview?: {
|
|
144
|
+
gig?: {
|
|
145
|
+
rating?: number;
|
|
146
|
+
ratingsCount?: number;
|
|
147
|
+
ordersInQueue?: number;
|
|
148
|
+
};
|
|
149
|
+
};
|
|
150
|
+
description?: {
|
|
151
|
+
content?: string;
|
|
152
|
+
};
|
|
153
|
+
sellerCard?: {
|
|
154
|
+
oneLiner?: string;
|
|
155
|
+
countryCode?: string;
|
|
156
|
+
memberSince?: string | number;
|
|
157
|
+
responseTime?: string;
|
|
158
|
+
};
|
|
159
|
+
packages?: {
|
|
160
|
+
packageList?: RawPackage[];
|
|
161
|
+
};
|
|
162
|
+
reviews?: {
|
|
163
|
+
reviews?: RawReview[];
|
|
164
|
+
};
|
|
165
|
+
seller?: {
|
|
166
|
+
user?: {
|
|
167
|
+
name?: string;
|
|
168
|
+
};
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
export declare const mapGigDetail: (d: RawGigDetail) => {
|
|
172
|
+
gig_id: number;
|
|
173
|
+
title: string;
|
|
174
|
+
status: string;
|
|
175
|
+
category: string;
|
|
176
|
+
subcategory: string;
|
|
177
|
+
is_pro: boolean;
|
|
178
|
+
description: string;
|
|
179
|
+
rating: number;
|
|
180
|
+
ratings_count: number;
|
|
181
|
+
orders_in_queue: number;
|
|
182
|
+
seller_name: string;
|
|
183
|
+
seller_one_liner: string;
|
|
184
|
+
seller_country: string;
|
|
185
|
+
seller_member_since: string;
|
|
186
|
+
seller_response_time: string;
|
|
187
|
+
packages: {
|
|
188
|
+
id: number;
|
|
189
|
+
title: string;
|
|
190
|
+
description: string;
|
|
191
|
+
price: number;
|
|
192
|
+
duration: number;
|
|
193
|
+
revisions: number;
|
|
194
|
+
extra_fast: boolean;
|
|
195
|
+
features: string[];
|
|
196
|
+
}[];
|
|
197
|
+
reviews: {
|
|
198
|
+
id: string;
|
|
199
|
+
reviewer: string;
|
|
200
|
+
reviewer_country: string;
|
|
201
|
+
rating: number;
|
|
202
|
+
comment: string;
|
|
203
|
+
created_at: string;
|
|
204
|
+
}[];
|
|
205
|
+
};
|
|
206
|
+
export declare const sellerProfileSchema: z.ZodObject<{
|
|
207
|
+
username: z.ZodString;
|
|
208
|
+
display_name: z.ZodString;
|
|
209
|
+
joined_at: z.ZodString;
|
|
210
|
+
is_pro: z.ZodBoolean;
|
|
211
|
+
is_verified: z.ZodBoolean;
|
|
212
|
+
level: z.ZodString;
|
|
213
|
+
country: z.ZodString;
|
|
214
|
+
one_liner: z.ZodString;
|
|
215
|
+
description: z.ZodString;
|
|
216
|
+
rating: z.ZodNumber;
|
|
217
|
+
ratings_count: z.ZodNumber;
|
|
218
|
+
approved_gigs_count: z.ZodNumber;
|
|
219
|
+
}, z.core.$strip>;
|
|
220
|
+
export interface RawSellerProfile {
|
|
221
|
+
seller?: {
|
|
222
|
+
user?: {
|
|
223
|
+
name?: string;
|
|
224
|
+
joinedAt?: string | number;
|
|
225
|
+
profile?: {
|
|
226
|
+
displayName?: string;
|
|
227
|
+
};
|
|
228
|
+
address?: {
|
|
229
|
+
countryName?: string;
|
|
230
|
+
countryCode?: string;
|
|
231
|
+
};
|
|
232
|
+
};
|
|
233
|
+
isPro?: boolean;
|
|
234
|
+
isVerified?: boolean;
|
|
235
|
+
sellerLevel?: string;
|
|
236
|
+
oneLinerTitle?: string;
|
|
237
|
+
description?: string;
|
|
238
|
+
rating?: {
|
|
239
|
+
score?: number;
|
|
240
|
+
count?: number;
|
|
241
|
+
};
|
|
242
|
+
approvedGigsCount?: number;
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
export declare const mapSellerProfile: (d: RawSellerProfile) => {
|
|
246
|
+
username: string;
|
|
247
|
+
display_name: string;
|
|
248
|
+
joined_at: string;
|
|
249
|
+
is_pro: boolean;
|
|
250
|
+
is_verified: boolean;
|
|
251
|
+
level: string;
|
|
252
|
+
country: string;
|
|
253
|
+
one_liner: string;
|
|
254
|
+
description: string;
|
|
255
|
+
rating: number;
|
|
256
|
+
ratings_count: number;
|
|
257
|
+
approved_gigs_count: number;
|
|
258
|
+
};
|
|
259
|
+
export declare const conversationSummarySchema: z.ZodObject<{
|
|
260
|
+
username: z.ZodString;
|
|
261
|
+
display_name: z.ZodString;
|
|
262
|
+
user_id: z.ZodNumber;
|
|
263
|
+
conversation_id: z.ZodString;
|
|
264
|
+
unread_count: z.ZodNumber;
|
|
265
|
+
excerpt: z.ZodString;
|
|
266
|
+
recent_message_date: z.ZodString;
|
|
267
|
+
online: z.ZodBoolean;
|
|
268
|
+
archived: z.ZodBoolean;
|
|
269
|
+
starred: z.ZodBoolean;
|
|
270
|
+
}, z.core.$strip>;
|
|
271
|
+
export interface RawContact {
|
|
272
|
+
username?: string;
|
|
273
|
+
displayName?: string;
|
|
274
|
+
userId?: number;
|
|
275
|
+
conversationId?: string;
|
|
276
|
+
unreadCount?: number;
|
|
277
|
+
excerpt?: string;
|
|
278
|
+
recentMessageDate?: number | string;
|
|
279
|
+
online?: boolean;
|
|
280
|
+
archived?: boolean;
|
|
281
|
+
starred?: boolean;
|
|
282
|
+
}
|
|
283
|
+
export declare const mapConversationSummary: (c: RawContact) => {
|
|
284
|
+
username: string;
|
|
285
|
+
display_name: string;
|
|
286
|
+
user_id: number;
|
|
287
|
+
conversation_id: string;
|
|
288
|
+
unread_count: number;
|
|
289
|
+
excerpt: string;
|
|
290
|
+
recent_message_date: string;
|
|
291
|
+
online: boolean;
|
|
292
|
+
archived: boolean;
|
|
293
|
+
starred: boolean;
|
|
294
|
+
};
|
|
295
|
+
export declare const messageSchema: z.ZodObject<{
|
|
296
|
+
id: z.ZodString;
|
|
297
|
+
sender: z.ZodString;
|
|
298
|
+
recipient: z.ZodString;
|
|
299
|
+
body: z.ZodString;
|
|
300
|
+
created_at: z.ZodString;
|
|
301
|
+
type: z.ZodString;
|
|
302
|
+
attachment_count: z.ZodNumber;
|
|
303
|
+
}, z.core.$strip>;
|
|
304
|
+
interface RawMessage {
|
|
305
|
+
id?: number | string;
|
|
306
|
+
sender?: string;
|
|
307
|
+
recipient?: string;
|
|
308
|
+
body?: string;
|
|
309
|
+
bodyUnformatted?: string;
|
|
310
|
+
createdAt?: number | string;
|
|
311
|
+
type?: string;
|
|
312
|
+
attachments?: unknown[];
|
|
313
|
+
}
|
|
314
|
+
export declare const conversationSchema: z.ZodObject<{
|
|
315
|
+
username: z.ZodString;
|
|
316
|
+
display_name: z.ZodString;
|
|
317
|
+
conversation_id: z.ZodString;
|
|
318
|
+
unread_count: z.ZodNumber;
|
|
319
|
+
last_page: z.ZodBoolean;
|
|
320
|
+
messages: z.ZodArray<z.ZodObject<{
|
|
321
|
+
id: z.ZodString;
|
|
322
|
+
sender: z.ZodString;
|
|
323
|
+
recipient: z.ZodString;
|
|
324
|
+
body: z.ZodString;
|
|
325
|
+
created_at: z.ZodString;
|
|
326
|
+
type: z.ZodString;
|
|
327
|
+
attachment_count: z.ZodNumber;
|
|
328
|
+
}, z.core.$strip>>;
|
|
329
|
+
}, z.core.$strip>;
|
|
330
|
+
export interface RawConversation {
|
|
331
|
+
username?: string;
|
|
332
|
+
displayName?: string;
|
|
333
|
+
conversationId?: string;
|
|
334
|
+
unreadCount?: number;
|
|
335
|
+
lastPage?: boolean;
|
|
336
|
+
messages?: RawMessage[];
|
|
337
|
+
}
|
|
338
|
+
export declare const mapConversation: (c: RawConversation) => {
|
|
339
|
+
username: string;
|
|
340
|
+
display_name: string;
|
|
341
|
+
conversation_id: string;
|
|
342
|
+
unread_count: number;
|
|
343
|
+
last_page: boolean;
|
|
344
|
+
messages: {
|
|
345
|
+
id: string;
|
|
346
|
+
sender: string;
|
|
347
|
+
recipient: string;
|
|
348
|
+
body: string;
|
|
349
|
+
created_at: string;
|
|
350
|
+
type: string;
|
|
351
|
+
attachment_count: number;
|
|
352
|
+
}[];
|
|
353
|
+
};
|
|
354
|
+
export {};
|
|
355
|
+
//# sourceMappingURL=schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/tools/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
// --- Shared helpers ---
|
|
3
|
+
/** Prefix a Fiverr-relative path with the origin to produce an absolute URL. */
|
|
4
|
+
const absoluteUrl = (path) => {
|
|
5
|
+
if (!path)
|
|
6
|
+
return '';
|
|
7
|
+
if (path.startsWith('http'))
|
|
8
|
+
return path;
|
|
9
|
+
return `https://www.fiverr.com${path.startsWith('/') ? '' : '/'}${path}`;
|
|
10
|
+
};
|
|
11
|
+
// --- Gig search result ---
|
|
12
|
+
export const gigSummarySchema = z.object({
|
|
13
|
+
gig_id: z.number().describe('Numeric gig ID'),
|
|
14
|
+
title: z.string().describe('Gig title'),
|
|
15
|
+
url: z.string().describe('Absolute URL to the gig page'),
|
|
16
|
+
seller_name: z.string().describe('Seller username'),
|
|
17
|
+
seller_display_name: z.string().describe('Seller display name'),
|
|
18
|
+
seller_level: z.string().describe('Seller level (e.g., "level_one", "level_two", "top_rated_seller", or empty)'),
|
|
19
|
+
seller_country: z.string().describe('Seller country name'),
|
|
20
|
+
is_pro: z.boolean().describe('Whether the seller is a Fiverr Pro seller'),
|
|
21
|
+
rating: z.number().describe('Average buyer review rating (0–5)'),
|
|
22
|
+
ratings_count: z.number().describe('Number of buyer reviews'),
|
|
23
|
+
price: z.number().describe('Starting ("from") price in the smallest currency unit (e.g., cents; 4000 means $40.00)'),
|
|
24
|
+
currency: z.string().describe('ISO currency code for the price (e.g., "USD")'),
|
|
25
|
+
num_packages: z.number().describe('Number of packages offered'),
|
|
26
|
+
image: z.string().describe('Primary gig image URL, empty if none'),
|
|
27
|
+
});
|
|
28
|
+
export const mapGigSummary = (g, currency) => ({
|
|
29
|
+
gig_id: g.gigId ?? g.gig_id ?? 0,
|
|
30
|
+
title: g.title ?? '',
|
|
31
|
+
url: absoluteUrl(g.gig_url ?? ''),
|
|
32
|
+
seller_name: g.seller_name ?? '',
|
|
33
|
+
seller_display_name: g.seller_display_name ?? '',
|
|
34
|
+
seller_level: g.seller_level ?? '',
|
|
35
|
+
seller_country: g.seller_country ?? '',
|
|
36
|
+
is_pro: g.is_pro ?? false,
|
|
37
|
+
rating: g.buying_review_rating ?? 0,
|
|
38
|
+
ratings_count: g.buying_review_rating_count ?? 0,
|
|
39
|
+
price: g.price_i ?? 0,
|
|
40
|
+
currency,
|
|
41
|
+
num_packages: g.num_of_packages ?? 0,
|
|
42
|
+
image: g.assets?.[0]?.cloud_img_main_gig ?? '',
|
|
43
|
+
});
|
|
44
|
+
// --- Gig detail ---
|
|
45
|
+
export const gigPackageSchema = z.object({
|
|
46
|
+
id: z.number().describe('Package ID'),
|
|
47
|
+
title: z.string().describe('Package title (e.g., "Basic", "Standard", "Premium")'),
|
|
48
|
+
description: z.string().describe('Package description'),
|
|
49
|
+
price: z.number().describe('Package price in the smallest currency unit (e.g., cents — 4000 means $40.00)'),
|
|
50
|
+
duration: z.number().describe('Delivery time in hours'),
|
|
51
|
+
revisions: z.number().describe('Number of revisions included (-1 means unlimited)'),
|
|
52
|
+
extra_fast: z.boolean().describe('Whether an extra-fast delivery option is offered'),
|
|
53
|
+
features: z.array(z.string()).describe('Included feature labels'),
|
|
54
|
+
});
|
|
55
|
+
export const gigReviewSchema = z.object({
|
|
56
|
+
id: z.string().describe('Review ID'),
|
|
57
|
+
reviewer: z.string().describe('Reviewer username'),
|
|
58
|
+
reviewer_country: z.string().describe('Reviewer country name'),
|
|
59
|
+
rating: z.number().describe('Review score (0–5)'),
|
|
60
|
+
comment: z.string().describe('Review text'),
|
|
61
|
+
created_at: z.string().describe('Review creation timestamp (ISO 8601 or epoch ms as returned by Fiverr)'),
|
|
62
|
+
});
|
|
63
|
+
export const gigDetailSchema = z.object({
|
|
64
|
+
gig_id: z.number().describe('Numeric gig ID'),
|
|
65
|
+
title: z.string().describe('Gig title'),
|
|
66
|
+
status: z.string().describe('Gig status (e.g., "approved")'),
|
|
67
|
+
category: z.string().describe('Category name'),
|
|
68
|
+
subcategory: z.string().describe('Subcategory name'),
|
|
69
|
+
is_pro: z.boolean().describe('Whether this is a Fiverr Pro gig'),
|
|
70
|
+
description: z.string().describe('Full gig description (plain text)'),
|
|
71
|
+
rating: z.number().describe('Average rating (0–5)'),
|
|
72
|
+
ratings_count: z.number().describe('Number of ratings'),
|
|
73
|
+
orders_in_queue: z.number().describe('Number of orders currently in the seller queue'),
|
|
74
|
+
seller_name: z.string().describe('Seller username'),
|
|
75
|
+
seller_one_liner: z.string().describe('Seller tagline'),
|
|
76
|
+
seller_country: z.string().describe('Seller country code'),
|
|
77
|
+
seller_member_since: z.string().describe('Seller join date as returned by Fiverr'),
|
|
78
|
+
seller_response_time: z.string().describe('Seller average response time label'),
|
|
79
|
+
packages: z.array(gigPackageSchema).describe('Offered packages'),
|
|
80
|
+
reviews: z.array(gigReviewSchema).describe('Recent reviews (subset returned by the page)'),
|
|
81
|
+
});
|
|
82
|
+
const mapPackage = (p) => ({
|
|
83
|
+
id: p.id ?? 0,
|
|
84
|
+
title: p.title ?? '',
|
|
85
|
+
description: p.description ?? '',
|
|
86
|
+
price: p.price ?? 0,
|
|
87
|
+
duration: p.duration ?? 0,
|
|
88
|
+
revisions: p.revisions?.value ?? 0,
|
|
89
|
+
extra_fast: p.extraFast?.included ?? false,
|
|
90
|
+
features: (p.features ?? [])
|
|
91
|
+
.map(f => (typeof f === 'string' ? f : (f.label ?? f.name ?? '')))
|
|
92
|
+
.filter(label => label.length > 0),
|
|
93
|
+
});
|
|
94
|
+
const mapReview = (r) => ({
|
|
95
|
+
id: String(r.id ?? ''),
|
|
96
|
+
reviewer: r.username ?? '',
|
|
97
|
+
reviewer_country: r.reviewer_country ?? '',
|
|
98
|
+
rating: r.value ?? r.score ?? 0,
|
|
99
|
+
comment: r.comment ?? '',
|
|
100
|
+
created_at: String(r.created_at ?? ''),
|
|
101
|
+
});
|
|
102
|
+
const stripHtml = (html) => html
|
|
103
|
+
.replace(/<[^>]+>/g, ' ')
|
|
104
|
+
.replace(/\s+/g, ' ')
|
|
105
|
+
.trim();
|
|
106
|
+
export const mapGigDetail = (d) => {
|
|
107
|
+
const general = d.general ?? {};
|
|
108
|
+
const overviewGig = d.overview?.gig ?? {};
|
|
109
|
+
const sellerCard = d.sellerCard ?? {};
|
|
110
|
+
return {
|
|
111
|
+
gig_id: general.gigId ?? 0,
|
|
112
|
+
title: general.gigTitle ?? '',
|
|
113
|
+
status: general.gigStatus ?? '',
|
|
114
|
+
category: general.categoryName ?? '',
|
|
115
|
+
subcategory: general.subCategoryName ?? '',
|
|
116
|
+
is_pro: general.isPro ?? false,
|
|
117
|
+
description: stripHtml(d.description?.content ?? ''),
|
|
118
|
+
rating: overviewGig.rating ?? 0,
|
|
119
|
+
ratings_count: overviewGig.ratingsCount ?? 0,
|
|
120
|
+
orders_in_queue: overviewGig.ordersInQueue ?? 0,
|
|
121
|
+
seller_name: d.seller?.user?.name ?? '',
|
|
122
|
+
seller_one_liner: sellerCard.oneLiner ?? '',
|
|
123
|
+
seller_country: sellerCard.countryCode ?? '',
|
|
124
|
+
seller_member_since: String(sellerCard.memberSince ?? ''),
|
|
125
|
+
seller_response_time: sellerCard.responseTime ?? '',
|
|
126
|
+
packages: (d.packages?.packageList ?? []).map(mapPackage),
|
|
127
|
+
reviews: (d.reviews?.reviews ?? []).map(mapReview),
|
|
128
|
+
};
|
|
129
|
+
};
|
|
130
|
+
// --- Seller profile ---
|
|
131
|
+
export const sellerProfileSchema = z.object({
|
|
132
|
+
username: z.string().describe('Seller username'),
|
|
133
|
+
display_name: z.string().describe('Seller display name'),
|
|
134
|
+
joined_at: z.string().describe('Account join date as returned by Fiverr'),
|
|
135
|
+
is_pro: z.boolean().describe('Whether the seller is a Fiverr Pro seller'),
|
|
136
|
+
is_verified: z.boolean().describe('Whether the seller’s identity is verified'),
|
|
137
|
+
level: z.string().describe('Seller level (e.g., "LEVEL_ONE", "LEVEL_TWO", "TOP_RATED_SELLER", or empty)'),
|
|
138
|
+
country: z.string().describe('Seller country name'),
|
|
139
|
+
one_liner: z.string().describe('Seller tagline / one-line title'),
|
|
140
|
+
description: z.string().describe('Seller profile description / bio'),
|
|
141
|
+
rating: z.number().describe('Overall seller rating (0–5)'),
|
|
142
|
+
ratings_count: z.number().describe('Total number of seller reviews'),
|
|
143
|
+
approved_gigs_count: z.number().describe('Number of active (approved) gigs the seller offers'),
|
|
144
|
+
});
|
|
145
|
+
export const mapSellerProfile = (d) => {
|
|
146
|
+
const seller = d.seller ?? {};
|
|
147
|
+
const user = seller.user ?? {};
|
|
148
|
+
const rating = seller.rating ?? {};
|
|
149
|
+
return {
|
|
150
|
+
username: user.name ?? '',
|
|
151
|
+
display_name: user.profile?.displayName ?? user.name ?? '',
|
|
152
|
+
joined_at: String(user.joinedAt ?? ''),
|
|
153
|
+
is_pro: seller.isPro ?? false,
|
|
154
|
+
is_verified: seller.isVerified ?? false,
|
|
155
|
+
level: seller.sellerLevel ?? '',
|
|
156
|
+
country: user.address?.countryName ?? '',
|
|
157
|
+
one_liner: seller.oneLinerTitle ?? '',
|
|
158
|
+
description: stripHtml(seller.description ?? ''),
|
|
159
|
+
rating: rating.score ?? 0,
|
|
160
|
+
ratings_count: rating.count ?? 0,
|
|
161
|
+
approved_gigs_count: seller.approvedGigsCount ?? 0,
|
|
162
|
+
};
|
|
163
|
+
};
|
|
164
|
+
// --- Inbox: conversations and messages ---
|
|
165
|
+
export const conversationSummarySchema = z.object({
|
|
166
|
+
username: z.string().describe('The other participant’s username'),
|
|
167
|
+
display_name: z.string().describe('The other participant’s display name'),
|
|
168
|
+
user_id: z.number().describe('The other participant’s numeric user ID'),
|
|
169
|
+
conversation_id: z.string().describe('Conversation ID, used to reference the thread'),
|
|
170
|
+
unread_count: z.number().describe('Number of unread messages in this conversation'),
|
|
171
|
+
excerpt: z.string().describe('Preview of the most recent message'),
|
|
172
|
+
recent_message_date: z.string().describe('Timestamp of the most recent message (epoch ms as returned by Fiverr)'),
|
|
173
|
+
online: z.boolean().describe('Whether the participant is currently online'),
|
|
174
|
+
archived: z.boolean().describe('Whether the conversation is archived'),
|
|
175
|
+
starred: z.boolean().describe('Whether the conversation is starred'),
|
|
176
|
+
});
|
|
177
|
+
export const mapConversationSummary = (c) => ({
|
|
178
|
+
username: c.username ?? '',
|
|
179
|
+
display_name: c.displayName ?? c.username ?? '',
|
|
180
|
+
user_id: c.userId ?? 0,
|
|
181
|
+
conversation_id: c.conversationId ?? '',
|
|
182
|
+
unread_count: c.unreadCount ?? 0,
|
|
183
|
+
excerpt: c.excerpt ?? '',
|
|
184
|
+
recent_message_date: String(c.recentMessageDate ?? ''),
|
|
185
|
+
online: c.online ?? false,
|
|
186
|
+
archived: c.archived ?? false,
|
|
187
|
+
starred: c.starred ?? false,
|
|
188
|
+
});
|
|
189
|
+
export const messageSchema = z.object({
|
|
190
|
+
id: z.string().describe('Message ID'),
|
|
191
|
+
sender: z.string().describe('Sender username'),
|
|
192
|
+
recipient: z.string().describe('Recipient username'),
|
|
193
|
+
body: z.string().describe('Message text (plain text)'),
|
|
194
|
+
created_at: z.string().describe('Send timestamp (epoch ms as returned by Fiverr)'),
|
|
195
|
+
type: z.string().describe('Message type (e.g., "text")'),
|
|
196
|
+
attachment_count: z.number().describe('Number of attachments on the message'),
|
|
197
|
+
});
|
|
198
|
+
const mapMessage = (m) => ({
|
|
199
|
+
id: String(m.id ?? ''),
|
|
200
|
+
sender: m.sender ?? '',
|
|
201
|
+
recipient: m.recipient ?? '',
|
|
202
|
+
body: stripHtml(m.bodyUnformatted ?? m.body ?? ''),
|
|
203
|
+
created_at: String(m.createdAt ?? ''),
|
|
204
|
+
type: m.type ?? '',
|
|
205
|
+
attachment_count: Array.isArray(m.attachments) ? m.attachments.length : 0,
|
|
206
|
+
});
|
|
207
|
+
export const conversationSchema = z.object({
|
|
208
|
+
username: z.string().describe('The other participant’s username'),
|
|
209
|
+
display_name: z.string().describe('The other participant’s display name'),
|
|
210
|
+
conversation_id: z.string().describe('Conversation ID'),
|
|
211
|
+
unread_count: z.number().describe('Number of unread messages'),
|
|
212
|
+
last_page: z.boolean().describe('True if these are the oldest messages (no earlier page exists)'),
|
|
213
|
+
messages: z.array(messageSchema).describe('Messages in the conversation, oldest first'),
|
|
214
|
+
});
|
|
215
|
+
export const mapConversation = (c) => ({
|
|
216
|
+
username: c.username ?? '',
|
|
217
|
+
display_name: c.displayName ?? c.username ?? '',
|
|
218
|
+
conversation_id: c.conversationId ?? '',
|
|
219
|
+
unread_count: c.unreadCount ?? 0,
|
|
220
|
+
last_page: c.lastPage ?? false,
|
|
221
|
+
messages: (c.messages ?? []).map(mapMessage),
|
|
222
|
+
});
|
|
223
|
+
//# sourceMappingURL=schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.js","sourceRoot":"","sources":["../../src/tools/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const searchGigs: import("@opentabs-dev/plugin-sdk").ToolDefinition<z.ZodObject<{
|
|
3
|
+
query: z.ZodString;
|
|
4
|
+
page: z.ZodOptional<z.ZodNumber>;
|
|
5
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
6
|
+
gigs: z.ZodArray<z.ZodObject<{
|
|
7
|
+
gig_id: z.ZodNumber;
|
|
8
|
+
title: z.ZodString;
|
|
9
|
+
url: z.ZodString;
|
|
10
|
+
seller_name: z.ZodString;
|
|
11
|
+
seller_display_name: z.ZodString;
|
|
12
|
+
seller_level: z.ZodString;
|
|
13
|
+
seller_country: z.ZodString;
|
|
14
|
+
is_pro: z.ZodBoolean;
|
|
15
|
+
rating: z.ZodNumber;
|
|
16
|
+
ratings_count: z.ZodNumber;
|
|
17
|
+
price: z.ZodNumber;
|
|
18
|
+
currency: z.ZodString;
|
|
19
|
+
num_packages: z.ZodNumber;
|
|
20
|
+
image: z.ZodString;
|
|
21
|
+
}, z.core.$strip>>;
|
|
22
|
+
total_found: z.ZodNumber;
|
|
23
|
+
has_more: z.ZodBoolean;
|
|
24
|
+
page: z.ZodNumber;
|
|
25
|
+
}, z.core.$strip>>;
|
|
26
|
+
//# sourceMappingURL=search-gigs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search-gigs.d.ts","sourceRoot":"","sources":["../../src/tools/search-gigs.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAWxB,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;kBAuCrB,CAAC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { buildQueryString, defineTool, ToolError } from '@opentabs-dev/plugin-sdk';
|
|
2
|
+
import { z } from 'zod';
|
|
3
|
+
import { fetchPerseusProps } from '../fiverr-api.js';
|
|
4
|
+
import { gigSummarySchema, mapGigSummary } from './schemas.js';
|
|
5
|
+
export const searchGigs = defineTool({
|
|
6
|
+
name: 'search_gigs',
|
|
7
|
+
displayName: 'Search Gigs',
|
|
8
|
+
description: 'Search Fiverr for gigs (services) matching a query. Returns a ranked page of gigs with title, ' +
|
|
9
|
+
'seller, level, rating, starting price, and a link to each gig page. Use the `page` parameter to ' +
|
|
10
|
+
'paginate. Pass a gig URL from a result to `get_gig_details` for full information. Reads Fiverr’s ' +
|
|
11
|
+
'server-rendered search page — the most reliable source given Fiverr’s bot protection.',
|
|
12
|
+
summary: 'Search Fiverr gigs by keyword',
|
|
13
|
+
icon: 'search',
|
|
14
|
+
group: 'Gigs',
|
|
15
|
+
input: z.object({
|
|
16
|
+
query: z.string().min(1).describe('Search keywords (e.g., "logo design", "wordpress developer")'),
|
|
17
|
+
page: z.number().int().min(1).optional().describe('Page number for pagination (default 1)'),
|
|
18
|
+
}),
|
|
19
|
+
output: z.object({
|
|
20
|
+
gigs: z.array(gigSummarySchema).describe('Gigs on this page of results'),
|
|
21
|
+
total_found: z.number().describe('Total number of gigs matching the query'),
|
|
22
|
+
has_more: z.boolean().describe('Whether more result pages are available'),
|
|
23
|
+
page: z.number().describe('The page number returned'),
|
|
24
|
+
}),
|
|
25
|
+
handle: async (params) => {
|
|
26
|
+
const page = params.page ?? 1;
|
|
27
|
+
const qs = buildQueryString({ query: params.query, page });
|
|
28
|
+
const props = (await fetchPerseusProps(`/search/gigs?${qs}`));
|
|
29
|
+
const gigs = props.listings?.[0]?.gigs;
|
|
30
|
+
if (!Array.isArray(gigs)) {
|
|
31
|
+
throw ToolError.notFound(`No results found for "${params.query}".`);
|
|
32
|
+
}
|
|
33
|
+
const currency = props.currency?.name ?? 'USD';
|
|
34
|
+
return {
|
|
35
|
+
gigs: gigs.map(g => mapGigSummary(g, currency)),
|
|
36
|
+
total_found: props.rawListingData?.num_found ?? gigs.length,
|
|
37
|
+
has_more: props.rawListingData?.has_more ?? false,
|
|
38
|
+
page,
|
|
39
|
+
};
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
//# sourceMappingURL=search-gigs.js.map
|