@rankwrangler/http-client 0.11.0 → 0.13.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 +2 -3
- package/dist/app-router.d.ts +78 -100
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -48,8 +48,7 @@ screen compact Products with market metrics. `keyword.results` preserves dated e
|
|
|
48
48
|
evidence and can wait for collection under the existing 24-hour reuse policy.
|
|
49
49
|
|
|
50
50
|
Product `get` returns the current Product. `getMany` returns basic listing data, and `history`
|
|
51
|
-
returns compact rank and price series.
|
|
52
|
-
remain separate from observed search results. Retryable `TIMEOUT` errors preserve retry hints.
|
|
51
|
+
returns compact rank and price series. Keyword `get` and `search` read the stored keyword directory, separately from observed search results. Retryable `TIMEOUT` errors preserve retry hints.
|
|
53
52
|
|
|
54
53
|
## Types
|
|
55
54
|
|
|
@@ -58,7 +57,7 @@ import type { PublicRouterInputs, PublicRouterOutputs } from '@rankwrangler/http
|
|
|
58
57
|
|
|
59
58
|
type ProductGetInput = PublicRouterInputs['product']['get'];
|
|
60
59
|
type ProductSearchOutput = PublicRouterOutputs['product']['search'];
|
|
61
|
-
type
|
|
60
|
+
type KeywordSearchOutput = PublicRouterOutputs['keyword']['search'];
|
|
62
61
|
```
|
|
63
62
|
|
|
64
63
|
When the public router changes, regenerate and build the declarations:
|
package/dist/app-router.d.ts
CHANGED
|
@@ -198,82 +198,17 @@ export interface ContextRequest {
|
|
|
198
198
|
host?: string;
|
|
199
199
|
};
|
|
200
200
|
}
|
|
201
|
-
declare const
|
|
202
|
-
"
|
|
203
|
-
"
|
|
201
|
+
declare const keywordStages: readonly [
|
|
202
|
+
"graduated",
|
|
203
|
+
"trial",
|
|
204
|
+
"dropped",
|
|
205
|
+
"untracked"
|
|
204
206
|
];
|
|
205
|
-
declare const
|
|
206
|
-
"
|
|
207
|
-
"
|
|
207
|
+
declare const keywordFreshness: readonly [
|
|
208
|
+
"live",
|
|
209
|
+
"needsSync",
|
|
210
|
+
"syncing"
|
|
208
211
|
];
|
|
209
|
-
export type TopSearchTermsReportPeriod = (typeof TOP_SEARCH_TERMS_REPORT_PERIODS)[number];
|
|
210
|
-
export type TopSearchTermsRefreshTrigger = (typeof TOP_SEARCH_TERMS_REFRESH_TRIGGERS)[number];
|
|
211
|
-
export type SearchTermsTrendDelta = {
|
|
212
|
-
rankDelta: number | null;
|
|
213
|
-
clickShareDelta: number | null;
|
|
214
|
-
conversionShareDelta: number | null;
|
|
215
|
-
};
|
|
216
|
-
export type SearchTermsTrendDeltas = {
|
|
217
|
-
d1: SearchTermsTrendDelta;
|
|
218
|
-
d7: SearchTermsTrendDelta;
|
|
219
|
-
d30: SearchTermsTrendDelta;
|
|
220
|
-
};
|
|
221
|
-
export interface KeywordEvidence {
|
|
222
|
-
searchFrequencyRank: number;
|
|
223
|
-
clickShareTop3: number;
|
|
224
|
-
conversionShareTop3: number;
|
|
225
|
-
topRowsCount: number;
|
|
226
|
-
isMerchRelevant: boolean;
|
|
227
|
-
merchReason: string;
|
|
228
|
-
}
|
|
229
|
-
export interface KeywordCurrent {
|
|
230
|
-
keyword: string;
|
|
231
|
-
marketplaceId: string;
|
|
232
|
-
reportPeriod: TopSearchTermsReportPeriod;
|
|
233
|
-
dataStartDate: string;
|
|
234
|
-
dataEndDate: string;
|
|
235
|
-
observedDate: string;
|
|
236
|
-
fetchedAt: string;
|
|
237
|
-
trigger: TopSearchTermsRefreshTrigger;
|
|
238
|
-
evidence: KeywordEvidence;
|
|
239
|
-
}
|
|
240
|
-
export interface KeywordSearchItem extends KeywordEvidence {
|
|
241
|
-
keyword: string;
|
|
242
|
-
observedDate: string;
|
|
243
|
-
trigger: TopSearchTermsRefreshTrigger;
|
|
244
|
-
}
|
|
245
|
-
export interface KeywordSearchSummary {
|
|
246
|
-
marketplaceId: string;
|
|
247
|
-
reportPeriod: TopSearchTermsReportPeriod;
|
|
248
|
-
dataStartDate: string | null;
|
|
249
|
-
dataEndDate: string | null;
|
|
250
|
-
observedDate: string | null;
|
|
251
|
-
fetchedAt: string | null;
|
|
252
|
-
totalFiltered: number;
|
|
253
|
-
}
|
|
254
|
-
export interface KeywordSearchResponse {
|
|
255
|
-
status: "ready" | "empty";
|
|
256
|
-
items: KeywordSearchItem[];
|
|
257
|
-
nextCursor: number | null;
|
|
258
|
-
summary: KeywordSearchSummary;
|
|
259
|
-
}
|
|
260
|
-
export interface KeywordHistoryPoint {
|
|
261
|
-
observedDate: string;
|
|
262
|
-
searchFrequencyRank: number;
|
|
263
|
-
clickShareTop3: number;
|
|
264
|
-
conversionShareTop3: number;
|
|
265
|
-
trigger: TopSearchTermsRefreshTrigger;
|
|
266
|
-
}
|
|
267
|
-
export interface KeywordHistoryResponse {
|
|
268
|
-
keyword: string;
|
|
269
|
-
marketplaceId: string;
|
|
270
|
-
reportPeriod: TopSearchTermsReportPeriod;
|
|
271
|
-
rangeDays: number;
|
|
272
|
-
status: "ready" | "empty";
|
|
273
|
-
latestObservedDate: string | null;
|
|
274
|
-
points: KeywordHistoryPoint[];
|
|
275
|
-
deltas: SearchTermsTrendDeltas;
|
|
276
|
-
}
|
|
277
212
|
export type PublicCutoutThumbnail = {
|
|
278
213
|
status: "available";
|
|
279
214
|
url: string;
|
|
@@ -505,15 +440,27 @@ export declare const publicAppRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
505
440
|
get: import("@trpc/server").TRPCQueryProcedure<{
|
|
506
441
|
input: {
|
|
507
442
|
keyword: string;
|
|
508
|
-
dataEndDate?: string | undefined;
|
|
509
|
-
dataStartDate?: string | undefined;
|
|
510
|
-
marketplaceId?: "ATVPDKIKX0DER" | undefined;
|
|
511
|
-
reportPeriod?: "DAY" | "WEEK" | undefined;
|
|
512
443
|
};
|
|
513
444
|
output: {
|
|
514
445
|
keyword: string;
|
|
515
|
-
|
|
516
|
-
|
|
446
|
+
data: {
|
|
447
|
+
createdAt: string;
|
|
448
|
+
lastCheckedAt: string | null;
|
|
449
|
+
nextCheckAt: string | null;
|
|
450
|
+
id: string;
|
|
451
|
+
queryId: string;
|
|
452
|
+
term: string;
|
|
453
|
+
stage: (typeof keywordStages)[number];
|
|
454
|
+
freshness: (typeof keywordFreshness)[number] | null;
|
|
455
|
+
retryScheduled: boolean;
|
|
456
|
+
heat: string;
|
|
457
|
+
score: number | null;
|
|
458
|
+
searchFrequencyRank: number | null;
|
|
459
|
+
sources: string[];
|
|
460
|
+
products: number;
|
|
461
|
+
merch: number;
|
|
462
|
+
intervalDays: number | null;
|
|
463
|
+
};
|
|
517
464
|
};
|
|
518
465
|
meta: object;
|
|
519
466
|
}>;
|
|
@@ -525,30 +472,61 @@ export declare const publicAppRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
525
472
|
output: KeywordResults;
|
|
526
473
|
meta: object;
|
|
527
474
|
}>;
|
|
528
|
-
history: import("@trpc/server").TRPCQueryProcedure<{
|
|
529
|
-
input: {
|
|
530
|
-
keyword: string;
|
|
531
|
-
marketplaceId?: "ATVPDKIKX0DER" | undefined;
|
|
532
|
-
rangeDays?: number | undefined;
|
|
533
|
-
reportPeriod?: "DAY" | "WEEK" | undefined;
|
|
534
|
-
};
|
|
535
|
-
output: KeywordHistoryResponse;
|
|
536
|
-
meta: object;
|
|
537
|
-
}>;
|
|
538
475
|
search: import("@trpc/server").TRPCQueryProcedure<{
|
|
539
476
|
input: {
|
|
540
477
|
text: string;
|
|
541
|
-
|
|
478
|
+
freshness?: "live" | "needsSync" | "syncing" | "all" | undefined;
|
|
479
|
+
sort?: "work" | "newest" | undefined;
|
|
480
|
+
stage?: "trial" | "graduated" | "dropped" | "untracked" | "all" | undefined;
|
|
542
481
|
limit?: number | undefined;
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
482
|
+
heat?: "unrated" | "hot" | "warm" | "cold" | "all" | undefined;
|
|
483
|
+
cursor?: {
|
|
484
|
+
key: [
|
|
485
|
+
number,
|
|
486
|
+
number,
|
|
487
|
+
number,
|
|
488
|
+
number,
|
|
489
|
+
number,
|
|
490
|
+
number,
|
|
491
|
+
string
|
|
492
|
+
];
|
|
493
|
+
asOf: string;
|
|
494
|
+
sort: "work" | "newest";
|
|
495
|
+
} | undefined;
|
|
496
|
+
};
|
|
497
|
+
output: {
|
|
498
|
+
items: {
|
|
499
|
+
createdAt: string;
|
|
500
|
+
lastCheckedAt: string | null;
|
|
501
|
+
nextCheckAt: string | null;
|
|
502
|
+
id: string;
|
|
503
|
+
queryId: string;
|
|
504
|
+
term: string;
|
|
505
|
+
stage: (typeof keywordStages)[number];
|
|
506
|
+
freshness: (typeof keywordFreshness)[number] | null;
|
|
507
|
+
retryScheduled: boolean;
|
|
508
|
+
heat: string;
|
|
509
|
+
score: number | null;
|
|
510
|
+
searchFrequencyRank: number | null;
|
|
511
|
+
sources: string[];
|
|
512
|
+
products: number;
|
|
513
|
+
merch: number;
|
|
514
|
+
intervalDays: number | null;
|
|
515
|
+
}[];
|
|
516
|
+
nextCursor: {
|
|
517
|
+
sort: "fresh" | "work" | "newest" | "score" | "medianBsr" | "merch";
|
|
518
|
+
asOf: string;
|
|
519
|
+
key: [
|
|
520
|
+
number,
|
|
521
|
+
number,
|
|
522
|
+
number,
|
|
523
|
+
number,
|
|
524
|
+
number,
|
|
525
|
+
number,
|
|
526
|
+
string
|
|
527
|
+
];
|
|
528
|
+
} | null;
|
|
550
529
|
};
|
|
551
|
-
output: KeywordSearchResponse;
|
|
552
530
|
meta: object;
|
|
553
531
|
}>;
|
|
554
532
|
}>>;
|
|
@@ -599,7 +577,7 @@ export declare const publicAppRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
599
577
|
input: {
|
|
600
578
|
marketplaceId: string;
|
|
601
579
|
asin: string;
|
|
602
|
-
bucket?: "
|
|
580
|
+
bucket?: "week" | "day" | "auto" | "month" | undefined;
|
|
603
581
|
days?: unknown;
|
|
604
582
|
endAt?: unknown;
|
|
605
583
|
limit?: unknown;
|