@dealcrawl/sdk 2.0.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/README.md +540 -0
- package/dist/sdk/src/client.d.ts +285 -0
- package/dist/sdk/src/client.d.ts.map +1 -0
- package/dist/sdk/src/client.js +336 -0
- package/dist/sdk/src/client.js.map +1 -0
- package/dist/sdk/src/error.d.ts +54 -0
- package/dist/sdk/src/error.d.ts.map +1 -0
- package/dist/sdk/src/error.js +115 -0
- package/dist/sdk/src/error.js.map +1 -0
- package/dist/sdk/src/index.d.ts +58 -0
- package/dist/sdk/src/index.d.ts.map +1 -0
- package/dist/sdk/src/index.js +65 -0
- package/dist/sdk/src/index.js.map +1 -0
- package/dist/sdk/src/resources/account.d.ts +143 -0
- package/dist/sdk/src/resources/account.d.ts.map +1 -0
- package/dist/sdk/src/resources/account.js +186 -0
- package/dist/sdk/src/resources/account.js.map +1 -0
- package/dist/sdk/src/resources/crawl.d.ts +87 -0
- package/dist/sdk/src/resources/crawl.d.ts.map +1 -0
- package/dist/sdk/src/resources/crawl.js +205 -0
- package/dist/sdk/src/resources/crawl.js.map +1 -0
- package/dist/sdk/src/resources/data.d.ts +157 -0
- package/dist/sdk/src/resources/data.d.ts.map +1 -0
- package/dist/sdk/src/resources/data.js +239 -0
- package/dist/sdk/src/resources/data.js.map +1 -0
- package/dist/sdk/src/resources/dork.d.ts +104 -0
- package/dist/sdk/src/resources/dork.d.ts.map +1 -0
- package/dist/sdk/src/resources/dork.js +163 -0
- package/dist/sdk/src/resources/dork.js.map +1 -0
- package/dist/sdk/src/resources/extract.d.ts +105 -0
- package/dist/sdk/src/resources/extract.d.ts.map +1 -0
- package/dist/sdk/src/resources/extract.js +246 -0
- package/dist/sdk/src/resources/extract.js.map +1 -0
- package/dist/sdk/src/resources/index.d.ts +14 -0
- package/dist/sdk/src/resources/index.d.ts.map +1 -0
- package/dist/sdk/src/resources/index.js +14 -0
- package/dist/sdk/src/resources/index.js.map +1 -0
- package/dist/sdk/src/resources/keys.d.ts +124 -0
- package/dist/sdk/src/resources/keys.d.ts.map +1 -0
- package/dist/sdk/src/resources/keys.js +168 -0
- package/dist/sdk/src/resources/keys.js.map +1 -0
- package/dist/sdk/src/resources/scrape.d.ts +53 -0
- package/dist/sdk/src/resources/scrape.d.ts.map +1 -0
- package/dist/sdk/src/resources/scrape.js +85 -0
- package/dist/sdk/src/resources/scrape.js.map +1 -0
- package/dist/sdk/src/resources/status.d.ts +100 -0
- package/dist/sdk/src/resources/status.d.ts.map +1 -0
- package/dist/sdk/src/resources/status.js +133 -0
- package/dist/sdk/src/resources/status.js.map +1 -0
- package/dist/sdk/src/resources/webhooks.d.ts +126 -0
- package/dist/sdk/src/resources/webhooks.d.ts.map +1 -0
- package/dist/sdk/src/resources/webhooks.js +167 -0
- package/dist/sdk/src/resources/webhooks.js.map +1 -0
- package/dist/sdk/src/types/config.d.ts +45 -0
- package/dist/sdk/src/types/config.d.ts.map +1 -0
- package/dist/sdk/src/types/config.js +10 -0
- package/dist/sdk/src/types/config.js.map +1 -0
- package/dist/sdk/src/types/index.d.ts +8 -0
- package/dist/sdk/src/types/index.d.ts.map +1 -0
- package/dist/sdk/src/types/index.js +8 -0
- package/dist/sdk/src/types/index.js.map +1 -0
- package/dist/sdk/src/types/options.d.ts +286 -0
- package/dist/sdk/src/types/options.d.ts.map +1 -0
- package/dist/sdk/src/types/options.js +6 -0
- package/dist/sdk/src/types/options.js.map +1 -0
- package/dist/sdk/src/types/responses.d.ts +385 -0
- package/dist/sdk/src/types/responses.d.ts.map +1 -0
- package/dist/sdk/src/types/responses.js +6 -0
- package/dist/sdk/src/types/responses.js.map +1 -0
- package/dist/sdk/src/utils/polling.d.ts +57 -0
- package/dist/sdk/src/utils/polling.d.ts.map +1 -0
- package/dist/sdk/src/utils/polling.js +110 -0
- package/dist/sdk/src/utils/polling.js.map +1 -0
- package/dist/sdk/src/utils/request.d.ts +47 -0
- package/dist/sdk/src/utils/request.d.ts.map +1 -0
- package/dist/sdk/src/utils/request.js +161 -0
- package/dist/sdk/src/utils/request.js.map +1 -0
- package/dist/shared/src/constants/errors.d.ts +26 -0
- package/dist/shared/src/constants/errors.d.ts.map +1 -0
- package/dist/shared/src/constants/errors.js +39 -0
- package/dist/shared/src/constants/errors.js.map +1 -0
- package/dist/shared/src/constants/http.d.ts +26 -0
- package/dist/shared/src/constants/http.d.ts.map +1 -0
- package/dist/shared/src/constants/http.js +26 -0
- package/dist/shared/src/constants/http.js.map +1 -0
- package/dist/shared/src/constants/index.d.ts +4 -0
- package/dist/shared/src/constants/index.d.ts.map +1 -0
- package/dist/shared/src/constants/index.js +5 -0
- package/dist/shared/src/constants/index.js.map +1 -0
- package/dist/shared/src/constants/limits.d.ts +52 -0
- package/dist/shared/src/constants/limits.d.ts.map +1 -0
- package/dist/shared/src/constants/limits.js +43 -0
- package/dist/shared/src/constants/limits.js.map +1 -0
- package/dist/shared/src/index.d.ts +5 -0
- package/dist/shared/src/index.d.ts.map +1 -0
- package/dist/shared/src/index.js +11 -0
- package/dist/shared/src/index.js.map +1 -0
- package/dist/shared/src/lib/index.d.ts +2 -0
- package/dist/shared/src/lib/index.d.ts.map +1 -0
- package/dist/shared/src/lib/index.js +2 -0
- package/dist/shared/src/lib/index.js.map +1 -0
- package/dist/shared/src/lib/redis.d.ts +14 -0
- package/dist/shared/src/lib/redis.d.ts.map +1 -0
- package/dist/shared/src/lib/redis.js +60 -0
- package/dist/shared/src/lib/redis.js.map +1 -0
- package/dist/shared/src/types/api-key.types.d.ts +94 -0
- package/dist/shared/src/types/api-key.types.d.ts.map +1 -0
- package/dist/shared/src/types/api-key.types.js +30 -0
- package/dist/shared/src/types/api-key.types.js.map +1 -0
- package/dist/shared/src/types/api.types.d.ts +38 -0
- package/dist/shared/src/types/api.types.d.ts.map +1 -0
- package/dist/shared/src/types/api.types.js +2 -0
- package/dist/shared/src/types/api.types.js.map +1 -0
- package/dist/shared/src/types/client.types.d.ts +73 -0
- package/dist/shared/src/types/client.types.d.ts.map +1 -0
- package/dist/shared/src/types/client.types.js +9 -0
- package/dist/shared/src/types/client.types.js.map +1 -0
- package/dist/shared/src/types/crawl.types.d.ts +65 -0
- package/dist/shared/src/types/crawl.types.d.ts.map +1 -0
- package/dist/shared/src/types/crawl.types.js +2 -0
- package/dist/shared/src/types/crawl.types.js.map +1 -0
- package/dist/shared/src/types/deal.types.d.ts +210 -0
- package/dist/shared/src/types/deal.types.d.ts.map +1 -0
- package/dist/shared/src/types/deal.types.js +6 -0
- package/dist/shared/src/types/deal.types.js.map +1 -0
- package/dist/shared/src/types/dork.types.d.ts +29 -0
- package/dist/shared/src/types/dork.types.d.ts.map +1 -0
- package/dist/shared/src/types/dork.types.js +2 -0
- package/dist/shared/src/types/dork.types.js.map +1 -0
- package/dist/shared/src/types/index.d.ts +8 -0
- package/dist/shared/src/types/index.d.ts.map +1 -0
- package/dist/shared/src/types/index.js +9 -0
- package/dist/shared/src/types/index.js.map +1 -0
- package/dist/shared/src/types/scrape.types.d.ts +151 -0
- package/dist/shared/src/types/scrape.types.d.ts.map +1 -0
- package/dist/shared/src/types/scrape.types.js +2 -0
- package/dist/shared/src/types/scrape.types.js.map +1 -0
- package/dist/shared/src/utils/date.d.ts +7 -0
- package/dist/shared/src/utils/date.d.ts.map +1 -0
- package/dist/shared/src/utils/date.js +25 -0
- package/dist/shared/src/utils/date.js.map +1 -0
- package/dist/shared/src/utils/hash.d.ts +4 -0
- package/dist/shared/src/utils/hash.d.ts.map +1 -0
- package/dist/shared/src/utils/hash.js +21 -0
- package/dist/shared/src/utils/hash.js.map +1 -0
- package/dist/shared/src/utils/index.d.ts +7 -0
- package/dist/shared/src/utils/index.d.ts.map +1 -0
- package/dist/shared/src/utils/index.js +8 -0
- package/dist/shared/src/utils/index.js.map +1 -0
- package/dist/shared/src/utils/logger.d.ts +66 -0
- package/dist/shared/src/utils/logger.d.ts.map +1 -0
- package/dist/shared/src/utils/logger.js +268 -0
- package/dist/shared/src/utils/logger.js.map +1 -0
- package/dist/shared/src/utils/retry.d.ts +11 -0
- package/dist/shared/src/utils/retry.d.ts.map +1 -0
- package/dist/shared/src/utils/retry.js +36 -0
- package/dist/shared/src/utils/retry.js.map +1 -0
- package/dist/shared/src/utils/url-validator.d.ts +37 -0
- package/dist/shared/src/utils/url-validator.d.ts.map +1 -0
- package/dist/shared/src/utils/url-validator.js +179 -0
- package/dist/shared/src/utils/url-validator.js.map +1 -0
- package/dist/shared/src/utils/url.d.ts +6 -0
- package/dist/shared/src/utils/url.d.ts.map +1 -0
- package/dist/shared/src/utils/url.js +56 -0
- package/dist/shared/src/utils/url.js.map +1 -0
- package/package.json +49 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../../src/types/options.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../../../../src/types/options.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,385 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SDK Response Types
|
|
3
|
+
* Types for API responses
|
|
4
|
+
*/
|
|
5
|
+
import type { JobStatus, RateLimitInfo, PaginatedResponse } from "@dealcrawl/shared";
|
|
6
|
+
/** Base job response from API */
|
|
7
|
+
export interface JobResponse {
|
|
8
|
+
/** Unique job identifier */
|
|
9
|
+
jobId: string;
|
|
10
|
+
/** Current job status */
|
|
11
|
+
status: JobStatus;
|
|
12
|
+
/** URL to check job status */
|
|
13
|
+
statusUrl: string;
|
|
14
|
+
/** Estimated time to completion */
|
|
15
|
+
estimatedTime?: string;
|
|
16
|
+
}
|
|
17
|
+
/** Pagination info */
|
|
18
|
+
export interface PaginationInfo {
|
|
19
|
+
page: number;
|
|
20
|
+
limit: number;
|
|
21
|
+
total: number;
|
|
22
|
+
totalPages: number;
|
|
23
|
+
hasMore: boolean;
|
|
24
|
+
}
|
|
25
|
+
/** Scrape job creation response */
|
|
26
|
+
export interface ScrapeJobResponse extends JobResponse {
|
|
27
|
+
}
|
|
28
|
+
/** Crawl job creation response */
|
|
29
|
+
export interface CrawlJobResponse extends JobResponse {
|
|
30
|
+
}
|
|
31
|
+
/** Crawl analysis response */
|
|
32
|
+
export interface CrawlAnalysisResponse {
|
|
33
|
+
url: string;
|
|
34
|
+
domain: string;
|
|
35
|
+
recommendedTemplate?: string;
|
|
36
|
+
estimatedPages: number;
|
|
37
|
+
suggestedSettings: {
|
|
38
|
+
maxDepth: number;
|
|
39
|
+
maxPages: number;
|
|
40
|
+
delayMs: number;
|
|
41
|
+
excludePatterns: string[];
|
|
42
|
+
};
|
|
43
|
+
sitemapFound: boolean;
|
|
44
|
+
robotsTxtRules?: string[];
|
|
45
|
+
}
|
|
46
|
+
/** Extract job creation response */
|
|
47
|
+
export interface ExtractJobResponse extends JobResponse {
|
|
48
|
+
}
|
|
49
|
+
/** Dork job creation response */
|
|
50
|
+
export interface DorkJobResponse extends JobResponse {
|
|
51
|
+
}
|
|
52
|
+
/** Deal metrics from a job */
|
|
53
|
+
export interface DealMetrics {
|
|
54
|
+
totalDeals: number;
|
|
55
|
+
avgScore: number;
|
|
56
|
+
highestScore: number;
|
|
57
|
+
legitDeals: number;
|
|
58
|
+
categories: Record<string, number>;
|
|
59
|
+
}
|
|
60
|
+
/** Checkpoint info for resumable jobs */
|
|
61
|
+
export interface CheckpointInfo {
|
|
62
|
+
canResume: boolean;
|
|
63
|
+
lastProcessedUrl?: string;
|
|
64
|
+
urlsProcessed: number;
|
|
65
|
+
urlsRemaining: number;
|
|
66
|
+
savedAt: string;
|
|
67
|
+
}
|
|
68
|
+
/** Job status response */
|
|
69
|
+
export interface JobStatusResponse {
|
|
70
|
+
jobId: string;
|
|
71
|
+
status: JobStatus;
|
|
72
|
+
progress?: number;
|
|
73
|
+
createdAt: string;
|
|
74
|
+
completedAt?: string;
|
|
75
|
+
failedAt?: string;
|
|
76
|
+
priorityQueue?: string;
|
|
77
|
+
result?: unknown;
|
|
78
|
+
error?: string;
|
|
79
|
+
dealMetrics?: DealMetrics;
|
|
80
|
+
checkpoint?: CheckpointInfo;
|
|
81
|
+
}
|
|
82
|
+
/** Job deals response */
|
|
83
|
+
export interface JobDealsResponse {
|
|
84
|
+
jobId: string;
|
|
85
|
+
deals: DealSummary[];
|
|
86
|
+
count: number;
|
|
87
|
+
metrics?: DealMetrics;
|
|
88
|
+
}
|
|
89
|
+
/** Deal summary from status endpoint */
|
|
90
|
+
export interface DealSummary {
|
|
91
|
+
id: string;
|
|
92
|
+
sourceUrl: string;
|
|
93
|
+
productName: string;
|
|
94
|
+
currentPrice: number;
|
|
95
|
+
originalPrice?: number;
|
|
96
|
+
discountPercent?: number;
|
|
97
|
+
dealScore: number;
|
|
98
|
+
category?: string;
|
|
99
|
+
merchant?: string;
|
|
100
|
+
}
|
|
101
|
+
/** Job resume response */
|
|
102
|
+
export interface ResumeJobResponse {
|
|
103
|
+
success: boolean;
|
|
104
|
+
originalJobId: string;
|
|
105
|
+
newJobId: string;
|
|
106
|
+
message: string;
|
|
107
|
+
}
|
|
108
|
+
/** Job metrics response */
|
|
109
|
+
export interface JobMetricsResponse {
|
|
110
|
+
jobId: string;
|
|
111
|
+
status: JobStatus;
|
|
112
|
+
metrics: {
|
|
113
|
+
totalUrls: number;
|
|
114
|
+
successfulUrls: number;
|
|
115
|
+
failedUrls: number;
|
|
116
|
+
successRate: number;
|
|
117
|
+
avgProcessingTime?: number;
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
/** Cancel job response */
|
|
121
|
+
export interface CancelJobResponse {
|
|
122
|
+
success: boolean;
|
|
123
|
+
jobId: string;
|
|
124
|
+
message: string;
|
|
125
|
+
}
|
|
126
|
+
/** Job summary in list */
|
|
127
|
+
export interface JobSummary {
|
|
128
|
+
id: string;
|
|
129
|
+
type: "scrape" | "crawl" | "dork" | "extract";
|
|
130
|
+
status: JobStatus;
|
|
131
|
+
input: Record<string, unknown>;
|
|
132
|
+
dealsFound?: number;
|
|
133
|
+
avgDealScore?: number;
|
|
134
|
+
highestDealScore?: number;
|
|
135
|
+
createdAt: string;
|
|
136
|
+
updatedAt: string;
|
|
137
|
+
completedAt?: string;
|
|
138
|
+
}
|
|
139
|
+
/** Jobs list response */
|
|
140
|
+
export interface ListJobsResponse {
|
|
141
|
+
data: JobSummary[];
|
|
142
|
+
pagination: PaginationInfo;
|
|
143
|
+
}
|
|
144
|
+
/** Product info in deal */
|
|
145
|
+
export interface ProductInfo {
|
|
146
|
+
name: string;
|
|
147
|
+
brand?: string;
|
|
148
|
+
category?: string;
|
|
149
|
+
description?: string;
|
|
150
|
+
imageUrl?: string;
|
|
151
|
+
}
|
|
152
|
+
/** Pricing info in deal */
|
|
153
|
+
export interface PricingInfo {
|
|
154
|
+
currentPrice: number;
|
|
155
|
+
originalPrice?: number;
|
|
156
|
+
discountPercent?: number;
|
|
157
|
+
currency: string;
|
|
158
|
+
}
|
|
159
|
+
/** Deal in list */
|
|
160
|
+
export interface DealItem {
|
|
161
|
+
id: string;
|
|
162
|
+
jobId: string;
|
|
163
|
+
sourceUrl: string;
|
|
164
|
+
product: ProductInfo;
|
|
165
|
+
pricing: PricingInfo;
|
|
166
|
+
dealScore: number;
|
|
167
|
+
urgencyLevel?: string;
|
|
168
|
+
isLegitDeal: boolean;
|
|
169
|
+
merchant?: string;
|
|
170
|
+
affiliateEligible?: boolean;
|
|
171
|
+
syncedToDealup: boolean;
|
|
172
|
+
dealupDealId?: string;
|
|
173
|
+
createdAt: string;
|
|
174
|
+
}
|
|
175
|
+
/** Deals list response */
|
|
176
|
+
export interface ListDealsResponse {
|
|
177
|
+
data: DealItem[];
|
|
178
|
+
pagination: PaginationInfo;
|
|
179
|
+
}
|
|
180
|
+
/** Full deal details */
|
|
181
|
+
export interface DealDetails extends DealItem {
|
|
182
|
+
rawSignals?: unknown;
|
|
183
|
+
aiExtraction?: unknown;
|
|
184
|
+
updatedAt: string;
|
|
185
|
+
}
|
|
186
|
+
/** Client stats response */
|
|
187
|
+
export interface ClientStatsResponse {
|
|
188
|
+
period: string;
|
|
189
|
+
totals: {
|
|
190
|
+
jobs: number;
|
|
191
|
+
deals: number;
|
|
192
|
+
scrapes: number;
|
|
193
|
+
crawls: number;
|
|
194
|
+
dorks: number;
|
|
195
|
+
};
|
|
196
|
+
performance: {
|
|
197
|
+
avgSuccessRate: number;
|
|
198
|
+
avgDealScore: number;
|
|
199
|
+
topCategories: Array<{
|
|
200
|
+
category: string;
|
|
201
|
+
count: number;
|
|
202
|
+
}>;
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
/** Webhook in list */
|
|
206
|
+
export interface WebhookItem {
|
|
207
|
+
id: string;
|
|
208
|
+
event: string;
|
|
209
|
+
url: string;
|
|
210
|
+
minDealScore: number;
|
|
211
|
+
categories?: string[];
|
|
212
|
+
active: boolean;
|
|
213
|
+
createdAt: string;
|
|
214
|
+
updatedAt: string;
|
|
215
|
+
lastTriggeredAt?: string;
|
|
216
|
+
triggerCount: number;
|
|
217
|
+
failureCount: number;
|
|
218
|
+
}
|
|
219
|
+
/** Create webhook response */
|
|
220
|
+
export interface CreateWebhookResponse {
|
|
221
|
+
success: boolean;
|
|
222
|
+
webhookId: string;
|
|
223
|
+
event: string;
|
|
224
|
+
url: string;
|
|
225
|
+
minDealScore: number;
|
|
226
|
+
active: boolean;
|
|
227
|
+
}
|
|
228
|
+
/** List webhooks response */
|
|
229
|
+
export interface ListWebhooksResponse {
|
|
230
|
+
webhooks: WebhookItem[];
|
|
231
|
+
count: number;
|
|
232
|
+
}
|
|
233
|
+
/** Update webhook response */
|
|
234
|
+
export interface UpdateWebhookResponse {
|
|
235
|
+
success: boolean;
|
|
236
|
+
webhook: WebhookItem;
|
|
237
|
+
}
|
|
238
|
+
/** Delete webhook response */
|
|
239
|
+
export interface DeleteWebhookResponse {
|
|
240
|
+
success: boolean;
|
|
241
|
+
webhookId: string;
|
|
242
|
+
message: string;
|
|
243
|
+
}
|
|
244
|
+
/** Test webhook response */
|
|
245
|
+
export interface TestWebhookResponse {
|
|
246
|
+
success: boolean;
|
|
247
|
+
webhookId: string;
|
|
248
|
+
delivered: boolean;
|
|
249
|
+
statusCode?: number;
|
|
250
|
+
responseTime?: number;
|
|
251
|
+
error?: string;
|
|
252
|
+
}
|
|
253
|
+
/** API key info (safe, without secret) */
|
|
254
|
+
export interface ApiKeyInfo {
|
|
255
|
+
id: string;
|
|
256
|
+
name: string;
|
|
257
|
+
prefix: string;
|
|
258
|
+
scopes: string[];
|
|
259
|
+
isActive: boolean;
|
|
260
|
+
expiresAt?: string;
|
|
261
|
+
lastUsedAt?: string;
|
|
262
|
+
createdAt: string;
|
|
263
|
+
usageCount: number;
|
|
264
|
+
ipAllowlist?: string[];
|
|
265
|
+
}
|
|
266
|
+
/** Created API key (includes secret - only shown once) */
|
|
267
|
+
export interface CreatedApiKey extends ApiKeyInfo {
|
|
268
|
+
/** The full API key - only returned on creation, never stored */
|
|
269
|
+
key: string;
|
|
270
|
+
}
|
|
271
|
+
/** List keys response */
|
|
272
|
+
export interface ListKeysResponse {
|
|
273
|
+
keys: ApiKeyInfo[];
|
|
274
|
+
count: number;
|
|
275
|
+
activeCount: number;
|
|
276
|
+
}
|
|
277
|
+
/** Create key response */
|
|
278
|
+
export interface CreateKeyResponse extends CreatedApiKey {
|
|
279
|
+
warning: string;
|
|
280
|
+
}
|
|
281
|
+
/** Rotate key response */
|
|
282
|
+
export interface RotateKeyResponse {
|
|
283
|
+
oldKeyId: string;
|
|
284
|
+
oldKeyRevoked: boolean;
|
|
285
|
+
newKey: CreateKeyResponse;
|
|
286
|
+
}
|
|
287
|
+
/** Delete key response */
|
|
288
|
+
export interface DeleteKeyResponse {
|
|
289
|
+
success: boolean;
|
|
290
|
+
keyId: string;
|
|
291
|
+
message: string;
|
|
292
|
+
}
|
|
293
|
+
/** Key stats response */
|
|
294
|
+
export interface KeyStatsResponse {
|
|
295
|
+
keyId: string;
|
|
296
|
+
keyName: string;
|
|
297
|
+
period: string;
|
|
298
|
+
stats: {
|
|
299
|
+
totalRequests: number;
|
|
300
|
+
successfulRequests: number;
|
|
301
|
+
failedRequests: number;
|
|
302
|
+
byEndpoint: Record<string, number>;
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
/** Usage stats */
|
|
306
|
+
export interface UsageStats {
|
|
307
|
+
scrapes: {
|
|
308
|
+
used: number;
|
|
309
|
+
limit: number;
|
|
310
|
+
};
|
|
311
|
+
crawls: {
|
|
312
|
+
used: number;
|
|
313
|
+
limit: number;
|
|
314
|
+
};
|
|
315
|
+
dorks: {
|
|
316
|
+
used: number;
|
|
317
|
+
limit: number;
|
|
318
|
+
};
|
|
319
|
+
period: string;
|
|
320
|
+
resetAt: string;
|
|
321
|
+
}
|
|
322
|
+
/** Client preferences */
|
|
323
|
+
export interface ClientPreferences {
|
|
324
|
+
preferredCategories?: string[];
|
|
325
|
+
minDealScore?: number;
|
|
326
|
+
autoSync?: boolean;
|
|
327
|
+
webhookEnabled?: boolean;
|
|
328
|
+
}
|
|
329
|
+
/** Account info response */
|
|
330
|
+
export interface AccountInfoResponse {
|
|
331
|
+
id: string;
|
|
332
|
+
name: string;
|
|
333
|
+
tier: "free" | "pro" | "enterprise";
|
|
334
|
+
usage: UsageStats;
|
|
335
|
+
dealMetrics?: DealMetrics;
|
|
336
|
+
preferences: ClientPreferences;
|
|
337
|
+
}
|
|
338
|
+
/** Account metrics response */
|
|
339
|
+
export interface AccountMetricsResponse {
|
|
340
|
+
dealMetrics: DealMetrics;
|
|
341
|
+
categoryPerformance: Array<{
|
|
342
|
+
category: string;
|
|
343
|
+
totalDeals: number;
|
|
344
|
+
avgScore: number;
|
|
345
|
+
syncRate: number;
|
|
346
|
+
}>;
|
|
347
|
+
}
|
|
348
|
+
/** DealUp sync metrics */
|
|
349
|
+
export interface DealUpMetrics {
|
|
350
|
+
totalSynced: number;
|
|
351
|
+
pendingSync: number;
|
|
352
|
+
syncErrors: number;
|
|
353
|
+
lastSyncAt?: string;
|
|
354
|
+
clicksGenerated: number;
|
|
355
|
+
revenue?: number;
|
|
356
|
+
}
|
|
357
|
+
/** DealUp metrics response */
|
|
358
|
+
export interface DealUpMetricsResponse {
|
|
359
|
+
sync: DealUpMetrics;
|
|
360
|
+
tier: string;
|
|
361
|
+
}
|
|
362
|
+
/** Crawl recommendation */
|
|
363
|
+
export interface CrawlRecommendation {
|
|
364
|
+
url: string;
|
|
365
|
+
domain: string;
|
|
366
|
+
reason: string;
|
|
367
|
+
estimatedDeals: number;
|
|
368
|
+
confidence: number;
|
|
369
|
+
}
|
|
370
|
+
/** Recommendations response */
|
|
371
|
+
export interface RecommendationsResponse {
|
|
372
|
+
recommendations: CrawlRecommendation[];
|
|
373
|
+
count: number;
|
|
374
|
+
}
|
|
375
|
+
/** Preferences response */
|
|
376
|
+
export interface PreferencesResponse {
|
|
377
|
+
preferences: ClientPreferences;
|
|
378
|
+
}
|
|
379
|
+
/** Update preferences response */
|
|
380
|
+
export interface UpdatePreferencesResponse {
|
|
381
|
+
success: boolean;
|
|
382
|
+
preferences: ClientPreferences;
|
|
383
|
+
}
|
|
384
|
+
export type { JobStatus, RateLimitInfo, PaginatedResponse };
|
|
385
|
+
//# sourceMappingURL=responses.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../../../src/types/responses.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responses.js","sourceRoot":"","sources":["../../../../src/types/responses.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Polling Utilities
|
|
3
|
+
* Helpers for waiting on async job completion
|
|
4
|
+
*/
|
|
5
|
+
import type { RequestContext } from "../types/config";
|
|
6
|
+
import type { JobStatusResponse } from "../types/responses";
|
|
7
|
+
/** Options for waiting on a job */
|
|
8
|
+
export interface WaitOptions {
|
|
9
|
+
/** Polling interval in milliseconds (default: 2000) */
|
|
10
|
+
pollInterval?: number;
|
|
11
|
+
/** Maximum time to wait in milliseconds (default: 300000 = 5 minutes) */
|
|
12
|
+
timeout?: number;
|
|
13
|
+
/** Callback on each poll */
|
|
14
|
+
onProgress?: (status: JobStatusResponse) => void;
|
|
15
|
+
/** Callback on status change */
|
|
16
|
+
onStatusChange?: (newStatus: string, oldStatus: string) => void;
|
|
17
|
+
/** AbortSignal for cancellation */
|
|
18
|
+
signal?: AbortSignal;
|
|
19
|
+
}
|
|
20
|
+
/** Result of waiting for a job */
|
|
21
|
+
export interface WaitResult<T = unknown> {
|
|
22
|
+
/** Job ID */
|
|
23
|
+
jobId: string;
|
|
24
|
+
/** Final status */
|
|
25
|
+
status: "completed" | "failed";
|
|
26
|
+
/** Result data (if completed) */
|
|
27
|
+
result?: T;
|
|
28
|
+
/** Error message (if failed) */
|
|
29
|
+
error?: string;
|
|
30
|
+
/** Total time waited in ms */
|
|
31
|
+
waitTime: number;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Wait for a job to complete
|
|
35
|
+
* Polls the status endpoint until the job is done
|
|
36
|
+
*/
|
|
37
|
+
export declare function waitForResult<T = unknown>(ctx: RequestContext, jobId: string, options?: WaitOptions): Promise<WaitResult<T>>;
|
|
38
|
+
/**
|
|
39
|
+
* Wait for multiple jobs to complete
|
|
40
|
+
* Returns when all jobs are done (either completed or failed)
|
|
41
|
+
*/
|
|
42
|
+
export declare function waitForAll<T = unknown>(ctx: RequestContext, jobIds: string[], options?: WaitOptions): Promise<WaitResult<T>[]>;
|
|
43
|
+
/**
|
|
44
|
+
* Wait for any job to complete
|
|
45
|
+
* Returns as soon as one job finishes
|
|
46
|
+
*/
|
|
47
|
+
export declare function waitForAny<T = unknown>(ctx: RequestContext, jobIds: string[], options?: WaitOptions): Promise<WaitResult<T>>;
|
|
48
|
+
/**
|
|
49
|
+
* Poll with custom condition
|
|
50
|
+
* Generic polling utility
|
|
51
|
+
*/
|
|
52
|
+
export declare function pollUntil<T>(fetchFn: () => Promise<T>, conditionFn: (data: T) => boolean, options?: {
|
|
53
|
+
pollInterval?: number;
|
|
54
|
+
timeout?: number;
|
|
55
|
+
signal?: AbortSignal;
|
|
56
|
+
}): Promise<T>;
|
|
57
|
+
//# sourceMappingURL=polling.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"polling.d.ts","sourceRoot":"","sources":["../../../../src/utils/polling.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAI5D,mCAAmC;AACnC,MAAM,WAAW,WAAW;IAC1B,uDAAuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yEAAyE;IACzE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,CAAC;IACjD,gCAAgC;IAChC,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAChE,mCAAmC;IACnC,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,kCAAkC;AAClC,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,OAAO;IACrC,aAAa;IACb,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB;IACnB,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC/B,iCAAiC;IACjC,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,CAAC,GAAG,OAAO,EAC7C,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAwExB;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,CAAC,GAAG,OAAO,EAC1C,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAG1B;AAED;;;GAGG;AACH,wBAAsB,UAAU,CAAC,CAAC,GAAG,OAAO,EAC1C,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAGxB;AAED;;;GAGG;AACH,wBAAsB,SAAS,CAAC,CAAC,EAC/B,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACzB,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,EACjC,OAAO,GAAE;IACP,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,WAAW,CAAC;CACjB,GACL,OAAO,CAAC,CAAC,CAAC,CAqBZ"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Polling Utilities
|
|
3
|
+
* Helpers for waiting on async job completion
|
|
4
|
+
*/
|
|
5
|
+
import { DealCrawlError, ERROR_CODES } from "../error";
|
|
6
|
+
import { get } from "./request";
|
|
7
|
+
/**
|
|
8
|
+
* Wait for a job to complete
|
|
9
|
+
* Polls the status endpoint until the job is done
|
|
10
|
+
*/
|
|
11
|
+
export async function waitForResult(ctx, jobId, options = {}) {
|
|
12
|
+
const { pollInterval = 2000, timeout = 300000, // 5 minutes
|
|
13
|
+
onProgress, onStatusChange, signal, } = options;
|
|
14
|
+
const startTime = Date.now();
|
|
15
|
+
let lastStatus = null;
|
|
16
|
+
while (true) {
|
|
17
|
+
// Check for abort
|
|
18
|
+
if (signal?.aborted) {
|
|
19
|
+
throw new DealCrawlError({
|
|
20
|
+
code: ERROR_CODES.JOB_TIMEOUT,
|
|
21
|
+
message: "Wait cancelled by user",
|
|
22
|
+
statusCode: 0,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
// Check timeout
|
|
26
|
+
const elapsed = Date.now() - startTime;
|
|
27
|
+
if (elapsed >= timeout) {
|
|
28
|
+
throw new DealCrawlError({
|
|
29
|
+
code: ERROR_CODES.JOB_TIMEOUT,
|
|
30
|
+
message: `Job did not complete within ${timeout}ms`,
|
|
31
|
+
statusCode: 408,
|
|
32
|
+
details: { jobId, elapsed },
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
// Fetch status
|
|
36
|
+
const { data: status } = await get(ctx, `/v1/status/${jobId}`);
|
|
37
|
+
// Call progress callback
|
|
38
|
+
if (onProgress) {
|
|
39
|
+
onProgress(status);
|
|
40
|
+
}
|
|
41
|
+
// Call status change callback
|
|
42
|
+
if (onStatusChange && lastStatus !== null && lastStatus !== status.status) {
|
|
43
|
+
onStatusChange(status.status, lastStatus);
|
|
44
|
+
}
|
|
45
|
+
lastStatus = status.status;
|
|
46
|
+
// Check if done
|
|
47
|
+
if (status.status === "completed") {
|
|
48
|
+
return {
|
|
49
|
+
jobId,
|
|
50
|
+
status: "completed",
|
|
51
|
+
result: status.result,
|
|
52
|
+
waitTime: Date.now() - startTime,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
if (status.status === "failed") {
|
|
56
|
+
return {
|
|
57
|
+
jobId,
|
|
58
|
+
status: "failed",
|
|
59
|
+
error: status.error,
|
|
60
|
+
waitTime: Date.now() - startTime,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
// Wait before next poll
|
|
64
|
+
await sleep(pollInterval);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Wait for multiple jobs to complete
|
|
69
|
+
* Returns when all jobs are done (either completed or failed)
|
|
70
|
+
*/
|
|
71
|
+
export async function waitForAll(ctx, jobIds, options = {}) {
|
|
72
|
+
const promises = jobIds.map((jobId) => waitForResult(ctx, jobId, options));
|
|
73
|
+
return Promise.all(promises);
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Wait for any job to complete
|
|
77
|
+
* Returns as soon as one job finishes
|
|
78
|
+
*/
|
|
79
|
+
export async function waitForAny(ctx, jobIds, options = {}) {
|
|
80
|
+
const promises = jobIds.map((jobId) => waitForResult(ctx, jobId, options));
|
|
81
|
+
return Promise.race(promises);
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Poll with custom condition
|
|
85
|
+
* Generic polling utility
|
|
86
|
+
*/
|
|
87
|
+
export async function pollUntil(fetchFn, conditionFn, options = {}) {
|
|
88
|
+
const { pollInterval = 2000, timeout = 300000, signal } = options;
|
|
89
|
+
const startTime = Date.now();
|
|
90
|
+
while (true) {
|
|
91
|
+
if (signal?.aborted) {
|
|
92
|
+
throw new Error("Polling cancelled");
|
|
93
|
+
}
|
|
94
|
+
if (Date.now() - startTime >= timeout) {
|
|
95
|
+
throw new Error(`Polling timeout after ${timeout}ms`);
|
|
96
|
+
}
|
|
97
|
+
const data = await fetchFn();
|
|
98
|
+
if (conditionFn(data)) {
|
|
99
|
+
return data;
|
|
100
|
+
}
|
|
101
|
+
await sleep(pollInterval);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Sleep helper
|
|
106
|
+
*/
|
|
107
|
+
function sleep(ms) {
|
|
108
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=polling.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"polling.js","sourceRoot":"","sources":["../../../../src/utils/polling.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { RateLimitInfo } from "@dealcrawl/shared";
|
|
2
|
+
import type { RequestContext } from "../types/config";
|
|
3
|
+
/**
|
|
4
|
+
* Request options for the HTTP helper
|
|
5
|
+
*/
|
|
6
|
+
export interface RequestOptions {
|
|
7
|
+
/** HTTP method */
|
|
8
|
+
method?: "GET" | "POST" | "PATCH" | "DELETE";
|
|
9
|
+
/** Request body (will be JSON stringified) */
|
|
10
|
+
body?: unknown;
|
|
11
|
+
/** Query parameters */
|
|
12
|
+
query?: Record<string, string | number | boolean | undefined>;
|
|
13
|
+
/** Request timeout in milliseconds (overrides default) */
|
|
14
|
+
timeout?: number;
|
|
15
|
+
/** AbortSignal for request cancellation */
|
|
16
|
+
signal?: AbortSignal;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Response wrapper with rate limit info
|
|
20
|
+
*/
|
|
21
|
+
export interface RequestResult<T> {
|
|
22
|
+
/** Response data */
|
|
23
|
+
data: T;
|
|
24
|
+
/** Rate limit information from headers */
|
|
25
|
+
rateLimit: RateLimitInfo;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Make an HTTP request with authentication, error handling, and retries
|
|
29
|
+
*/
|
|
30
|
+
export declare function request<T>(ctx: RequestContext, path: string, options?: RequestOptions): Promise<RequestResult<T>>;
|
|
31
|
+
/**
|
|
32
|
+
* Convenience method for GET requests
|
|
33
|
+
*/
|
|
34
|
+
export declare function get<T>(ctx: RequestContext, path: string, query?: Record<string, string | number | boolean | undefined>): Promise<RequestResult<T>>;
|
|
35
|
+
/**
|
|
36
|
+
* Convenience method for POST requests
|
|
37
|
+
*/
|
|
38
|
+
export declare function post<T>(ctx: RequestContext, path: string, body?: unknown): Promise<RequestResult<T>>;
|
|
39
|
+
/**
|
|
40
|
+
* Convenience method for PATCH requests
|
|
41
|
+
*/
|
|
42
|
+
export declare function patch<T>(ctx: RequestContext, path: string, body?: unknown): Promise<RequestResult<T>>;
|
|
43
|
+
/**
|
|
44
|
+
* Convenience method for DELETE requests
|
|
45
|
+
*/
|
|
46
|
+
export declare function del<T>(ctx: RequestContext, path: string, body?: unknown): Promise<RequestResult<T>>;
|
|
47
|
+
//# sourceMappingURL=request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../../src/utils/request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,kBAAkB;IAClB,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IAE7C,8CAA8C;IAC9C,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IAE9D,0DAA0D;IAC1D,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC;IAC9B,oBAAoB;IACpB,IAAI,EAAE,CAAC,CAAC;IAER,0CAA0C;IAC1C,SAAS,EAAE,aAAa,CAAC;CAC1B;AAoCD;;GAEG;AACH,wBAAsB,OAAO,CAAC,CAAC,EAC7B,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAmI3B;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,CAAC,EACnB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GAC5D,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAE3B;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,CAAC,EACpB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,OAAO,GACb,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAE3B;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,CAAC,EACrB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,OAAO,GACb,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAE3B;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,CAAC,EACnB,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,OAAO,GACb,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAE3B"}
|