vellum-ai 0.6.8 → 0.6.11

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 (166) hide show
  1. package/Client.d.ts +9 -6
  2. package/Client.js +40 -37
  3. package/api/client/requests/ExecutePromptRequest.d.ts +7 -5
  4. package/api/client/requests/ExecutePromptStreamRequest.d.ts +7 -5
  5. package/api/resources/deployments/client/Client.d.ts +8 -5
  6. package/api/resources/deployments/client/Client.js +22 -17
  7. package/api/resources/documentIndexes/client/Client.d.ts +21 -7
  8. package/api/resources/documentIndexes/client/Client.js +77 -26
  9. package/api/resources/documents/client/Client.d.ts +11 -7
  10. package/api/resources/documents/client/Client.js +25 -22
  11. package/api/resources/folderEntities/client/Client.d.ts +4 -1
  12. package/api/resources/folderEntities/client/Client.js +4 -3
  13. package/api/resources/sandboxes/client/Client.d.ts +7 -4
  14. package/api/resources/sandboxes/client/Client.js +14 -13
  15. package/api/resources/testSuiteRuns/client/Client.d.ts +6 -3
  16. package/api/resources/testSuiteRuns/client/Client.js +13 -10
  17. package/api/resources/testSuites/client/Client.d.ts +6 -3
  18. package/api/resources/testSuites/client/Client.js +16 -14
  19. package/api/resources/workflowDeployments/client/Client.d.ts +7 -4
  20. package/api/resources/workflowDeployments/client/Client.js +17 -13
  21. package/api/resources/workflowSandboxes/client/Client.d.ts +4 -1
  22. package/api/resources/workflowSandboxes/client/Client.js +5 -6
  23. package/api/types/IterationStateEnum.d.ts +12 -0
  24. package/api/types/IterationStateEnum.js +10 -0
  25. package/api/types/MapNodeResultData.d.ts +2 -0
  26. package/api/types/PromptNodeResultData.d.ts +1 -0
  27. package/api/types/TestSuiteRunMetricNumberOutput.d.ts +1 -1
  28. package/api/types/TestSuiteRunMetricStringOutput.d.ts +1 -1
  29. package/api/types/TestSuiteTestCaseRejectedBulkResult.d.ts +1 -1
  30. package/api/types/index.d.ts +1 -0
  31. package/api/types/index.js +1 -0
  32. package/core/fetcher/Fetcher.d.ts +2 -0
  33. package/core/fetcher/Fetcher.js +19 -185
  34. package/core/fetcher/createRequestUrl.d.ts +1 -0
  35. package/core/fetcher/createRequestUrl.js +13 -0
  36. package/core/fetcher/getFetchFn.d.ts +4 -0
  37. package/core/fetcher/getFetchFn.js +55 -0
  38. package/core/fetcher/getRequestBody.d.ts +7 -0
  39. package/core/fetcher/getRequestBody.js +23 -0
  40. package/core/fetcher/getResponseBody.d.ts +1 -0
  41. package/core/fetcher/getResponseBody.js +48 -0
  42. package/core/fetcher/makeRequest.d.ts +1 -0
  43. package/core/fetcher/makeRequest.js +40 -0
  44. package/core/fetcher/requestWithRetries.d.ts +1 -0
  45. package/core/fetcher/requestWithRetries.js +32 -0
  46. package/core/fetcher/signals.d.ts +12 -0
  47. package/core/fetcher/signals.js +37 -0
  48. package/core/form-data-utils/FormDataWrapper.d.ts +10 -21
  49. package/core/form-data-utils/FormDataWrapper.js +82 -49
  50. package/core/runtime/runtime.d.ts +1 -0
  51. package/core/runtime/runtime.js +1 -0
  52. package/core/schemas/Schema.d.ts +7 -4
  53. package/core/schemas/builders/lazy/lazy.d.ts +2 -2
  54. package/core/schemas/builders/lazy/lazy.js +8 -19
  55. package/core/schemas/builders/lazy/lazyObject.js +1 -10
  56. package/core/schemas/builders/list/list.js +31 -44
  57. package/core/schemas/builders/object/object.js +90 -111
  58. package/core/schemas/builders/object/types.d.ts +2 -2
  59. package/core/schemas/builders/object-like/getObjectLikeUtils.js +3 -12
  60. package/core/schemas/builders/record/record.js +49 -60
  61. package/core/schemas/builders/schema-utils/getSchemaUtils.d.ts +2 -2
  62. package/core/schemas/builders/schema-utils/getSchemaUtils.js +18 -21
  63. package/core/schemas/builders/set/set.js +6 -15
  64. package/core/schemas/builders/undiscriminated-union/undiscriminatedUnion.js +21 -32
  65. package/core/schemas/builders/union/union.js +51 -62
  66. package/core/schemas/utils/maybeSkipValidation.js +3 -12
  67. package/dist/Client.d.ts +9 -6
  68. package/dist/Client.js +40 -37
  69. package/dist/api/client/requests/ExecutePromptRequest.d.ts +7 -5
  70. package/dist/api/client/requests/ExecutePromptStreamRequest.d.ts +7 -5
  71. package/dist/api/resources/deployments/client/Client.d.ts +8 -5
  72. package/dist/api/resources/deployments/client/Client.js +22 -17
  73. package/dist/api/resources/documentIndexes/client/Client.d.ts +21 -7
  74. package/dist/api/resources/documentIndexes/client/Client.js +77 -26
  75. package/dist/api/resources/documents/client/Client.d.ts +11 -7
  76. package/dist/api/resources/documents/client/Client.js +25 -22
  77. package/dist/api/resources/folderEntities/client/Client.d.ts +4 -1
  78. package/dist/api/resources/folderEntities/client/Client.js +4 -3
  79. package/dist/api/resources/sandboxes/client/Client.d.ts +7 -4
  80. package/dist/api/resources/sandboxes/client/Client.js +14 -13
  81. package/dist/api/resources/testSuiteRuns/client/Client.d.ts +6 -3
  82. package/dist/api/resources/testSuiteRuns/client/Client.js +13 -10
  83. package/dist/api/resources/testSuites/client/Client.d.ts +6 -3
  84. package/dist/api/resources/testSuites/client/Client.js +16 -14
  85. package/dist/api/resources/workflowDeployments/client/Client.d.ts +7 -4
  86. package/dist/api/resources/workflowDeployments/client/Client.js +17 -13
  87. package/dist/api/resources/workflowSandboxes/client/Client.d.ts +4 -1
  88. package/dist/api/resources/workflowSandboxes/client/Client.js +5 -6
  89. package/dist/api/types/IterationStateEnum.d.ts +12 -0
  90. package/dist/api/types/IterationStateEnum.js +10 -0
  91. package/dist/api/types/MapNodeResultData.d.ts +2 -0
  92. package/dist/api/types/PromptNodeResultData.d.ts +1 -0
  93. package/dist/api/types/TestSuiteRunMetricNumberOutput.d.ts +1 -1
  94. package/dist/api/types/TestSuiteRunMetricStringOutput.d.ts +1 -1
  95. package/dist/api/types/TestSuiteTestCaseRejectedBulkResult.d.ts +1 -1
  96. package/dist/api/types/index.d.ts +1 -0
  97. package/dist/api/types/index.js +1 -0
  98. package/dist/core/fetcher/Fetcher.d.ts +2 -0
  99. package/dist/core/fetcher/Fetcher.js +19 -185
  100. package/dist/core/fetcher/createRequestUrl.d.ts +1 -0
  101. package/dist/core/fetcher/createRequestUrl.js +13 -0
  102. package/dist/core/fetcher/getFetchFn.d.ts +4 -0
  103. package/dist/core/fetcher/getFetchFn.js +55 -0
  104. package/dist/core/fetcher/getRequestBody.d.ts +7 -0
  105. package/dist/core/fetcher/getRequestBody.js +23 -0
  106. package/dist/core/fetcher/getResponseBody.d.ts +1 -0
  107. package/dist/core/fetcher/getResponseBody.js +48 -0
  108. package/dist/core/fetcher/makeRequest.d.ts +1 -0
  109. package/dist/core/fetcher/makeRequest.js +40 -0
  110. package/dist/core/fetcher/requestWithRetries.d.ts +1 -0
  111. package/dist/core/fetcher/requestWithRetries.js +32 -0
  112. package/dist/core/fetcher/signals.d.ts +12 -0
  113. package/dist/core/fetcher/signals.js +37 -0
  114. package/dist/core/form-data-utils/FormDataWrapper.d.ts +10 -21
  115. package/dist/core/form-data-utils/FormDataWrapper.js +82 -49
  116. package/dist/core/runtime/runtime.d.ts +1 -0
  117. package/dist/core/runtime/runtime.js +1 -0
  118. package/dist/core/schemas/Schema.d.ts +7 -4
  119. package/dist/core/schemas/builders/lazy/lazy.d.ts +2 -2
  120. package/dist/core/schemas/builders/lazy/lazy.js +8 -19
  121. package/dist/core/schemas/builders/lazy/lazyObject.js +1 -10
  122. package/dist/core/schemas/builders/list/list.js +31 -44
  123. package/dist/core/schemas/builders/object/object.js +90 -111
  124. package/dist/core/schemas/builders/object/types.d.ts +2 -2
  125. package/dist/core/schemas/builders/object-like/getObjectLikeUtils.js +3 -12
  126. package/dist/core/schemas/builders/record/record.js +49 -60
  127. package/dist/core/schemas/builders/schema-utils/getSchemaUtils.d.ts +2 -2
  128. package/dist/core/schemas/builders/schema-utils/getSchemaUtils.js +18 -21
  129. package/dist/core/schemas/builders/set/set.js +6 -15
  130. package/dist/core/schemas/builders/undiscriminated-union/undiscriminatedUnion.js +21 -32
  131. package/dist/core/schemas/builders/union/union.js +51 -62
  132. package/dist/core/schemas/utils/maybeSkipValidation.js +3 -12
  133. package/dist/serialization/types/IterationStateEnum.d.ts +10 -0
  134. package/dist/serialization/types/IterationStateEnum.js +31 -0
  135. package/dist/serialization/types/MapNodeResultData.d.ts +2 -0
  136. package/dist/serialization/types/MapNodeResultData.js +2 -0
  137. package/dist/serialization/types/MetadataFilterConfigRequest.js +2 -10
  138. package/dist/serialization/types/MetadataFilterRuleRequest.js +2 -10
  139. package/dist/serialization/types/PromptNodeResultData.d.ts +1 -0
  140. package/dist/serialization/types/PromptNodeResultData.js +1 -0
  141. package/dist/serialization/types/TestSuiteRunMetricNumberOutput.d.ts +1 -1
  142. package/dist/serialization/types/TestSuiteRunMetricNumberOutput.js +1 -1
  143. package/dist/serialization/types/TestSuiteRunMetricStringOutput.d.ts +1 -1
  144. package/dist/serialization/types/TestSuiteRunMetricStringOutput.js +1 -1
  145. package/dist/serialization/types/TestSuiteTestCaseRejectedBulkResult.d.ts +1 -1
  146. package/dist/serialization/types/TestSuiteTestCaseRejectedBulkResult.js +1 -1
  147. package/dist/serialization/types/index.d.ts +1 -0
  148. package/dist/serialization/types/index.js +1 -0
  149. package/package.json +6 -1
  150. package/reference.md +2418 -0
  151. package/serialization/types/IterationStateEnum.d.ts +10 -0
  152. package/serialization/types/IterationStateEnum.js +31 -0
  153. package/serialization/types/MapNodeResultData.d.ts +2 -0
  154. package/serialization/types/MapNodeResultData.js +2 -0
  155. package/serialization/types/MetadataFilterConfigRequest.js +2 -10
  156. package/serialization/types/MetadataFilterRuleRequest.js +2 -10
  157. package/serialization/types/PromptNodeResultData.d.ts +1 -0
  158. package/serialization/types/PromptNodeResultData.js +1 -0
  159. package/serialization/types/TestSuiteRunMetricNumberOutput.d.ts +1 -1
  160. package/serialization/types/TestSuiteRunMetricNumberOutput.js +1 -1
  161. package/serialization/types/TestSuiteRunMetricStringOutput.d.ts +1 -1
  162. package/serialization/types/TestSuiteRunMetricStringOutput.js +1 -1
  163. package/serialization/types/TestSuiteTestCaseRejectedBulkResult.d.ts +1 -1
  164. package/serialization/types/TestSuiteTestCaseRejectedBulkResult.js +1 -1
  165. package/serialization/types/index.d.ts +1 -0
  166. package/serialization/types/index.js +1 -0
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ /**
3
+ * This file was auto-generated by Fern from our API Definition.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.IterationStateEnum = void 0;
7
+ exports.IterationStateEnum = {
8
+ Initiated: "INITIATED",
9
+ Fulfilled: "FULFILLED",
10
+ };
@@ -1,6 +1,8 @@
1
1
  /**
2
2
  * This file was auto-generated by Fern from our API Definition.
3
3
  */
