@everdeep/pubmed 0.1.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/LICENSE +21 -0
- package/README.md +207 -0
- package/dist/index.cjs +2560 -0
- package/dist/index.d.cts +432 -0
- package/dist/index.d.ts +432 -0
- package/dist/index.js +2515 -0
- package/package.json +56 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,432 @@
|
|
|
1
|
+
type PubMedErrorCode = "VALIDATION_ERROR" | "HTTP_ERROR" | "RATE_LIMIT_ERROR" | "TIMEOUT_ERROR" | "NETWORK_ERROR" | "RESPONSE_TOO_LARGE" | "QUEUE_FULL" | "PARSE_ERROR" | "INVALID_RESPONSE" | "CURSOR_EXPIRED" | "CURSOR_INVALID" | "ABORTED" | "SEARCH_LIMIT";
|
|
2
|
+
declare class PubMedError extends Error {
|
|
3
|
+
readonly code: PubMedErrorCode;
|
|
4
|
+
readonly retryable: boolean;
|
|
5
|
+
constructor(message: string, code: PubMedErrorCode, retryable?: boolean, options?: ErrorOptions);
|
|
6
|
+
toJSON(): Readonly<{
|
|
7
|
+
name: string;
|
|
8
|
+
message: string;
|
|
9
|
+
code: PubMedErrorCode;
|
|
10
|
+
retryable: boolean;
|
|
11
|
+
}>;
|
|
12
|
+
}
|
|
13
|
+
declare class ValidationError extends PubMedError {
|
|
14
|
+
constructor(message: string);
|
|
15
|
+
}
|
|
16
|
+
declare class HttpError extends PubMedError {
|
|
17
|
+
readonly status: number;
|
|
18
|
+
constructor(status: number, retryable: boolean);
|
|
19
|
+
}
|
|
20
|
+
declare class RateLimitError extends PubMedError {
|
|
21
|
+
readonly status = 429;
|
|
22
|
+
constructor();
|
|
23
|
+
}
|
|
24
|
+
declare class TimeoutError extends PubMedError {
|
|
25
|
+
constructor(options?: ErrorOptions);
|
|
26
|
+
}
|
|
27
|
+
declare class NetworkError extends PubMedError {
|
|
28
|
+
constructor(options?: ErrorOptions);
|
|
29
|
+
}
|
|
30
|
+
declare class ResponseTooLargeError extends PubMedError {
|
|
31
|
+
readonly limitBytes: number;
|
|
32
|
+
constructor(limitBytes: number);
|
|
33
|
+
}
|
|
34
|
+
declare class QueueFullError extends PubMedError {
|
|
35
|
+
constructor();
|
|
36
|
+
}
|
|
37
|
+
declare class ParseError extends PubMedError {
|
|
38
|
+
constructor(message?: string, options?: ErrorOptions);
|
|
39
|
+
}
|
|
40
|
+
declare class InvalidResponseError extends PubMedError {
|
|
41
|
+
constructor(message?: string, options?: ErrorOptions);
|
|
42
|
+
}
|
|
43
|
+
declare class CursorExpiredError extends PubMedError {
|
|
44
|
+
constructor();
|
|
45
|
+
}
|
|
46
|
+
declare class CursorInvalidError extends PubMedError {
|
|
47
|
+
constructor();
|
|
48
|
+
}
|
|
49
|
+
declare class AbortedError extends PubMedError {
|
|
50
|
+
constructor(options?: ErrorOptions);
|
|
51
|
+
}
|
|
52
|
+
declare class SearchLimitError extends PubMedError {
|
|
53
|
+
readonly limit: number;
|
|
54
|
+
constructor(limit?: number);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
type JsonPrimitive = string | number | boolean | null;
|
|
58
|
+
type JsonValue = JsonPrimitive | JsonObject | readonly JsonValue[];
|
|
59
|
+
interface JsonObject {
|
|
60
|
+
readonly [key: string]: JsonValue;
|
|
61
|
+
}
|
|
62
|
+
interface PubMedIdentifier {
|
|
63
|
+
readonly type: string;
|
|
64
|
+
readonly value: string;
|
|
65
|
+
readonly provenance: "citation" | "article-id" | "book";
|
|
66
|
+
}
|
|
67
|
+
interface PubMedLink {
|
|
68
|
+
readonly url: string;
|
|
69
|
+
readonly type: "pubmed" | "doi" | "pmc" | "linkout";
|
|
70
|
+
readonly provenance: "canonical" | "ncbi-linkout";
|
|
71
|
+
readonly provider?: Readonly<{
|
|
72
|
+
name?: string;
|
|
73
|
+
abbreviation?: string;
|
|
74
|
+
id?: string;
|
|
75
|
+
}>;
|
|
76
|
+
}
|
|
77
|
+
interface PartialDate {
|
|
78
|
+
readonly year?: string;
|
|
79
|
+
readonly month?: string;
|
|
80
|
+
readonly day?: string;
|
|
81
|
+
readonly season?: string;
|
|
82
|
+
readonly medlineDate?: string;
|
|
83
|
+
readonly hour?: string;
|
|
84
|
+
readonly minute?: string;
|
|
85
|
+
readonly second?: string;
|
|
86
|
+
}
|
|
87
|
+
interface AbstractSection {
|
|
88
|
+
readonly text: string;
|
|
89
|
+
readonly label?: string;
|
|
90
|
+
readonly category?: string;
|
|
91
|
+
/** @deprecated Copyright applies to the full abstract; use BasePubMedRecord.abstractCopyright. */
|
|
92
|
+
readonly copyright?: string;
|
|
93
|
+
}
|
|
94
|
+
interface Affiliation {
|
|
95
|
+
readonly text: string;
|
|
96
|
+
readonly identifiers: readonly PubMedIdentifier[];
|
|
97
|
+
}
|
|
98
|
+
interface AuthorIdentifier {
|
|
99
|
+
readonly source?: string;
|
|
100
|
+
readonly value: string;
|
|
101
|
+
}
|
|
102
|
+
interface PersonalAuthor {
|
|
103
|
+
readonly type: "personal";
|
|
104
|
+
readonly lastName?: string;
|
|
105
|
+
readonly foreName?: string;
|
|
106
|
+
readonly initials?: string;
|
|
107
|
+
readonly suffix?: string;
|
|
108
|
+
readonly fullName: string;
|
|
109
|
+
readonly valid?: boolean;
|
|
110
|
+
readonly affiliations: readonly Affiliation[];
|
|
111
|
+
readonly identifiers: readonly AuthorIdentifier[];
|
|
112
|
+
readonly orcid?: string;
|
|
113
|
+
}
|
|
114
|
+
interface CollectiveAuthor {
|
|
115
|
+
readonly type: "collective";
|
|
116
|
+
readonly name: string;
|
|
117
|
+
readonly affiliations: readonly Affiliation[];
|
|
118
|
+
readonly identifiers: readonly AuthorIdentifier[];
|
|
119
|
+
}
|
|
120
|
+
type PubMedAuthor = PersonalAuthor | CollectiveAuthor;
|
|
121
|
+
interface JournalCitation {
|
|
122
|
+
readonly title?: string;
|
|
123
|
+
readonly isoAbbreviation?: string;
|
|
124
|
+
readonly issn?: string;
|
|
125
|
+
readonly issnType?: string;
|
|
126
|
+
readonly volume?: string;
|
|
127
|
+
readonly issue?: string;
|
|
128
|
+
readonly pagination?: string;
|
|
129
|
+
readonly pubDate?: PartialDate;
|
|
130
|
+
}
|
|
131
|
+
interface PublicationHistoryEntry {
|
|
132
|
+
readonly status: string;
|
|
133
|
+
readonly date: PartialDate;
|
|
134
|
+
}
|
|
135
|
+
interface PublicationDates {
|
|
136
|
+
readonly completed?: PartialDate;
|
|
137
|
+
readonly revised?: PartialDate;
|
|
138
|
+
readonly electronic?: PartialDate;
|
|
139
|
+
readonly print?: PartialDate;
|
|
140
|
+
readonly history: readonly PublicationHistoryEntry[];
|
|
141
|
+
}
|
|
142
|
+
interface MeshHeading {
|
|
143
|
+
readonly descriptor: string;
|
|
144
|
+
readonly descriptorUi?: string;
|
|
145
|
+
readonly majorTopic?: boolean;
|
|
146
|
+
readonly qualifiers: readonly Readonly<{
|
|
147
|
+
name: string;
|
|
148
|
+
ui?: string;
|
|
149
|
+
majorTopic?: boolean;
|
|
150
|
+
}>[];
|
|
151
|
+
}
|
|
152
|
+
interface Keyword {
|
|
153
|
+
readonly value: string;
|
|
154
|
+
readonly owner?: string;
|
|
155
|
+
readonly majorTopic?: boolean;
|
|
156
|
+
}
|
|
157
|
+
interface PubMedWarning {
|
|
158
|
+
readonly code: "UNKNOWN_RECORD" | "PARSE_WARNING";
|
|
159
|
+
readonly message: string;
|
|
160
|
+
readonly recordType?: string;
|
|
161
|
+
}
|
|
162
|
+
interface BasePubMedRecord {
|
|
163
|
+
readonly kind: "article" | "book" | "unknown";
|
|
164
|
+
readonly recordType: string;
|
|
165
|
+
readonly rawXml: string;
|
|
166
|
+
readonly source: JsonObject;
|
|
167
|
+
readonly identifiers: readonly PubMedIdentifier[];
|
|
168
|
+
readonly links: readonly PubMedLink[];
|
|
169
|
+
readonly pmid?: string;
|
|
170
|
+
readonly doi?: string;
|
|
171
|
+
readonly pmcid?: string;
|
|
172
|
+
readonly title?: string;
|
|
173
|
+
readonly abstract: readonly AbstractSection[];
|
|
174
|
+
readonly abstractCopyright?: string;
|
|
175
|
+
readonly authors: readonly PubMedAuthor[];
|
|
176
|
+
readonly languages: readonly string[];
|
|
177
|
+
readonly publicationTypes: readonly string[];
|
|
178
|
+
readonly keywords: readonly Keyword[];
|
|
179
|
+
readonly meshHeadings: readonly MeshHeading[];
|
|
180
|
+
readonly dates: PublicationDates;
|
|
181
|
+
}
|
|
182
|
+
interface PubMedArticleRecord extends BasePubMedRecord {
|
|
183
|
+
readonly kind: "article";
|
|
184
|
+
readonly recordType: "PubmedArticle";
|
|
185
|
+
readonly vernacularTitle?: string;
|
|
186
|
+
readonly journal?: JournalCitation;
|
|
187
|
+
readonly citationStatus?: string;
|
|
188
|
+
}
|
|
189
|
+
interface PubMedBookRecord extends BasePubMedRecord {
|
|
190
|
+
readonly kind: "book";
|
|
191
|
+
readonly recordType: "PubmedBookArticle";
|
|
192
|
+
readonly book?: Readonly<{
|
|
193
|
+
title?: string;
|
|
194
|
+
collectionTitle?: string;
|
|
195
|
+
publisher?: string;
|
|
196
|
+
location?: string;
|
|
197
|
+
edition?: string;
|
|
198
|
+
isbn: readonly string[];
|
|
199
|
+
}>;
|
|
200
|
+
}
|
|
201
|
+
interface UnknownPubMedRecord extends BasePubMedRecord {
|
|
202
|
+
readonly kind: "unknown";
|
|
203
|
+
}
|
|
204
|
+
type PubMedRecord = PubMedArticleRecord | PubMedBookRecord | UnknownPubMedRecord;
|
|
205
|
+
interface PubMedSummaryAuthor {
|
|
206
|
+
readonly name: string;
|
|
207
|
+
readonly type?: string;
|
|
208
|
+
readonly clusterId?: string;
|
|
209
|
+
}
|
|
210
|
+
interface PubMedSummaryIdentifier {
|
|
211
|
+
readonly type: string;
|
|
212
|
+
readonly value: string;
|
|
213
|
+
readonly numericType?: number;
|
|
214
|
+
}
|
|
215
|
+
interface PubMedSummaryHistoryEntry {
|
|
216
|
+
readonly status: string;
|
|
217
|
+
readonly date: string;
|
|
218
|
+
}
|
|
219
|
+
interface PubMedSummaryJournal {
|
|
220
|
+
readonly title?: string;
|
|
221
|
+
readonly abbreviation?: string;
|
|
222
|
+
readonly issn?: string;
|
|
223
|
+
readonly electronicIssn?: string;
|
|
224
|
+
readonly volume?: string;
|
|
225
|
+
readonly issue?: string;
|
|
226
|
+
readonly pages?: string;
|
|
227
|
+
}
|
|
228
|
+
interface PubMedSummaryBook {
|
|
229
|
+
readonly title?: string;
|
|
230
|
+
readonly name?: string;
|
|
231
|
+
readonly chapter?: string;
|
|
232
|
+
readonly edition?: string;
|
|
233
|
+
readonly publisher?: string;
|
|
234
|
+
readonly location?: string;
|
|
235
|
+
}
|
|
236
|
+
/** Lightweight metadata returned by the PubMed ESummary endpoint. */
|
|
237
|
+
interface PubMedSummary {
|
|
238
|
+
readonly kind: "summary";
|
|
239
|
+
readonly uid: string;
|
|
240
|
+
readonly pmid: string;
|
|
241
|
+
/** The validated JSON object for this UID, retained for forward compatibility. */
|
|
242
|
+
readonly source: JsonObject;
|
|
243
|
+
readonly title?: string;
|
|
244
|
+
readonly sortTitle?: string;
|
|
245
|
+
readonly authors: readonly PubMedSummaryAuthor[];
|
|
246
|
+
readonly lastAuthor?: string;
|
|
247
|
+
readonly sortFirstAuthor?: string;
|
|
248
|
+
readonly journal?: PubMedSummaryJournal;
|
|
249
|
+
readonly book?: PubMedSummaryBook;
|
|
250
|
+
readonly publicationDate?: string;
|
|
251
|
+
readonly electronicPublicationDate?: string;
|
|
252
|
+
readonly sortPublicationDate?: string;
|
|
253
|
+
/** Electronic article locator, for example an article number instead of page range. */
|
|
254
|
+
readonly electronicLocationId?: string;
|
|
255
|
+
readonly sourceDate?: string;
|
|
256
|
+
readonly documentDate?: string;
|
|
257
|
+
readonly languages: readonly string[];
|
|
258
|
+
readonly publicationTypes: readonly string[];
|
|
259
|
+
readonly identifiers: readonly PubMedSummaryIdentifier[];
|
|
260
|
+
readonly history: readonly PubMedSummaryHistoryEntry[];
|
|
261
|
+
readonly doi?: string;
|
|
262
|
+
readonly pmcid?: string;
|
|
263
|
+
readonly recordStatus?: string;
|
|
264
|
+
readonly publicationStatus?: string;
|
|
265
|
+
readonly documentType?: string;
|
|
266
|
+
readonly medium?: string;
|
|
267
|
+
readonly edition?: string;
|
|
268
|
+
readonly publisher?: string;
|
|
269
|
+
readonly publisherLocation?: string;
|
|
270
|
+
readonly reportNumber?: string;
|
|
271
|
+
readonly availableFromUrl?: string;
|
|
272
|
+
}
|
|
273
|
+
interface SummaryBatchResult {
|
|
274
|
+
readonly summaries: readonly PubMedSummary[];
|
|
275
|
+
readonly missingPmids: readonly string[];
|
|
276
|
+
}
|
|
277
|
+
type CitationFormat = "ris" | "bibtex";
|
|
278
|
+
type CitationSource = PubMedArticleRecord | PubMedBookRecord | PubMedSummary;
|
|
279
|
+
interface BatchResult {
|
|
280
|
+
readonly records: readonly PubMedRecord[];
|
|
281
|
+
readonly missingPmids: readonly string[];
|
|
282
|
+
readonly warnings: readonly PubMedWarning[];
|
|
283
|
+
}
|
|
284
|
+
interface SearchBatch extends BatchResult {
|
|
285
|
+
readonly total: number;
|
|
286
|
+
readonly nextCursor: string | null;
|
|
287
|
+
}
|
|
288
|
+
interface RequestOptions {
|
|
289
|
+
readonly includeLinkOuts?: boolean;
|
|
290
|
+
readonly signal?: AbortSignal;
|
|
291
|
+
}
|
|
292
|
+
interface SummaryRequestOptions {
|
|
293
|
+
readonly signal?: AbortSignal;
|
|
294
|
+
}
|
|
295
|
+
interface SearchQueryOptions extends RequestOptions {
|
|
296
|
+
readonly query: string;
|
|
297
|
+
readonly pageSize?: number;
|
|
298
|
+
readonly sort?: string;
|
|
299
|
+
readonly cursor?: never;
|
|
300
|
+
}
|
|
301
|
+
interface SearchCursorOptions extends RequestOptions {
|
|
302
|
+
readonly cursor: string;
|
|
303
|
+
readonly query?: never;
|
|
304
|
+
}
|
|
305
|
+
type SearchOptions = SearchQueryOptions | SearchCursorOptions;
|
|
306
|
+
interface SearchAllOptions extends RequestOptions {
|
|
307
|
+
readonly query: string;
|
|
308
|
+
readonly maxResults: number;
|
|
309
|
+
readonly pageSize?: number;
|
|
310
|
+
readonly sort?: string;
|
|
311
|
+
}
|
|
312
|
+
interface CacheAdapter {
|
|
313
|
+
get(key: string): Promise<string | undefined>;
|
|
314
|
+
set(key: string, value: string): Promise<void>;
|
|
315
|
+
/** Optional best-effort invalidation used when a cached endpoint body fails validation. */
|
|
316
|
+
delete?(key: string): Promise<void>;
|
|
317
|
+
}
|
|
318
|
+
interface RateLimitBucket {
|
|
319
|
+
readonly host: string;
|
|
320
|
+
readonly credentialFingerprint: string;
|
|
321
|
+
readonly requestsPerSecond: number;
|
|
322
|
+
}
|
|
323
|
+
interface RateLimitCoordinator {
|
|
324
|
+
acquire(bucket: RateLimitBucket, signal?: AbortSignal): Promise<void>;
|
|
325
|
+
cooldown?(bucket: RateLimitBucket, delayMs: number): Promise<void>;
|
|
326
|
+
}
|
|
327
|
+
type PubMedEndpoint = "esearch" | "esummary" | "efetch" | "elink";
|
|
328
|
+
type PubMedEvent = Readonly<{
|
|
329
|
+
type: "correlation-id";
|
|
330
|
+
endpoint: PubMedEndpoint;
|
|
331
|
+
correlationId: string;
|
|
332
|
+
}> | Readonly<{
|
|
333
|
+
type: "cache-hit" | "cache-miss";
|
|
334
|
+
endpoint: PubMedEndpoint;
|
|
335
|
+
correlationId: string;
|
|
336
|
+
}> | Readonly<{
|
|
337
|
+
type: "request-coalesced";
|
|
338
|
+
endpoint: PubMedEndpoint;
|
|
339
|
+
correlationId: string;
|
|
340
|
+
sharedCorrelationId: string;
|
|
341
|
+
}> | Readonly<{
|
|
342
|
+
type: "response-bytes";
|
|
343
|
+
endpoint: PubMedEndpoint;
|
|
344
|
+
correlationId: string;
|
|
345
|
+
attempt: number;
|
|
346
|
+
bytes: number;
|
|
347
|
+
}> | Readonly<{
|
|
348
|
+
type: "terminal-failure";
|
|
349
|
+
endpoint: PubMedEndpoint;
|
|
350
|
+
correlationId: string;
|
|
351
|
+
errorCode: PubMedErrorCode | "UNKNOWN_ERROR";
|
|
352
|
+
}> | Readonly<{
|
|
353
|
+
type: "request";
|
|
354
|
+
endpoint: PubMedEndpoint;
|
|
355
|
+
status: number;
|
|
356
|
+
durationMs: number;
|
|
357
|
+
attempt: number;
|
|
358
|
+
correlationId?: string;
|
|
359
|
+
}> | Readonly<{
|
|
360
|
+
type: "retry";
|
|
361
|
+
endpoint: PubMedEndpoint;
|
|
362
|
+
attempt: number;
|
|
363
|
+
delayMs: number;
|
|
364
|
+
reason: "network" | "timeout" | "http";
|
|
365
|
+
correlationId?: string;
|
|
366
|
+
}> | Readonly<{
|
|
367
|
+
type: "queue-delay";
|
|
368
|
+
delayMs: number;
|
|
369
|
+
}> | Readonly<{
|
|
370
|
+
type: "rate-cooldown";
|
|
371
|
+
delayMs: number;
|
|
372
|
+
}> | Readonly<{
|
|
373
|
+
type: "parse-warning";
|
|
374
|
+
code: PubMedWarning["code"];
|
|
375
|
+
recordType?: string;
|
|
376
|
+
}>;
|
|
377
|
+
interface PubMedClientOptions {
|
|
378
|
+
readonly email: string;
|
|
379
|
+
readonly tool: string;
|
|
380
|
+
readonly apiKey?: string;
|
|
381
|
+
readonly fetch?: typeof fetch;
|
|
382
|
+
readonly cache?: CacheAdapter;
|
|
383
|
+
readonly rateLimitCoordinator?: RateLimitCoordinator;
|
|
384
|
+
readonly onEvent?: (event: PubMedEvent) => void;
|
|
385
|
+
readonly timeoutMs?: number;
|
|
386
|
+
readonly maxAttempts?: number;
|
|
387
|
+
readonly maxResponseBytes?: number;
|
|
388
|
+
readonly maxQueuedRequests?: number;
|
|
389
|
+
readonly maxBatchSize?: number;
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
declare class PubMedClient {
|
|
393
|
+
#private;
|
|
394
|
+
constructor(options: PubMedClientOptions);
|
|
395
|
+
get(pmid: string, options?: RequestOptions): Promise<PubMedRecord | null>;
|
|
396
|
+
getMany(pmids: readonly string[], options?: RequestOptions): Promise<BatchResult>;
|
|
397
|
+
getSummary(pmid: string, options?: SummaryRequestOptions): Promise<PubMedSummary | null>;
|
|
398
|
+
getManySummaries(pmids: readonly string[], options?: SummaryRequestOptions): Promise<SummaryBatchResult>;
|
|
399
|
+
search(options: SearchOptions): Promise<SearchBatch>;
|
|
400
|
+
searchAll(options: SearchAllOptions): AsyncIterable<SearchBatch>;
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
interface MemoryCacheOptions {
|
|
404
|
+
readonly maxEntries?: number;
|
|
405
|
+
/** Maximum UTF-8 bytes retained across cache keys and values. */
|
|
406
|
+
readonly maxBytes?: number;
|
|
407
|
+
readonly ttlMs?: number;
|
|
408
|
+
}
|
|
409
|
+
/** Opt-in bounded, process-local cache. Byte accounting includes UTF-8 keys and values. */
|
|
410
|
+
declare class MemoryCache implements CacheAdapter {
|
|
411
|
+
#private;
|
|
412
|
+
constructor(options?: MemoryCacheOptions);
|
|
413
|
+
get(key: string): Promise<string | undefined>;
|
|
414
|
+
set(key: string, value: string): Promise<void>;
|
|
415
|
+
delete(key: string): Promise<void>;
|
|
416
|
+
clear(): void;
|
|
417
|
+
get size(): number;
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
/** Formats one PubMed article, book record, or summary as deterministic RIS or BibTeX. */
|
|
421
|
+
declare function formatCitation(source: CitationSource, format: CitationFormat): string;
|
|
422
|
+
/** Formats citations in caller order, separated by one blank line. */
|
|
423
|
+
declare function formatCitations(sources: readonly CitationSource[], format: CitationFormat): string;
|
|
424
|
+
|
|
425
|
+
interface ParsedPubMedXml {
|
|
426
|
+
readonly records: readonly PubMedRecord[];
|
|
427
|
+
readonly warnings: readonly PubMedWarning[];
|
|
428
|
+
}
|
|
429
|
+
/** Parse an entire PubmedArticleSet while retaining each direct child byte-for-byte. */
|
|
430
|
+
declare function parsePubMedXml(xml: string): ParsedPubMedXml;
|
|
431
|
+
|
|
432
|
+
export { AbortedError, type AbstractSection, type Affiliation, type AuthorIdentifier, type BasePubMedRecord, type BatchResult, type CacheAdapter, type CitationFormat, type CitationSource, type CollectiveAuthor, CursorExpiredError, CursorInvalidError, HttpError, InvalidResponseError, type JournalCitation, type JsonObject, type JsonPrimitive, type JsonValue, type Keyword, MemoryCache, type MemoryCacheOptions, type MeshHeading, NetworkError, ParseError, type ParsedPubMedXml, type PartialDate, type PersonalAuthor, type PubMedArticleRecord, type PubMedAuthor, type PubMedBookRecord, PubMedClient, type PubMedClientOptions, type PubMedEndpoint, PubMedError, type PubMedErrorCode, type PubMedEvent, type PubMedIdentifier, type PubMedLink, type PubMedRecord, type PubMedSummary, type PubMedSummaryAuthor, type PubMedSummaryBook, type PubMedSummaryHistoryEntry, type PubMedSummaryIdentifier, type PubMedSummaryJournal, type PubMedWarning, type PublicationDates, type PublicationHistoryEntry, QueueFullError, type RateLimitBucket, type RateLimitCoordinator, RateLimitError, type RequestOptions, ResponseTooLargeError, type SearchAllOptions, type SearchBatch, type SearchCursorOptions, SearchLimitError, type SearchOptions, type SearchQueryOptions, type SummaryBatchResult, type SummaryRequestOptions, TimeoutError, type UnknownPubMedRecord, ValidationError, formatCitation, formatCitations, parsePubMedXml };
|