@lgriffin/esi.ts 5.1.0 → 6.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 +60 -0
- package/README.md +271 -9
- package/dist/EsiClient.d.ts +7 -0
- package/dist/EsiClient.d.ts.map +1 -1
- package/dist/EsiClient.js +19 -0
- package/dist/clients/AssetsClient.d.ts +3 -0
- package/dist/clients/AssetsClient.d.ts.map +1 -1
- package/dist/clients/AssetsClient.js +6 -0
- package/dist/clients/BaseEsiClient.d.ts +3 -1
- package/dist/clients/BaseEsiClient.d.ts.map +1 -1
- package/dist/clients/BaseEsiClient.js +7 -0
- package/dist/clients/ContractsClient.d.ts +4 -0
- package/dist/clients/ContractsClient.d.ts.map +1 -1
- package/dist/clients/ContractsClient.js +9 -0
- package/dist/clients/KillmailsClient.d.ts +3 -0
- package/dist/clients/KillmailsClient.d.ts.map +1 -1
- package/dist/clients/KillmailsClient.js +6 -0
- package/dist/clients/MarketClient.d.ts +7 -0
- package/dist/clients/MarketClient.d.ts.map +1 -1
- package/dist/clients/MarketClient.js +18 -0
- package/dist/clients/WalletClient.d.ts +4 -0
- package/dist/clients/WalletClient.d.ts.map +1 -1
- package/dist/clients/WalletClient.js +9 -0
- package/dist/core/ApiClient.d.ts +10 -0
- package/dist/core/ApiClient.d.ts.map +1 -1
- package/dist/core/ApiClient.js +21 -0
- package/dist/core/ApiRequestHandler.d.ts +4 -1
- package/dist/core/ApiRequestHandler.d.ts.map +1 -1
- package/dist/core/ApiRequestHandler.js +116 -41
- package/dist/core/BatchRequestHandler.d.ts +12 -0
- package/dist/core/BatchRequestHandler.d.ts.map +1 -0
- package/dist/core/BatchRequestHandler.js +66 -0
- package/dist/core/constants.d.ts +2 -2
- package/dist/core/constants.js +1 -1
- package/dist/core/endpoints/EndpointDefinition.d.ts +3 -0
- package/dist/core/endpoints/EndpointDefinition.d.ts.map +1 -1
- package/dist/core/endpoints/accessListEndpoints.d.ts +16 -0
- package/dist/core/endpoints/accessListEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/accessListEndpoints.js +2 -0
- package/dist/core/endpoints/allianceEndpoints.d.ts +14 -0
- package/dist/core/endpoints/allianceEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/allianceEndpoints.js +3 -0
- package/dist/core/endpoints/assetEndpoints.d.ts +27 -0
- package/dist/core/endpoints/assetEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/assetEndpoints.js +5 -0
- package/dist/core/endpoints/buildEndpointPath.d.ts +7 -0
- package/dist/core/endpoints/buildEndpointPath.d.ts.map +1 -0
- package/dist/core/endpoints/buildEndpointPath.js +44 -0
- package/dist/core/endpoints/calendarEndpoints.d.ts +40 -0
- package/dist/core/endpoints/calendarEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/calendarEndpoints.js +5 -0
- package/dist/core/endpoints/characterEndpoints.d.ts +105 -0
- package/dist/core/endpoints/characterEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/characterEndpoints.js +13 -0
- package/dist/core/endpoints/cloneEndpoints.d.ts +21 -0
- package/dist/core/endpoints/cloneEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/cloneEndpoints.js +2 -0
- package/dist/core/endpoints/contactEndpoints.d.ts +49 -0
- package/dist/core/endpoints/contactEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/contactEndpoints.js +8 -0
- package/dist/core/endpoints/contractEndpoints.d.ts +184 -0
- package/dist/core/endpoints/contractEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/contractEndpoints.js +11 -0
- package/dist/core/endpoints/corporationEndpoints.d.ts +192 -0
- package/dist/core/endpoints/corporationEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/corporationEndpoints.js +18 -0
- package/dist/core/endpoints/createClient.d.ts.map +1 -1
- package/dist/core/endpoints/createClient.js +29 -43
- package/dist/core/endpoints/dogmaEndpoints.d.ts +38 -0
- package/dist/core/endpoints/dogmaEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/dogmaEndpoints.js +4 -0
- package/dist/core/endpoints/esi-cache-ttls.generated.d.ts +2 -0
- package/dist/core/endpoints/esi-cache-ttls.generated.d.ts.map +1 -0
- package/dist/core/endpoints/esi-cache-ttls.generated.js +126 -0
- package/dist/core/endpoints/esi-rate-limit-groups.generated.d.ts +7 -0
- package/dist/core/endpoints/esi-rate-limit-groups.generated.d.ts.map +1 -0
- package/dist/core/endpoints/esi-rate-limit-groups.generated.js +153 -0
- package/dist/core/endpoints/esi-scopes.generated.d.ts +3 -0
- package/dist/core/endpoints/esi-scopes.generated.d.ts.map +1 -0
- package/dist/core/endpoints/esi-scopes.generated.js +127 -0
- package/dist/core/endpoints/factionEndpoints.d.ts +154 -0
- package/dist/core/endpoints/factionEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/factionEndpoints.js +10 -0
- package/dist/core/endpoints/fittingEndpoints.d.ts +12 -0
- package/dist/core/endpoints/fittingEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/fittingEndpoints.js +3 -0
- package/dist/core/endpoints/fleetEndpoints.d.ts +45 -0
- package/dist/core/endpoints/fleetEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/fleetEndpoints.js +6 -0
- package/dist/core/endpoints/freelanceJobsEndpoints.d.ts +122 -0
- package/dist/core/endpoints/freelanceJobsEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/freelanceJobsEndpoints.js +8 -0
- package/dist/core/endpoints/incursionEndpoints.d.ts +15 -0
- package/dist/core/endpoints/incursionEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/incursionEndpoints.js +3 -0
- package/dist/core/endpoints/industryEndpoints.d.ts +103 -0
- package/dist/core/endpoints/industryEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/industryEndpoints.js +10 -0
- package/dist/core/endpoints/insuranceEndpoints.d.ts +9 -0
- package/dist/core/endpoints/insuranceEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/insuranceEndpoints.js +3 -0
- package/dist/core/endpoints/killmailEndpoints.d.ts +41 -0
- package/dist/core/endpoints/killmailEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/killmailEndpoints.js +5 -0
- package/dist/core/endpoints/locationEndpoints.d.ts +16 -0
- package/dist/core/endpoints/locationEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/locationEndpoints.js +4 -0
- package/dist/core/endpoints/loyaltyEndpoints.d.ts +17 -0
- package/dist/core/endpoints/loyaltyEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/loyaltyEndpoints.js +4 -0
- package/dist/core/endpoints/mailEndpoints.d.ts +35 -0
- package/dist/core/endpoints/mailEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/mailEndpoints.js +4 -0
- package/dist/core/endpoints/marketEndpoints.d.ts +123 -0
- package/dist/core/endpoints/marketEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/marketEndpoints.js +9 -0
- package/dist/core/endpoints/mercenaryEndpoints.d.ts +24 -0
- package/dist/core/endpoints/mercenaryEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/mercenaryEndpoints.js +4 -0
- package/dist/core/endpoints/piEndpoints.d.ts +76 -0
- package/dist/core/endpoints/piEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/piEndpoints.js +5 -0
- package/dist/core/endpoints/skillEndpoints.d.ts +21 -0
- package/dist/core/endpoints/skillEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/skillEndpoints.js +5 -0
- package/dist/core/endpoints/skyhookEndpoints.d.ts +27 -0
- package/dist/core/endpoints/skyhookEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/skyhookEndpoints.js +5 -0
- package/dist/core/endpoints/sovereigntyEndpoints.d.ts +37 -0
- package/dist/core/endpoints/sovereigntyEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/sovereigntyEndpoints.js +4 -0
- package/dist/core/endpoints/statusEndpoints.d.ts +6 -0
- package/dist/core/endpoints/statusEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/statusEndpoints.js +2 -0
- package/dist/core/endpoints/universeEndpoints.d.ts +272 -0
- package/dist/core/endpoints/universeEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/universeEndpoints.js +25 -0
- package/dist/core/endpoints/walletEndpoints.d.ts +51 -0
- package/dist/core/endpoints/walletEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/walletEndpoints.js +6 -0
- package/dist/core/endpoints/warEndpoints.d.ts +30 -0
- package/dist/core/endpoints/warEndpoints.d.ts.map +1 -1
- package/dist/core/endpoints/warEndpoints.js +5 -0
- package/dist/core/pagination/AsyncPaginationIterator.js +2 -2
- package/dist/core/pagination/PaginationHandler.d.ts +1 -1
- package/dist/core/pagination/PaginationHandler.d.ts.map +1 -1
- package/dist/core/pagination/PaginationHandler.js +2 -2
- package/dist/core/rateLimiter/IRateLimiter.d.ts +13 -3
- package/dist/core/rateLimiter/IRateLimiter.d.ts.map +1 -1
- package/dist/core/rateLimiter/RateLimiter.d.ts +24 -51
- package/dist/core/rateLimiter/RateLimiter.d.ts.map +1 -1
- package/dist/core/rateLimiter/RateLimiter.js +208 -98
- package/dist/core/util/error.d.ts +10 -1
- package/dist/core/util/error.d.ts.map +1 -1
- package/dist/core/util/error.js +24 -2
- package/dist/core/util/retry.d.ts +8 -0
- package/dist/core/util/retry.d.ts.map +1 -0
- package/dist/core/util/retry.js +9 -0
- package/dist/core/util/stringUtil.d.ts +2 -0
- package/dist/core/util/stringUtil.d.ts.map +1 -0
- package/dist/core/util/stringUtil.js +6 -0
- package/dist/index.d.ts +8 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +37 -2
- package/dist/schemas/access-lists.d.ts +30 -0
- package/dist/schemas/access-lists.d.ts.map +1 -0
- package/dist/schemas/access-lists.js +14 -0
- package/dist/schemas/alliance.d.ts +30 -0
- package/dist/schemas/alliance.d.ts.map +1 -0
- package/dist/schemas/alliance.js +28 -0
- package/dist/schemas/assets.d.ts +28 -0
- package/dist/schemas/assets.d.ts.map +1 -0
- package/dist/schemas/assets.js +26 -0
- package/dist/schemas/calendar.d.ts +41 -0
- package/dist/schemas/calendar.d.ts.map +1 -0
- package/dist/schemas/calendar.js +43 -0
- package/dist/schemas/character.d.ts +122 -0
- package/dist/schemas/character.d.ts.map +1 -0
- package/dist/schemas/character.js +114 -0
- package/dist/schemas/clones.d.ts +23 -0
- package/dist/schemas/clones.d.ts.map +1 -0
- package/dist/schemas/clones.js +21 -0
- package/dist/schemas/common.d.ts +59 -0
- package/dist/schemas/common.d.ts.map +1 -0
- package/dist/schemas/common.js +34 -0
- package/dist/schemas/contacts.d.ts +18 -0
- package/dist/schemas/contacts.d.ts.map +1 -0
- package/dist/schemas/contacts.js +15 -0
- package/dist/schemas/contracts.d.ts +63 -0
- package/dist/schemas/contracts.d.ts.map +1 -0
- package/dist/schemas/contracts.js +58 -0
- package/dist/schemas/corporation.d.ts +193 -0
- package/dist/schemas/corporation.d.ts.map +1 -0
- package/dist/schemas/corporation.js +178 -0
- package/dist/schemas/dogma.d.ts +40 -0
- package/dist/schemas/dogma.d.ts.map +1 -0
- package/dist/schemas/dogma.js +42 -0
- package/dist/schemas/faction-warfare.d.ts +95 -0
- package/dist/schemas/faction-warfare.d.ts.map +1 -0
- package/dist/schemas/faction-warfare.js +92 -0
- package/dist/schemas/fittings.d.ts +13 -0
- package/dist/schemas/fittings.d.ts.map +1 -0
- package/dist/schemas/fittings.js +15 -0
- package/dist/schemas/fleet.d.ts +46 -0
- package/dist/schemas/fleet.d.ts.map +1 -0
- package/dist/schemas/fleet.js +48 -0
- package/dist/schemas/freelance-jobs.d.ts +141 -0
- package/dist/schemas/freelance-jobs.d.ts.map +1 -0
- package/dist/schemas/freelance-jobs.js +99 -0
- package/dist/schemas/incursions.d.ts +16 -0
- package/dist/schemas/incursions.d.ts.map +1 -0
- package/dist/schemas/incursions.js +14 -0
- package/dist/schemas/index.d.ts +33 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +48 -0
- package/dist/schemas/industry.d.ts +73 -0
- package/dist/schemas/industry.d.ts.map +1 -0
- package/dist/schemas/industry.js +75 -0
- package/dist/schemas/insurance.d.ts +10 -0
- package/dist/schemas/insurance.d.ts.map +1 -0
- package/dist/schemas/insurance.js +12 -0
- package/dist/schemas/killmails.d.ts +38 -0
- package/dist/schemas/killmails.d.ts.map +1 -0
- package/dist/schemas/killmails.js +42 -0
- package/dist/schemas/location.d.ts +18 -0
- package/dist/schemas/location.d.ts.map +1 -0
- package/dist/schemas/location.js +20 -0
- package/dist/schemas/loyalty.d.ts +18 -0
- package/dist/schemas/loyalty.d.ts.map +1 -0
- package/dist/schemas/loyalty.js +20 -0
- package/dist/schemas/mail.d.ts +25 -0
- package/dist/schemas/mail.d.ts.map +1 -0
- package/dist/schemas/mail.js +29 -0
- package/dist/schemas/market.d.ts +29 -0
- package/dist/schemas/market.d.ts.map +1 -0
- package/dist/schemas/market.js +26 -0
- package/dist/schemas/mercenary.d.ts +25 -0
- package/dist/schemas/mercenary.d.ts.map +1 -0
- package/dist/schemas/mercenary.js +22 -0
- package/dist/schemas/pi.d.ts +77 -0
- package/dist/schemas/pi.d.ts.map +1 -0
- package/dist/schemas/pi.js +85 -0
- package/dist/schemas/skills.d.ts +18 -0
- package/dist/schemas/skills.d.ts.map +1 -0
- package/dist/schemas/skills.js +20 -0
- package/dist/schemas/skyhooks.d.ts +28 -0
- package/dist/schemas/skyhooks.d.ts.map +1 -0
- package/dist/schemas/skyhooks.js +30 -0
- package/dist/schemas/sovereignty.d.ts +45 -0
- package/dist/schemas/sovereignty.d.ts.map +1 -0
- package/dist/schemas/sovereignty.js +43 -0
- package/dist/schemas/status.d.ts +8 -0
- package/dist/schemas/status.d.ts.map +1 -0
- package/dist/schemas/status.js +10 -0
- package/dist/schemas/universe.d.ts +286 -0
- package/dist/schemas/universe.d.ts.map +1 -0
- package/dist/schemas/universe.js +245 -0
- package/dist/schemas/wallet.d.ts +27 -0
- package/dist/schemas/wallet.d.ts.map +1 -0
- package/dist/schemas/wallet.js +29 -0
- package/dist/schemas/wars.d.ts +27 -0
- package/dist/schemas/wars.d.ts.map +1 -0
- package/dist/schemas/wars.js +31 -0
- package/dist/testing/TestDataFactory.d.ts +44 -3
- package/dist/testing/TestDataFactory.d.ts.map +1 -1
- package/dist/types/access-lists.d.ts +4 -10
- package/dist/types/access-lists.d.ts.map +1 -1
- package/dist/types/alliance.d.ts +6 -24
- package/dist/types/alliance.d.ts.map +1 -1
- package/dist/types/api-responses.d.ts +1 -0
- package/dist/types/api-responses.d.ts.map +1 -1
- package/dist/types/api-responses.js +24 -0
- package/dist/types/assets.d.ts +5 -22
- package/dist/types/assets.d.ts.map +1 -1
- package/dist/types/calendar.d.ts +5 -23
- package/dist/types/calendar.d.ts.map +1 -1
- package/dist/types/character.d.ts +15 -104
- package/dist/types/character.d.ts.map +1 -1
- package/dist/types/clones.d.ts +3 -15
- package/dist/types/clones.d.ts.map +1 -1
- package/dist/types/common.d.ts +4 -12
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/contacts.d.ts +4 -11
- package/dist/types/contacts.d.ts.map +1 -1
- package/dist/types/contracts.d.ts +5 -39
- package/dist/types/contracts.d.ts.map +1 -1
- package/dist/types/corporation.d.ts +18 -166
- package/dist/types/corporation.d.ts.map +1 -1
- package/dist/types/dogma.d.ts +5 -38
- package/dist/types/dogma.d.ts.map +1 -1
- package/dist/types/faction-warfare.d.ts +8 -88
- package/dist/types/faction-warfare.d.ts.map +1 -1
- package/dist/types/fittings.d.ts +3 -11
- package/dist/types/fittings.d.ts.map +1 -1
- package/dist/types/fleet.d.ts +6 -34
- package/dist/types/fleet.d.ts.map +1 -1
- package/dist/types/freelance-jobs.d.ts +10 -91
- package/dist/types/freelance-jobs.d.ts.map +1 -1
- package/dist/types/generated/esi-spec.generated.d.ts +1763 -0
- package/dist/types/generated/esi-spec.generated.d.ts.map +1 -0
- package/dist/types/generated/esi-spec.generated.js +6 -0
- package/dist/types/incursions.d.ts +3 -10
- package/dist/types/incursions.d.ts.map +1 -1
- package/dist/types/industry.d.ts +9 -64
- package/dist/types/industry.d.ts.map +1 -1
- package/dist/types/insurance.d.ts +3 -8
- package/dist/types/insurance.d.ts.map +1 -1
- package/dist/types/killmails.d.ts +4 -36
- package/dist/types/killmails.d.ts.map +1 -1
- package/dist/types/location.d.ts +5 -16
- package/dist/types/location.d.ts.map +1 -1
- package/dist/types/loyalty.d.ts +4 -16
- package/dist/types/loyalty.d.ts.map +1 -1
- package/dist/types/mail.d.ts +4 -18
- package/dist/types/mail.d.ts.map +1 -1
- package/dist/types/market.d.ts +4 -22
- package/dist/types/market.d.ts.map +1 -1
- package/dist/types/mercenary.d.ts +4 -18
- package/dist/types/mercenary.d.ts.map +1 -1
- package/dist/types/pi.d.ts +5 -66
- package/dist/types/pi.d.ts.map +1 -1
- package/dist/types/skills.d.ts +4 -16
- package/dist/types/skills.d.ts.map +1 -1
- package/dist/types/skyhooks.d.ts +5 -26
- package/dist/types/skyhooks.d.ts.map +1 -1
- package/dist/types/sovereignty.d.ts +5 -32
- package/dist/types/sovereignty.d.ts.map +1 -1
- package/dist/types/status.d.ts +3 -6
- package/dist/types/status.d.ts.map +1 -1
- package/dist/types/universe.d.ts +26 -274
- package/dist/types/universe.d.ts.map +1 -1
- package/dist/types/wallet.d.ts +4 -25
- package/dist/types/wallet.d.ts.map +1 -1
- package/dist/types/wars.d.ts +3 -25
- package/dist/types/wars.d.ts.map +1 -1
- package/package.json +51 -46
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
1
2
|
export declare const walletEndpoints: {
|
|
2
3
|
readonly getCharacterWallet: {
|
|
3
4
|
readonly path: "characters/{characterId}/wallet";
|
|
@@ -10,12 +11,37 @@ export declare const walletEndpoints: {
|
|
|
10
11
|
readonly method: "GET";
|
|
11
12
|
readonly requiresAuth: true;
|
|
12
13
|
readonly pathParams: readonly ["characterId"];
|
|
14
|
+
readonly responseSchema: z.ZodArray<z.ZodObject<{
|
|
15
|
+
id: z.ZodNumber;
|
|
16
|
+
date: z.ZodString;
|
|
17
|
+
ref_type: z.ZodString;
|
|
18
|
+
first_party_id: z.ZodOptional<z.ZodNumber>;
|
|
19
|
+
second_party_id: z.ZodOptional<z.ZodNumber>;
|
|
20
|
+
amount: z.ZodOptional<z.ZodNumber>;
|
|
21
|
+
balance: z.ZodOptional<z.ZodNumber>;
|
|
22
|
+
reason: z.ZodOptional<z.ZodString>;
|
|
23
|
+
description: z.ZodString;
|
|
24
|
+
context_id: z.ZodOptional<z.ZodNumber>;
|
|
25
|
+
context_id_type: z.ZodOptional<z.ZodString>;
|
|
26
|
+
}, z.core.$loose>>;
|
|
13
27
|
};
|
|
14
28
|
readonly getCharacterWalletTransactions: {
|
|
15
29
|
readonly path: "characters/{characterId}/wallet/transactions";
|
|
16
30
|
readonly method: "GET";
|
|
17
31
|
readonly requiresAuth: true;
|
|
18
32
|
readonly pathParams: readonly ["characterId"];
|
|
33
|
+
readonly responseSchema: z.ZodArray<z.ZodObject<{
|
|
34
|
+
transaction_id: z.ZodNumber;
|
|
35
|
+
date: z.ZodString;
|
|
36
|
+
type_id: z.ZodNumber;
|
|
37
|
+
location_id: z.ZodNumber;
|
|
38
|
+
unit_price: z.ZodNumber;
|
|
39
|
+
quantity: z.ZodNumber;
|
|
40
|
+
client_id: z.ZodNumber;
|
|
41
|
+
is_buy: z.ZodBoolean;
|
|
42
|
+
is_personal: z.ZodBoolean;
|
|
43
|
+
journal_ref_id: z.ZodNumber;
|
|
44
|
+
}, z.core.$loose>>;
|
|
19
45
|
};
|
|
20
46
|
readonly getCorporationWallets: {
|
|
21
47
|
readonly path: "corporations/{corporationId}/wallets";
|
|
@@ -28,12 +54,37 @@ export declare const walletEndpoints: {
|
|
|
28
54
|
readonly method: "GET";
|
|
29
55
|
readonly requiresAuth: true;
|
|
30
56
|
readonly pathParams: readonly ["corporationId", "division"];
|
|
57
|
+
readonly responseSchema: z.ZodArray<z.ZodObject<{
|
|
58
|
+
id: z.ZodNumber;
|
|
59
|
+
date: z.ZodString;
|
|
60
|
+
ref_type: z.ZodString;
|
|
61
|
+
first_party_id: z.ZodOptional<z.ZodNumber>;
|
|
62
|
+
second_party_id: z.ZodOptional<z.ZodNumber>;
|
|
63
|
+
amount: z.ZodOptional<z.ZodNumber>;
|
|
64
|
+
balance: z.ZodOptional<z.ZodNumber>;
|
|
65
|
+
reason: z.ZodOptional<z.ZodString>;
|
|
66
|
+
description: z.ZodString;
|
|
67
|
+
context_id: z.ZodOptional<z.ZodNumber>;
|
|
68
|
+
context_id_type: z.ZodOptional<z.ZodString>;
|
|
69
|
+
}, z.core.$loose>>;
|
|
31
70
|
};
|
|
32
71
|
readonly getCorporationWalletTransactions: {
|
|
33
72
|
readonly path: "corporations/{corporationId}/wallets/{division}/transactions";
|
|
34
73
|
readonly method: "GET";
|
|
35
74
|
readonly requiresAuth: true;
|
|
36
75
|
readonly pathParams: readonly ["corporationId", "division"];
|
|
76
|
+
readonly responseSchema: z.ZodArray<z.ZodObject<{
|
|
77
|
+
transaction_id: z.ZodNumber;
|
|
78
|
+
date: z.ZodString;
|
|
79
|
+
type_id: z.ZodNumber;
|
|
80
|
+
location_id: z.ZodNumber;
|
|
81
|
+
unit_price: z.ZodNumber;
|
|
82
|
+
quantity: z.ZodNumber;
|
|
83
|
+
client_id: z.ZodNumber;
|
|
84
|
+
is_buy: z.ZodBoolean;
|
|
85
|
+
is_personal: z.ZodBoolean;
|
|
86
|
+
journal_ref_id: z.ZodNumber;
|
|
87
|
+
}, z.core.$loose>>;
|
|
37
88
|
};
|
|
38
89
|
};
|
|
39
90
|
//# sourceMappingURL=walletEndpoints.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"walletEndpoints.d.ts","sourceRoot":"","sources":["../../../src/core/endpoints/walletEndpoints.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"walletEndpoints.d.ts","sourceRoot":"","sources":["../../../src/core/endpoints/walletEndpoints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAOxB,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCI,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.walletEndpoints = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const wallet_1 = require("../../schemas/wallet");
|
|
4
6
|
exports.walletEndpoints = {
|
|
5
7
|
getCharacterWallet: {
|
|
6
8
|
path: 'characters/{characterId}/wallet',
|
|
@@ -13,12 +15,14 @@ exports.walletEndpoints = {
|
|
|
13
15
|
method: 'GET',
|
|
14
16
|
requiresAuth: true,
|
|
15
17
|
pathParams: ['characterId'],
|
|
18
|
+
responseSchema: zod_1.z.array(wallet_1.WalletJournalSchema),
|
|
16
19
|
},
|
|
17
20
|
getCharacterWalletTransactions: {
|
|
18
21
|
path: 'characters/{characterId}/wallet/transactions',
|
|
19
22
|
method: 'GET',
|
|
20
23
|
requiresAuth: true,
|
|
21
24
|
pathParams: ['characterId'],
|
|
25
|
+
responseSchema: zod_1.z.array(wallet_1.WalletTransactionSchema),
|
|
22
26
|
},
|
|
23
27
|
getCorporationWallets: {
|
|
24
28
|
path: 'corporations/{corporationId}/wallets',
|
|
@@ -31,11 +35,13 @@ exports.walletEndpoints = {
|
|
|
31
35
|
method: 'GET',
|
|
32
36
|
requiresAuth: true,
|
|
33
37
|
pathParams: ['corporationId', 'division'],
|
|
38
|
+
responseSchema: zod_1.z.array(wallet_1.WalletJournalSchema),
|
|
34
39
|
},
|
|
35
40
|
getCorporationWalletTransactions: {
|
|
36
41
|
path: 'corporations/{corporationId}/wallets/{division}/transactions',
|
|
37
42
|
method: 'GET',
|
|
38
43
|
requiresAuth: true,
|
|
39
44
|
pathParams: ['corporationId', 'division'],
|
|
45
|
+
responseSchema: zod_1.z.array(wallet_1.WalletTransactionSchema),
|
|
40
46
|
},
|
|
41
47
|
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
1
2
|
export declare const warEndpoints: {
|
|
2
3
|
readonly getWars: {
|
|
3
4
|
readonly path: "wars";
|
|
@@ -9,12 +10,41 @@ export declare const warEndpoints: {
|
|
|
9
10
|
readonly method: "GET";
|
|
10
11
|
readonly requiresAuth: false;
|
|
11
12
|
readonly pathParams: readonly ["warId"];
|
|
13
|
+
readonly responseSchema: z.ZodObject<{
|
|
14
|
+
id: z.ZodNumber;
|
|
15
|
+
declared: z.ZodString;
|
|
16
|
+
started: z.ZodOptional<z.ZodString>;
|
|
17
|
+
finished: z.ZodOptional<z.ZodString>;
|
|
18
|
+
retracted: z.ZodOptional<z.ZodString>;
|
|
19
|
+
mutual: z.ZodBoolean;
|
|
20
|
+
open_for_allies: z.ZodBoolean;
|
|
21
|
+
aggressor: z.ZodObject<{
|
|
22
|
+
corporation_id: z.ZodOptional<z.ZodNumber>;
|
|
23
|
+
alliance_id: z.ZodOptional<z.ZodNumber>;
|
|
24
|
+
isk_destroyed: z.ZodNumber;
|
|
25
|
+
ships_killed: z.ZodNumber;
|
|
26
|
+
}, z.core.$loose>;
|
|
27
|
+
defender: z.ZodObject<{
|
|
28
|
+
corporation_id: z.ZodOptional<z.ZodNumber>;
|
|
29
|
+
alliance_id: z.ZodOptional<z.ZodNumber>;
|
|
30
|
+
isk_destroyed: z.ZodNumber;
|
|
31
|
+
ships_killed: z.ZodNumber;
|
|
32
|
+
}, z.core.$loose>;
|
|
33
|
+
allies: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
34
|
+
corporation_id: z.ZodOptional<z.ZodNumber>;
|
|
35
|
+
alliance_id: z.ZodOptional<z.ZodNumber>;
|
|
36
|
+
}, z.core.$loose>>>;
|
|
37
|
+
}, z.core.$loose>;
|
|
12
38
|
};
|
|
13
39
|
readonly getWarKillmails: {
|
|
14
40
|
readonly path: "wars/{warId}/killmails";
|
|
15
41
|
readonly method: "GET";
|
|
16
42
|
readonly requiresAuth: false;
|
|
17
43
|
readonly pathParams: readonly ["warId"];
|
|
44
|
+
readonly responseSchema: z.ZodArray<z.ZodObject<{
|
|
45
|
+
killmail_id: z.ZodNumber;
|
|
46
|
+
killmail_hash: z.ZodString;
|
|
47
|
+
}, z.core.$loose>>;
|
|
18
48
|
};
|
|
19
49
|
};
|
|
20
50
|
//# sourceMappingURL=warEndpoints.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"warEndpoints.d.ts","sourceRoot":"","sources":["../../../src/core/endpoints/warEndpoints.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"warEndpoints.d.ts","sourceRoot":"","sources":["../../../src/core/endpoints/warEndpoints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoBO,CAAC"}
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.warEndpoints = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const wars_1 = require("../../schemas/wars");
|
|
6
|
+
const killmails_1 = require("../../schemas/killmails");
|
|
4
7
|
exports.warEndpoints = {
|
|
5
8
|
getWars: {
|
|
6
9
|
path: 'wars',
|
|
@@ -12,11 +15,13 @@ exports.warEndpoints = {
|
|
|
12
15
|
method: 'GET',
|
|
13
16
|
requiresAuth: false,
|
|
14
17
|
pathParams: ['warId'],
|
|
18
|
+
responseSchema: wars_1.WarSchema,
|
|
15
19
|
},
|
|
16
20
|
getWarKillmails: {
|
|
17
21
|
path: 'wars/{warId}/killmails',
|
|
18
22
|
method: 'GET',
|
|
19
23
|
requiresAuth: false,
|
|
20
24
|
pathParams: ['warId'],
|
|
25
|
+
responseSchema: zod_1.z.array(killmails_1.KillmailSummarySchema),
|
|
21
26
|
},
|
|
22
27
|
};
|
|
@@ -11,14 +11,14 @@ function extractArray(body) {
|
|
|
11
11
|
return [];
|
|
12
12
|
}
|
|
13
13
|
async function* fetchPages(client, endpoint, method, requiresAuth = false, body) {
|
|
14
|
-
const firstResponse = await (0, ApiRequestHandler_1.
|
|
14
|
+
const firstResponse = await (0, ApiRequestHandler_1.handleSinglePageRequest)(client, endpoint, method, body, requiresAuth);
|
|
15
15
|
const totalPages = parseInt(firstResponse.headers['x-pages'] || '1', 10);
|
|
16
16
|
yield { data: extractArray(firstResponse.body), page: 1, totalPages };
|
|
17
17
|
for (let page = 2; page <= totalPages; page++) {
|
|
18
18
|
const sep = endpoint.includes('?') ? '&' : '?';
|
|
19
19
|
const pagedEndpoint = `${endpoint}${sep}page=${page}`;
|
|
20
20
|
(0, loggerUtil_1.logInfo)(`Fetching page ${page}/${totalPages}: ${pagedEndpoint}`);
|
|
21
|
-
const response = await (0, ApiRequestHandler_1.
|
|
21
|
+
const response = await (0, ApiRequestHandler_1.handleSinglePageRequest)(client, pagedEndpoint, method, body, requiresAuth);
|
|
22
22
|
const pageData = extractArray(response.body);
|
|
23
23
|
if (pageData.length === 0)
|
|
24
24
|
break;
|
|
@@ -16,7 +16,7 @@ export declare class PaginationHandler {
|
|
|
16
16
|
* Fetch remaining pages (2..totalPages) and combine with first page data.
|
|
17
17
|
* The caller has already fetched page 1 and knows the total page count.
|
|
18
18
|
*/
|
|
19
|
-
static fetchRemainingPages(client: ApiClient, endpoint: string, method: string, requiresAuth: boolean, firstPageData: unknown[], totalPages: number, body?: unknown, options?: PaginationOptions, pageFetch?: PageFetcher): Promise<unknown[]>;
|
|
19
|
+
static fetchRemainingPages(client: ApiClient, endpoint: string, method: string, requiresAuth: boolean, firstPageData: unknown[], totalPages: number, body?: unknown, options?: PaginationOptions, pageFetch?: PageFetcher, templatePath?: string): Promise<unknown[]>;
|
|
20
20
|
/**
|
|
21
21
|
* Fetch a single page with retry logic
|
|
22
22
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaginationHandler.d.ts","sourceRoot":"","sources":["../../../src/core/pagination/PaginationHandler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAKzC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,iBAAiB,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AAE5E,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAKrC;IAEF;;;OAGG;WACU,mBAAmB,CAC9B,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,OAAO,EACrB,aAAa,EAAE,OAAO,EAAE,EACxB,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,OAAO,EACd,OAAO,GAAE,iBAAsB,EAC/B,SAAS,CAAC,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"PaginationHandler.d.ts","sourceRoot":"","sources":["../../../src/core/pagination/PaginationHandler.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAKzC,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,iBAAiB,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;AAE5E,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAKrC;IAEF;;;OAGG;WACU,mBAAmB,CAC9B,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,OAAO,EACrB,aAAa,EAAE,OAAO,EAAE,EACxB,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,OAAO,EACd,OAAO,GAAE,iBAAsB,EAC/B,SAAS,CAAC,EAAE,WAAW,EACvB,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,OAAO,EAAE,CAAC;IA8DrB;;OAEG;mBACkB,kBAAkB;IA2CvC;;;OAGG;mBACkB,eAAe;CAiDrC"}
|
|
@@ -19,7 +19,7 @@ class PaginationHandler {
|
|
|
19
19
|
* Fetch remaining pages (2..totalPages) and combine with first page data.
|
|
20
20
|
* The caller has already fetched page 1 and knows the total page count.
|
|
21
21
|
*/
|
|
22
|
-
static async fetchRemainingPages(client, endpoint, method, requiresAuth, firstPageData, totalPages, body, options = {}, pageFetch) {
|
|
22
|
+
static async fetchRemainingPages(client, endpoint, method, requiresAuth, firstPageData, totalPages, body, options = {}, pageFetch, templatePath) {
|
|
23
23
|
const opts = { ...this.DEFAULT_OPTIONS, ...options };
|
|
24
24
|
const rateLimiter = client.getRateLimiter();
|
|
25
25
|
const allData = [...firstPageData];
|
|
@@ -32,7 +32,7 @@ class PaginationHandler {
|
|
|
32
32
|
for (let page = 2; page <= effectiveMaxPage; page++) {
|
|
33
33
|
try {
|
|
34
34
|
if (rateLimiter)
|
|
35
|
-
await rateLimiter.checkRateLimit();
|
|
35
|
+
await rateLimiter.checkRateLimit(templatePath, method);
|
|
36
36
|
const pageData = await this.fetchPageWithRetry(client, endpoint, method, page, requiresAuth, body, opts, pageFetch);
|
|
37
37
|
consecutiveFailures = 0;
|
|
38
38
|
if (opts.stopOnEmptyPage && (!pageData || pageData.length === 0)) {
|
|
@@ -1,6 +1,14 @@
|
|
|
1
|
+
export interface RateLimitGroupStatus {
|
|
2
|
+
group: string;
|
|
3
|
+
remaining: number;
|
|
4
|
+
limit: number;
|
|
5
|
+
used: number;
|
|
6
|
+
windowSizeMs: number;
|
|
7
|
+
blockedUntil: number;
|
|
8
|
+
}
|
|
1
9
|
export interface IRateLimiter {
|
|
2
|
-
checkRateLimit(): Promise<void>;
|
|
3
|
-
updateFromResponse(headers: Record<string, string>, statusCode: number): void;
|
|
10
|
+
checkRateLimit(templatePath?: string, method?: string, requestHeaders?: Record<string, string>): Promise<void>;
|
|
11
|
+
updateFromResponse(headers: Record<string, string>, statusCode: number, templatePath?: string, method?: string, requestHeaders?: Record<string, string>): void;
|
|
4
12
|
getStatus(): {
|
|
5
13
|
remaining: number;
|
|
6
14
|
limit: number;
|
|
@@ -11,7 +19,9 @@ export interface IRateLimiter {
|
|
|
11
19
|
retryAfter: number | null;
|
|
12
20
|
blockedUntil: number;
|
|
13
21
|
};
|
|
14
|
-
|
|
22
|
+
getGroupStatus(group: string): RateLimitGroupStatus | undefined;
|
|
23
|
+
getAllGroupStatuses(): Map<string, RateLimitGroupStatus>;
|
|
24
|
+
isBlocked(group?: string): boolean;
|
|
15
25
|
reset(): void;
|
|
16
26
|
}
|
|
17
27
|
//# sourceMappingURL=IRateLimiter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IRateLimiter.d.ts","sourceRoot":"","sources":["../../../src/core/rateLimiter/IRateLimiter.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,cAAc,
|
|
1
|
+
{"version":3,"file":"IRateLimiter.d.ts","sourceRoot":"","sources":["../../../src/core/rateLimiter/IRateLimiter.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,cAAc,CACZ,YAAY,CAAC,EAAE,MAAM,EACrB,MAAM,CAAC,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtC,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,kBAAkB,CAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,UAAU,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,EACrB,MAAM,CAAC,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtC,IAAI,CAAC;IACR,SAAS,IAAI;QACX,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,eAAe,EAAE,MAAM,CAAC;QACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAAC;IAChE,mBAAmB,IAAI,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACzD,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACnC,KAAK,IAAI,IAAI,CAAC;CACf"}
|
|
@@ -1,77 +1,50 @@
|
|
|
1
|
-
|
|
2
|
-
* Rate Limiter for ESI API calls
|
|
3
|
-
*
|
|
4
|
-
* Implements both the new floating-window rate limiting system and the legacy
|
|
5
|
-
* error-limit system per the official ESI documentation:
|
|
6
|
-
*
|
|
7
|
-
* New system (X-Ratelimit-* headers):
|
|
8
|
-
* - Floating window with token bucket per IP+route group
|
|
9
|
-
* - Token costs: 2xx = 2 tokens, 3xx = 1 token, 4xx = 5 tokens, 5xx = 0 tokens
|
|
10
|
-
* - Returns 429 when bucket is empty, with Retry-After header
|
|
11
|
-
*
|
|
12
|
-
* Legacy system (x-esi-error-limit-* headers):
|
|
13
|
-
* - 100 non-2xx/3xx errors per minute
|
|
14
|
-
* - Returns 420 when limit exceeded, with Retry-After header
|
|
15
|
-
*/
|
|
16
|
-
import { IRateLimiter } from './IRateLimiter';
|
|
1
|
+
import { IRateLimiter, RateLimitGroupStatus } from './IRateLimiter';
|
|
17
2
|
export interface RateLimitInfo {
|
|
18
|
-
/** Tokens remaining in current window (new system) */
|
|
19
3
|
remaining: number;
|
|
20
|
-
/** Total token budget (new system) */
|
|
21
4
|
limit: number;
|
|
22
|
-
/** Tokens used in current window (new system) */
|
|
23
5
|
used: number;
|
|
24
|
-
/** Route group for this endpoint (new system) */
|
|
25
6
|
group: string | null;
|
|
26
|
-
/** Legacy error-limit remaining count */
|
|
27
7
|
errorLimitRemain: number;
|
|
28
|
-
/** Legacy error-limit seconds until reset */
|
|
29
8
|
errorLimitReset: number;
|
|
30
|
-
/** Retry-After value in seconds (set on 420/429) */
|
|
31
9
|
retryAfter: number | null;
|
|
32
|
-
/** Timestamp (ms) when we must stop sending requests */
|
|
33
10
|
blockedUntil: number;
|
|
34
11
|
}
|
|
35
12
|
export interface RateLimiterConfig {
|
|
36
13
|
minDelayMs?: number;
|
|
37
14
|
decelerationThreshold?: number;
|
|
15
|
+
userKeyExtractor?: (headers: Record<string, string>) => string;
|
|
38
16
|
}
|
|
39
17
|
export declare class RateLimiter implements IRateLimiter {
|
|
40
|
-
private rateLimitInfo;
|
|
41
|
-
private lastRequestTime;
|
|
42
18
|
private readonly minDelayMs;
|
|
43
|
-
private isTestMode;
|
|
44
19
|
private readonly decelerationThreshold;
|
|
20
|
+
private readonly userKeyExtractor?;
|
|
21
|
+
private lastRequestTime;
|
|
22
|
+
private isTestMode;
|
|
23
|
+
private errorLimitRemain;
|
|
24
|
+
private errorLimitReset;
|
|
25
|
+
private defaultBuckets;
|
|
26
|
+
private userBuckets;
|
|
27
|
+
private fallbackBucket;
|
|
28
|
+
private lastCleanup;
|
|
29
|
+
private static readonly CLEANUP_INTERVAL_MS;
|
|
45
30
|
constructor(config?: RateLimiterConfig);
|
|
46
|
-
private
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
* Prefer updateFromResponse() which also accepts status code.
|
|
55
|
-
*/
|
|
31
|
+
private createFallbackBucket;
|
|
32
|
+
private createBucketFromSpec;
|
|
33
|
+
private createBucketForGroup;
|
|
34
|
+
private lookupGroupSpec;
|
|
35
|
+
private resolveBucketMap;
|
|
36
|
+
private getBucket;
|
|
37
|
+
private cleanupStaleUsers;
|
|
38
|
+
updateFromResponse(headers: Record<string, string>, statusCode: number, templatePath?: string, method?: string, requestHeaders?: Record<string, string>): void;
|
|
56
39
|
updateRateLimitInfo(headers: Record<string, string>): void;
|
|
57
|
-
|
|
58
|
-
* Check if we should wait before making the next request.
|
|
59
|
-
* Enforces hard blocks (420/429), proactive deceleration, and minimum delay.
|
|
60
|
-
*/
|
|
61
|
-
checkRateLimit(): Promise<void>;
|
|
62
|
-
/**
|
|
63
|
-
* Enforce minimum delay between requests
|
|
64
|
-
*/
|
|
40
|
+
checkRateLimit(templatePath?: string, method?: string, requestHeaders?: Record<string, string>): Promise<void>;
|
|
65
41
|
private enforceMinDelay;
|
|
66
|
-
/** Get current rate limit status */
|
|
67
42
|
getStatus(): RateLimitInfo;
|
|
68
|
-
|
|
43
|
+
getGroupStatus(group: string): RateLimitGroupStatus | undefined;
|
|
44
|
+
getAllGroupStatuses(): Map<string, RateLimitGroupStatus>;
|
|
69
45
|
static getTokenCost(statusCode: number): number;
|
|
70
|
-
|
|
71
|
-
isBlocked(): boolean;
|
|
72
|
-
/** Set test mode (disables all delays) */
|
|
46
|
+
isBlocked(group?: string): boolean;
|
|
73
47
|
setTestMode(enabled: boolean): void;
|
|
74
|
-
/** Reset rate limiter state */
|
|
75
48
|
reset(): void;
|
|
76
49
|
}
|
|
77
50
|
//# sourceMappingURL=RateLimiter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RateLimiter.d.ts","sourceRoot":"","sources":["../../../src/core/rateLimiter/RateLimiter.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"RateLimiter.d.ts","sourceRoot":"","sources":["../../../src/core/rateLimiter/RateLimiter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AASpE,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;CACtB;AAUD,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,MAAM,CAAC;CAChE;AAmBD,qBAAa,WAAY,YAAW,YAAY;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAS;IAC/C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAEtB;IAEZ,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,UAAU,CAAkB;IAEpC,OAAO,CAAC,gBAAgB,CAAe;IACvC,OAAO,CAAC,eAAe,CAAa;IAEpC,OAAO,CAAC,cAAc,CAAuC;IAC7D,OAAO,CAAC,WAAW,CAA2C;IAC9D,OAAO,CAAC,cAAc,CAAc;IAEpC,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAU;gBAEzC,MAAM,CAAC,EAAE,iBAAiB;IAUtC,OAAO,CAAC,oBAAoB;IAY5B,OAAO,CAAC,oBAAoB;IAY5B,OAAO,CAAC,oBAAoB;IAY5B,OAAO,CAAC,eAAe;IAYvB,OAAO,CAAC,gBAAgB;IAiBxB,OAAO,CAAC,SAAS;IAuBjB,OAAO,CAAC,iBAAiB;IAazB,kBAAkB,CAChB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,UAAU,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,EACrB,MAAM,CAAC,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtC,IAAI;IAyCP,mBAAmB,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAIpD,cAAc,CAClB,YAAY,CAAC,EAAE,MAAM,EACrB,MAAM,CAAC,EAAE,MAAM,EACf,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtC,OAAO,CAAC,IAAI,CAAC;YA8DF,eAAe;IAgB7B,SAAS,IAAI,aAAa;IAyC1B,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS;IAa/D,mBAAmB,IAAI,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC;IAexD,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAI/C,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO;IAelC,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAInC,KAAK,IAAI,IAAI;CASd"}
|