@dereekb/dbx-cli 13.11.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/firebase-api-manifest/src/generate-api-manifest/bind-validators.d.ts +44 -0
- package/firebase-api-manifest/src/generate-api-manifest/emit.d.ts +29 -0
- package/firebase-api-manifest/src/generate-api-manifest/extract-crud.d.ts +25 -0
- package/firebase-api-manifest/src/generate-api-manifest/find-api-files.d.ts +16 -0
- package/firebase-api-manifest/src/generate-api-manifest/main.d.ts +46 -0
- package/firebase-api-manifest/src/generate-api-manifest/parse-functions.d.ts +18 -0
- package/firebase-api-manifest/src/generate-api-manifest/resolve-package.d.ts +59 -0
- package/firebase-api-manifest/src/generate-api-manifest/types.d.ts +44 -0
- package/index.cjs.default.js +1 -0
- package/index.cjs.js +8162 -0
- package/index.cjs.mjs +2 -0
- package/index.d.ts +1 -0
- package/index.esm.js +8084 -0
- package/package.json +27 -0
- package/src/index.d.ts +1 -0
- package/src/lib/api/call-model.client.d.ts +37 -0
- package/src/lib/api/call-model.command.factory.d.ts +42 -0
- package/src/lib/api/call.passthrough.command.d.ts +8 -0
- package/src/lib/api/index.d.ts +3 -0
- package/src/lib/auth/auth.command.factory.d.ts +29 -0
- package/src/lib/auth/index.d.ts +3 -0
- package/src/lib/auth/oidc.client.d.ts +125 -0
- package/src/lib/auth/oidc.flow.d.ts +79 -0
- package/src/lib/config/cli.config.d.ts +112 -0
- package/src/lib/config/env.d.ts +183 -0
- package/src/lib/config/index.d.ts +4 -0
- package/src/lib/config/paths.d.ts +33 -0
- package/src/lib/config/token.cache.d.ts +51 -0
- package/src/lib/context/cli.context.d.ts +41 -0
- package/src/lib/context/index.d.ts +1 -0
- package/src/lib/doctor/doctor.command.factory.d.ts +48 -0
- package/src/lib/doctor/index.d.ts +1 -0
- package/src/lib/env/env.command.factory.d.ts +22 -0
- package/src/lib/env/index.d.ts +1 -0
- package/src/lib/index.d.ts +11 -0
- package/src/lib/manifest/build-manifest-commands.d.ts +77 -0
- package/src/lib/manifest/index.d.ts +2 -0
- package/src/lib/manifest/types.d.ts +20 -0
- package/src/lib/middleware/auth.middleware.d.ts +29 -0
- package/src/lib/middleware/index.d.ts +2 -0
- package/src/lib/middleware/output.middleware.d.ts +54 -0
- package/src/lib/output/index.d.ts +1 -0
- package/src/lib/output/output.command.factory.d.ts +55 -0
- package/src/lib/runner/index.d.ts +1 -0
- package/src/lib/runner/run.d.ts +71 -0
- package/src/lib/util/args.d.ts +78 -0
- package/src/lib/util/context.slot.d.ts +50 -0
- package/src/lib/util/handler.d.ts +13 -0
- package/src/lib/util/index.d.ts +6 -0
- package/src/lib/util/interactive.d.ts +26 -0
- package/src/lib/util/output.d.ts +152 -0
- package/src/lib/util/pagination.d.ts +91 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { type Maybe } from '@dereekb/util';
|
|
2
|
+
/**
|
|
3
|
+
* Module-level slot for a single value of type `T`.
|
|
4
|
+
*
|
|
5
|
+
* Used to bridge yargs middleware (which assigns to argv) and command handlers (which read the
|
|
6
|
+
* value) without having to thread the context through `argv` (where yargs strict mode would flag
|
|
7
|
+
* unknown keys).
|
|
8
|
+
*/
|
|
9
|
+
export interface ContextSlot<T> {
|
|
10
|
+
/**
|
|
11
|
+
* Assigns the slot to `value` (or clears it if `null`/`undefined` is passed).
|
|
12
|
+
*/
|
|
13
|
+
set(value: Maybe<T>): void;
|
|
14
|
+
/**
|
|
15
|
+
* Returns the current slot value, or `undefined` when unset.
|
|
16
|
+
*/
|
|
17
|
+
get(): Maybe<T>;
|
|
18
|
+
/**
|
|
19
|
+
* Returns the current slot value, or throws when unset. Use this from command handlers that
|
|
20
|
+
* require the auth middleware to have run.
|
|
21
|
+
*/
|
|
22
|
+
require(): T;
|
|
23
|
+
}
|
|
24
|
+
export interface CreateContextSlotInput {
|
|
25
|
+
/**
|
|
26
|
+
* Custom error message thrown by {@link ContextSlot.require} when the slot is unset. Defaults
|
|
27
|
+
* to a generic "context slot has not been initialized" message.
|
|
28
|
+
*/
|
|
29
|
+
readonly notInitializedMessage?: string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Creates a typed module-level slot.
|
|
33
|
+
*
|
|
34
|
+
* Each CLI exposes its current per-invocation context (auth tokens, API clients, env config, ...)
|
|
35
|
+
* via a slot so command handlers can read it without yargs strict-mode flagging unknown argv keys.
|
|
36
|
+
*
|
|
37
|
+
* Usage:
|
|
38
|
+
* ```ts
|
|
39
|
+
* const slot = createContextSlot<MyCliContext>({ notInitializedMessage: 'Auth middleware did not run.' });
|
|
40
|
+
* // in middleware:
|
|
41
|
+
* slot.set(buildContext(...));
|
|
42
|
+
* // in handler:
|
|
43
|
+
* const ctx = slot.require();
|
|
44
|
+
* ```
|
|
45
|
+
*
|
|
46
|
+
* @param input - Optional slot configuration.
|
|
47
|
+
* @param input.notInitializedMessage - Custom error message thrown by `require()` when the slot is unset.
|
|
48
|
+
* @returns A new {@link ContextSlot} for type `T`.
|
|
49
|
+
*/
|
|
50
|
+
export declare function createContextSlot<T>(input?: CreateContextSlotInput): ContextSlot<T>;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Arguments } from 'yargs';
|
|
2
|
+
/**
|
|
3
|
+
* Wraps a yargs command handler with the standard structured-error boilerplate:
|
|
4
|
+
* any thrown error is converted to a `{ ok: false, ... }` envelope via {@link outputError}
|
|
5
|
+
* and the process exits with code 1.
|
|
6
|
+
*
|
|
7
|
+
* Lets command files drop the per-handler `try { ... } catch (e) { outputError(e); process.exit(1); }`
|
|
8
|
+
* block while keeping the same observable behavior.
|
|
9
|
+
*
|
|
10
|
+
* @param handler - The inner command handler to invoke. May be sync or async.
|
|
11
|
+
* @returns An async handler that delegates to `handler` and converts thrown errors into the standard envelope.
|
|
12
|
+
*/
|
|
13
|
+
export declare function wrapCommandHandler<T>(handler: (argv: Arguments<T>) => Promise<void> | void): (argv: Arguments<T>) => Promise<void>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface PromptInput {
|
|
2
|
+
readonly question: string;
|
|
3
|
+
readonly mask?: boolean;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Error code thrown by {@link promptLine} when the user cancels a masked prompt with Ctrl-C.
|
|
7
|
+
*
|
|
8
|
+
* Callers that want to catch and handle cancellation should match on this code; otherwise the
|
|
9
|
+
* standard wrapCommandHandler / outputError envelope reports `code: 'PROMPT_CANCELLED'`.
|
|
10
|
+
*/
|
|
11
|
+
export declare const PROMPT_CANCELLED_ERROR_CODE = "PROMPT_CANCELLED";
|
|
12
|
+
/**
|
|
13
|
+
* Reads a single line of input from stdin, optionally masking the typed characters.
|
|
14
|
+
*
|
|
15
|
+
* Used by `auth setup` to prompt for client secrets and by `auth login` to prompt for the
|
|
16
|
+
* pasted redirect URL.
|
|
17
|
+
*
|
|
18
|
+
* Rejects with a {@link CliError} (`code: 'PROMPT_CANCELLED'`) when the user presses Ctrl-C
|
|
19
|
+
* during a masked prompt, instead of forcibly terminating the process.
|
|
20
|
+
*
|
|
21
|
+
* @param input - The prompt inputs.
|
|
22
|
+
* @param input.question - The prompt text written to stdout (or stderr when masking).
|
|
23
|
+
* @param input.mask - When `true`, characters are echoed as `*` and Ctrl-C cancels the prompt.
|
|
24
|
+
* @returns The line entered by the user (without the trailing newline).
|
|
25
|
+
*/
|
|
26
|
+
export declare function promptLine(input: PromptInput): Promise<string>;
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { type Maybe } from '@dereekb/util';
|
|
2
|
+
export interface CliSuccessOutput<T = unknown> {
|
|
3
|
+
readonly ok: true;
|
|
4
|
+
readonly data: T;
|
|
5
|
+
readonly meta?: Record<string, unknown>;
|
|
6
|
+
}
|
|
7
|
+
export interface CliErrorOutput {
|
|
8
|
+
readonly ok: false;
|
|
9
|
+
readonly error: string;
|
|
10
|
+
readonly code: string;
|
|
11
|
+
readonly suggestion?: string;
|
|
12
|
+
}
|
|
13
|
+
export type CliOutput<T = unknown> = CliSuccessOutput<T> | CliErrorOutput;
|
|
14
|
+
/**
|
|
15
|
+
* Configuration for response dumping and field filtering.
|
|
16
|
+
*
|
|
17
|
+
* Set via {@link configureOutputOptions} from global CLI flags.
|
|
18
|
+
*/
|
|
19
|
+
export interface CliOutputOptions {
|
|
20
|
+
readonly dumpDir?: string;
|
|
21
|
+
readonly pick?: string;
|
|
22
|
+
readonly commandPath?: string[];
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Patterns that indicate a string may contain a secret token or credential.
|
|
26
|
+
*/
|
|
27
|
+
export type CliSecretPattern = RegExp;
|
|
28
|
+
/**
|
|
29
|
+
* Default secret-redaction patterns. Covers OAuth bearer tokens, access/refresh tokens, and client secrets.
|
|
30
|
+
*
|
|
31
|
+
* Apps can extend this list via {@link configureCliSecretPatterns} to add provider-specific patterns
|
|
32
|
+
* (e.g. Zoho's `1000.<32-char>` token shape).
|
|
33
|
+
*/
|
|
34
|
+
export declare const DEFAULT_CLI_SECRET_PATTERNS: CliSecretPattern[];
|
|
35
|
+
/**
|
|
36
|
+
* Optional mapper for converting consumer-specific exception types into a {@link CliErrorOutput} envelope.
|
|
37
|
+
*
|
|
38
|
+
* When set via {@link configureCliErrorMapper}, {@link buildErrorOutput} consults the mapper before falling
|
|
39
|
+
* back to the built-in `CliError` / `Error` / unknown branches. Returning `undefined` defers to the defaults.
|
|
40
|
+
*/
|
|
41
|
+
export type CliErrorMapper = (error: unknown) => Maybe<CliErrorOutput>;
|
|
42
|
+
/**
|
|
43
|
+
* Configures output options from parsed CLI arguments.
|
|
44
|
+
*
|
|
45
|
+
* Call from middleware before any command handler runs.
|
|
46
|
+
*
|
|
47
|
+
* @param options - The resolved {@link CliOutputOptions} (dump dir, pick filter, command path).
|
|
48
|
+
*/
|
|
49
|
+
export declare function configureOutputOptions(options: CliOutputOptions): void;
|
|
50
|
+
/**
|
|
51
|
+
* Returns the current process-wide {@link CliOutputOptions} previously set via
|
|
52
|
+
* {@link configureOutputOptions}.
|
|
53
|
+
*
|
|
54
|
+
* @returns The active output options (empty object when never configured).
|
|
55
|
+
*/
|
|
56
|
+
export declare function getOutputOptions(): CliOutputOptions;
|
|
57
|
+
/**
|
|
58
|
+
* Replaces the active secret-redaction pattern list with the given patterns.
|
|
59
|
+
*
|
|
60
|
+
* Use to add provider-specific patterns. Pass `[...DEFAULT_CLI_SECRET_PATTERNS, ...extra]`
|
|
61
|
+
* to keep the defaults.
|
|
62
|
+
*
|
|
63
|
+
* @param patterns - The new pattern list applied by {@link sanitizeString}.
|
|
64
|
+
*/
|
|
65
|
+
export declare function configureCliSecretPatterns(patterns: CliSecretPattern[]): void;
|
|
66
|
+
/**
|
|
67
|
+
* Registers a {@link CliErrorMapper} that {@link buildErrorOutput} consults before falling back
|
|
68
|
+
* to the built-in `CliError` / `Error` / unknown handling. Pass `undefined` to clear.
|
|
69
|
+
*
|
|
70
|
+
* Use to plug provider-specific exception types (e.g. Zoho's `ZohoInvalidTokenError`) into the
|
|
71
|
+
* standard error envelope without duplicating the rest of the formatting / secret-redaction pipeline.
|
|
72
|
+
*
|
|
73
|
+
* @param mapper - The mapper to install, or `undefined` to clear any previously registered mapper.
|
|
74
|
+
*/
|
|
75
|
+
export declare function configureCliErrorMapper(mapper?: CliErrorMapper): void;
|
|
76
|
+
/**
|
|
77
|
+
* Applies the configured secret-redaction patterns to a string, replacing each match with `[REDACTED]`.
|
|
78
|
+
*
|
|
79
|
+
* @param value - The input string (typically an error message) to sanitize.
|
|
80
|
+
* @returns The sanitized string with secret-shaped substrings replaced.
|
|
81
|
+
*/
|
|
82
|
+
export declare function sanitizeString(value: string): string;
|
|
83
|
+
/**
|
|
84
|
+
* Returns the current time as a filename-safe ISO-8601 stamp (`:` and `.` replaced with `-`).
|
|
85
|
+
*
|
|
86
|
+
* @returns The formatted timestamp string.
|
|
87
|
+
*/
|
|
88
|
+
export declare function dumpTimestamp(): string;
|
|
89
|
+
/**
|
|
90
|
+
* Builds a dump-file absolute path inside the configured `dumpDir`.
|
|
91
|
+
*
|
|
92
|
+
* The filename combines the active command path (joined with `_`), the current
|
|
93
|
+
* {@link dumpTimestamp}, and the optional `suffix`. Returns `undefined` when no `dumpDir` is set.
|
|
94
|
+
*
|
|
95
|
+
* @param extension - File extension to append (`json` for full responses, `ndjson` for streaming dumps).
|
|
96
|
+
* @param suffix - Optional suffix appended to the filename before the extension.
|
|
97
|
+
* @returns The absolute file path, or `undefined` when `dumpDir` is not configured.
|
|
98
|
+
*/
|
|
99
|
+
export declare function buildDumpFilePath(extension: 'json' | 'ndjson', suffix?: string): Maybe<string>;
|
|
100
|
+
/**
|
|
101
|
+
* Reduces an object (or array of objects) to the named top-level fields.
|
|
102
|
+
*
|
|
103
|
+
* @param data - The value to filter; arrays are mapped element-wise, objects are reduced to the picked keys, primitives pass through unchanged.
|
|
104
|
+
* @param pick - Comma-separated list of field names to keep.
|
|
105
|
+
* @returns The filtered value (typed as the input).
|
|
106
|
+
*/
|
|
107
|
+
export declare function pickFields<T>(data: T, pick: string): T;
|
|
108
|
+
/**
|
|
109
|
+
* Prints a successful command result as a `{ ok: true, data, meta? }` JSON envelope on stdout.
|
|
110
|
+
*
|
|
111
|
+
* Also writes a full unfiltered dump to disk when `dumpDir` is configured, then applies any
|
|
112
|
+
* configured `pick` filter to the stdout payload.
|
|
113
|
+
*
|
|
114
|
+
* @param data - The command result to emit.
|
|
115
|
+
* @param meta - Optional additional metadata to attach to the envelope.
|
|
116
|
+
*/
|
|
117
|
+
export declare function outputResult<T>(data: T, meta?: Record<string, unknown>): void;
|
|
118
|
+
/**
|
|
119
|
+
* Prints a failed command result as a `{ ok: false, error, code, suggestion? }` JSON envelope on stdout.
|
|
120
|
+
*
|
|
121
|
+
* @param error - The thrown value to convert. Mapped via {@link buildErrorOutput} (which consults any registered {@link CliErrorMapper}).
|
|
122
|
+
*/
|
|
123
|
+
export declare function outputError(error: unknown): void;
|
|
124
|
+
/**
|
|
125
|
+
* An error that carries a stable code and optional suggestion for the user.
|
|
126
|
+
*
|
|
127
|
+
* Throw from within commands to produce a structured `{ ok: false, code, suggestion }` envelope.
|
|
128
|
+
*/
|
|
129
|
+
export declare class CliError extends Error {
|
|
130
|
+
readonly code: string;
|
|
131
|
+
readonly suggestion?: string;
|
|
132
|
+
constructor(input: {
|
|
133
|
+
readonly message: string;
|
|
134
|
+
readonly code: string;
|
|
135
|
+
readonly suggestion?: string;
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Converts an arbitrary thrown value into a {@link CliErrorOutput} envelope.
|
|
140
|
+
*
|
|
141
|
+
* Order of resolution:
|
|
142
|
+
* 1. Any registered {@link CliErrorMapper} that returns a mapped envelope.
|
|
143
|
+
* 2. {@link CliError} instances (preserve `code` and optional `suggestion`).
|
|
144
|
+
* 3. Generic `Error` instances (`code: 'ERROR'`).
|
|
145
|
+
* 4. Unknown values (`code: 'UNKNOWN_ERROR'`, message stringified).
|
|
146
|
+
*
|
|
147
|
+
* Error messages are passed through {@link sanitizeString} so secret-shaped substrings are redacted.
|
|
148
|
+
*
|
|
149
|
+
* @param error - The thrown value to convert.
|
|
150
|
+
* @returns The structured {@link CliErrorOutput}.
|
|
151
|
+
*/
|
|
152
|
+
export declare function buildErrorOutput(error: unknown): CliErrorOutput;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { type Maybe } from '@dereekb/util';
|
|
2
|
+
import { type DumpMergeMode, type DumpOutputMode, type MultiplePagesOutputMode } from './args';
|
|
3
|
+
/**
|
|
4
|
+
* Minimal page response shape required by {@link runPaginatedList}.
|
|
5
|
+
*
|
|
6
|
+
* Engine consumers extend this with whatever provider-specific fields their adapter inspects
|
|
7
|
+
* (e.g. Zoho CRM/Recruit responses add `info.more_records`).
|
|
8
|
+
*/
|
|
9
|
+
export interface PaginatedResponse {
|
|
10
|
+
readonly data: readonly unknown[];
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Adapter that hides the underlying API's pagination scheme (page-based, offset-based, cursor-based, etc.).
|
|
14
|
+
*
|
|
15
|
+
* Implementations build the next-page input, count records, and produce single-page meta.
|
|
16
|
+
*/
|
|
17
|
+
export interface PaginationAdapter<I, R extends PaginatedResponse> {
|
|
18
|
+
/**
|
|
19
|
+
* Returns the input for the next page, or `undefined` if no more pages exist.
|
|
20
|
+
*/
|
|
21
|
+
nextInput(input: I, lastResult: R): Maybe<I>;
|
|
22
|
+
/**
|
|
23
|
+
* Number of records on this page.
|
|
24
|
+
*/
|
|
25
|
+
countOf(result: R): number;
|
|
26
|
+
/**
|
|
27
|
+
* Meta object for single-page output (matches each command's prior meta shape).
|
|
28
|
+
*/
|
|
29
|
+
metaOf(input: I, result: R): Record<string, unknown>;
|
|
30
|
+
/**
|
|
31
|
+
* Whether the response indicates more pages are available beyond this one.
|
|
32
|
+
*/
|
|
33
|
+
hasMorePagesAvailable(input: I, result: R): boolean;
|
|
34
|
+
}
|
|
35
|
+
export interface StreamingDump {
|
|
36
|
+
readonly mainPath: Maybe<string>;
|
|
37
|
+
readonly pickPath: Maybe<string>;
|
|
38
|
+
writePage(result: PaginatedResponse): void;
|
|
39
|
+
close(): void;
|
|
40
|
+
}
|
|
41
|
+
export interface OpenStreamingDumpParams {
|
|
42
|
+
readonly dumpOutput: DumpOutputMode;
|
|
43
|
+
readonly dumpMerge: DumpMergeMode;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Opens a streaming dump writer that flushes each page to disk on `writePage(...)`.
|
|
47
|
+
*
|
|
48
|
+
* When `--pick` is configured, a parallel `_pick` file is also written with the pick filter
|
|
49
|
+
* applied to each record's `data` array. If no dump directory is configured, returns a no-op writer.
|
|
50
|
+
*
|
|
51
|
+
* @param params - Streaming dump configuration.
|
|
52
|
+
* @param params.dumpOutput - Per-page dump format (`raw`, `page_by_line`, or `data_by_line`).
|
|
53
|
+
* @param params.dumpMerge - Across-pages dump merge mode (`replace` truncates each iteration; `concat` appends).
|
|
54
|
+
* @returns The {@link StreamingDump} writer (a no-op when no `dumpDir` is configured).
|
|
55
|
+
*/
|
|
56
|
+
export declare function openStreamingDump(params: OpenStreamingDumpParams): StreamingDump;
|
|
57
|
+
export interface RunPaginatedListParams<I, R extends PaginatedResponse> {
|
|
58
|
+
readonly initialInput: I;
|
|
59
|
+
readonly fetchPage: (input: I) => Promise<R>;
|
|
60
|
+
readonly adapter: PaginationAdapter<I, R>;
|
|
61
|
+
readonly multiplePages: number;
|
|
62
|
+
readonly multiplePagesOutput: MultiplePagesOutputMode;
|
|
63
|
+
readonly dumpOutput: DumpOutputMode;
|
|
64
|
+
readonly dumpMerge: DumpMergeMode;
|
|
65
|
+
}
|
|
66
|
+
export type RunPaginatedListOutcome<R extends PaginatedResponse> = {
|
|
67
|
+
readonly handled: false;
|
|
68
|
+
readonly result: R;
|
|
69
|
+
} | {
|
|
70
|
+
readonly handled: true;
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* Runs a list command's fetch loop with multi-page streaming support.
|
|
74
|
+
*
|
|
75
|
+
* - When `multiplePages <= 1` returns `{ handled: false, result }`. The caller invokes its own
|
|
76
|
+
* `outputResult(...)` to preserve the command's existing single-page meta shape exactly.
|
|
77
|
+
* - When `multiplePages > 1` loops up to `multiplePages` times (or until end-of-data), streams each
|
|
78
|
+
* page to disk via {@link openStreamingDump}, prints a stdout response per `multiplePagesOutput`,
|
|
79
|
+
* and returns `{ handled: true }`.
|
|
80
|
+
*
|
|
81
|
+
* @param params - The pagination loop inputs.
|
|
82
|
+
* @param params.initialInput - The first-page input passed to `fetchPage`.
|
|
83
|
+
* @param params.fetchPage - Callback that fetches a single page from the underlying API.
|
|
84
|
+
* @param params.adapter - Adapter that hides the API's pagination scheme (next-input, count, meta, has-more).
|
|
85
|
+
* @param params.multiplePages - Maximum number of pages to fetch in this invocation (1 = single-page passthrough).
|
|
86
|
+
* @param params.multiplePagesOutput - Stdout shape when looping (`meta`, `pages`, or `merged_page`).
|
|
87
|
+
* @param params.dumpOutput - Per-page dump format passed to {@link openStreamingDump}.
|
|
88
|
+
* @param params.dumpMerge - Across-pages dump merge mode passed to {@link openStreamingDump}.
|
|
89
|
+
* @returns `{ handled: false, result }` for single-page mode, otherwise `{ handled: true }` after the loop prints its own response.
|
|
90
|
+
*/
|
|
91
|
+
export declare function runPaginatedList<I, R extends PaginatedResponse>(params: RunPaginatedListParams<I, R>): Promise<RunPaginatedListOutcome<R>>;
|