4
+ import * as Vellum from "../index";
4
5
  export interface MapNodeResultData {
5
6
  executionIds: string[];
7
+ iterationState?: Vellum.IterationStateEnum;
6
8
  }
@@ -4,6 +4,7 @@
4
4
  export interface PromptNodeResultData {
5
5
  outputId: string;
6
6
  arrayOutputId?: string;
7
+ executionId?: string;
7
8
  text?: string;
8
9
  delta?: string;
9
10
  }
@@ -5,6 +5,6 @@
5
5
  * Output for a test suite run metric that is of type NUMBER
6
6
  */
7
7
  export interface TestSuiteRunMetricNumberOutput {
8
- value: number;
8
+ value?: number;
9
9
  name: string;
10
10
  }
@@ -5,6 +5,6 @@
5
5
  * Output for a test suite run metric that is of type STRING
6
6
  */
7
7
  export interface TestSuiteRunMetricStringOutput {
8
- value: string;
8
+ value?: string;
9
9
  name: string;
10
10
  }
@@ -6,7 +6,7 @@
6
6
  */
7
7
  export interface TestSuiteTestCaseRejectedBulkResult {
8
8
  /** An ID that maps back to one of the initially supplied operations. Can be used to determine the result of a given operation. */
9
- id: string;
9
+ id?: string;
10
10
  /** Details about the error that occurred */
11
11
  data: Record<string, unknown>;
12
12
  }
