e621 3.0.3 → 3.2.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 +52 -0
- package/dist/browser/e621.d.ts +2 -0
- package/dist/browser/e621.js +19289 -0
- package/dist/browser/e621.js.map +7 -0
- package/dist/lib/Debug.browser.d.ts +6 -0
- package/dist/lib/Debug.browser.js +8 -0
- package/dist/lib/client.d.ts +59 -0
- package/dist/lib/client.js +72 -0
- package/dist/lib/errors.d.ts +3 -3
- package/dist/lib/errors.js +6 -2
- package/dist/lib/generated/client/client.js +105 -124
- package/dist/lib/generated/client/types.d.ts +6 -3
- package/dist/lib/generated/client/utils.d.ts +7 -3
- package/dist/lib/generated/client/utils.js +4 -4
- package/dist/lib/generated/core/params.js +5 -5
- package/dist/lib/generated/core/serverSentEvents.d.ts +1 -1
- package/dist/lib/generated/core/serverSentEvents.js +4 -5
- package/dist/lib/generated/schemas.d.ts +1192 -219
- package/dist/lib/generated/schemas.js +1780 -483
- package/dist/lib/generated/sdk.d.ts +612 -380
- package/dist/lib/generated/sdk.js +895 -546
- package/dist/lib/generated/types.d.ts +6241 -4549
- package/dist/lib/index.d.ts +2 -43
- package/dist/lib/index.js +5 -61
- package/dist/lib/models/Appeal.d.ts +48 -0
- package/dist/lib/models/Appeal.js +74 -0
- package/dist/lib/models/Artist.d.ts +15 -18
- package/dist/lib/models/Artist.js +24 -27
- package/dist/lib/models/AvoidPosting.d.ts +11 -15
- package/dist/lib/models/AvoidPosting.js +21 -25
- package/dist/lib/models/Base.browser.d.ts +14 -0
- package/dist/lib/models/Base.browser.js +22 -0
- package/dist/lib/models/BasicPost.d.ts +14 -0
- package/dist/lib/models/BasicPost.js +17 -0
- package/dist/lib/models/Blip.d.ts +19 -24
- package/dist/lib/models/Blip.js +30 -35
- package/dist/lib/models/BulkUpdateRequest.d.ts +9 -12
- package/dist/lib/models/BulkUpdateRequest.js +18 -21
- package/dist/lib/models/Comment.d.ts +25 -32
- package/dist/lib/models/Comment.js +39 -46
- package/dist/lib/models/CommentVote.d.ts +47 -0
- package/dist/lib/models/CommentVote.js +74 -0
- package/dist/lib/models/CurrentUser.d.ts +33 -1
- package/dist/lib/models/CurrentUser.js +54 -3
- package/dist/lib/models/DMail.d.ts +15 -9
- package/dist/lib/models/DMail.js +27 -13
- package/dist/lib/models/DbExport.d.ts +14 -0
- package/dist/lib/models/DbExport.js +17 -0
- package/dist/lib/models/EmailBlacklist.d.ts +2 -3
- package/dist/lib/models/EmailBlacklist.js +4 -5
- package/dist/lib/models/ExceptionLog.d.ts +14 -0
- package/dist/lib/models/ExceptionLog.js +17 -0
- package/dist/lib/models/ExtendedPost.d.ts +14 -0
- package/dist/lib/models/ExtendedPost.js +17 -0
- package/dist/lib/models/ForumPost.d.ts +37 -34
- package/dist/lib/models/ForumPost.js +57 -47
- package/dist/lib/models/ForumPostVote.d.ts +2 -3
- package/dist/lib/models/ForumPostVote.js +5 -6
- package/dist/lib/models/ForumTopic.d.ts +20 -26
- package/dist/lib/models/ForumTopic.js +33 -39
- package/dist/lib/models/HelpPage.d.ts +37 -0
- package/dist/lib/models/HelpPage.js +55 -0
- package/dist/lib/models/IpBan.d.ts +2 -3
- package/dist/lib/models/IpBan.js +4 -5
- package/dist/lib/models/Mascot.d.ts +6 -8
- package/dist/lib/models/Mascot.js +10 -12
- package/dist/lib/models/MinimalUser.d.ts +14 -0
- package/dist/lib/models/MinimalUser.js +17 -0
- package/dist/lib/models/NewsUpdate.d.ts +6 -8
- package/dist/lib/models/NewsUpdate.js +10 -12
- package/dist/lib/models/Note.d.ts +9 -12
- package/dist/lib/models/Note.js +18 -21
- package/dist/lib/models/NoteVersion.d.ts +2 -3
- package/dist/lib/models/NoteVersion.js +4 -5
- package/dist/lib/models/Pool.d.ts +15 -20
- package/dist/lib/models/Pool.js +28 -33
- package/dist/lib/models/PoolVersion.d.ts +2 -3
- package/dist/lib/models/PoolVersion.js +4 -5
- package/dist/lib/models/Post.d.ts +5 -174
- package/dist/lib/models/Post.js +8 -294
- package/dist/lib/models/PostApproval.d.ts +2 -3
- package/dist/lib/models/PostApproval.js +4 -5
- package/dist/lib/models/PostFlag.d.ts +4 -6
- package/dist/lib/models/PostFlag.js +8 -10
- package/dist/lib/models/PostReplacement.d.ts +10 -15
- package/dist/lib/models/PostReplacement.js +16 -21
- package/dist/lib/models/PostSet.d.ts +15 -20
- package/dist/lib/models/PostSet.js +26 -31
- package/dist/lib/models/PostVersion.d.ts +8 -12
- package/dist/lib/models/PostVersion.js +13 -17
- package/dist/lib/models/PostVote.d.ts +6 -9
- package/dist/lib/models/PostVote.js +11 -14
- package/dist/lib/models/SearchTrendBlacklist.d.ts +23 -0
- package/dist/lib/models/SearchTrendBlacklist.js +41 -3
- package/dist/lib/models/StaffFile.d.ts +37 -0
- package/dist/lib/models/StaffFile.js +55 -0
- package/dist/lib/models/StaffNote.d.ts +10 -13
- package/dist/lib/models/StaffNote.js +19 -22
- package/dist/lib/models/StaffWiki.d.ts +59 -0
- package/dist/lib/models/StaffWiki.js +93 -0
- package/dist/lib/models/StaffWikiVersion.d.ts +14 -0
- package/dist/lib/models/StaffWikiVersion.js +17 -0
- package/dist/lib/models/Tag.d.ts +16 -20
- package/dist/lib/models/Tag.js +28 -32
- package/dist/lib/models/TagAlias.d.ts +11 -14
- package/dist/lib/models/TagAlias.js +20 -23
- package/dist/lib/models/TagImplication.d.ts +11 -14
- package/dist/lib/models/TagImplication.js +20 -23
- package/dist/lib/models/Takedown.d.ts +18 -24
- package/dist/lib/models/Takedown.js +27 -33
- package/dist/lib/models/ThumbnailPost.d.ts +14 -0
- package/dist/lib/models/ThumbnailPost.js +17 -0
- package/dist/lib/models/Ticket.d.ts +11 -14
- package/dist/lib/models/Ticket.js +20 -23
- package/dist/lib/models/UploadWhitelist.d.ts +6 -8
- package/dist/lib/models/UploadWhitelist.js +10 -12
- package/dist/lib/models/User.d.ts +27 -23
- package/dist/lib/models/User.js +43 -31
- package/dist/lib/models/UserFeedback.d.ts +11 -15
- package/dist/lib/models/UserFeedback.js +21 -25
- package/dist/lib/models/UserNameChangeRequest.d.ts +2 -3
- package/dist/lib/models/UserNameChangeRequest.js +4 -5
- package/dist/lib/models/WikiPage.d.ts +11 -14
- package/dist/lib/models/WikiPage.js +20 -23
- package/dist/lib/models/WikiPageVersion.d.ts +2 -3
- package/dist/lib/models/WikiPageVersion.js +4 -5
- package/dist/lib/models/index.d.ts +12 -1
- package/dist/lib/models/index.js +13 -2
- package/dist/lib/models/posts/Actions.d.ts +279 -0
- package/dist/lib/models/posts/Actions.js +476 -0
- package/dist/lib/modules/Appeals.d.ts +69 -0
- package/dist/lib/modules/Appeals.js +125 -0
- package/dist/lib/modules/ArtistUrls.d.ts +5 -5
- package/dist/lib/modules/ArtistUrls.js +7 -7
- package/dist/lib/modules/ArtistVersions.d.ts +5 -5
- package/dist/lib/modules/ArtistVersions.js +7 -7
- package/dist/lib/modules/Artists.d.ts +31 -36
- package/dist/lib/modules/Artists.js +53 -58
- package/dist/lib/modules/AvoidPostingVersions.d.ts +5 -5
- package/dist/lib/modules/AvoidPostingVersions.js +7 -7
- package/dist/lib/modules/AvoidPostings.d.ts +29 -55
- package/dist/lib/modules/AvoidPostings.js +51 -75
- package/dist/lib/modules/Bans.d.ts +7 -8
- package/dist/lib/modules/Bans.js +11 -12
- package/dist/lib/modules/Base.d.ts +15 -4
- package/dist/lib/modules/Base.js +15 -4
- package/dist/lib/modules/Blips.d.ts +34 -41
- package/dist/lib/modules/Blips.js +59 -64
- package/dist/lib/modules/BulkUpdateRequests.d.ts +25 -30
- package/dist/lib/modules/BulkUpdateRequests.js +47 -52
- package/dist/lib/modules/CommentVotes.d.ts +45 -6
- package/dist/lib/modules/CommentVotes.js +75 -12
- package/dist/lib/modules/Comments.d.ts +34 -43
- package/dist/lib/modules/Comments.js +57 -66
- package/dist/lib/modules/DMails.d.ts +25 -20
- package/dist/lib/modules/DMails.js +37 -32
- package/dist/lib/modules/DText.d.ts +6 -6
- package/dist/lib/modules/DText.js +7 -7
- package/dist/lib/modules/DbExports.d.ts +13 -0
- package/dist/lib/modules/DbExports.js +27 -0
- package/dist/lib/modules/EditHistories.d.ts +8 -9
- package/dist/lib/modules/EditHistories.js +11 -12
- package/dist/lib/modules/EmailBlacklists.d.ts +10 -12
- package/dist/lib/modules/EmailBlacklists.js +16 -18
- package/dist/lib/modules/Favorites.d.ts +15 -17
- package/dist/lib/modules/Favorites.js +20 -20
- package/dist/lib/modules/ForumPostVotes.d.ts +40 -0
- package/dist/lib/modules/ForumPostVotes.js +71 -0
- package/dist/lib/modules/ForumPosts.d.ts +32 -41
- package/dist/lib/modules/ForumPosts.js +55 -64
- package/dist/lib/modules/ForumTopics.d.ts +36 -50
- package/dist/lib/modules/ForumTopics.js +61 -84
- package/dist/lib/modules/Health.d.ts +12 -0
- package/dist/lib/modules/Health.js +26 -0
- package/dist/lib/modules/HelpPages.d.ts +27 -26
- package/dist/lib/modules/HelpPages.js +58 -47
- package/dist/lib/modules/IpBans.d.ts +10 -12
- package/dist/lib/modules/IpBans.js +16 -18
- package/dist/lib/modules/IqdbQueries.d.ts +14 -14
- package/dist/lib/modules/IqdbQueries.js +25 -18
- package/dist/lib/modules/Mascots.d.ts +19 -22
- package/dist/lib/modules/Mascots.js +33 -36
- package/dist/lib/modules/ModActions.d.ts +7 -8
- package/dist/lib/modules/ModActions.js +11 -12
- package/dist/lib/modules/NewsUpdates.d.ts +19 -22
- package/dist/lib/modules/NewsUpdates.js +35 -38
- package/dist/lib/modules/NoteVersions.d.ts +5 -5
- package/dist/lib/modules/NoteVersions.js +7 -7
- package/dist/lib/modules/Notes.d.ts +24 -29
- package/dist/lib/modules/Notes.js +45 -50
- package/dist/lib/modules/PoolVersions.d.ts +5 -5
- package/dist/lib/modules/PoolVersions.js +7 -7
- package/dist/lib/modules/Pools.d.ts +33 -41
- package/dist/lib/modules/Pools.js +58 -66
- package/dist/lib/modules/Popular.d.ts +7 -7
- package/dist/lib/modules/Popular.js +13 -11
- package/dist/lib/modules/PostApprovals.d.ts +9 -11
- package/dist/lib/modules/PostApprovals.js +15 -17
- package/dist/lib/modules/PostDisapprovals.d.ts +11 -9
- package/dist/lib/modules/PostDisapprovals.js +12 -13
- package/dist/lib/modules/PostEvents.d.ts +5 -5
- package/dist/lib/modules/PostEvents.js +13 -9
- package/dist/lib/modules/PostFlags.d.ts +26 -15
- package/dist/lib/modules/PostFlags.js +42 -23
- package/dist/lib/modules/PostReplacements.d.ts +20 -26
- package/dist/lib/modules/PostReplacements.js +36 -38
- package/dist/lib/modules/PostSets.d.ts +34 -42
- package/dist/lib/modules/PostSets.js +60 -68
- package/dist/lib/modules/PostVersions.d.ts +11 -14
- package/dist/lib/modules/PostVersions.js +19 -22
- package/dist/lib/modules/PostVotes.d.ts +33 -12
- package/dist/lib/modules/PostVotes.js +56 -17
- package/dist/lib/modules/Posts.d.ts +130 -70
- package/dist/lib/modules/Posts.js +215 -115
- package/dist/lib/modules/RelatedTags.d.ts +7 -7
- package/dist/lib/modules/RelatedTags.js +7 -7
- package/dist/lib/modules/SearchTrendBlacklists.d.ts +11 -28
- package/dist/lib/modules/SearchTrendBlacklists.js +15 -40
- package/dist/lib/modules/SearchTrends.d.ts +30 -19
- package/dist/lib/modules/SearchTrends.js +41 -22
- package/dist/lib/modules/StaffAutomodDMails.d.ts +55 -0
- package/dist/lib/modules/StaffAutomodDMails.js +98 -0
- package/dist/lib/modules/{users/DMails.d.ts → StaffDMails.d.ts} +8 -9
- package/dist/lib/modules/StaffDMails.js +54 -0
- package/dist/lib/modules/StaffExceptionLogs.d.ts +33 -0
- package/dist/lib/modules/StaffExceptionLogs.js +54 -0
- package/dist/lib/modules/StaffFiles.d.ts +72 -0
- package/dist/lib/modules/StaffFiles.js +121 -0
- package/dist/lib/modules/StaffNotes.d.ts +26 -31
- package/dist/lib/modules/StaffNotes.js +47 -52
- package/dist/lib/modules/StaffUserCleanups.d.ts +60 -0
- package/dist/lib/modules/StaffUserCleanups.js +124 -0
- package/dist/lib/modules/StaffUsers.d.ts +43 -0
- package/dist/lib/modules/StaffUsers.js +75 -0
- package/dist/lib/modules/StaffVoteTrends.d.ts +26 -0
- package/dist/lib/modules/StaffVoteTrends.js +39 -0
- package/dist/lib/modules/StaffWikiVersions.d.ts +33 -0
- package/dist/lib/modules/StaffWikiVersions.js +54 -0
- package/dist/lib/modules/StaffWikis.d.ts +94 -0
- package/dist/lib/modules/StaffWikis.js +165 -0
- package/dist/lib/modules/TagAliases.d.ts +26 -31
- package/dist/lib/modules/TagAliases.js +47 -52
- package/dist/lib/modules/TagCorrections.d.ts +6 -7
- package/dist/lib/modules/TagCorrections.js +12 -13
- package/dist/lib/modules/TagImplications.d.ts +26 -31
- package/dist/lib/modules/TagImplications.js +47 -52
- package/dist/lib/modules/TagTypeVersions.d.ts +5 -5
- package/dist/lib/modules/TagTypeVersions.js +7 -7
- package/dist/lib/modules/Tags.d.ts +23 -27
- package/dist/lib/modules/Tags.js +42 -46
- package/dist/lib/modules/Takedowns.d.ts +37 -45
- package/dist/lib/modules/Takedowns.js +59 -67
- package/dist/lib/modules/Tickets.d.ts +24 -28
- package/dist/lib/modules/Tickets.js +44 -48
- package/dist/lib/modules/UploadWhitelists.d.ts +21 -25
- package/dist/lib/modules/UploadWhitelists.js +37 -41
- package/dist/lib/modules/Uploads.d.ts +11 -13
- package/dist/lib/modules/Uploads.js +16 -18
- package/dist/lib/modules/UserFeedbacks.d.ts +28 -34
- package/dist/lib/modules/UserFeedbacks.js +52 -58
- package/dist/lib/modules/UserNameChangeRequests.d.ts +12 -15
- package/dist/lib/modules/UserNameChangeRequests.js +20 -23
- package/dist/lib/modules/Users.d.ts +56 -40
- package/dist/lib/modules/Users.js +91 -63
- package/dist/lib/modules/WikiPageVersions.d.ts +7 -8
- package/dist/lib/modules/WikiPageVersions.js +11 -12
- package/dist/lib/modules/WikiPages.d.ts +26 -31
- package/dist/lib/modules/WikiPages.js +47 -52
- package/dist/lib/modules/index.d.ts +39 -10
- package/dist/lib/modules/index.js +27 -5
- package/dist/lib/modules/posts/Format.d.ts +27 -0
- package/dist/lib/modules/posts/Format.js +17 -0
- package/dist/lib/standalone.d.ts +20 -0
- package/dist/lib/standalone.js +17 -0
- package/dist/lib/util.js +4 -10
- package/dist/lib/version.d.ts +2 -0
- package/dist/lib/version.js +3 -0
- package/package.json +34 -10
- package/tsconfig.json +2 -2
- package/dist/lib/generated/source.json +0 -19075
- package/dist/lib/models/Help.d.ts +0 -39
- package/dist/lib/models/Help.js +0 -57
- package/dist/lib/modules/admin/Users.d.ts +0 -45
- package/dist/lib/modules/admin/Users.js +0 -77
- package/dist/lib/modules/comments/Votes.d.ts +0 -31
- package/dist/lib/modules/comments/Votes.js +0 -51
- package/dist/lib/modules/forum_posts/Votes.d.ts +0 -29
- package/dist/lib/modules/forum_posts/Votes.js +0 -51
- package/dist/lib/modules/posts/Flag.d.ts +0 -16
- package/dist/lib/modules/posts/Flag.js +0 -31
- package/dist/lib/modules/posts/Votes.d.ts +0 -31
- package/dist/lib/modules/posts/Votes.js +0 -51
- package/dist/lib/modules/users/DMails.js +0 -55
- package/dist/package.json +0 -73
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser build of {@link Debug}. `debug`/`persistent-debug` are Node-only optional dependencies whose
|
|
3
|
+
* dynamic imports break browser bundlers (see #15), so this no-op variant is swapped in via
|
|
4
|
+
* package.json's `browser` field.
|
|
5
|
+
*/
|
|
6
|
+
export default function Debug(_namespace: string, _formatter: unknown, ..._args: Array<unknown>): void;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Browser build of {@link Debug}. `debug`/`persistent-debug` are Node-only optional dependencies whose
|
|
3
|
+
* dynamic imports break browser bundlers (see #15), so this no-op variant is swapped in via
|
|
4
|
+
* package.json's `browser` field.
|
|
5
|
+
*/
|
|
6
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function
|
|
7
|
+
export default function Debug(_namespace, _formatter, ..._args) { }
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVidWcuYnJvd3Nlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL2xpYi9EZWJ1Zy5icm93c2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxtR0FBbUc7QUFDbkcsTUFBTSxDQUFDLE9BQU8sVUFBVSxLQUFLLENBQUMsVUFBa0IsRUFBRSxVQUFtQixFQUFFLEdBQUcsS0FBcUIsSUFBUyxDQUFDIn0=
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import type { Client } from "./generated/client/types.js";
|
|
2
|
+
/** @category Main */
|
|
3
|
+
export interface Options {
|
|
4
|
+
/**
|
|
5
|
+
* The api key you want to authenticate with (Account -> Manage API Access)
|
|
6
|
+
* @default none
|
|
7
|
+
*/
|
|
8
|
+
authKey?: string;
|
|
9
|
+
/**
|
|
10
|
+
* The uername of the user you want to authenticate with
|
|
11
|
+
* @default none
|
|
12
|
+
*/
|
|
13
|
+
authUser?: string;
|
|
14
|
+
/**
|
|
15
|
+
* The base URL for the API.
|
|
16
|
+
* @default https://e621.net
|
|
17
|
+
*/
|
|
18
|
+
baseURL?: string;
|
|
19
|
+
/**
|
|
20
|
+
* The number of seconds before a request times out
|
|
21
|
+
* @default 30
|
|
22
|
+
*/
|
|
23
|
+
requestTimeout?: number;
|
|
24
|
+
/**
|
|
25
|
+
* The url to use for status checks.
|
|
26
|
+
* @default https://status.e621.church/json
|
|
27
|
+
*/
|
|
28
|
+
statusCheckURL?: string;
|
|
29
|
+
/**
|
|
30
|
+
* The user agent to use for requests
|
|
31
|
+
* @defaultWithoutAuthentication E621/\{version\} (+https://github.com/DonovanDMC/E621)
|
|
32
|
+
* @defaultWithAuthentication E621/\{version\} (+https://github.com/DonovanDMC/E621; \{authUser\})
|
|
33
|
+
*/
|
|
34
|
+
userAgent?: string;
|
|
35
|
+
}
|
|
36
|
+
/** @category Main */
|
|
37
|
+
export interface InstanceOptions {
|
|
38
|
+
authKey: string | null;
|
|
39
|
+
authUser: string | null;
|
|
40
|
+
baseURL: string;
|
|
41
|
+
requestTimeout: number;
|
|
42
|
+
statusCheckURL: string;
|
|
43
|
+
userAgent: string;
|
|
44
|
+
}
|
|
45
|
+
/** @category Main */
|
|
46
|
+
export interface E621ClientResult {
|
|
47
|
+
client: Client;
|
|
48
|
+
options: InstanceOptions;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Builds the generated API {@link Client} and resolved {@link InstanceOptions} used by the main {@link E621}
|
|
52
|
+
* class, handling auth header injection, the default user agent, and request/response {@link Debug} logging.
|
|
53
|
+
*
|
|
54
|
+
* Exposed standalone (see `e621/standalone`) so modules can be constructed directly, without the full
|
|
55
|
+
* {@link E621} client, when bundle size matters more than convenience.
|
|
56
|
+
*
|
|
57
|
+
* @category Main
|
|
58
|
+
*/
|
|
59
|
+
export declare function createE621Client(options?: Options): E621ClientResult;
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import Debug from "./Debug.js";
|
|
2
|
+
import { createClient } from "./generated/client/client.js";
|
|
3
|
+
import { createConfig } from "./generated/client/utils.js";
|
|
4
|
+
import { VERSION } from "./version.js";
|
|
5
|
+
/**
|
|
6
|
+
* Builds the generated API {@link Client} and resolved {@link InstanceOptions} used by the main {@link E621}
|
|
7
|
+
* class, handling auth header injection, the default user agent, and request/response {@link Debug} logging.
|
|
8
|
+
*
|
|
9
|
+
* Exposed standalone (see `e621/standalone`) so modules can be constructed directly, without the full
|
|
10
|
+
* {@link E621} client, when bundle size matters more than convenience.
|
|
11
|
+
*
|
|
12
|
+
* @category Main
|
|
13
|
+
*/
|
|
14
|
+
export function createE621Client(options) {
|
|
15
|
+
const resolved = {
|
|
16
|
+
authKey: options?.authKey ?? null,
|
|
17
|
+
authUser: options?.authUser ?? null,
|
|
18
|
+
baseURL: options?.baseURL ?? "https://e621.net",
|
|
19
|
+
requestTimeout: options?.requestTimeout ?? 30,
|
|
20
|
+
statusCheckURL: options?.statusCheckURL ?? "https://status.e621.church/json",
|
|
21
|
+
userAgent: options?.userAgent ?? `E621/${VERSION} (https://github.com/DonovanDMC/E621${options?.authUser ? `; "${options.authUser}"` : ""})`,
|
|
22
|
+
};
|
|
23
|
+
let config;
|
|
24
|
+
const commonConfig = {
|
|
25
|
+
baseUrl: resolved.baseURL,
|
|
26
|
+
headers: {
|
|
27
|
+
"User-Agent": resolved.userAgent,
|
|
28
|
+
},
|
|
29
|
+
fetch: async (input, init) => {
|
|
30
|
+
let url = "unknown", method = "unknown";
|
|
31
|
+
// for some reason it doesn't seem to be inserting the Authorization header
|
|
32
|
+
if (input instanceof Request) {
|
|
33
|
+
url = input.url;
|
|
34
|
+
method = input.method.toLowerCase();
|
|
35
|
+
if (!input.headers.has("Auithorization") && resolved.authKey && resolved.authUser) {
|
|
36
|
+
input.headers.set("Authorization", `Basic ${btoa(`${resolved.authUser}:${resolved.authKey}`)}`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
else if (init) {
|
|
40
|
+
url = input.toString();
|
|
41
|
+
method = init.method?.toLowerCase() ?? "get";
|
|
42
|
+
if (resolved.authKey && resolved.authUser) {
|
|
43
|
+
const headers = new Headers(init.headers);
|
|
44
|
+
if (!headers.has("Authorization")) {
|
|
45
|
+
headers.set("Authorization", `Basic ${btoa(`${resolved.authUser}:${resolved.authKey}`)}`);
|
|
46
|
+
}
|
|
47
|
+
init.headers = headers;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
Debug(`request:${method}`, `-> ${url}`);
|
|
51
|
+
const res = await fetch(input, init);
|
|
52
|
+
Debug(`response:${method}`, `<- ${url} ${res.status} ${res.statusText}`);
|
|
53
|
+
return res;
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
if (resolved.authKey && resolved.authUser) {
|
|
57
|
+
config = createConfig({
|
|
58
|
+
...commonConfig,
|
|
59
|
+
auth: (auth) => {
|
|
60
|
+
if (auth.scheme === "basic") {
|
|
61
|
+
return `${resolved.authUser}:${resolved.authKey}`;
|
|
62
|
+
}
|
|
63
|
+
return;
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
config = createConfig(commonConfig);
|
|
69
|
+
}
|
|
70
|
+
return { client: createClient(config), options: resolved };
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssTUFBTSxZQUFZLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBdUR2Qzs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxPQUFpQjtJQUM5QyxNQUFNLFFBQVEsR0FBb0I7UUFDOUIsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLElBQUksSUFBSTtRQUNqQyxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsSUFBSSxJQUFJO1FBQ25DLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxJQUFJLGtCQUFrQjtRQUMvQyxjQUFjLEVBQUUsT0FBTyxFQUFFLGNBQWMsSUFBSSxFQUFFO1FBQzdDLGNBQWMsRUFBRSxPQUFPLEVBQUUsY0FBYyxJQUFJLGlDQUFpQztRQUM1RSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsSUFBSSxRQUFRLE9BQU8sdUNBQXVDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sT0FBTyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUc7S0FDL0ksQ0FBQztJQUNGLElBQUksTUFBYyxDQUFDO0lBQ25CLE1BQU0sWUFBWSxHQUFnRDtRQUM5RCxPQUFPLEVBQUUsUUFBUSxDQUFDLE9BQU87UUFDekIsT0FBTyxFQUFFO1lBQ0wsWUFBWSxFQUFFLFFBQVEsQ0FBQyxTQUFTO1NBQ25DO1FBQ0QsS0FBSyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFxQixFQUFFO1lBQzVDLElBQUksR0FBRyxHQUFHLFNBQVMsRUFBRSxNQUFN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
|
package/dist/lib/errors.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
export declare class UnexpectedResponseError extends Error {
|
|
3
3
|
error: unknown;
|
|
4
4
|
name: string;
|
|
5
|
-
request
|
|
6
|
-
response
|
|
7
|
-
constructor(request: Request, response: Response, error: unknown);
|
|
5
|
+
request?: Request;
|
|
6
|
+
response?: Response;
|
|
7
|
+
constructor(request: Request | undefined, response: Response | undefined, error: unknown);
|
|
8
8
|
}
|
package/dist/lib/errors.js
CHANGED
|
@@ -5,7 +5,11 @@ export class UnexpectedResponseError extends Error {
|
|
|
5
5
|
request;
|
|
6
6
|
response;
|
|
7
7
|
constructor(request, response, error) {
|
|
8
|
-
let message =
|
|
8
|
+
let message = response
|
|
9
|
+
? `Unexpected ${response.status} ${response.statusText} on ${request?.method ?? "?"} ${request?.url ?? response.url}`
|
|
10
|
+
: request
|
|
11
|
+
? `Network error on ${request.method} ${request.url}`
|
|
12
|
+
: "Network error while building the request";
|
|
9
13
|
if (error) {
|
|
10
14
|
if (typeof error === "string")
|
|
11
15
|
message += `\n${error}`;
|
|
@@ -35,4 +39,4 @@ export class UnexpectedResponseError extends Error {
|
|
|
35
39
|
});
|
|
36
40
|
}
|
|
37
41
|
}
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vbGliL2Vycm9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1QkFBdUI7QUFDdkIsTUFBTSxPQUFPLHVCQUF3QixTQUFRLEtBQUs7SUFDOUMsS0FBSyxDQUFXO0lBQ1AsSUFBSSxHQUFHLHlCQUF5QixDQUFDO0lBQzFDLE9BQU8sQ0FBVztJQUNsQixRQUFRLENBQVk7SUFDcEIsWUFBWSxPQUE0QixFQUFFLFFBQThCLEVBQUUsS0FBYztRQUNwRixJQUFJLE9BQU8sR0FBRyxRQUFRO1lBQ2xCLENBQUMsQ0FBQyxjQUFjLFFBQVEsQ0FBQyxNQUFNLElBQUksUUFBUSxDQUFDLFVBQVUsT0FBTyxPQUFPLEVBQUUsTUFBTSxJQUFJLEdBQUcsSUFBSSxPQUFPLEVBQUUsR0FBRyxJQUFJLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDckgsQ0FBQyxDQUFDLE9BQU87Z0JBQ0wsQ0FBQyxDQUFDLG9CQUFvQixPQUFPLENBQUMsTUFBTSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUU7Z0JBQ3JELENBQUMsQ0FBQywwQ0FBMEMsQ0FBQztRQUNyRCxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1IsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRO2dCQUFFLE9BQU8sSUFBSSxLQUFLLEtBQUssRUFBRSxDQUFDO2lCQUNsRCxJQUFJLEtBQUssWUFBWSxLQUFLO2dCQUFFLE9BQU8sSUFBSSxLQUFLLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqRSx1RUFBdUU7aUJBQ2xFLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDbkQsSUFBSSxTQUFTLElBQUksS0FBSyxJQUFJLE9BQU8sS0FBSyxDQUFDLE9BQU8sS0FBSyxRQUFRO29CQUFFLE9BQU8sSUFBSSxLQUFLLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztxQkFDeEYsSUFBSSxPQUFPLElBQUksS0FBSyxJQUFJLE9BQU8sS0FBSyxDQUFDLEtBQUssS0FBSyxRQUFRO29CQUFFLE9BQU8sSUFBSSxLQUFLLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztxQkFDdkYsSUFBSSxRQUFRLElBQUksS0FBSyxJQUFJLE9BQU8sS0FBSyxDQUFDLE1BQU0sS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxJQUFJLEVBQUUsQ0FBQztvQkFDdEYsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7d0JBQ3RELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUTs0QkFBRSxPQUFPLElBQUksS0FBSyxHQUFHLEtBQUssS0FBSyxFQUFFLENBQUM7NkJBQzFELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7NEJBQUUsT0FBTyxJQUFJLEtBQUssR0FBRyxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztvQkFDOUUsQ0FBQztnQkFDTCxDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUM7UUFDRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDZixNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFO1lBQzFCLE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRTtZQUM5QyxRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUU7WUFDaEQsS0FBSyxFQUFFLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFO1NBQzdDLENBQUMsQ0FBQztJQUNQLENBQUM7Q0FDSiJ9
|
|
@@ -19,10 +19,7 @@ export const createClient = (config = {}) => {
|
|
|
19
19
|
serializedBody: undefined,
|
|
20
20
|
};
|
|
21
21
|
if (opts.security) {
|
|
22
|
-
await setAuthParams(
|
|
23
|
-
...opts,
|
|
24
|
-
security: opts.security,
|
|
25
|
-
});
|
|
22
|
+
await setAuthParams(opts);
|
|
26
23
|
}
|
|
27
24
|
if (opts.requestValidator) {
|
|
28
25
|
await opts.requestValidator(opts);
|
|
@@ -39,149 +36,134 @@ export const createClient = (config = {}) => {
|
|
|
39
36
|
return { opts: resolvedOpts, url };
|
|
40
37
|
};
|
|
41
38
|
const request = async (options) => {
|
|
42
|
-
const
|
|
43
|
-
const
|
|
44
|
-
|
|
45
|
-
...opts,
|
|
46
|
-
body: getValidRequestBody(opts),
|
|
47
|
-
};
|
|
48
|
-
let request = new Request(url, requestInit);
|
|
49
|
-
for (const fn of interceptors.request.fns) {
|
|
50
|
-
if (fn) {
|
|
51
|
-
request = await fn(request, opts);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
// fetch must be assigned here, otherwise it would throw the error:
|
|
55
|
-
// TypeError: Failed to execute 'fetch' on 'Window': Illegal invocation
|
|
56
|
-
const _fetch = opts.fetch;
|
|
39
|
+
const throwOnError = options.throwOnError ?? _config.throwOnError;
|
|
40
|
+
const responseStyle = options.responseStyle ?? _config.responseStyle;
|
|
41
|
+
let request;
|
|
57
42
|
let response;
|
|
58
43
|
try {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
44
|
+
const { opts, url } = await beforeRequest(options);
|
|
45
|
+
const requestInit = {
|
|
46
|
+
redirect: 'follow',
|
|
47
|
+
...opts,
|
|
48
|
+
body: getValidRequestBody(opts),
|
|
49
|
+
};
|
|
50
|
+
request = new Request(url, requestInit);
|
|
51
|
+
for (const fn of interceptors.request.fns) {
|
|
65
52
|
if (fn) {
|
|
66
|
-
|
|
53
|
+
request = await fn(request, opts);
|
|
67
54
|
}
|
|
68
55
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
error: finalError,
|
|
78
|
-
request,
|
|
79
|
-
response: undefined,
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
for (const fn of interceptors.response.fns) {
|
|
83
|
-
if (fn) {
|
|
84
|
-
response = await fn(response, request, opts);
|
|
56
|
+
// fetch must be assigned here, otherwise it would throw the error:
|
|
57
|
+
// TypeError: Failed to execute 'fetch' on 'Window': Illegal invocation
|
|
58
|
+
const _fetch = opts.fetch;
|
|
59
|
+
response = await _fetch(request);
|
|
60
|
+
for (const fn of interceptors.response.fns) {
|
|
61
|
+
if (fn) {
|
|
62
|
+
response = await fn(response, request, opts);
|
|
63
|
+
}
|
|
85
64
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
65
|
+
const result = {
|
|
66
|
+
request,
|
|
67
|
+
response,
|
|
68
|
+
};
|
|
69
|
+
if (response.ok) {
|
|
70
|
+
const parseAs = (opts.parseAs === 'auto'
|
|
71
|
+
? getParseAs(response.headers.get('Content-Type'))
|
|
72
|
+
: opts.parseAs) ?? 'json';
|
|
73
|
+
if (response.status === 204 || response.headers.get('Content-Length') === '0') {
|
|
74
|
+
let emptyData;
|
|
75
|
+
switch (parseAs) {
|
|
76
|
+
case 'arrayBuffer':
|
|
77
|
+
case 'blob':
|
|
78
|
+
case 'text':
|
|
79
|
+
emptyData = await response[parseAs]();
|
|
80
|
+
break;
|
|
81
|
+
case 'formData':
|
|
82
|
+
emptyData = new FormData();
|
|
83
|
+
break;
|
|
84
|
+
case 'stream':
|
|
85
|
+
emptyData = response.body;
|
|
86
|
+
break;
|
|
87
|
+
case 'json':
|
|
88
|
+
default:
|
|
89
|
+
emptyData = {};
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
return opts.responseStyle === 'data'
|
|
93
|
+
? emptyData
|
|
94
|
+
: {
|
|
95
|
+
data: emptyData,
|
|
96
|
+
...result,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
let data;
|
|
97
100
|
switch (parseAs) {
|
|
98
101
|
case 'arrayBuffer':
|
|
99
102
|
case 'blob':
|
|
103
|
+
case 'formData':
|
|
100
104
|
case 'text':
|
|
101
|
-
|
|
105
|
+
data = await response[parseAs]();
|
|
102
106
|
break;
|
|
103
|
-
case '
|
|
104
|
-
|
|
107
|
+
case 'json': {
|
|
108
|
+
// Some servers return 200 with no Content-Length and empty body.
|
|
109
|
+
// response.json() would throw; read as text and parse if non-empty.
|
|
110
|
+
const text = await response.text();
|
|
111
|
+
data = text ? JSON.parse(text) : {};
|
|
105
112
|
break;
|
|
113
|
+
}
|
|
106
114
|
case 'stream':
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
115
|
+
return opts.responseStyle === 'data'
|
|
116
|
+
? response.body
|
|
117
|
+
: {
|
|
118
|
+
data: response.body,
|
|
119
|
+
...result,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
if (parseAs === 'json') {
|
|
123
|
+
if (opts.responseValidator) {
|
|
124
|
+
await opts.responseValidator(data);
|
|
125
|
+
}
|
|
126
|
+
if (opts.responseTransformer) {
|
|
127
|
+
data = await opts.responseTransformer(data);
|
|
128
|
+
}
|
|
113
129
|
}
|
|
114
130
|
return opts.responseStyle === 'data'
|
|
115
|
-
?
|
|
131
|
+
? data
|
|
116
132
|
: {
|
|
117
|
-
data
|
|
133
|
+
data,
|
|
118
134
|
...result,
|
|
119
135
|
};
|
|
120
136
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
case 'formData':
|
|
126
|
-
case 'text':
|
|
127
|
-
data = await response[parseAs]();
|
|
128
|
-
break;
|
|
129
|
-
case 'json': {
|
|
130
|
-
// Some servers return 200 with no Content-Length and empty body.
|
|
131
|
-
// response.json() would throw; read as text and parse if non-empty.
|
|
132
|
-
const text = await response.text();
|
|
133
|
-
data = text ? JSON.parse(text) : {};
|
|
134
|
-
break;
|
|
135
|
-
}
|
|
136
|
-
case 'stream':
|
|
137
|
-
return opts.responseStyle === 'data'
|
|
138
|
-
? response.body
|
|
139
|
-
: {
|
|
140
|
-
data: response.body,
|
|
141
|
-
...result,
|
|
142
|
-
};
|
|
137
|
+
const textError = await response.text();
|
|
138
|
+
let jsonError;
|
|
139
|
+
try {
|
|
140
|
+
jsonError = JSON.parse(textError);
|
|
143
141
|
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
142
|
+
catch {
|
|
143
|
+
// noop
|
|
144
|
+
}
|
|
145
|
+
throw jsonError ?? textError;
|
|
146
|
+
}
|
|
147
|
+
catch (error) {
|
|
148
|
+
let finalError = error;
|
|
149
|
+
for (const fn of interceptors.error.fns) {
|
|
150
|
+
if (fn) {
|
|
151
|
+
finalError = await fn(finalError, response, request, options);
|
|
150
152
|
}
|
|
151
153
|
}
|
|
152
|
-
|
|
153
|
-
|
|
154
|
+
finalError = finalError || {};
|
|
155
|
+
if (throwOnError) {
|
|
156
|
+
throw finalError;
|
|
157
|
+
}
|
|
158
|
+
// TODO: we probably want to return error and improve types
|
|
159
|
+
return responseStyle === 'data'
|
|
160
|
+
? undefined
|
|
154
161
|
: {
|
|
155
|
-
|
|
156
|
-
|
|
162
|
+
error: finalError,
|
|
163
|
+
request,
|
|
164
|
+
response,
|
|
157
165
|
};
|
|
158
166
|
}
|
|
159
|
-
const textError = await response.text();
|
|
160
|
-
let jsonError;
|
|
161
|
-
try {
|
|
162
|
-
jsonError = JSON.parse(textError);
|
|
163
|
-
}
|
|
164
|
-
catch {
|
|
165
|
-
// noop
|
|
166
|
-
}
|
|
167
|
-
const error = jsonError ?? textError;
|
|
168
|
-
let finalError = error;
|
|
169
|
-
for (const fn of interceptors.error.fns) {
|
|
170
|
-
if (fn) {
|
|
171
|
-
finalError = (await fn(error, response, request, opts));
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
finalError = finalError || {};
|
|
175
|
-
if (opts.throwOnError) {
|
|
176
|
-
throw finalError;
|
|
177
|
-
}
|
|
178
|
-
// TODO: we probably want to return error and improve types
|
|
179
|
-
return opts.responseStyle === 'data'
|
|
180
|
-
? undefined
|
|
181
|
-
: {
|
|
182
|
-
error: finalError,
|
|
183
|
-
...result,
|
|
184
|
-
};
|
|
185
167
|
};
|
|
186
168
|
const makeMethodFn = (method) => (options) => request({ ...options, method });
|
|
187
169
|
const makeSseFn = (method) => async (options) => {
|
|
@@ -189,7 +171,6 @@ export const createClient = (config = {}) => {
|
|
|
189
171
|
return createSseClient({
|
|
190
172
|
...opts,
|
|
191
173
|
body: opts.body,
|
|
192
|
-
headers: opts.headers,
|
|
193
174
|
method,
|
|
194
175
|
onRequest: async (url, init) => {
|
|
195
176
|
let request = new Request(url, init);
|
|
@@ -233,4 +214,4 @@ export const createClient = (config = {}) => {
|
|
|
233
214
|
trace: makeMethodFn('TRACE'),
|
|
234
215
|
};
|
|
235
216
|
};
|
|
236
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
217
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2dlbmVyYXRlZC9jbGllbnQvY2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHFEQUFxRDtBQUVyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFdkQsT0FBTyxFQUNMLFFBQVEsRUFDUixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLFVBQVUsRUFDVixZQUFZLEVBQ1osWUFBWSxFQUNaLGFBQWEsR0FDZCxNQUFNLFlBQVksQ0FBQztBQU9wQixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxTQUFpQixFQUFFLEVBQVUsRUFBRTtJQUMxRCxJQUFJLE9BQU8sR0FBRyxZQUFZLENBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFbkQsTUFBTSxTQUFTLEdBQUcsR0FBVyxFQUFFLENBQUMsQ0FBQyxFQUFFLEdBQUcsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUVqRCxNQUFNLFNBQVMsR0FBRyxDQUFDLE1BQWMsRUFBVSxFQUFFO1FBQzNDLE9BQU8sR0FBRyxZQUFZLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3hDLE9BQU8sU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQyxDQUFDO0lBRUYsTUFBTSxZQUFZLEdBQUcsa0JBQWtCLEVBQXNELENBQUM7SUFFOUYsTUFBTSxhQUFhLEdBQUcsS0FBSyxFQU16QixPQUFpRSxFQUNqRSxFQUFFO1FBQ0YsTUFBTSxJQUFJLEdBQUc7WUFDWCxHQUFHLE9BQU87WUFDVixHQUFHLE9BQU87WUFDVixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssSUFBSSxPQUFPLENBQUMsS0FBSyxJQUFJLFVBQVUsQ0FBQyxLQUFLO1lBQ3pELE9BQU8sRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLE9B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
|
|
@@ -63,6 +63,7 @@ export interface RequestOptions<TData = unknown, TResponseStyle extends Response
|
|
|
63
63
|
url: Url;
|
|
64
64
|
}
|
|
65
65
|
export interface ResolvedRequestOptions<TResponseStyle extends ResponseStyle = 'fields', ThrowOnError extends boolean = boolean, Url extends string = string> extends RequestOptions<unknown, TResponseStyle, ThrowOnError, Url> {
|
|
66
|
+
headers: Headers;
|
|
66
67
|
serializedBody?: string;
|
|
67
68
|
}
|
|
68
69
|
export type RequestResult<TData = unknown, TError = unknown, ThrowOnError extends boolean = boolean, TResponseStyle extends ResponseStyle = 'fields'> = ThrowOnError extends true ? Promise<TResponseStyle extends 'data' ? TData extends Record<string, unknown> ? TData[keyof TData] : TData : {
|
|
@@ -76,8 +77,10 @@ export type RequestResult<TData = unknown, TError = unknown, ThrowOnError extend
|
|
|
76
77
|
data: undefined;
|
|
77
78
|
error: TError extends Record<string, unknown> ? TError[keyof TError] : TError;
|
|
78
79
|
}) & {
|
|
79
|
-
request
|
|
80
|
-
|
|
80
|
+
/** request may be undefined, because error may be from building the request object itself */
|
|
81
|
+
request?: Request;
|
|
82
|
+
/** response may be undefined, because error may be from building the request object itself or from a network error */
|
|
83
|
+
response?: Response;
|
|
81
84
|
}>;
|
|
82
85
|
export interface ClientOptions {
|
|
83
86
|
baseUrl?: string;
|
|
@@ -85,7 +88,7 @@ export interface ClientOptions {
|
|
|
85
88
|
throwOnError?: boolean;
|
|
86
89
|
}
|
|
87
90
|
type MethodFn = <TData = unknown, TError = unknown, ThrowOnError extends boolean = false, TResponseStyle extends ResponseStyle = 'fields'>(options: Omit<RequestOptions<TData, TResponseStyle, ThrowOnError>, 'method'>) => RequestResult<TData, TError, ThrowOnError, TResponseStyle>;
|
|
88
|
-
type SseFn = <TData = unknown,
|
|
91
|
+
type SseFn = <TData = unknown, _TError = unknown, ThrowOnError extends boolean = false, TResponseStyle extends ResponseStyle = 'fields'>(options: Omit<RequestOptions<never, TResponseStyle, ThrowOnError>, 'method'>) => Promise<ServerSentEventsResult<TData>>;
|
|
89
92
|
type RequestFn = <TData = unknown, TError = unknown, ThrowOnError extends boolean = false, TResponseStyle extends ResponseStyle = 'fields'>(options: Omit<RequestOptions<TData, TResponseStyle, ThrowOnError>, 'method'> & Pick<Required<RequestOptions<TData, TResponseStyle, ThrowOnError>>, 'method'>) => RequestResult<TData, TError, ThrowOnError, TResponseStyle>;
|
|
90
93
|
type BuildUrlFn = <TData extends {
|
|
91
94
|
body?: unknown;
|
|
@@ -5,13 +5,17 @@ export declare const createQuerySerializer: <T = unknown>({ parameters, ...args
|
|
|
5
5
|
* Infers parseAs value from provided Content-Type header.
|
|
6
6
|
*/
|
|
7
7
|
export declare const getParseAs: (contentType: string | null) => Exclude<Config["parseAs"], "auto">;
|
|
8
|
-
export declare
|
|
8
|
+
export declare function setAuthParams(options: Pick<RequestOptions, 'auth' | 'query' | 'security'> & {
|
|
9
9
|
headers: Headers;
|
|
10
|
-
})
|
|
10
|
+
}): Promise<void>;
|
|
11
11
|
export declare const buildUrl: Client['buildUrl'];
|
|
12
12
|
export declare const mergeConfigs: (a: Config, b: Config) => Config;
|
|
13
13
|
export declare const mergeHeaders: (...headers: Array<Required<Config>["headers"] | undefined>) => Headers;
|
|
14
|
-
type ErrInterceptor<Err, Res, Req, Options> = (error: Err,
|
|
14
|
+
type ErrInterceptor<Err, Res, Req, Options> = (error: Err,
|
|
15
|
+
/** response may be undefined due to a network error where no response object is produced */
|
|
16
|
+
response: Res | undefined,
|
|
17
|
+
/** request may be undefined, because error may be from building the request object itself */
|
|
18
|
+
request: Req | undefined, options: Options) => Err | Promise<Err>;
|
|
15
19
|
type ReqInterceptor<Req, Options> = (request: Req, options: Options) => Req | Promise<Req>;
|
|
16
20
|
type ResInterceptor<Res, Req, Options> = (response: Res, request: Req, options: Options) => Res | Promise<Res>;
|
|
17
21
|
declare class Interceptors<Interceptor> {
|
|
@@ -90,8 +90,8 @@ const checkForExistence = (options, name) => {
|
|
|
90
90
|
}
|
|
91
91
|
return false;
|
|
92
92
|
};
|
|
93
|
-
export
|
|
94
|
-
for (const auth of security) {
|
|
93
|
+
export async function setAuthParams(options) {
|
|
94
|
+
for (const auth of options.security ?? []) {
|
|
95
95
|
if (checkForExistence(options, auth.name)) {
|
|
96
96
|
continue;
|
|
97
97
|
}
|
|
@@ -116,7 +116,7 @@ export const setAuthParams = async ({ security, ...options }) => {
|
|
|
116
116
|
break;
|
|
117
117
|
}
|
|
118
118
|
}
|
|
119
|
-
}
|
|
119
|
+
}
|
|
120
120
|
export const buildUrl = (options) => getUrl({
|
|
121
121
|
baseUrl: options.baseUrl,
|
|
122
122
|
path: options.path,
|
|
@@ -226,4 +226,4 @@ export const createConfig = (override = {}) => ({
|
|
|
226
226
|
querySerializer: defaultQuerySerializer,
|
|
227
227
|
...override,
|
|
228
228
|
});
|
|
229
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
229
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvZ2VuZXJhdGVkL2NsaWVudC91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxREFBcUQ7QUFFckQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFDTCxtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLHVCQUF1QixHQUN4QixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUcxQyxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUFjLEVBQ2pELFVBQVUsR0FBRyxFQUFFLEVBQ2YsR0FBRyxJQUFJLEtBQ21CLEVBQUUsRUFBRSxFQUFFO0lBQ2hDLE1BQU0sZUFBZSxHQUFHLENBQUMsV0FBYyxFQUFFLEVBQUU7UUFDekMsTUFBTSxNQUFNLEdBQWEsRUFBRSxDQUFDO1FBQzVCLElBQUksV0FBVyxJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ25ELEtBQUssTUFBTSxJQUFJLElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQy9CLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFFaEMsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssS0FBSyxJQUFJLEVBQUUsQ0FBQztvQkFDMUMsU0FBUztnQkFDWCxDQUFDO2dCQUVELE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUM7Z0JBRXpDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUN6QixNQUFNLGVBQWUsR0FBRyxtQkFBbUIsQ0FBQzt3QkFDMUMsYUFBYSxFQUFFLE9BQU8sQ0FBQyxhQUFh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
|