@profplum700/etsy-v3-api-client 3.0.1 → 4.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/CHANGELOG.md +14 -0
- package/README.md +43 -11
- package/dist/browser.esm.js +498 -121
- package/dist/browser.esm.js.map +1 -1
- package/dist/browser.umd.js +1 -1
- package/dist/browser.umd.js.map +1 -1
- package/dist/index.cjs +498 -121
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +53 -18
- package/dist/index.esm.js +498 -121
- package/dist/index.esm.js.map +1 -1
- package/dist/node.cjs +498 -121
- package/dist/node.cjs.map +1 -1
- package/dist/node.esm.js +498 -121
- package/dist/node.esm.js.map +1 -1
- package/package.json +38 -39
- package/dist/.tsbuildinfo +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -4,7 +4,9 @@ interface EtsyClientConfig {
|
|
|
4
4
|
accessToken: string;
|
|
5
5
|
refreshToken: string;
|
|
6
6
|
expiresAt: Date;
|
|
7
|
-
refreshSave?:
|
|
7
|
+
refreshSave?: TokenRefreshCallback;
|
|
8
|
+
refreshSaveAsync?: TokenRefreshCallbackAsync;
|
|
9
|
+
refreshClearAsync?: TokenRefreshClearCallbackAsync;
|
|
8
10
|
baseUrl?: string;
|
|
9
11
|
rateLimiting?: {
|
|
10
12
|
enabled: boolean;
|
|
@@ -46,6 +48,8 @@ interface EtsyTokenResponse {
|
|
|
46
48
|
scope: string;
|
|
47
49
|
}
|
|
48
50
|
type TokenRefreshCallback = (_accessToken: string, _refreshToken: string, _expiresAt: Date) => void;
|
|
51
|
+
type TokenRefreshCallbackAsync = (_accessToken: string, _refreshToken: string, _expiresAt: Date) => void | Promise<void>;
|
|
52
|
+
type TokenRefreshClearCallbackAsync = () => void | Promise<void>;
|
|
49
53
|
type TokenRotationCallback = (oldTokens: EtsyTokens, newTokens: EtsyTokens) => void | Promise<void>;
|
|
50
54
|
interface TokenStorage {
|
|
51
55
|
save(_tokens: EtsyTokens): Promise<void>;
|
|
@@ -906,27 +910,25 @@ interface UpdateListingParams {
|
|
|
906
910
|
}
|
|
907
911
|
interface UpdateListingInventoryParams {
|
|
908
912
|
products: Array<{
|
|
909
|
-
sku?: string;
|
|
910
|
-
property_values
|
|
913
|
+
sku?: string | null;
|
|
914
|
+
property_values: Array<{
|
|
911
915
|
property_id: number;
|
|
912
916
|
property_name?: string;
|
|
913
|
-
scale_id?: number;
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
values?: string[];
|
|
917
|
+
scale_id?: number | null;
|
|
918
|
+
value_ids: number[];
|
|
919
|
+
values: string[];
|
|
917
920
|
}>;
|
|
918
921
|
offerings: Array<{
|
|
919
|
-
offering_id?: number;
|
|
920
922
|
price: number;
|
|
921
923
|
quantity: number;
|
|
922
924
|
is_enabled: boolean;
|
|
923
|
-
readiness_state_id
|
|
925
|
+
readiness_state_id: number | null;
|
|
924
926
|
}>;
|
|
925
927
|
}>;
|
|
926
928
|
price_on_property?: number[];
|
|
927
929
|
quantity_on_property?: number[];
|
|
928
930
|
sku_on_property?: number[];
|
|
929
|
-
readiness_state_on_property?: number[];
|
|
931
|
+
readiness_state_on_property?: number[] | null;
|
|
930
932
|
}
|
|
931
933
|
interface EtsyListingProperty {
|
|
932
934
|
property_id: number;
|
|
@@ -1333,10 +1335,13 @@ declare class EtsyClient {
|
|
|
1333
1335
|
private logger;
|
|
1334
1336
|
private cache?;
|
|
1335
1337
|
private cacheTtl;
|
|
1338
|
+
private rateLimitingEnabled;
|
|
1336
1339
|
private keystring;
|
|
1337
1340
|
private sharedSecret;
|
|
1338
1341
|
private bulkOperationManager;
|
|
1339
1342
|
constructor(config: EtsyClientConfig);
|
|
1343
|
+
private acquireRateLimitSlot;
|
|
1344
|
+
private fetchOnceWithRateLimit;
|
|
1340
1345
|
private makeRequest;
|
|
1341
1346
|
private executeWithRetry;
|
|
1342
1347
|
private sleep;
|
|
@@ -1546,14 +1551,22 @@ declare class MemoryTokenStorage implements TokenStorage {
|
|
|
1546
1551
|
declare class TokenManager {
|
|
1547
1552
|
private keystring;
|
|
1548
1553
|
private currentTokens;
|
|
1554
|
+
private pendingTokens?;
|
|
1549
1555
|
private refreshCallback?;
|
|
1556
|
+
private refreshClearRequired;
|
|
1550
1557
|
private storage?;
|
|
1558
|
+
private clearCallback?;
|
|
1559
|
+
private tokenMutationGeneration;
|
|
1551
1560
|
private refreshPromise?;
|
|
1552
1561
|
private rotationConfig?;
|
|
1553
1562
|
private rotationTimer?;
|
|
1554
1563
|
constructor(config: EtsyClientConfig, storage?: TokenStorage, rotationConfig?: TokenRotationConfig);
|
|
1555
1564
|
getAccessToken(): Promise<string>;
|
|
1556
1565
|
refreshToken(): Promise<EtsyTokens>;
|
|
1566
|
+
private throwIfSuperseded;
|
|
1567
|
+
private repairPersistenceToCurrentTokens;
|
|
1568
|
+
private persistRefreshedTokens;
|
|
1569
|
+
private retryPendingTokenPersistence;
|
|
1557
1570
|
private performTokenRefresh;
|
|
1558
1571
|
getCurrentTokens(): EtsyTokens | null;
|
|
1559
1572
|
updateTokens(tokens: EtsyTokens): void;
|
|
@@ -1606,8 +1619,8 @@ declare const ETSY_RATE_LIMITS: {
|
|
|
1606
1619
|
readonly MIN_REQUEST_INTERVAL: 200;
|
|
1607
1620
|
};
|
|
1608
1621
|
declare class EtsyRateLimiter {
|
|
1609
|
-
private
|
|
1610
|
-
private
|
|
1622
|
+
private requestTimestamps;
|
|
1623
|
+
private uncertainRequestTimestamps;
|
|
1611
1624
|
private lastRequestTime;
|
|
1612
1625
|
private readonly config;
|
|
1613
1626
|
private headerLimitPerSecond?;
|
|
@@ -1615,13 +1628,33 @@ declare class EtsyRateLimiter {
|
|
|
1615
1628
|
private headerLimitPerDay?;
|
|
1616
1629
|
private headerRemainingToday?;
|
|
1617
1630
|
private isHeaderBasedLimiting;
|
|
1631
|
+
private headerQuotaAvailableAt;
|
|
1632
|
+
private retryNotBefore;
|
|
1633
|
+
private quotaProbeBackoffMs;
|
|
1634
|
+
private nextReservationId;
|
|
1635
|
+
private latestHeaderReservationId;
|
|
1636
|
+
private inFlightReservations;
|
|
1637
|
+
private quotaProbeInFlight;
|
|
1638
|
+
private readonly stateWaiters;
|
|
1618
1639
|
private currentRetryCount;
|
|
1640
|
+
private reservationQueue;
|
|
1619
1641
|
constructor(config?: Partial<RateLimitConfig>);
|
|
1620
|
-
private
|
|
1621
|
-
|
|
1642
|
+
private pruneRequestTimestamps;
|
|
1643
|
+
private getLocalResetTime;
|
|
1644
|
+
private getLocalRemainingRequests;
|
|
1645
|
+
private getEffectiveRemainingRequests;
|
|
1646
|
+
private isQuotaProbeReady;
|
|
1647
|
+
private refreshExpiredHeaderQuota;
|
|
1648
|
+
private notifyStateWaiters;
|
|
1649
|
+
private scheduleQuotaProbe;
|
|
1650
|
+
private waitForStateChange;
|
|
1651
|
+
private finishReservation;
|
|
1652
|
+
acquireRequestSlot(): Promise<number>;
|
|
1653
|
+
releaseRequestSlot(reservationId: number): void;
|
|
1654
|
+
updateFromHeaders(headers: Headers | Record<string, string> | undefined | null, reservationId?: number): void;
|
|
1622
1655
|
private parseRateLimitHeaders;
|
|
1623
1656
|
private checkApproachingLimit;
|
|
1624
|
-
handleRateLimitResponse(headers: Headers | Record<string, string> | undefined | null): Promise<{
|
|
1657
|
+
handleRateLimitResponse(headers: Headers | Record<string, string> | undefined | null, reservationId?: number, retryAttempt?: number): Promise<{
|
|
1625
1658
|
shouldRetry: boolean;
|
|
1626
1659
|
delayMs: number;
|
|
1627
1660
|
}>;
|
|
@@ -1631,6 +1664,7 @@ declare class EtsyRateLimiter {
|
|
|
1631
1664
|
setWarningThreshold(threshold: number): void;
|
|
1632
1665
|
private getEffectiveMinInterval;
|
|
1633
1666
|
waitForRateLimit(): Promise<void>;
|
|
1667
|
+
waitForRateLimitWithReservation(): Promise<number>;
|
|
1634
1668
|
getRateLimitStatus(): RateLimitStatus;
|
|
1635
1669
|
getRemainingRequests(): number;
|
|
1636
1670
|
reset(): void;
|
|
@@ -1651,8 +1685,7 @@ declare class GlobalRequestQueue {
|
|
|
1651
1685
|
private queue;
|
|
1652
1686
|
private processing;
|
|
1653
1687
|
private rateLimits;
|
|
1654
|
-
private
|
|
1655
|
-
private dailyReset;
|
|
1688
|
+
private requestTimestamps;
|
|
1656
1689
|
private lastRequestTime;
|
|
1657
1690
|
private readonly maxRequestsPerDay;
|
|
1658
1691
|
private readonly maxRequestsPerSecond;
|
|
@@ -1671,7 +1704,9 @@ declare class GlobalRequestQueue {
|
|
|
1671
1704
|
private processQueue;
|
|
1672
1705
|
private waitForRateLimit;
|
|
1673
1706
|
private updateRateLimitInfo;
|
|
1674
|
-
private
|
|
1707
|
+
private pruneRequestTimestamps;
|
|
1708
|
+
private getNextRequestExpiry;
|
|
1709
|
+
private startRequest;
|
|
1675
1710
|
private generateId;
|
|
1676
1711
|
private delay;
|
|
1677
1712
|
}
|