@@ -118,6 +118,7 @@ export * from "./InitiatedPromptExecutionMeta";
118
118
  export * from "./InitiatedWorkflowNodeResultEvent";
119
119
  export * from "./InstructorVectorizerConfig";
120
120
  export * from "./InstructorVectorizerConfigRequest";
121
+ export * from "./IterationStateEnum";
121
122
  export * from "./JsonInputRequest";
122
123
  export * from "./JsonEnum";
123
124
  export * from "./JsonVariableValue";
@@ -134,6 +134,7 @@ __exportStar(require("./InitiatedPromptExecutionMeta"), exports);
134
134
  __exportStar(require("./InitiatedWorkflowNodeResultEvent"), exports);
135
135
  __exportStar(require("./InstructorVectorizerConfig"), exports);
136
136
  __exportStar(require("./InstructorVectorizerConfigRequest"), exports);
137
+ __exportStar(require("./IterationStateEnum"), exports);
137
138
  __exportStar(require("./JsonInputRequest"), exports);
138
139
  __exportStar(require("./JsonEnum"), exports);
139
140
  __exportStar(require("./JsonVariableValue"), exports);
@@ -12,6 +12,7 @@ export declare namespace Fetcher {
12
12
  maxRetries?: number;
13
13
  withCredentials?: boolean;
14
14
  abortSignal?: AbortSignal;
15
+ requestType?: "json" | "file" | "bytes";
15
16
  responseType?: "json" | "blob" | "streaming" | "text";
16
17
  }
