parallel-web 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/CHANGELOG.md +65 -0
- package/LICENSE +7 -0
- package/README.md +371 -0
- package/api-promise.d.mts +2 -0
- package/api-promise.d.mts.map +1 -0
- package/api-promise.d.ts +2 -0
- package/api-promise.d.ts.map +1 -0
- package/api-promise.js +6 -0
- package/api-promise.js.map +1 -0
- package/api-promise.mjs +2 -0
- package/api-promise.mjs.map +1 -0
- package/client.d.mts +187 -0
- package/client.d.mts.map +1 -0
- package/client.d.ts +187 -0
- package/client.d.ts.map +1 -0
- package/client.js +462 -0
- package/client.js.map +1 -0
- package/client.mjs +458 -0
- package/client.mjs.map +1 -0
- package/core/api-promise.d.mts +46 -0
- package/core/api-promise.d.mts.map +1 -0
- package/core/api-promise.d.ts +46 -0
- package/core/api-promise.d.ts.map +1 -0
- package/core/api-promise.js +74 -0
- package/core/api-promise.js.map +1 -0
- package/core/api-promise.mjs +70 -0
- package/core/api-promise.mjs.map +1 -0
- package/core/error.d.mts +46 -0
- package/core/error.d.mts.map +1 -0
- package/core/error.d.ts +46 -0
- package/core/error.d.ts.map +1 -0
- package/core/error.js +113 -0
- package/core/error.js.map +1 -0
- package/core/error.mjs +97 -0
- package/core/error.mjs.map +1 -0
- package/core/resource.d.mts +6 -0
- package/core/resource.d.mts.map +1 -0
- package/core/resource.d.ts +6 -0
- package/core/resource.d.ts.map +1 -0
- package/core/resource.js +11 -0
- package/core/resource.js.map +1 -0
- package/core/resource.mjs +7 -0
- package/core/resource.mjs.map +1 -0
- package/core/streaming.d.mts +33 -0
- package/core/streaming.d.mts.map +1 -0
- package/core/streaming.d.ts +33 -0
- package/core/streaming.d.ts.map +1 -0
- package/core/streaming.js +263 -0
- package/core/streaming.js.map +1 -0
- package/core/streaming.mjs +258 -0
- package/core/streaming.mjs.map +1 -0
- package/core/uploads.d.mts +3 -0
- package/core/uploads.d.mts.map +1 -0
- package/core/uploads.d.ts +3 -0
- package/core/uploads.d.ts.map +1 -0
- package/core/uploads.js +6 -0
- package/core/uploads.js.map +1 -0
- package/core/uploads.mjs +2 -0
- package/core/uploads.mjs.map +1 -0
- package/error.d.mts +2 -0
- package/error.d.mts.map +1 -0
- package/error.d.ts +2 -0
- package/error.d.ts.map +1 -0
- package/error.js +6 -0
- package/error.js.map +1 -0
- package/error.mjs +2 -0
- package/error.mjs.map +1 -0
- package/index.d.mts +6 -0
- package/index.d.mts.map +1 -0
- package/index.d.ts +6 -0
- package/index.d.ts.map +1 -0
- package/index.js +30 -0
- package/index.js.map +1 -0
- package/index.mjs +7 -0
- package/index.mjs.map +1 -0
- package/internal/builtin-types.d.mts +73 -0
- package/internal/builtin-types.d.mts.map +1 -0
- package/internal/builtin-types.d.ts +73 -0
- package/internal/builtin-types.d.ts.map +1 -0
- package/internal/builtin-types.js +4 -0
- package/internal/builtin-types.js.map +1 -0
- package/internal/builtin-types.mjs +3 -0
- package/internal/builtin-types.mjs.map +1 -0
- package/internal/decoders/line.d.mts +17 -0
- package/internal/decoders/line.d.mts.map +1 -0
- package/internal/decoders/line.d.ts +17 -0
- package/internal/decoders/line.d.ts.map +1 -0
- package/internal/decoders/line.js +113 -0
- package/internal/decoders/line.js.map +1 -0
- package/internal/decoders/line.mjs +108 -0
- package/internal/decoders/line.mjs.map +1 -0
- package/internal/detect-platform.d.mts +15 -0
- package/internal/detect-platform.d.mts.map +1 -0
- package/internal/detect-platform.d.ts +15 -0
- package/internal/detect-platform.d.ts.map +1 -0
- package/internal/detect-platform.js +162 -0
- package/internal/detect-platform.js.map +1 -0
- package/internal/detect-platform.mjs +157 -0
- package/internal/detect-platform.mjs.map +1 -0
- package/internal/errors.d.mts +3 -0
- package/internal/errors.d.mts.map +1 -0
- package/internal/errors.d.ts +3 -0
- package/internal/errors.d.ts.map +1 -0
- package/internal/errors.js +41 -0
- package/internal/errors.js.map +1 -0
- package/internal/errors.mjs +36 -0
- package/internal/errors.mjs.map +1 -0
- package/internal/headers.d.mts +20 -0
- package/internal/headers.d.mts.map +1 -0
- package/internal/headers.d.ts +20 -0
- package/internal/headers.d.ts.map +1 -0
- package/internal/headers.js +79 -0
- package/internal/headers.js.map +1 -0
- package/internal/headers.mjs +74 -0
- package/internal/headers.mjs.map +1 -0
- package/internal/parse.d.mts +12 -0
- package/internal/parse.d.mts.map +1 -0
- package/internal/parse.d.ts +12 -0
- package/internal/parse.d.ts.map +1 -0
- package/internal/parse.js +45 -0
- package/internal/parse.js.map +1 -0
- package/internal/parse.mjs +42 -0
- package/internal/parse.mjs.map +1 -0
- package/internal/request-options.d.mts +77 -0
- package/internal/request-options.d.mts.map +1 -0
- package/internal/request-options.d.ts +77 -0
- package/internal/request-options.d.ts.map +1 -0
- package/internal/request-options.js +14 -0
- package/internal/request-options.js.map +1 -0
- package/internal/request-options.mjs +10 -0
- package/internal/request-options.mjs.map +1 -0
- package/internal/shim-types.d.mts +17 -0
- package/internal/shim-types.d.mts.map +1 -0
- package/internal/shim-types.d.ts +17 -0
- package/internal/shim-types.d.ts.map +1 -0
- package/internal/shim-types.js +4 -0
- package/internal/shim-types.js.map +1 -0
- package/internal/shim-types.mjs +3 -0
- package/internal/shim-types.mjs.map +1 -0
- package/internal/shims.d.mts +20 -0
- package/internal/shims.d.mts.map +1 -0
- package/internal/shims.d.ts +20 -0
- package/internal/shims.d.ts.map +1 -0
- package/internal/shims.js +92 -0
- package/internal/shims.js.map +1 -0
- package/internal/shims.mjs +85 -0
- package/internal/shims.mjs.map +1 -0
- package/internal/to-file.d.mts +45 -0
- package/internal/to-file.d.mts.map +1 -0
- package/internal/to-file.d.ts +45 -0
- package/internal/to-file.d.ts.map +1 -0
- package/internal/to-file.js +91 -0
- package/internal/to-file.js.map +1 -0
- package/internal/to-file.mjs +88 -0
- package/internal/to-file.mjs.map +1 -0
- package/internal/tslib.js +81 -0
- package/internal/tslib.mjs +17 -0
- package/internal/types.d.mts +69 -0
- package/internal/types.d.mts.map +1 -0
- package/internal/types.d.ts +69 -0
- package/internal/types.d.ts.map +1 -0
- package/internal/types.js +4 -0
- package/internal/types.js.map +1 -0
- package/internal/types.mjs +3 -0
- package/internal/types.mjs.map +1 -0
- package/internal/uploads.d.mts +42 -0
- package/internal/uploads.d.mts.map +1 -0
- package/internal/uploads.d.ts +42 -0
- package/internal/uploads.d.ts.map +1 -0
- package/internal/uploads.js +141 -0
- package/internal/uploads.js.map +1 -0
- package/internal/uploads.mjs +131 -0
- package/internal/uploads.mjs.map +1 -0
- package/internal/utils/base64.d.mts +3 -0
- package/internal/utils/base64.d.mts.map +1 -0
- package/internal/utils/base64.d.ts +3 -0
- package/internal/utils/base64.d.ts.map +1 -0
- package/internal/utils/base64.js +38 -0
- package/internal/utils/base64.js.map +1 -0
- package/internal/utils/base64.mjs +33 -0
- package/internal/utils/base64.mjs.map +1 -0
- package/internal/utils/bytes.d.mts +4 -0
- package/internal/utils/bytes.d.mts.map +1 -0
- package/internal/utils/bytes.d.ts +4 -0
- package/internal/utils/bytes.d.ts.map +1 -0
- package/internal/utils/bytes.js +31 -0
- package/internal/utils/bytes.js.map +1 -0
- package/internal/utils/bytes.mjs +26 -0
- package/internal/utils/bytes.mjs.map +1 -0
- package/internal/utils/env.d.mts +9 -0
- package/internal/utils/env.d.mts.map +1 -0
- package/internal/utils/env.d.ts +9 -0
- package/internal/utils/env.d.ts.map +1 -0
- package/internal/utils/env.js +22 -0
- package/internal/utils/env.js.map +1 -0
- package/internal/utils/env.mjs +18 -0
- package/internal/utils/env.mjs.map +1 -0
- package/internal/utils/log.d.mts +37 -0
- package/internal/utils/log.d.mts.map +1 -0
- package/internal/utils/log.d.ts +37 -0
- package/internal/utils/log.d.ts.map +1 -0
- package/internal/utils/log.js +86 -0
- package/internal/utils/log.js.map +1 -0
- package/internal/utils/log.mjs +80 -0
- package/internal/utils/log.mjs.map +1 -0
- package/internal/utils/path.d.mts +15 -0
- package/internal/utils/path.d.mts.map +1 -0
- package/internal/utils/path.d.ts +15 -0
- package/internal/utils/path.d.ts.map +1 -0
- package/internal/utils/path.js +79 -0
- package/internal/utils/path.js.map +1 -0
- package/internal/utils/path.mjs +74 -0
- package/internal/utils/path.mjs.map +1 -0
- package/internal/utils/sleep.d.mts +2 -0
- package/internal/utils/sleep.d.mts.map +1 -0
- package/internal/utils/sleep.d.ts +2 -0
- package/internal/utils/sleep.d.ts.map +1 -0
- package/internal/utils/sleep.js +7 -0
- package/internal/utils/sleep.js.map +1 -0
- package/internal/utils/sleep.mjs +3 -0
- package/internal/utils/sleep.mjs.map +1 -0
- package/internal/utils/uuid.d.mts +5 -0
- package/internal/utils/uuid.d.mts.map +1 -0
- package/internal/utils/uuid.d.ts +5 -0
- package/internal/utils/uuid.d.ts.map +1 -0
- package/internal/utils/uuid.js +19 -0
- package/internal/utils/uuid.js.map +1 -0
- package/internal/utils/uuid.mjs +15 -0
- package/internal/utils/uuid.mjs.map +1 -0
- package/internal/utils/values.d.mts +18 -0
- package/internal/utils/values.d.mts.map +1 -0
- package/internal/utils/values.d.ts +18 -0
- package/internal/utils/values.d.ts.map +1 -0
- package/internal/utils/values.js +112 -0
- package/internal/utils/values.js.map +1 -0
- package/internal/utils/values.mjs +94 -0
- package/internal/utils/values.mjs.map +1 -0
- package/internal/utils.d.mts +7 -0
- package/internal/utils.d.mts.map +1 -0
- package/internal/utils.d.ts +7 -0
- package/internal/utils.d.ts.map +1 -0
- package/internal/utils.js +11 -0
- package/internal/utils.js.map +1 -0
- package/internal/utils.mjs +8 -0
- package/internal/utils.mjs.map +1 -0
- package/package.json +148 -0
- package/resource.d.mts +2 -0
- package/resource.d.mts.map +1 -0
- package/resource.d.ts +2 -0
- package/resource.d.ts.map +1 -0
- package/resource.js +6 -0
- package/resource.js.map +1 -0
- package/resource.mjs +2 -0
- package/resource.mjs.map +1 -0
- package/resources/beta/beta.d.mts +86 -0
- package/resources/beta/beta.d.mts.map +1 -0
- package/resources/beta/beta.d.ts +86 -0
- package/resources/beta/beta.d.ts.map +1 -0
- package/resources/beta/beta.js +25 -0
- package/resources/beta/beta.js.map +1 -0
- package/resources/beta/beta.mjs +20 -0
- package/resources/beta/beta.mjs.map +1 -0
- package/resources/beta/index.d.mts +4 -0
- package/resources/beta/index.d.mts.map +1 -0
- package/resources/beta/index.d.ts +4 -0
- package/resources/beta/index.d.ts.map +1 -0
- package/resources/beta/index.js +11 -0
- package/resources/beta/index.js.map +1 -0
- package/resources/beta/index.mjs +5 -0
- package/resources/beta/index.mjs.map +1 -0
- package/resources/beta/task-group.d.mts +178 -0
- package/resources/beta/task-group.d.mts.map +1 -0
- package/resources/beta/task-group.d.ts +178 -0
- package/resources/beta/task-group.d.ts.map +1 -0
- package/resources/beta/task-group.js +62 -0
- package/resources/beta/task-group.js.map +1 -0
- package/resources/beta/task-group.mjs +58 -0
- package/resources/beta/task-group.mjs.map +1 -0
- package/resources/beta/task-run.d.mts +411 -0
- package/resources/beta/task-run.d.mts.map +1 -0
- package/resources/beta/task-run.d.ts +411 -0
- package/resources/beta/task-run.d.ts.map +1 -0
- package/resources/beta/task-run.js +59 -0
- package/resources/beta/task-run.js.map +1 -0
- package/resources/beta/task-run.mjs +55 -0
- package/resources/beta/task-run.mjs.map +1 -0
- package/resources/beta.d.mts +2 -0
- package/resources/beta.d.mts.map +1 -0
- package/resources/beta.d.ts +2 -0
- package/resources/beta.d.ts.map +1 -0
- package/resources/beta.js +6 -0
- package/resources/beta.js.map +1 -0
- package/resources/beta.mjs +3 -0
- package/resources/beta.mjs.map +1 -0
- package/resources/index.d.mts +4 -0
- package/resources/index.d.mts.map +1 -0
- package/resources/index.d.ts +4 -0
- package/resources/index.d.ts.map +1 -0
- package/resources/index.js +11 -0
- package/resources/index.js.map +1 -0
- package/resources/index.mjs +5 -0
- package/resources/index.mjs.map +1 -0
- package/resources/shared.d.mts +70 -0
- package/resources/shared.d.mts.map +1 -0
- package/resources/shared.d.ts +70 -0
- package/resources/shared.d.ts.map +1 -0
- package/resources/shared.js +4 -0
- package/resources/shared.js.map +1 -0
- package/resources/shared.mjs +3 -0
- package/resources/shared.mjs.map +1 -0
- package/resources/task-run.d.mts +338 -0
- package/resources/task-run.d.mts.map +1 -0
- package/resources/task-run.d.ts +338 -0
- package/resources/task-run.d.ts.map +1 -0
- package/resources/task-run.js +34 -0
- package/resources/task-run.js.map +1 -0
- package/resources/task-run.mjs +30 -0
- package/resources/task-run.mjs.map +1 -0
- package/resources.d.mts +2 -0
- package/resources.d.mts.map +1 -0
- package/resources.d.ts +2 -0
- package/resources.d.ts.map +1 -0
- package/resources.js +5 -0
- package/resources.js.map +1 -0
- package/resources.mjs +2 -0
- package/resources.mjs.map +1 -0
- package/src/api-promise.ts +2 -0
- package/src/client.ts +763 -0
- package/src/core/README.md +3 -0
- package/src/core/api-promise.ts +92 -0
- package/src/core/error.ts +130 -0
- package/src/core/resource.ts +11 -0
- package/src/core/streaming.ts +315 -0
- package/src/core/uploads.ts +2 -0
- package/src/error.ts +2 -0
- package/src/index.ts +22 -0
- package/src/internal/README.md +3 -0
- package/src/internal/builtin-types.ts +93 -0
- package/src/internal/decoders/line.ts +135 -0
- package/src/internal/detect-platform.ts +196 -0
- package/src/internal/errors.ts +33 -0
- package/src/internal/headers.ts +97 -0
- package/src/internal/parse.ts +64 -0
- package/src/internal/request-options.ts +93 -0
- package/src/internal/shim-types.ts +26 -0
- package/src/internal/shims.ts +107 -0
- package/src/internal/to-file.ts +154 -0
- package/src/internal/types.ts +95 -0
- package/src/internal/uploads.ts +187 -0
- package/src/internal/utils/base64.ts +40 -0
- package/src/internal/utils/bytes.ts +32 -0
- package/src/internal/utils/env.ts +18 -0
- package/src/internal/utils/log.ts +127 -0
- package/src/internal/utils/path.ts +88 -0
- package/src/internal/utils/sleep.ts +3 -0
- package/src/internal/utils/uuid.ts +17 -0
- package/src/internal/utils/values.ts +105 -0
- package/src/internal/utils.ts +8 -0
- package/src/lib/.keep +4 -0
- package/src/resource.ts +2 -0
- package/src/resources/beta/beta.ts +157 -0
- package/src/resources/beta/index.ts +28 -0
- package/src/resources/beta/task-group.ts +270 -0
- package/src/resources/beta/task-run.ts +517 -0
- package/src/resources/beta.ts +3 -0
- package/src/resources/index.ts +19 -0
- package/src/resources/shared.ts +76 -0
- package/src/resources/task-run.ts +394 -0
- package/src/resources.ts +1 -0
- package/src/streaming.ts +2 -0
- package/src/tsconfig.json +11 -0
- package/src/uploads.ts +2 -0
- package/src/version.ts +1 -0
- package/streaming.d.mts +2 -0
- package/streaming.d.mts.map +1 -0
- package/streaming.d.ts +2 -0
- package/streaming.d.ts.map +1 -0
- package/streaming.js +6 -0
- package/streaming.js.map +1 -0
- package/streaming.mjs +2 -0
- package/streaming.mjs.map +1 -0
- package/uploads.d.mts +2 -0
- package/uploads.d.mts.map +1 -0
- package/uploads.d.ts +2 -0
- package/uploads.d.ts.map +1 -0
- package/uploads.js +6 -0
- package/uploads.js.map +1 -0
- package/uploads.mjs +2 -0
- package/uploads.mjs.map +1 -0
- package/version.d.mts +2 -0
- package/version.d.mts.map +1 -0
- package/version.d.ts +2 -0
- package/version.d.ts.map +1 -0
- package/version.js +5 -0
- package/version.js.map +1 -0
- package/version.mjs +2 -0
- package/version.mjs.map +1 -0
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { hasOwn } from './values';
|
|
4
|
+
import { type Parallel } from '../../client';
|
|
5
|
+
import { RequestOptions } from '../request-options';
|
|
6
|
+
|
|
7
|
+
type LogFn = (message: string, ...rest: unknown[]) => void;
|
|
8
|
+
export type Logger = {
|
|
9
|
+
error: LogFn;
|
|
10
|
+
warn: LogFn;
|
|
11
|
+
info: LogFn;
|
|
12
|
+
debug: LogFn;
|
|
13
|
+
};
|
|
14
|
+
export type LogLevel = 'off' | 'error' | 'warn' | 'info' | 'debug';
|
|
15
|
+
|
|
16
|
+
const levelNumbers = {
|
|
17
|
+
off: 0,
|
|
18
|
+
error: 200,
|
|
19
|
+
warn: 300,
|
|
20
|
+
info: 400,
|
|
21
|
+
debug: 500,
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export const parseLogLevel = (
|
|
25
|
+
maybeLevel: string | undefined,
|
|
26
|
+
sourceName: string,
|
|
27
|
+
client: Parallel,
|
|
28
|
+
): LogLevel | undefined => {
|
|
29
|
+
if (!maybeLevel) {
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
if (hasOwn(levelNumbers, maybeLevel)) {
|
|
33
|
+
return maybeLevel;
|
|
34
|
+
}
|
|
35
|
+
loggerFor(client).warn(
|
|
36
|
+
`${sourceName} was set to ${JSON.stringify(maybeLevel)}, expected one of ${JSON.stringify(
|
|
37
|
+
Object.keys(levelNumbers),
|
|
38
|
+
)}`,
|
|
39
|
+
);
|
|
40
|
+
return undefined;
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
function noop() {}
|
|
44
|
+
|
|
45
|
+
function makeLogFn(fnLevel: keyof Logger, logger: Logger | undefined, logLevel: LogLevel) {
|
|
46
|
+
if (!logger || levelNumbers[fnLevel] > levelNumbers[logLevel]) {
|
|
47
|
+
return noop;
|
|
48
|
+
} else {
|
|
49
|
+
// Don't wrap logger functions, we want the stacktrace intact!
|
|
50
|
+
return logger[fnLevel].bind(logger);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
const noopLogger = {
|
|
55
|
+
error: noop,
|
|
56
|
+
warn: noop,
|
|
57
|
+
info: noop,
|
|
58
|
+
debug: noop,
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
let cachedLoggers = /* @__PURE__ */ new WeakMap<Logger, [LogLevel, Logger]>();
|
|
62
|
+
|
|
63
|
+
export function loggerFor(client: Parallel): Logger {
|
|
64
|
+
const logger = client.logger;
|
|
65
|
+
const logLevel = client.logLevel ?? 'off';
|
|
66
|
+
if (!logger) {
|
|
67
|
+
return noopLogger;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
const cachedLogger = cachedLoggers.get(logger);
|
|
71
|
+
if (cachedLogger && cachedLogger[0] === logLevel) {
|
|
72
|
+
return cachedLogger[1];
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
const levelLogger = {
|
|
76
|
+
error: makeLogFn('error', logger, logLevel),
|
|
77
|
+
warn: makeLogFn('warn', logger, logLevel),
|
|
78
|
+
info: makeLogFn('info', logger, logLevel),
|
|
79
|
+
debug: makeLogFn('debug', logger, logLevel),
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
cachedLoggers.set(logger, [logLevel, levelLogger]);
|
|
83
|
+
|
|
84
|
+
return levelLogger;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
export const formatRequestDetails = (details: {
|
|
88
|
+
options?: RequestOptions | undefined;
|
|
89
|
+
headers?: Headers | Record<string, string> | undefined;
|
|
90
|
+
retryOfRequestLogID?: string | undefined;
|
|
91
|
+
retryOf?: string | undefined;
|
|
92
|
+
url?: string | undefined;
|
|
93
|
+
status?: number | undefined;
|
|
94
|
+
method?: string | undefined;
|
|
95
|
+
durationMs?: number | undefined;
|
|
96
|
+
message?: unknown;
|
|
97
|
+
body?: unknown;
|
|
98
|
+
}) => {
|
|
99
|
+
if (details.options) {
|
|
100
|
+
details.options = { ...details.options };
|
|
101
|
+
delete details.options['headers']; // redundant + leaks internals
|
|
102
|
+
}
|
|
103
|
+
if (details.headers) {
|
|
104
|
+
details.headers = Object.fromEntries(
|
|
105
|
+
(details.headers instanceof Headers ? [...details.headers] : Object.entries(details.headers)).map(
|
|
106
|
+
([name, value]) => [
|
|
107
|
+
name,
|
|
108
|
+
(
|
|
109
|
+
name.toLowerCase() === 'x-api-key' ||
|
|
110
|
+
name.toLowerCase() === 'authorization' ||
|
|
111
|
+
name.toLowerCase() === 'cookie' ||
|
|
112
|
+
name.toLowerCase() === 'set-cookie'
|
|
113
|
+
) ?
|
|
114
|
+
'***'
|
|
115
|
+
: value,
|
|
116
|
+
],
|
|
117
|
+
),
|
|
118
|
+
);
|
|
119
|
+
}
|
|
120
|
+
if ('retryOfRequestLogID' in details) {
|
|
121
|
+
if (details.retryOfRequestLogID) {
|
|
122
|
+
details.retryOf = details.retryOfRequestLogID;
|
|
123
|
+
}
|
|
124
|
+
delete details.retryOfRequestLogID;
|
|
125
|
+
}
|
|
126
|
+
return details;
|
|
127
|
+
};
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { ParallelError } from '../../core/error';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Percent-encode everything that isn't safe to have in a path without encoding safe chars.
|
|
5
|
+
*
|
|
6
|
+
* Taken from https://datatracker.ietf.org/doc/html/rfc3986#section-3.3:
|
|
7
|
+
* > unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
|
|
8
|
+
* > sub-delims = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "="
|
|
9
|
+
* > pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
|
|
10
|
+
*/
|
|
11
|
+
export function encodeURIPath(str: string) {
|
|
12
|
+
return str.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g, encodeURIComponent);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const EMPTY = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.create(null));
|
|
16
|
+
|
|
17
|
+
export const createPathTagFunction = (pathEncoder = encodeURIPath) =>
|
|
18
|
+
function path(statics: readonly string[], ...params: readonly unknown[]): string {
|
|
19
|
+
// If there are no params, no processing is needed.
|
|
20
|
+
if (statics.length === 1) return statics[0]!;
|
|
21
|
+
|
|
22
|
+
let postPath = false;
|
|
23
|
+
const invalidSegments = [];
|
|
24
|
+
const path = statics.reduce((previousValue, currentValue, index) => {
|
|
25
|
+
if (/[?#]/.test(currentValue)) {
|
|
26
|
+
postPath = true;
|
|
27
|
+
}
|
|
28
|
+
const value = params[index];
|
|
29
|
+
let encoded = (postPath ? encodeURIComponent : pathEncoder)('' + value);
|
|
30
|
+
if (
|
|
31
|
+
index !== params.length &&
|
|
32
|
+
(value == null ||
|
|
33
|
+
(typeof value === 'object' &&
|
|
34
|
+
// handle values from other realms
|
|
35
|
+
value.toString ===
|
|
36
|
+
Object.getPrototypeOf(Object.getPrototypeOf((value as any).hasOwnProperty ?? EMPTY) ?? EMPTY)
|
|
37
|
+
?.toString))
|
|
38
|
+
) {
|
|
39
|
+
encoded = value + '';
|
|
40
|
+
invalidSegments.push({
|
|
41
|
+
start: previousValue.length + currentValue.length,
|
|
42
|
+
length: encoded.length,
|
|
43
|
+
error: `Value of type ${Object.prototype.toString
|
|
44
|
+
.call(value)
|
|
45
|
+
.slice(8, -1)} is not a valid path parameter`,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
return previousValue + currentValue + (index === params.length ? '' : encoded);
|
|
49
|
+
}, '');
|
|
50
|
+
|
|
51
|
+
const pathOnly = path.split(/[?#]/, 1)[0]!;
|
|
52
|
+
const invalidSegmentPattern = /(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi;
|
|
53
|
+
let match;
|
|
54
|
+
|
|
55
|
+
// Find all invalid segments
|
|
56
|
+
while ((match = invalidSegmentPattern.exec(pathOnly)) !== null) {
|
|
57
|
+
invalidSegments.push({
|
|
58
|
+
start: match.index,
|
|
59
|
+
length: match[0].length,
|
|
60
|
+
error: `Value "${match[0]}" can\'t be safely passed as a path parameter`,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
invalidSegments.sort((a, b) => a.start - b.start);
|
|
65
|
+
|
|
66
|
+
if (invalidSegments.length > 0) {
|
|
67
|
+
let lastEnd = 0;
|
|
68
|
+
const underline = invalidSegments.reduce((acc, segment) => {
|
|
69
|
+
const spaces = ' '.repeat(segment.start - lastEnd);
|
|
70
|
+
const arrows = '^'.repeat(segment.length);
|
|
71
|
+
lastEnd = segment.start + segment.length;
|
|
72
|
+
return acc + spaces + arrows;
|
|
73
|
+
}, '');
|
|
74
|
+
|
|
75
|
+
throw new ParallelError(
|
|
76
|
+
`Path parameters result in path with invalid segments:\n${invalidSegments
|
|
77
|
+
.map((e) => e.error)
|
|
78
|
+
.join('\n')}\n${path}\n${underline}`,
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
return path;
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* URI-encodes path params and ensures no unsafe /./ or /../ path segments are introduced.
|
|
87
|
+
*/
|
|
88
|
+
export const path = /* @__PURE__ */ createPathTagFunction(encodeURIPath);
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* https://stackoverflow.com/a/2117523
|
|
5
|
+
*/
|
|
6
|
+
export let uuid4 = function () {
|
|
7
|
+
const { crypto } = globalThis as any;
|
|
8
|
+
if (crypto?.randomUUID) {
|
|
9
|
+
uuid4 = crypto.randomUUID.bind(crypto);
|
|
10
|
+
return crypto.randomUUID();
|
|
11
|
+
}
|
|
12
|
+
const u8 = new Uint8Array(1);
|
|
13
|
+
const randomByte = crypto ? () => crypto.getRandomValues(u8)[0]! : () => (Math.random() * 0xff) & 0xff;
|
|
14
|
+
return '10000000-1000-4000-8000-100000000000'.replace(/[018]/g, (c) =>
|
|
15
|
+
(+c ^ (randomByte() & (15 >> (+c / 4)))).toString(16),
|
|
16
|
+
);
|
|
17
|
+
};
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { ParallelError } from '../../core/error';
|
|
4
|
+
|
|
5
|
+
// https://url.spec.whatwg.org/#url-scheme-string
|
|
6
|
+
const startsWithSchemeRegexp = /^[a-z][a-z0-9+.-]*:/i;
|
|
7
|
+
|
|
8
|
+
export const isAbsoluteURL = (url: string): boolean => {
|
|
9
|
+
return startsWithSchemeRegexp.test(url);
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
export let isArray = (val: unknown): val is unknown[] => ((isArray = Array.isArray), isArray(val));
|
|
13
|
+
export let isReadonlyArray = isArray as (val: unknown) => val is readonly unknown[];
|
|
14
|
+
|
|
15
|
+
/** Returns an object if the given value isn't an object, otherwise returns as-is */
|
|
16
|
+
export function maybeObj(x: unknown): object {
|
|
17
|
+
if (typeof x !== 'object') {
|
|
18
|
+
return {};
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
return x ?? {};
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// https://stackoverflow.com/a/34491287
|
|
25
|
+
export function isEmptyObj(obj: Object | null | undefined): boolean {
|
|
26
|
+
if (!obj) return true;
|
|
27
|
+
for (const _k in obj) return false;
|
|
28
|
+
return true;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// https://eslint.org/docs/latest/rules/no-prototype-builtins
|
|
32
|
+
export function hasOwn<T extends object = object>(obj: T, key: PropertyKey): key is keyof T {
|
|
33
|
+
return Object.prototype.hasOwnProperty.call(obj, key);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export function isObj(obj: unknown): obj is Record<string, unknown> {
|
|
37
|
+
return obj != null && typeof obj === 'object' && !Array.isArray(obj);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export const ensurePresent = <T>(value: T | null | undefined): T => {
|
|
41
|
+
if (value == null) {
|
|
42
|
+
throw new ParallelError(`Expected a value to be given but received ${value} instead.`);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return value;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export const validatePositiveInteger = (name: string, n: unknown): number => {
|
|
49
|
+
if (typeof n !== 'number' || !Number.isInteger(n)) {
|
|
50
|
+
throw new ParallelError(`${name} must be an integer`);
|
|
51
|
+
}
|
|
52
|
+
if (n < 0) {
|
|
53
|
+
throw new ParallelError(`${name} must be a positive integer`);
|
|
54
|
+
}
|
|
55
|
+
return n;
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
export const coerceInteger = (value: unknown): number => {
|
|
59
|
+
if (typeof value === 'number') return Math.round(value);
|
|
60
|
+
if (typeof value === 'string') return parseInt(value, 10);
|
|
61
|
+
|
|
62
|
+
throw new ParallelError(`Could not coerce ${value} (type: ${typeof value}) into a number`);
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
export const coerceFloat = (value: unknown): number => {
|
|
66
|
+
if (typeof value === 'number') return value;
|
|
67
|
+
if (typeof value === 'string') return parseFloat(value);
|
|
68
|
+
|
|
69
|
+
throw new ParallelError(`Could not coerce ${value} (type: ${typeof value}) into a number`);
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
export const coerceBoolean = (value: unknown): boolean => {
|
|
73
|
+
if (typeof value === 'boolean') return value;
|
|
74
|
+
if (typeof value === 'string') return value === 'true';
|
|
75
|
+
return Boolean(value);
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
export const maybeCoerceInteger = (value: unknown): number | undefined => {
|
|
79
|
+
if (value === undefined) {
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
82
|
+
return coerceInteger(value);
|
|
83
|
+
};
|
|
84
|
+
|
|
85
|
+
export const maybeCoerceFloat = (value: unknown): number | undefined => {
|
|
86
|
+
if (value === undefined) {
|
|
87
|
+
return undefined;
|
|
88
|
+
}
|
|
89
|
+
return coerceFloat(value);
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
export const maybeCoerceBoolean = (value: unknown): boolean | undefined => {
|
|
93
|
+
if (value === undefined) {
|
|
94
|
+
return undefined;
|
|
95
|
+
}
|
|
96
|
+
return coerceBoolean(value);
|
|
97
|
+
};
|
|
98
|
+
|
|
99
|
+
export const safeJSON = (text: string) => {
|
|
100
|
+
try {
|
|
101
|
+
return JSON.parse(text);
|
|
102
|
+
} catch (err) {
|
|
103
|
+
return undefined;
|
|
104
|
+
}
|
|
105
|
+
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
export * from './utils/values';
|
|
4
|
+
export * from './utils/base64';
|
|
5
|
+
export * from './utils/env';
|
|
6
|
+
export * from './utils/log';
|
|
7
|
+
export * from './utils/uuid';
|
|
8
|
+
export * from './utils/sleep';
|
package/src/lib/.keep
ADDED
package/src/resource.ts
ADDED
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
import { APIResource } from '../../core/resource';
|
|
4
|
+
import * as Shared from '../shared';
|
|
5
|
+
import * as TaskGroupAPI from './task-group';
|
|
6
|
+
import {
|
|
7
|
+
TaskGroup,
|
|
8
|
+
TaskGroupAddRunsParams,
|
|
9
|
+
TaskGroupCreateParams,
|
|
10
|
+
TaskGroupEventsParams,
|
|
11
|
+
TaskGroupEventsResponse,
|
|
12
|
+
TaskGroupGetRunsParams,
|
|
13
|
+
TaskGroupGetRunsResponse,
|
|
14
|
+
TaskGroupRunResponse,
|
|
15
|
+
TaskGroupStatus,
|
|
16
|
+
} from './task-group';
|
|
17
|
+
import * as TaskRunAPI from './task-run';
|
|
18
|
+
import {
|
|
19
|
+
BetaRunInput,
|
|
20
|
+
BetaTaskRunResult,
|
|
21
|
+
ErrorEvent,
|
|
22
|
+
McpServer,
|
|
23
|
+
McpToolCall,
|
|
24
|
+
ParallelBeta,
|
|
25
|
+
TaskRun,
|
|
26
|
+
TaskRunCreateParams,
|
|
27
|
+
TaskRunEvent,
|
|
28
|
+
TaskRunEventsResponse,
|
|
29
|
+
TaskRunResultParams,
|
|
30
|
+
Webhook,
|
|
31
|
+
} from './task-run';
|
|
32
|
+
import { APIPromise } from '../../core/api-promise';
|
|
33
|
+
import { RequestOptions } from '../../internal/request-options';
|
|
34
|
+
|
|
35
|
+
export class Beta extends APIResource {
|
|
36
|
+
taskRun: TaskRunAPI.TaskRun = new TaskRunAPI.TaskRun(this._client);
|
|
37
|
+
taskGroup: TaskGroupAPI.TaskGroup = new TaskGroupAPI.TaskGroup(this._client);
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Searches the web.
|
|
41
|
+
*/
|
|
42
|
+
search(body: BetaSearchParams, options?: RequestOptions): APIPromise<SearchResult> {
|
|
43
|
+
return this._client.post('/v1beta/search', { body, ...options });
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Output for the Search API.
|
|
49
|
+
*/
|
|
50
|
+
export interface SearchResult {
|
|
51
|
+
/**
|
|
52
|
+
* A list of WebSearchResult objects, ordered by decreasing relevance.
|
|
53
|
+
*/
|
|
54
|
+
results: Array<WebSearchResult>;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Search ID. Example: `search_cad0a6d2-dec0-46bd-95ae-900527d880e7`
|
|
58
|
+
*/
|
|
59
|
+
search_id: string;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* A single search result from the web search API.
|
|
64
|
+
*/
|
|
65
|
+
export interface WebSearchResult {
|
|
66
|
+
/**
|
|
67
|
+
* Text excerpts from the search result which are relevant to the request.
|
|
68
|
+
*/
|
|
69
|
+
excerpts: Array<string>;
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Title of the search result.
|
|
73
|
+
*/
|
|
74
|
+
title: string;
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* URL associated with the search result.
|
|
78
|
+
*/
|
|
79
|
+
url: string;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
export interface BetaSearchParams {
|
|
83
|
+
/**
|
|
84
|
+
* Upper bound on the number of characters to include in excerpts for each search
|
|
85
|
+
* result.
|
|
86
|
+
*/
|
|
87
|
+
max_chars_per_result?: number | null;
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Upper bound on the number of results to return. May be limited by the processor.
|
|
91
|
+
* Defaults to 10 if not provided.
|
|
92
|
+
*/
|
|
93
|
+
max_results?: number | null;
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Natural-language description of what the web search is trying to find. May
|
|
97
|
+
* include guidance about preferred sources or freshness. At least one of objective
|
|
98
|
+
* or search_queries must be provided.
|
|
99
|
+
*/
|
|
100
|
+
objective?: string | null;
|
|
101
|
+
|
|
102
|
+
/**
|
|
103
|
+
* Search processor.
|
|
104
|
+
*/
|
|
105
|
+
processor?: 'base' | 'pro';
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Optional list of traditional keyword search queries to guide the search. May
|
|
109
|
+
* contain search operators. At least one of objective or search_queries must be
|
|
110
|
+
* provided.
|
|
111
|
+
*/
|
|
112
|
+
search_queries?: Array<string> | null;
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Source policy for web search results.
|
|
116
|
+
*
|
|
117
|
+
* This policy governs which sources are allowed/disallowed in results.
|
|
118
|
+
*/
|
|
119
|
+
source_policy?: Shared.SourcePolicy | null;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
Beta.TaskRun = TaskRun;
|
|
123
|
+
|
|
124
|
+
export declare namespace Beta {
|
|
125
|
+
export {
|
|
126
|
+
type SearchResult as SearchResult,
|
|
127
|
+
type WebSearchResult as WebSearchResult,
|
|
128
|
+
type BetaSearchParams as BetaSearchParams,
|
|
129
|
+
};
|
|
130
|
+
|
|
131
|
+
export {
|
|
132
|
+
TaskRun as TaskRun,
|
|
133
|
+
type BetaRunInput as BetaRunInput,
|
|
134
|
+
type BetaTaskRunResult as BetaTaskRunResult,
|
|
135
|
+
type ErrorEvent as ErrorEvent,
|
|
136
|
+
type McpServer as McpServer,
|
|
137
|
+
type McpToolCall as McpToolCall,
|
|
138
|
+
type ParallelBeta as ParallelBeta,
|
|
139
|
+
type TaskRunEvent as TaskRunEvent,
|
|
140
|
+
type Webhook as Webhook,
|
|
141
|
+
type TaskRunEventsResponse as TaskRunEventsResponse,
|
|
142
|
+
type TaskRunCreateParams as TaskRunCreateParams,
|
|
143
|
+
type TaskRunResultParams as TaskRunResultParams,
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
export {
|
|
147
|
+
type TaskGroup as TaskGroup,
|
|
148
|
+
type TaskGroupRunResponse as TaskGroupRunResponse,
|
|
149
|
+
type TaskGroupStatus as TaskGroupStatus,
|
|
150
|
+
type TaskGroupEventsResponse as TaskGroupEventsResponse,
|
|
151
|
+
type TaskGroupGetRunsResponse as TaskGroupGetRunsResponse,
|
|
152
|
+
type TaskGroupCreateParams as TaskGroupCreateParams,
|
|
153
|
+
type TaskGroupAddRunsParams as TaskGroupAddRunsParams,
|
|
154
|
+
type TaskGroupEventsParams as TaskGroupEventsParams,
|
|
155
|
+
type TaskGroupGetRunsParams as TaskGroupGetRunsParams,
|
|
156
|
+
};
|
|
157
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
// File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
|
|
2
|
+
|
|
3
|
+
export { Beta } from './beta';
|
|
4
|
+
export {
|
|
5
|
+
TaskGroup,
|
|
6
|
+
type TaskGroupRunResponse,
|
|
7
|
+
type TaskGroupStatus,
|
|
8
|
+
type TaskGroupEventsResponse,
|
|
9
|
+
type TaskGroupGetRunsResponse,
|
|
10
|
+
type TaskGroupCreateParams,
|
|
11
|
+
type TaskGroupAddRunsParams,
|
|
12
|
+
type TaskGroupEventsParams,
|
|
13
|
+
type TaskGroupGetRunsParams,
|
|
14
|
+
} from './task-group';
|
|
15
|
+
export {
|
|
16
|
+
TaskRun,
|
|
17
|
+
type BetaRunInput,
|
|
18
|
+
type BetaTaskRunResult,
|
|
19
|
+
type ErrorEvent,
|
|
20
|
+
type McpServer,
|
|
21
|
+
type McpToolCall,
|
|
22
|
+
type ParallelBeta,
|
|
23
|
+
type TaskRunEvent,
|
|
24
|
+
type Webhook,
|
|
25
|
+
type TaskRunEventsResponse,
|
|
26
|
+
type TaskRunCreateParams,
|
|
27
|
+
type TaskRunResultParams,
|
|
28
|
+
} from './task-run';
|