@puku-ai/sdk 4.0.3 → 4.0.4

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.
Files changed (199) hide show
  1. package/README.md +24 -7
  2. package/dist/index.cjs +85 -0
  3. package/dist/vendor/_vendor/partial-json-parser/parser.cjs +225 -0
  4. package/dist/vendor/api-promise.cjs +18 -0
  5. package/dist/vendor/client.cjs +1013 -0
  6. package/dist/vendor/core/api-promise.cjs +80 -0
  7. package/dist/vendor/core/api.cjs +2 -0
  8. package/dist/vendor/core/credentials.cjs +313 -0
  9. package/dist/vendor/core/error.cjs +156 -0
  10. package/dist/vendor/core/middleware.cjs +173 -0
  11. package/dist/vendor/core/pagination.cjs +215 -0
  12. package/dist/vendor/core/resource.cjs +11 -0
  13. package/dist/vendor/core/streaming.cjs +346 -0
  14. package/dist/vendor/core/uploads.cjs +5 -0
  15. package/dist/vendor/error.cjs +18 -0
  16. package/dist/vendor/helpers/beta/environments.cjs +30 -0
  17. package/dist/vendor/helpers/beta/json-schema.cjs +56 -0
  18. package/dist/vendor/helpers/beta/mcp.cjs +418 -0
  19. package/dist/vendor/helpers/beta/memory.cjs +17 -0
  20. package/dist/vendor/helpers/beta/standard-schema.cjs +57 -0
  21. package/dist/vendor/helpers/beta/zod.cjs +88 -0
  22. package/dist/vendor/helpers/index.cjs +7 -0
  23. package/dist/vendor/helpers/json-schema.cjs +36 -0
  24. package/dist/vendor/helpers/zod.cjs +77 -0
  25. package/dist/vendor/index.cjs +54 -0
  26. package/dist/vendor/internal/builtin-types.cjs +3 -0
  27. package/dist/vendor/internal/constants.cjs +12 -0
  28. package/dist/vendor/internal/decoders/jsonl.cjs +40 -0
  29. package/dist/vendor/internal/decoders/line.cjs +109 -0
  30. package/dist/vendor/internal/detect-platform.cjs +159 -0
  31. package/dist/vendor/internal/errors.cjs +42 -0
  32. package/dist/vendor/internal/file-store.cjs +535 -0
  33. package/dist/vendor/internal/headers.cjs +119 -0
  34. package/dist/vendor/internal/message-stream-utils.cjs +33 -0
  35. package/dist/vendor/internal/node.browser.cjs +21 -0
  36. package/dist/vendor/internal/node.cjs +55 -0
  37. package/dist/vendor/internal/parse.cjs +65 -0
  38. package/dist/vendor/internal/qs/formats.cjs +12 -0
  39. package/dist/vendor/internal/qs/index.cjs +13 -0
  40. package/dist/vendor/internal/qs/stringify.cjs +276 -0
  41. package/dist/vendor/internal/qs/types.cjs +2 -0
  42. package/dist/vendor/internal/qs/utils.cjs +229 -0
  43. package/dist/vendor/internal/request-options.cjs +31 -0
  44. package/dist/vendor/internal/request-signal.cjs +49 -0
  45. package/dist/vendor/internal/shim-types.cjs +3 -0
  46. package/dist/vendor/internal/shims.cjs +91 -0
  47. package/dist/vendor/internal/stainless-helper-header.cjs +90 -0
  48. package/dist/vendor/internal/stream-utils.cjs +37 -0
  49. package/dist/vendor/internal/to-file.cjs +95 -0
  50. package/dist/vendor/internal/types.cjs +3 -0
  51. package/dist/vendor/internal/uploads.cjs +148 -0
  52. package/dist/vendor/internal/utils/abort.cjs +24 -0
  53. package/dist/vendor/internal/utils/async-queue.cjs +69 -0
  54. package/dist/vendor/internal/utils/backoff.cjs +43 -0
  55. package/dist/vendor/internal/utils/base64.cjs +37 -0
  56. package/dist/vendor/internal/utils/bytes.cjs +30 -0
  57. package/dist/vendor/internal/utils/env.cjs +21 -0
  58. package/dist/vendor/internal/utils/log.cjs +111 -0
  59. package/dist/vendor/internal/utils/path.cjs +78 -0
  60. package/dist/vendor/internal/utils/promise.cjs +17 -0
  61. package/dist/vendor/internal/utils/query.cjs +41 -0
  62. package/dist/vendor/internal/utils/sleep.cjs +27 -0
  63. package/dist/vendor/internal/utils/time.cjs +7 -0
  64. package/dist/vendor/internal/utils/uuid.cjs +18 -0
  65. package/dist/vendor/internal/utils/values.cjs +125 -0
  66. package/dist/vendor/internal/utils.cjs +24 -0
  67. package/dist/vendor/lib/BetaMessageStream.cjs +665 -0
  68. package/dist/vendor/lib/MessageStream.cjs +612 -0
  69. package/dist/vendor/lib/beta-parser.cjs +78 -0
  70. package/dist/vendor/lib/credentials/credential-chain.cjs +244 -0
  71. package/dist/vendor/lib/credentials/identity-token.cjs +71 -0
  72. package/dist/vendor/lib/credentials/oidc-federation.cjs +81 -0
  73. package/dist/vendor/lib/credentials/token-cache.cjs +113 -0
  74. package/dist/vendor/lib/credentials/types.cjs +267 -0
  75. package/dist/vendor/lib/credentials/user-oauth.cjs +129 -0
  76. package/dist/vendor/lib/credentials.cjs +7 -0
  77. package/dist/vendor/lib/environments/index.cjs +17 -0
  78. package/dist/vendor/lib/environments/poller.cjs +226 -0
  79. package/dist/vendor/lib/environments/worker.cjs +609 -0
  80. package/dist/vendor/lib/helper-client.cjs +57 -0
  81. package/dist/vendor/lib/middleware.cjs +779 -0
  82. package/dist/vendor/lib/parser.cjs +65 -0
  83. package/dist/vendor/lib/sessions/accumulate.cjs +44 -0
  84. package/dist/vendor/lib/standard-schema.cjs +44 -0
  85. package/dist/vendor/lib/tools/BetaRunnableTool.cjs +30 -0
  86. package/dist/vendor/lib/tools/BetaToolRunner.cjs +500 -0
  87. package/dist/vendor/lib/tools/CompactionControl.cjs +27 -0
  88. package/dist/vendor/lib/tools/SessionToolRunner.cjs +740 -0
  89. package/dist/vendor/lib/tools/ToolError.cjs +46 -0
  90. package/dist/vendor/lib/transform-json-schema.cjs +113 -0
  91. package/dist/vendor/pagination.cjs +18 -0
  92. package/dist/vendor/resource.cjs +18 -0
  93. package/dist/vendor/resources/beta/agents/agents.cjs +159 -0
  94. package/dist/vendor/resources/beta/agents/index.cjs +8 -0
  95. package/dist/vendor/resources/beta/agents/versions.cjs +35 -0
  96. package/dist/vendor/resources/beta/agents.cjs +18 -0
  97. package/dist/vendor/resources/beta/beta.cjs +105 -0
  98. package/dist/vendor/resources/beta/deployment-runs.cjs +54 -0
  99. package/dist/vendor/resources/beta/deployments.cjs +195 -0
  100. package/dist/vendor/resources/beta/dreams.cjs +115 -0
  101. package/dist/vendor/resources/beta/environments/environments.cjs +178 -0
  102. package/dist/vendor/resources/beta/environments/index.cjs +8 -0
  103. package/dist/vendor/resources/beta/environments/work.cjs +256 -0
  104. package/dist/vendor/resources/beta/environments.cjs +18 -0
  105. package/dist/vendor/resources/beta/files.cjs +123 -0
  106. package/dist/vendor/resources/beta/index.cjs +38 -0
  107. package/dist/vendor/resources/beta/memory-stores/index.cjs +10 -0
  108. package/dist/vendor/resources/beta/memory-stores/memories.cjs +129 -0
  109. package/dist/vendor/resources/beta/memory-stores/memory-stores.cjs +173 -0
  110. package/dist/vendor/resources/beta/memory-stores/memory-versions.cjs +80 -0
  111. package/dist/vendor/resources/beta/memory-stores.cjs +18 -0
  112. package/dist/vendor/resources/beta/messages/batches.cjs +206 -0
  113. package/dist/vendor/resources/beta/messages/index.cjs +11 -0
  114. package/dist/vendor/resources/beta/messages/messages.cjs +189 -0
  115. package/dist/vendor/resources/beta/messages.cjs +18 -0
  116. package/dist/vendor/resources/beta/models.cjs +59 -0
  117. package/dist/vendor/resources/beta/organization/api-keys.cjs +55 -0
  118. package/dist/vendor/resources/beta/organization/compliance-settings.cjs +51 -0
  119. package/dist/vendor/resources/beta/organization/external-keys.cjs +118 -0
  120. package/dist/vendor/resources/beta/organization/federation/federation.cjs +49 -0
  121. package/dist/vendor/resources/beta/organization/federation/index.cjs +10 -0
  122. package/dist/vendor/resources/beta/organization/federation/issuers.cjs +168 -0
  123. package/dist/vendor/resources/beta/organization/federation/rules/index.cjs +8 -0
  124. package/dist/vendor/resources/beta/organization/federation/rules/rules.cjs +226 -0
  125. package/dist/vendor/resources/beta/organization/federation/rules/workspaces.cjs +113 -0
  126. package/dist/vendor/resources/beta/organization/federation/rules.cjs +18 -0
  127. package/dist/vendor/resources/beta/organization/federation.cjs +18 -0
  128. package/dist/vendor/resources/beta/organization/index.cjs +24 -0
  129. package/dist/vendor/resources/beta/organization/invites.cjs +75 -0
  130. package/dist/vendor/resources/beta/organization/organization.cjs +90 -0
  131. package/dist/vendor/resources/beta/organization/rate-limits.cjs +30 -0
  132. package/dist/vendor/resources/beta/organization/service-accounts/index.cjs +8 -0
  133. package/dist/vendor/resources/beta/organization/service-accounts/service-accounts.cjs +202 -0
  134. package/dist/vendor/resources/beta/organization/service-accounts/workspaces.cjs +124 -0
  135. package/dist/vendor/resources/beta/organization/service-accounts.cjs +18 -0
  136. package/dist/vendor/resources/beta/organization/users.cjs +66 -0
  137. package/dist/vendor/resources/beta/organization/workspaces/index.cjs +12 -0
  138. package/dist/vendor/resources/beta/organization/workspaces/members.cjs +101 -0
  139. package/dist/vendor/resources/beta/organization/workspaces/rate-limits.cjs +33 -0
  140. package/dist/vendor/resources/beta/organization/workspaces/service-accounts.cjs +188 -0
  141. package/dist/vendor/resources/beta/organization/workspaces/workspaces.cjs +140 -0
  142. package/dist/vendor/resources/beta/organization/workspaces.cjs +18 -0
  143. package/dist/vendor/resources/beta/organization.cjs +18 -0
  144. package/dist/vendor/resources/beta/sessions/events.cjs +119 -0
  145. package/dist/vendor/resources/beta/sessions/index.cjs +12 -0
  146. package/dist/vendor/resources/beta/sessions/resources.cjs +131 -0
  147. package/dist/vendor/resources/beta/sessions/sessions.cjs +186 -0
  148. package/dist/vendor/resources/beta/sessions/threads/events.cjs +60 -0
  149. package/dist/vendor/resources/beta/sessions/threads/index.cjs +8 -0
  150. package/dist/vendor/resources/beta/sessions/threads/threads.cjs +116 -0
  151. package/dist/vendor/resources/beta/sessions/threads.cjs +18 -0
  152. package/dist/vendor/resources/beta/sessions.cjs +18 -0
  153. package/dist/vendor/resources/beta/skills/index.cjs +8 -0
  154. package/dist/vendor/resources/beta/skills/skills.cjs +132 -0
  155. package/dist/vendor/resources/beta/skills/versions.cjs +128 -0
  156. package/dist/vendor/resources/beta/skills.cjs +18 -0
  157. package/dist/vendor/resources/beta/tunnels/certificates.cjs +128 -0
  158. package/dist/vendor/resources/beta/tunnels/index.cjs +8 -0
  159. package/dist/vendor/resources/beta/tunnels/tunnels.cjs +209 -0
  160. package/dist/vendor/resources/beta/tunnels.cjs +18 -0
  161. package/dist/vendor/resources/beta/user-profiles.cjs +117 -0
  162. package/dist/vendor/resources/beta/vaults/credentials.cjs +176 -0
  163. package/dist/vendor/resources/beta/vaults/index.cjs +8 -0
  164. package/dist/vendor/resources/beta/vaults/vaults.cjs +177 -0
  165. package/dist/vendor/resources/beta/vaults.cjs +18 -0
  166. package/dist/vendor/resources/beta/webhooks.cjs +32 -0
  167. package/dist/vendor/resources/beta.cjs +18 -0
  168. package/dist/vendor/resources/completions.cjs +22 -0
  169. package/dist/vendor/resources/files.cjs +51 -0
  170. package/dist/vendor/resources/index.cjs +31 -0
  171. package/dist/vendor/resources/messages/batches.cjs +160 -0
  172. package/dist/vendor/resources/messages/index.cjs +8 -0
  173. package/dist/vendor/resources/messages/messages.cjs +159 -0
  174. package/dist/vendor/resources/messages.cjs +18 -0
  175. package/dist/vendor/resources/models.cjs +44 -0
  176. package/dist/vendor/resources/shared.cjs +3 -0
  177. package/dist/vendor/resources/skills/index.cjs +8 -0
  178. package/dist/vendor/resources/skills/skills.cjs +72 -0
  179. package/dist/vendor/resources/skills/versions.cjs +40 -0
  180. package/dist/vendor/resources/skills.cjs +18 -0
  181. package/dist/vendor/resources/top-level.cjs +3 -0
  182. package/dist/vendor/resources.cjs +17 -0
  183. package/dist/vendor/streaming.cjs +18 -0
  184. package/dist/vendor/tools/agent-toolset/fs-util.cjs +193 -0
  185. package/dist/vendor/tools/agent-toolset/memories.cjs +916 -0
  186. package/dist/vendor/tools/agent-toolset/node.browser.cjs +147 -0
  187. package/dist/vendor/tools/agent-toolset/node.cjs +939 -0
  188. package/dist/vendor/tools/agent-toolset/skills.cjs +325 -0
  189. package/dist/vendor/tools/agent-toolset/sync-interval.cjs +28 -0
  190. package/dist/vendor/tools/memory/node.browser.cjs +48 -0
  191. package/dist/vendor/tools/memory/node.cjs +364 -0
  192. package/dist/vendor/uploads.cjs +18 -0
  193. package/dist/vendor/version.cjs +4 -0
  194. package/package.json +12 -13
  195. package/sdk.cjs +0 -14271
  196. package/sdk.cjs.map +0 -149
  197. package/sdk.d.ts +0 -10866
  198. package/sdk.mjs +0 -68
  199. package/sdk.mjs.map +0 -149
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isStatus = isStatus;
4
+ exports.is4xx = is4xx;
5
+ exports.isFatal4xx = isFatal4xx;
6
+ exports.backoff = backoff;
7
+ exports.jitter = jitter;
8
+ exports.applyJitter = applyJitter;
9
+ const error_1 = require("../../core/error");
10
+ /** True when `e` is an {@link APIError} whose HTTP status equals `code`. */
11
+ function isStatus(e, code) {
12
+ return e instanceof error_1.APIError && e.status === code;
13
+ }
14
+ /** True when `e` is an {@link APIError} with a 4xx status. */
15
+ function is4xx(e) {
16
+ return e instanceof error_1.APIError && typeof e.status === 'number' && e.status >= 400 && e.status < 500;
17
+ }
18
+ /**
19
+ * True for a 4xx that the core client's retry policy would *not* retry, i.e. a
20
+ * permanent client error. 408 (request timeout), 409 (lock timeout) and 429
21
+ * (rate limit) are retryable for the base client (`PukuAI.shouldRetry`), so
22
+ * they are not treated as fatal here — keeping helper retry behaviour aligned
23
+ * with the rest of the SDK.
24
+ */
25
+ function isFatal4xx(e) {
26
+ return is4xx(e) && !isStatus(e, 408) && !isStatus(e, 409) && !isStatus(e, 429);
27
+ }
28
+ /** Exponential backoff: `baseMs * 2 ** attempt`, clamped to `capMs`. */
29
+ function backoff(attempt, baseMs, capMs) {
30
+ return Math.min(baseMs * 2 ** attempt, capMs);
31
+ }
32
+ /** Uniform random delay in the half-open interval `[lowMs, highMs)`. */
33
+ function jitter(lowMs, highMs) {
34
+ return lowMs + Math.random() * (highMs - lowMs);
35
+ }
36
+ /**
37
+ * Trim up to 25% off `ms` at random so a fleet of clients backing off after a
38
+ * shared outage does not retry in lockstep — mirrors the jitter the core client
39
+ * applies to its own retry timeout.
40
+ */
41
+ function applyJitter(ms) {
42
+ return ms * (1 - Math.random() * 0.25);
43
+ }
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.fromBase64 = exports.toBase64 = void 0;
5
+ const error_1 = require("../../core/error");
6
+ const bytes_1 = require("./bytes");
7
+ const toBase64 = (data) => {
8
+ if (!data)
9
+ return '';
10
+ if (typeof globalThis.Buffer !== 'undefined') {
11
+ return globalThis.Buffer.from(data).toString('base64');
12
+ }
13
+ if (typeof data === 'string') {
14
+ data = (0, bytes_1.encodeUTF8)(data);
15
+ }
16
+ if (typeof btoa !== 'undefined') {
17
+ return btoa(String.fromCharCode.apply(null, data));
18
+ }
19
+ throw new error_1.PukuError('Cannot generate base64 string; Expected `Buffer` or `btoa` to be defined');
20
+ };
21
+ exports.toBase64 = toBase64;
22
+ const fromBase64 = (str) => {
23
+ if (typeof globalThis.Buffer !== 'undefined') {
24
+ const buf = globalThis.Buffer.from(str, 'base64');
25
+ return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);
26
+ }
27
+ if (typeof atob !== 'undefined') {
28
+ const bstr = atob(str);
29
+ const buf = new Uint8Array(bstr.length);
30
+ for (let i = 0; i < bstr.length; i++) {
31
+ buf[i] = bstr.charCodeAt(i);
32
+ }
33
+ return buf;
34
+ }
35
+ throw new error_1.PukuError('Cannot decode base64 string; Expected `Buffer` or `atob` to be defined');
36
+ };
37
+ exports.fromBase64 = fromBase64;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.concatBytes = concatBytes;
4
+ exports.encodeUTF8 = encodeUTF8;
5
+ exports.decodeUTF8 = decodeUTF8;
6
+ function concatBytes(buffers) {
7
+ let length = 0;
8
+ for (const buffer of buffers) {
9
+ length += buffer.length;
10
+ }
11
+ const output = new Uint8Array(length);
12
+ let index = 0;
13
+ for (const buffer of buffers) {
14
+ output.set(buffer, index);
15
+ index += buffer.length;
16
+ }
17
+ return output;
18
+ }
19
+ let encodeUTF8_;
20
+ function encodeUTF8(str) {
21
+ let encoder;
22
+ return (encodeUTF8_ ??
23
+ ((encoder = new globalThis.TextEncoder()), (encodeUTF8_ = encoder.encode.bind(encoder))))(str);
24
+ }
25
+ let decodeUTF8_;
26
+ function decodeUTF8(bytes) {
27
+ let decoder;
28
+ return (decodeUTF8_ ??
29
+ ((decoder = new globalThis.TextDecoder()), (decodeUTF8_ = decoder.decode.bind(decoder))))(bytes);
30
+ }
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.readEnv = void 0;
5
+ /**
6
+ * Read an environment variable.
7
+ *
8
+ * Trims beginning and trailing whitespace.
9
+ *
10
+ * Will return undefined if the environment variable doesn't exist or cannot be accessed.
11
+ */
12
+ const readEnv = (env) => {
13
+ if (typeof globalThis.process !== 'undefined') {
14
+ return globalThis.process.env?.[env]?.trim() || undefined;
15
+ }
16
+ if (typeof globalThis.Deno !== 'undefined') {
17
+ return globalThis.Deno.env?.get?.(env)?.trim() || undefined;
18
+ }
19
+ return undefined;
20
+ };
21
+ exports.readEnv = readEnv;
@@ -0,0 +1,111 @@
1
+ "use strict";
2
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.formatRequestDetails = exports.parseLogLevel = exports.defaultLogLevel = void 0;
5
+ exports.loggerFor = loggerFor;
6
+ exports.defaultLogger = defaultLogger;
7
+ const values_1 = require("./values");
8
+ const env_1 = require("./env");
9
+ exports.defaultLogLevel = 'warn';
10
+ const levelNumbers = {
11
+ off: 0,
12
+ error: 200,
13
+ warn: 300,
14
+ info: 400,
15
+ debug: 500,
16
+ };
17
+ const parseLogLevel = (maybeLevel, sourceName, logger) => {
18
+ if (!maybeLevel) {
19
+ return undefined;
20
+ }
21
+ if ((0, values_1.hasOwn)(levelNumbers, maybeLevel)) {
22
+ return maybeLevel;
23
+ }
24
+ logger.warn(`${sourceName} was set to ${JSON.stringify(maybeLevel)}, expected one of ${JSON.stringify(Object.keys(levelNumbers))}`);
25
+ return undefined;
26
+ };
27
+ exports.parseLogLevel = parseLogLevel;
28
+ function noop() { }
29
+ function makeLogFn(fnLevel, logger, logLevel) {
30
+ if (!logger || levelNumbers[fnLevel] > levelNumbers[logLevel]) {
31
+ return noop;
32
+ }
33
+ else {
34
+ // Don't wrap logger functions, we want the stacktrace intact!
35
+ return logger[fnLevel].bind(logger);
36
+ }
37
+ }
38
+ const noopLogger = {
39
+ error: noop,
40
+ warn: noop,
41
+ info: noop,
42
+ debug: noop,
43
+ };
44
+ let cachedLoggers = /* @__PURE__ */ new WeakMap();
45
+ function filterLogger(logger, logLevel) {
46
+ const cachedLogger = cachedLoggers.get(logger);
47
+ if (cachedLogger && cachedLogger[0] === logLevel) {
48
+ return cachedLogger[1];
49
+ }
50
+ const levelLogger = {
51
+ error: makeLogFn('error', logger, logLevel),
52
+ warn: makeLogFn('warn', logger, logLevel),
53
+ info: makeLogFn('info', logger, logLevel),
54
+ debug: makeLogFn('debug', logger, logLevel),
55
+ };
56
+ cachedLoggers.set(logger, [logLevel, levelLogger]);
57
+ return levelLogger;
58
+ }
59
+ function loggerFor(client) {
60
+ const logger = client.logger;
61
+ const logLevel = client.logLevel ?? 'off';
62
+ if (!logger) {
63
+ return noopLogger;
64
+ }
65
+ return filterLogger(logger, logLevel);
66
+ }
67
+ let lastEnvLevel;
68
+ let cachedDefaultLogger;
69
+ /**
70
+ * A logger matching the client defaults — `console`, filtered to
71
+ * `PUKU_LOG` or {@link defaultLogLevel} — for contexts with no client to
72
+ * read the configured `logger`/`logLevel` from.
73
+ *
74
+ * Cached per `PUKU_LOG` value so an invalid value warns once, like a
75
+ * client construction does, rather than on every request.
76
+ */
77
+ function defaultLogger() {
78
+ const envLevel = (0, env_1.readEnv)('PUKU_LOG');
79
+ if (!cachedDefaultLogger || envLevel !== lastEnvLevel) {
80
+ lastEnvLevel = envLevel;
81
+ cachedDefaultLogger = filterLogger(console, (0, exports.parseLogLevel)(envLevel, "process.env['PUKU_LOG']", filterLogger(console, exports.defaultLogLevel)) ??
82
+ exports.defaultLogLevel);
83
+ }
84
+ return cachedDefaultLogger;
85
+ }
86
+ const formatRequestDetails = (details) => {
87
+ if (details.options) {
88
+ details.options = { ...details.options };
89
+ delete details.options['headers']; // redundant + leaks internals
90
+ }
91
+ if (details.headers) {
92
+ details.headers = Object.fromEntries((details.headers instanceof Headers ? [...details.headers] : Object.entries(details.headers)).map(([name, value]) => [
93
+ name,
94
+ (name.toLowerCase() === 'authorization' ||
95
+ name.toLowerCase() === 'api-key' ||
96
+ name.toLowerCase() === 'x-api-key' ||
97
+ name.toLowerCase() === 'cookie' ||
98
+ name.toLowerCase() === 'set-cookie') ?
99
+ '***'
100
+ : value,
101
+ ]));
102
+ }
103
+ if ('retryOfRequestLogID' in details) {
104
+ if (details.retryOfRequestLogID) {
105
+ details.retryOf = details.retryOfRequestLogID;
106
+ }
107
+ delete details.retryOfRequestLogID;
108
+ }
109
+ return details;
110
+ };
111
+ exports.formatRequestDetails = formatRequestDetails;
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.path = exports.createPathTagFunction = void 0;
4
+ exports.encodeURIPath = encodeURIPath;
5
+ const error_1 = require("../../core/error");
6
+ /**
7
+ * Percent-encode everything that isn't safe to have in a path without encoding safe chars.
8
+ *
9
+ * Taken from
10
+ * > unreserved = ALPHA / DIGIT / "-" / "." / "_" / "~"
11
+ * > sub-delims = "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "="
12
+ * > pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
13
+ */
14
+ function encodeURIPath(str) {
15
+ return str.replace(/[^A-Za-z0-9\-._~!$&'()*+,;=:@]+/g, encodeURIComponent);
16
+ }
17
+ const EMPTY = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.create(null));
18
+ const createPathTagFunction = (pathEncoder = encodeURIPath) => function path(statics, ...params) {
19
+ // If there are no params, no processing is needed.
20
+ if (statics.length === 1)
21
+ return statics[0];
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 (index !== params.length &&
31
+ (value == null ||
32
+ (typeof value === 'object' &&
33
+ // handle values from other realms
34
+ value.toString ===
35
+ Object.getPrototypeOf(Object.getPrototypeOf(value.hasOwnProperty ?? EMPTY) ?? EMPTY)
36
+ ?.toString))) {
37
+ encoded = value + '';
38
+ invalidSegments.push({
39
+ start: previousValue.length + currentValue.length,
40
+ length: encoded.length,
41
+ error: `Value of type ${Object.prototype.toString
42
+ .call(value)
43
+ .slice(8, -1)} is not a valid path parameter`,
44
+ });
45
+ }
46
+ return previousValue + currentValue + (index === params.length ? '' : encoded);
47
+ }, '');
48
+ const pathOnly = path.split(/[?#]/, 1)[0];
49
+ const invalidSegmentPattern = /(?<=^|\/)(?:\.|%2e){1,2}(?=\/|$)/gi;
50
+ let match;
51
+ // Find all invalid segments
52
+ while ((match = invalidSegmentPattern.exec(pathOnly)) !== null) {
53
+ invalidSegments.push({
54
+ start: match.index,
55
+ length: match[0].length,
56
+ error: `Value "${match[0]}" can\'t be safely passed as a path parameter`,
57
+ });
58
+ }
59
+ invalidSegments.sort((a, b) => a.start - b.start);
60
+ if (invalidSegments.length > 0) {
61
+ let lastEnd = 0;
62
+ const underline = invalidSegments.reduce((acc, segment) => {
63
+ const spaces = ' '.repeat(segment.start - lastEnd);
64
+ const arrows = '^'.repeat(segment.length);
65
+ lastEnd = segment.start + segment.length;
66
+ return acc + spaces + arrows;
67
+ }, '');
68
+ throw new error_1.PukuError(`Path parameters result in path with invalid segments:\n${invalidSegments
69
+ .map((e) => e.error)
70
+ .join('\n')}\n${path}\n${underline}`);
71
+ }
72
+ return path;
73
+ };
74
+ exports.createPathTagFunction = createPathTagFunction;
75
+ /**
76
+ * URI-encodes path params and ensures no unsafe /./ or /../ path segments are introduced.
77
+ */
78
+ exports.path = (0, exports.createPathTagFunction)(encodeURIPath);
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.promiseWithResolvers = promiseWithResolvers;
4
+ /**
5
+ * A deferred: a `Promise` together with its `resolve` / `reject` functions.
6
+ * This is `Promise.withResolvers()`, which is not available in all supported
7
+ * runtimes.
8
+ */
9
+ function promiseWithResolvers() {
10
+ let resolve;
11
+ let reject;
12
+ const promise = new Promise((res, rej) => {
13
+ resolve = res;
14
+ reject = rej;
15
+ });
16
+ return { promise, resolve, reject };
17
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.stringifyQuery = stringifyQuery;
38
+ const qs = __importStar(require("../qs/stringify"));
39
+ function stringifyQuery(query) {
40
+ return qs.stringify(query, { arrayFormat: 'brackets' });
41
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.sleep = void 0;
4
+ /**
5
+ * Resolve after `ms`, or immediately when `signal` aborts.
6
+ *
7
+ * When a `signal` is passed the abort listener is always removed so repeated
8
+ * calls do not accumulate listeners on a long-lived signal. Resolves (rather
9
+ * than rejects) on abort — callers treat abort as "wake up early," not as a
10
+ * failure; callers that want to unwind should check the signal themselves.
11
+ */
12
+ const sleep = (ms, signal) => new Promise((resolve) => {
13
+ if (signal?.aborted)
14
+ return resolve();
15
+ const onAbort = () => {
16
+ clearTimeout(timer);
17
+ resolve();
18
+ };
19
+ const timer = setTimeout(() => {
20
+ signal?.removeEventListener('abort', onAbort);
21
+ resolve();
22
+ }, ms);
23
+ // `{ once: true }` auto-removes the listener if abort fires first,
24
+ // so we only need an explicit remove on the timer-wins path above.
25
+ signal?.addEventListener('abort', onAbort, { once: true });
26
+ });
27
+ exports.sleep = sleep;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.nowAsSeconds = nowAsSeconds;
4
+ /** Current time as unix epoch seconds. */
5
+ function nowAsSeconds() {
6
+ return Math.floor(Date.now() / 1000);
7
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.uuid4 = void 0;
5
+ /**
6
+ * https://stackoverflow.com/a/2117523
7
+ */
8
+ let uuid4 = function () {
9
+ const { crypto } = globalThis;
10
+ if (crypto?.randomUUID) {
11
+ exports.uuid4 = crypto.randomUUID.bind(crypto);
12
+ return crypto.randomUUID();
13
+ }
14
+ const u8 = new Uint8Array(1);
15
+ const randomByte = crypto ? () => crypto.getRandomValues(u8)[0] : () => (Math.random() * 0xff) & 0xff;
16
+ return '10000000-1000-4000-8000-100000000000'.replace(/[018]/g, (c) => (+c ^ (randomByte() & (15 >> (+c / 4)))).toString(16));
17
+ };
18
+ exports.uuid4 = uuid4;
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.pop = exports.safeJSON = exports.maybeCoerceBoolean = exports.maybeCoerceFloat = exports.maybeCoerceInteger = exports.coerceBoolean = exports.coerceFloat = exports.coerceInteger = exports.validatePositiveInteger = exports.ensurePresent = exports.isReadonlyArray = exports.isArray = exports.isAbsoluteURL = void 0;
5
+ exports.maybeObj = maybeObj;
6
+ exports.isEmptyObj = isEmptyObj;
7
+ exports.hasOwn = hasOwn;
8
+ exports.isObj = isObj;
9
+ exports.checkNever = checkNever;
10
+ const error_1 = require("../../core/error");
11
+ //
12
+ const startsWithSchemeRegexp = /^[a-z][a-z0-9+.-]*:/i;
13
+ const isAbsoluteURL = (url) => {
14
+ return startsWithSchemeRegexp.test(url);
15
+ };
16
+ exports.isAbsoluteURL = isAbsoluteURL;
17
+ let isArray = (val) => ((exports.isArray = Array.isArray), (0, exports.isArray)(val));
18
+ exports.isArray = isArray;
19
+ exports.isReadonlyArray = exports.isArray;
20
+ /** Returns an object if the given value isn't an object, otherwise returns as-is */
21
+ function maybeObj(x) {
22
+ if (typeof x !== 'object') {
23
+ return {};
24
+ }
25
+ return x ?? {};
26
+ }
27
+ // https://stackoverflow.com/a/34491287
28
+ function isEmptyObj(obj) {
29
+ if (!obj)
30
+ return true;
31
+ for (const _k in obj)
32
+ return false;
33
+ return true;
34
+ }
35
+ // https://eslint.org/docs/latest/rules/no-prototype-builtins
36
+ function hasOwn(obj, key) {
37
+ return Object.prototype.hasOwnProperty.call(obj, key);
38
+ }
39
+ function isObj(obj) {
40
+ return obj != null && typeof obj === 'object' && !Array.isArray(obj);
41
+ }
42
+ const ensurePresent = (value) => {
43
+ if (value == null) {
44
+ throw new error_1.PukuError(`Expected a value to be given but received ${value} instead.`);
45
+ }
46
+ return value;
47
+ };
48
+ exports.ensurePresent = ensurePresent;
49
+ const validatePositiveInteger = (name, n) => {
50
+ if (typeof n !== 'number' || !Number.isInteger(n)) {
51
+ throw new error_1.PukuError(`${name} must be an integer`);
52
+ }
53
+ if (n < 0) {
54
+ throw new error_1.PukuError(`${name} must be a positive integer`);
55
+ }
56
+ return n;
57
+ };
58
+ exports.validatePositiveInteger = validatePositiveInteger;
59
+ const coerceInteger = (value) => {
60
+ if (typeof value === 'number')
61
+ return Math.round(value);
62
+ if (typeof value === 'string')
63
+ return parseInt(value, 10);
64
+ throw new error_1.PukuError(`Could not coerce ${value} (type: ${typeof value}) into a number`);
65
+ };
66
+ exports.coerceInteger = coerceInteger;
67
+ const coerceFloat = (value) => {
68
+ if (typeof value === 'number')
69
+ return value;
70
+ if (typeof value === 'string')
71
+ return parseFloat(value);
72
+ throw new error_1.PukuError(`Could not coerce ${value} (type: ${typeof value}) into a number`);
73
+ };
74
+ exports.coerceFloat = coerceFloat;
75
+ const coerceBoolean = (value) => {
76
+ if (typeof value === 'boolean')
77
+ return value;
78
+ if (typeof value === 'string')
79
+ return value === 'true';
80
+ return Boolean(value);
81
+ };
82
+ exports.coerceBoolean = coerceBoolean;
83
+ const maybeCoerceInteger = (value) => {
84
+ if (value == null) {
85
+ return undefined;
86
+ }
87
+ return (0, exports.coerceInteger)(value);
88
+ };
89
+ exports.maybeCoerceInteger = maybeCoerceInteger;
90
+ const maybeCoerceFloat = (value) => {
91
+ if (value == null) {
92
+ return undefined;
93
+ }
94
+ return (0, exports.coerceFloat)(value);
95
+ };
96
+ exports.maybeCoerceFloat = maybeCoerceFloat;
97
+ const maybeCoerceBoolean = (value) => {
98
+ if (value == null) {
99
+ return undefined;
100
+ }
101
+ return (0, exports.coerceBoolean)(value);
102
+ };
103
+ exports.maybeCoerceBoolean = maybeCoerceBoolean;
104
+ const safeJSON = (text) => {
105
+ try {
106
+ return JSON.parse(text);
107
+ }
108
+ catch (err) {
109
+ return undefined;
110
+ }
111
+ };
112
+ exports.safeJSON = safeJSON;
113
+ // Gets a value from an object, deletes the key, and returns the value (or undefined if not found)
114
+ const pop = (obj, key) => {
115
+ const value = obj[key];
116
+ delete obj[key];
117
+ return value;
118
+ };
119
+ exports.pop = pop;
120
+ /**
121
+ * Compile-time exhaustiveness check: passing a value here only type-checks once every
122
+ * member of its union has been handled. Does nothing at runtime, so unknown values from a
123
+ * newer API version fall through instead of throwing.
124
+ */
125
+ function checkNever(_value) { }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ // File generated from our OpenAPI spec by Stainless. See CONTRIBUTING.md for details.
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
16
+ };
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ __exportStar(require("./utils/values"), exports);
19
+ __exportStar(require("./utils/base64"), exports);
20
+ __exportStar(require("./utils/env"), exports);
21
+ __exportStar(require("./utils/log"), exports);
22
+ __exportStar(require("./utils/uuid"), exports);
23
+ __exportStar(require("./utils/sleep"), exports);
24
+ __exportStar(require("./utils/query"), exports);