17
18
  type Error = FailedStatusCodeError | NonJsonError | TimeoutError | UnknownError;
@@ -33,4 +34,5 @@ export declare namespace Fetcher {
33
34
  errorMessage: string;
34
35
  }
35
36
  }
37
+ export declare function fetcherImpl<R = unknown>(args: Fetcher.Args): Promise<APIResponse<R, Fetcher.Error>>;
36
38
  export declare const fetcher: FetchFunction;
@@ -1,27 +1,4 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
4
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -31,18 +8,15 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
31
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
32
9
  });
33
10
  };
34
- var __importDefault = (this && this.__importDefault) || function (mod) {
35
- return (mod && mod.__esModule) ? mod : { "default": mod };
36
- };
37
11
  Object.defineProperty(exports, "__esModule", { value: true });
38
- exports.fetcher = void 0;
39
- const qs_1 = __importDefault(require("qs"));
40
- const runtime_1 = require("../runtime");
41
- const INITIAL_RETRY_DELAY = 1;
42
- const MAX_RETRY_DELAY = 60;
43
- const DEFAULT_MAX_RETRIES = 2;
12
+ exports.fetcher = exports.fetcherImpl = void 0;
13
+ const createRequestUrl_1 = require("./createRequestUrl");
14
+ const getFetchFn_1 = require("./getFetchFn");
15
+ const getRequestBody_1 = require("./getRequestBody");
16
+ const getResponseBody_1 = require("./getResponseBody");
17
+ const makeRequest_1 = require("./makeRequest");
18
+ const requestWithRetries_1 = require("./requestWithRetries");
44
19
  function fetcherImpl(args) {
45
- var _a, _b;
46
20
  return __awaiter(this, void 0, void 0, function* () {
47
21
  const headers = {};
48
22
  if (args.body !== undefined && args.contentType != null) {
@@ -55,112 +29,21 @@ function fetcherImpl(args) {
55
29
  }
56
30
  }
57
31
  }
58
- const url = Object.keys((_a = args.queryParameters) !== null && _a !== void 0 ? _a : {}).length > 0
59
- ? `${args.url}?${qs_1.default.stringify(args.queryParameters, { arrayFormat: "repeat" })}`
60
- : args.url;
61
- let body = undefined;
62
- const maybeStringifyBody = (body) => {
63
- if (body instanceof Uint8Array) {
64
- return body;
65
- }
66
- else if (args.contentType === "application/x-www-form-urlencoded" && typeof args.body === "string") {
67
- return args.body;
68
- }
69
- else {
70
- return JSON.stringify(body);
71
- }
72
- };
73
- if (runtime_1.RUNTIME.type === "node") {
74
- if (args.body instanceof (yield Promise.resolve().then(() => __importStar(require("formdata-node")))).FormData) {
75
- // @ts-expect-error
76
- body = args.body;
77
- }
78
- else {
79
- body = maybeStringifyBody(args.body);
80
- }
81
- }
82
- else {
83
- if (args.body instanceof (yield Promise.resolve().then(() => __importStar(require("form-data")))).default) {
84
- // @ts-expect-error
85
- body = args.body;
86
- }
87
- else {
88
- body = maybeStringifyBody(args.body);
89
- }
90
- }
91
- const fetchFn = yield getFetchFn();
92
- const makeRequest = () => __awaiter(this, void 0, void 0, function* () {
93
- const signals = [];
94
- // Add timeout signal
95
- let timeoutAbortId = undefined;
96
- if (args.timeoutMs != null) {
97
- const { signal, abortId } = getTimeoutSignal(args.timeoutMs);
98
- timeoutAbortId = abortId;
99
- signals.push(signal);
100
- }
101
- // Add arbitrary signal
102
- if (args.abortSignal != null) {
103
- signals.push(args.abortSignal);
104
- }
105
- const response = yield fetchFn(url, {
106
- method: args.method,
107
- headers,
108
- body,
109
- signal: anySignal(signals),
110
- credentials: args.withCredentials ? "include" : undefined,
111
- });
112
- if (timeoutAbortId != null) {
113
- clearTimeout(timeoutAbortId);
114
- }
115
- return response;
32
+ const url = (0, createRequestUrl_1.createRequestUrl)(args.url, args.queryParameters);
33
+ let requestBody = yield (0, getRequestBody_1.getRequestBody)({
34
+ body: args.body,
35
+ type: args.requestType === "json" ? "json" : "other",
116
36
  });
37
+ const fetchFn = yield (0, getFetchFn_1.getFetchFn)();
117
38
  try {
118
- let response = yield makeRequest();
119
- for (let i = 0; i < ((_b = args.maxRetries) !== null && _b !== void 0 ? _b : DEFAULT_MAX_RETRIES); ++i) {
120
- if (response.status === 408 ||
121
- response.status === 409 ||
122
- response.status === 429 ||
123
- response.status >= 500) {
124
- const delay = Math.min(INITIAL_RETRY_DELAY * Math.pow(i, 2), MAX_RETRY_DELAY);
125
- yield new Promise((resolve) => setTimeout(resolve, delay));
126
- response = yield makeRequest();
127
- }
128
- else {
129
- break;
130
- }
131
- }
132
- let body;
133
- if (response.body != null && args.responseType === "blob") {
134
- body = yield response.blob();
135
- }
136
- else if (response.body != null && args.responseType === "streaming") {
137
- body = response.body;
138
- }
139
- else if (response.body != null && args.responseType === "text") {
140
- body = yield response.text();
141
- }
142
- else {
143
- const text = yield response.text();
144
- if (text.length > 0) {
145
- try {
146
- body = JSON.parse(text);
147
- }
148
- catch (err) {
149
- return {
150
- ok: false,
151
- error: {
152
- reason: "non-json",
153
- statusCode: response.status,
154
- rawBody: text,
155
- },
156
- };
157
- }
158
- }
159
- }
39
+ const response = yield (0, requestWithRetries_1.requestWithRetries)(() => __awaiter(this, void 0, void 0, function* () {
40
+ return (0, makeRequest_1.makeRequest)(fetchFn, url, args.method, headers, requestBody, args.timeoutMs, args.abortSignal, args.withCredentials);
41
+ }), args.maxRetries);
42
+ let responseBody = yield (0, getResponseBody_1.getResponseBody)(response, args.responseType);
160
43
  if (response.status >= 200 && response.status < 400) {
161
44
  return {
162
45
  ok: true,
163
- body: body,
46
+ body: responseBody,
164
47
  headers: response.headers,
165
48
  };
166
49
  }
@@ -170,7 +53,7 @@ function fetcherImpl(args) {
170
53
  error: {
171
54
  reason: "status-code",
172
55
  statusCode: response.status,
173
- body,
56
+ body: responseBody,
174
57
  },
175
58
  };
176
59
  }
@@ -212,54 +95,5 @@ function fetcherImpl(args) {
212
95
  }
213
96
  });
214
97
  }
215
- const TIMEOUT = "timeout";
216
- function getTimeoutSignal(timeoutMs) {
217
- const controller = new AbortController();
218
- const abortId = setTimeout(() => controller.abort(TIMEOUT), timeoutMs);
219
- return { signal: controller.signal, abortId };
220
- }
221
- /**
222
- * Returns an abort signal that is getting aborted when
223
- * at least one of the specified abort signals is aborted.
224
- *
225
- * Requires at least node.js 18.
226
- */
227
- function anySignal(...args) {
228
- // Allowing signals to be passed either as array
229
- // of signals or as multiple arguments.
230
- const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args);
231
- const controller = new AbortController();
232
- for (const signal of signals) {
233
- if (signal.aborted) {
234
- // Exiting early if one of the signals
235
- // is already aborted.
236
- controller.abort(signal === null || signal === void 0 ? void 0 : signal.reason);
237
- break;
238
- }
239
- // Listening for signals and removing the listeners
240
- // when at least one symbol is aborted.
241
- signal.addEventListener("abort", () => controller.abort(signal === null || signal === void 0 ? void 0 : signal.reason), {
242
- signal: controller.signal,
243
- });
244
- }
245
- return controller.signal;
246
- }
247
- /**
248
- * Returns a fetch function based on the runtime
249
- */
250
- function getFetchFn() {
251
- return __awaiter(this, void 0, void 0, function* () {
252
- // In Node.js environments, the SDK always uses`node-fetch`.
253
- if (runtime_1.RUNTIME.type === "node") {
254
- return (yield Promise.resolve().then(() => __importStar(require("node-fetch")))).default;
255
- }
256
- // Otherwise the SDK uses global fetch if available,
257
- // and falls back to node-fetch.
258
- if (typeof fetch == "function") {
259
- return fetch;
260
- }
261
- // Defaults to node `node-fetch` if global fetch isn't available
262
- return (yield Promise.resolve().then(() => __importStar(require("node-fetch")))).default;
263
- });
264
- }
98
+ exports.fetcherImpl = fetcherImpl;
265
99
  exports.fetcher = fetcherImpl;
@@ -0,0 +1 @@
1
+ export declare function createRequestUrl(baseUrl: string, queryParameters?: Record<string, string | string[] | object | object[]>): string;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.createRequestUrl = void 0;
7
+ const qs_1 = __importDefault(require("qs"));
8
+ function createRequestUrl(baseUrl, queryParameters) {
9
+ return Object.keys(queryParameters !== null && queryParameters !== void 0 ? queryParameters : {}).length > 0
10
+ ? `${baseUrl}?${qs_1.default.stringify(queryParameters, { arrayFormat: "repeat" })}`
11
+ : baseUrl;
12
+ }
13
+ exports.createRequestUrl = createRequestUrl;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Returns a fetch function based on the runtime
3
+ */
4
+ export declare function getFetchFn(): Promise<any>;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
+ return new (P || (P = Promise))(function (resolve, reject) {
28
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
32
+ });
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ exports.getFetchFn = void 0;
36
+ const runtime_1 = require("../runtime");
37
+ /**
38
+ * Returns a fetch function based on the runtime
39
+ */
40
+ function getFetchFn() {
41
+ return __awaiter(this, void 0, void 0, function* () {
42
+ // In Node.js environments, the SDK always uses`node-fetch`.
43
+ if (runtime_1.RUNTIME.type === "node") {
44
+ return (yield Promise.resolve().then(() => __importStar(require("node-fetch")))).default;
45
+ }
46
+ // Otherwise the SDK uses global fetch if available,
47
+ // and falls back to node-fetch.
48
+ if (typeof fetch == "function") {
49
+ return fetch;
50
+ }
51
+ // Defaults to node `node-fetch` if global fetch isn't available
52
+ return (yield Promise.resolve().then(() => __importStar(require("node-fetch")))).default;
53
+ });
54
+ }
55
+ exports.getFetchFn = getFetchFn;
@@ -0,0 +1,7 @@
1
+ export declare namespace GetRequestBody {
2
+ interface Args {
3
+ body: unknown;
4
+ type: "json" | "file" | "bytes" | "other";
5
+ }
6
+ }
7
+ export declare function getRequestBody({ body, type }: GetRequestBody.Args): Promise<BodyInit | undefined>;
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.getRequestBody = void 0;
13
+ function getRequestBody({ body, type }) {
14
+ return __awaiter(this, void 0, void 0, function* () {
15
+ if (type.includes("json")) {
16
+ return JSON.stringify(body);
17
+ }
18
+ else {
19
+ return body;
20
+ }
21
+ });
22
+ }
23
+ exports.getRequestBody = getRequestBody;
@@ -0,0 +1 @@
1
+ export declare function getResponseBody(response: Response, responseType?: string): Promise<unknown>;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.getResponseBody = void 0;
13
+ function getResponseBody(response, responseType) {
14
+ return __awaiter(this, void 0, void 0, function* () {
15
+ if (response.body != null && responseType === "blob") {
16
+ return yield response.blob();
17
+ }
18
+ else if (response.body != null && responseType === "streaming") {
19
+ return response.body;
20
+ }
21
+ else if (response.body != null && responseType === "text") {
22
+ return yield response.text();
23
+ }
24
+ else {
25
+ const text = yield response.text();
26
+ if (text.length > 0) {
27
+ try {
28
+ let responseBody = JSON.parse(text);
29
+ return responseBody;
30
+ }
31
+ catch (err) {
32
+ return {
33
+ ok: false,
34
+ error: {
35
+ reason: "non-json",
36
+ statusCode: response.status,
37
+ rawBody: text,
38
+ },
39
+ };
40
+ }
41
+ }
42
+ else {
43
+ return undefined;
44
+ }
45
+ }
46
+ });
47
+ }
48
+ exports.getResponseBody = getResponseBody;
@@ -0,0 +1 @@
1
+ export declare const makeRequest: (fetchFn: (url: string, init: RequestInit) => Promise<Response>, url: string, method: string, headers: Record<string, string>, requestBody: BodyInit | undefined, timeoutMs?: number | undefined, abortSignal?: AbortSignal | undefined, withCredentials?: boolean | undefined) => Promise<Response>;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.makeRequest = void 0;
13
+ const signals_1 = require("./signals");
14
+ const makeRequest = (fetchFn, url, method, headers, requestBody, timeoutMs, abortSignal, withCredentials) => __awaiter(void 0, void 0, void 0, function* () {
15
+ const signals = [];
16
+ // Add timeout signal
17
+ let timeoutAbortId = undefined;
18
+ if (timeoutMs != null) {
19
+ const { signal, abortId } = (0, signals_1.getTimeoutSignal)(timeoutMs);
20
+ timeoutAbortId = abortId;
21
+ signals.push(signal);
22
+ }
23
+ // Add arbitrary signal
24
+ if (abortSignal != null) {
25
+ signals.push(abortSignal);
26
+ }
27
+ let newSignals = (0, signals_1.anySignal)(signals);
28
+ const response = yield fetchFn(url, {
29
+ method: method,
30
+ headers,
31
+ body: requestBody,
32
+ signal: newSignals,
33
+ credentials: withCredentials ? "include" : undefined,
34
+ });
35
+ if (timeoutAbortId != null) {
36
+ clearTimeout(timeoutAbortId);
37
+ }
38
+ return response;
39
+ });
40
+ exports.makeRequest = makeRequest;
@@ -0,0 +1 @@
1
+ export declare function requestWithRetries(requestFn: () => Promise<Response>, maxRetries?: number): Promise<Response>;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.requestWithRetries = void 0;
13
+ const INITIAL_RETRY_DELAY = 1;
14
+ const MAX_RETRY_DELAY = 60;
15
+ const DEFAULT_MAX_RETRIES = 2;
16
+ function requestWithRetries(requestFn, maxRetries = DEFAULT_MAX_RETRIES) {
17
+ return __awaiter(this, void 0, void 0, function* () {
18
+ let response = yield requestFn();
19
+ for (let i = 0; i < maxRetries; ++i) {
20
+ if ([408, 409, 429].includes(response.status) || response.status >= 500) {
21
+ const delay = Math.min(INITIAL_RETRY_DELAY * Math.pow(2, i), MAX_RETRY_DELAY);
22
+ yield new Promise((resolve) => setTimeout(resolve, delay));
23
+ response = yield requestFn();
24
+ }
25
+ else {
26
+ break;
27
+ }
28
+ }
29
+ return response;
30
+ });
31
+ }
32
+ exports.requestWithRetries = requestWithRetries;
@@ -0,0 +1,12 @@
1
+ /// <reference types="node" />
2
+ export declare function getTimeoutSignal(timeoutMs: number): {
3
+ signal: AbortSignal;
4
+ abortId: NodeJS.Timeout;
5
+ };
6
+ /**
7
+ * Returns an abort signal that is getting aborted when
8
+ * at least one of the specified abort signals is aborted.
9
+ *
10
+ * Requires at least node.js 18.
11
+ */
12
+ export declare function anySignal(...args: AbortSignal[] | [AbortSignal[]]): AbortSignal;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.anySignal = exports.getTimeoutSignal = void 0;
4
+ const TIMEOUT = "timeout";
5
+ function getTimeoutSignal(timeoutMs) {
6
+ const controller = new AbortController();
7
+ const abortId = setTimeout(() => controller.abort(TIMEOUT), timeoutMs);
8
+ return { signal: controller.signal, abortId };
9
+ }
10
+ exports.getTimeoutSignal = getTimeoutSignal;
11
+ /**
12
+ * Returns an abort signal that is getting aborted when
13
+ * at least one of the specified abort signals is aborted.
14
+ *
15
+ * Requires at least node.js 18.
16
+ */
17
+ function anySignal(...args) {
18
+ // Allowing signals to be passed either as array
19
+ // of signals or as multiple arguments.
20
+ const signals = (args.length === 1 && Array.isArray(args[0]) ? args[0] : args);
21
+ const controller = new AbortController();
22
+ for (const signal of signals) {
23
+ if (signal.aborted) {
24
+ // Exiting early if one of the signals
25
+ // is already aborted.
26
+ controller.abort(signal === null || signal === void 0 ? void 0 : signal.reason);
27
+ break;
28
+ }
29
+ // Listening for signals and removing the listeners
30
+ // when at least one symbol is aborted.
31
+ signal.addEventListener("abort", () => controller.abort(signal === null || signal === void 0 ? void 0 : signal.reason), {
32
+ signal: controller.signal,
33
+ });
34
+ }
35
+ return controller.signal;
36
+ }
37
+ exports.anySignal = anySignal;