@orq-ai/node 3.2.8 → 3.3.0-rc.1

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 (215) hide show
  1. package/bin/mcp-server.js +32 -35
  2. package/bin/mcp-server.js.map +20 -20
  3. package/jsr.json +1 -1
  4. package/lib/config.d.ts +2 -2
  5. package/lib/config.js +2 -2
  6. package/lib/config.js.map +1 -1
  7. package/mcp-server/mcp-server.js +1 -1
  8. package/mcp-server/mcp-server.js.map +1 -1
  9. package/mcp-server/server.js +1 -1
  10. package/mcp-server/server.js.map +1 -1
  11. package/models/operations/bulkcreatedatapoints.js +2 -2
  12. package/models/operations/createcontact.js +2 -2
  13. package/models/operations/createdataset.js +2 -2
  14. package/models/operations/createdatasetitem.js +2 -2
  15. package/models/operations/fileget.js +2 -2
  16. package/models/operations/filelist.js +2 -2
  17. package/models/operations/fileupload.js +2 -2
  18. package/models/operations/listdatasetdatapoints.js +2 -2
  19. package/models/operations/listdatasets.js +2 -2
  20. package/models/operations/retrievedatapoint.js +2 -2
  21. package/models/operations/retrievedataset.js +2 -2
  22. package/models/operations/updatedatapoint.js +2 -2
  23. package/models/operations/updatedataset.js +2 -2
  24. package/package.json +3 -2
  25. package/src/lib/config.ts +2 -2
  26. package/src/mcp-server/mcp-server.ts +1 -1
  27. package/src/mcp-server/server.ts +1 -1
  28. package/src/models/operations/bulkcreatedatapoints.ts +2 -2
  29. package/src/models/operations/createcontact.ts +2 -2
  30. package/src/models/operations/createdataset.ts +2 -2
  31. package/src/models/operations/createdatasetitem.ts +2 -2
  32. package/src/models/operations/fileget.ts +2 -2
  33. package/src/models/operations/filelist.ts +2 -2
  34. package/src/models/operations/fileupload.ts +2 -2
  35. package/src/models/operations/listdatasetdatapoints.ts +2 -2
  36. package/src/models/operations/listdatasets.ts +2 -2
  37. package/src/models/operations/retrievedatapoint.ts +2 -2
  38. package/src/models/operations/retrievedataset.ts +2 -2
  39. package/src/models/operations/updatedatapoint.ts +2 -2
  40. package/src/models/operations/updatedataset.ts +2 -2
  41. package/packages/orq-rc/FUNCTIONS.md +0 -106
  42. package/packages/orq-rc/README.md +0 -660
  43. package/packages/orq-rc/RUNTIMES.md +0 -48
  44. package/packages/orq-rc/docs/sdks/contacts/README.md +0 -84
  45. package/packages/orq-rc/docs/sdks/datasets/README.md +0 -934
  46. package/packages/orq-rc/docs/sdks/deployments/README.md +0 -316
  47. package/packages/orq-rc/docs/sdks/feedback/README.md +0 -92
  48. package/packages/orq-rc/docs/sdks/files/README.md +0 -305
  49. package/packages/orq-rc/docs/sdks/metrics/README.md +0 -86
  50. package/packages/orq-rc/docs/sdks/orq/README.md +0 -10
  51. package/packages/orq-rc/docs/sdks/prompts/README.md +0 -608
  52. package/packages/orq-rc/docs/sdks/remoteconfigs/README.md +0 -80
  53. package/packages/orq-rc/jsr.json +0 -28
  54. package/packages/orq-rc/package-lock.json +0 -3217
  55. package/packages/orq-rc/package.json +0 -45
  56. package/packages/orq-rc/src/core.ts +0 -13
  57. package/packages/orq-rc/src/funcs/contactsCreate.ts +0 -154
  58. package/packages/orq-rc/src/funcs/datasetsClear.ts +0 -161
  59. package/packages/orq-rc/src/funcs/datasetsCreate.ts +0 -159
  60. package/packages/orq-rc/src/funcs/datasetsCreateDatapoint.ts +0 -161
  61. package/packages/orq-rc/src/funcs/datasetsCreateDatapoints.ts +0 -165
  62. package/packages/orq-rc/src/funcs/datasetsDelete.ts +0 -161
  63. package/packages/orq-rc/src/funcs/datasetsDeleteDatapoint.ts +0 -176
  64. package/packages/orq-rc/src/funcs/datasetsList.ts +0 -162
  65. package/packages/orq-rc/src/funcs/datasetsListDatapoints.ts +0 -169
  66. package/packages/orq-rc/src/funcs/datasetsRetrieve.ts +0 -169
  67. package/packages/orq-rc/src/funcs/datasetsRetrieveDatapoint.ts +0 -175
  68. package/packages/orq-rc/src/funcs/datasetsUpdate.ts +0 -170
  69. package/packages/orq-rc/src/funcs/datasetsUpdateDatapoint.ts +0 -173
  70. package/packages/orq-rc/src/funcs/deploymentsGetConfig.ts +0 -162
  71. package/packages/orq-rc/src/funcs/deploymentsInvoke.ts +0 -170
  72. package/packages/orq-rc/src/funcs/deploymentsList.ts +0 -171
  73. package/packages/orq-rc/src/funcs/deploymentsMetricsCreate.ts +0 -162
  74. package/packages/orq-rc/src/funcs/deploymentsStream.ts +0 -178
  75. package/packages/orq-rc/src/funcs/feedbackCreate.ts +0 -154
  76. package/packages/orq-rc/src/funcs/filesCreate.ts +0 -177
  77. package/packages/orq-rc/src/funcs/filesDelete.ts +0 -158
  78. package/packages/orq-rc/src/funcs/filesGet.ts +0 -160
  79. package/packages/orq-rc/src/funcs/filesList.ts +0 -162
  80. package/packages/orq-rc/src/funcs/promptsCreate.ts +0 -154
  81. package/packages/orq-rc/src/funcs/promptsDelete.ts +0 -158
  82. package/packages/orq-rc/src/funcs/promptsGetVersion.ts +0 -175
  83. package/packages/orq-rc/src/funcs/promptsList.ts +0 -162
  84. package/packages/orq-rc/src/funcs/promptsListVersions.ts +0 -168
  85. package/packages/orq-rc/src/funcs/promptsRetrieve.ts +0 -160
  86. package/packages/orq-rc/src/funcs/promptsUpdate.ts +0 -167
  87. package/packages/orq-rc/src/funcs/remoteconfigsRetrieve.ts +0 -155
  88. package/packages/orq-rc/src/hooks/global.ts +0 -44
  89. package/packages/orq-rc/src/hooks/hooks.ts +0 -132
  90. package/packages/orq-rc/src/hooks/index.ts +0 -6
  91. package/packages/orq-rc/src/hooks/registration.ts +0 -15
  92. package/packages/orq-rc/src/hooks/types.ts +0 -110
  93. package/packages/orq-rc/src/index.ts +0 -7
  94. package/packages/orq-rc/src/lib/base64.ts +0 -37
  95. package/packages/orq-rc/src/lib/config.ts +0 -70
  96. package/packages/orq-rc/src/lib/dlv.ts +0 -53
  97. package/packages/orq-rc/src/lib/encodings.ts +0 -483
  98. package/packages/orq-rc/src/lib/env.ts +0 -73
  99. package/packages/orq-rc/src/lib/event-streams.ts +0 -264
  100. package/packages/orq-rc/src/lib/files.ts +0 -40
  101. package/packages/orq-rc/src/lib/http.ts +0 -323
  102. package/packages/orq-rc/src/lib/is-plain-object.ts +0 -43
  103. package/packages/orq-rc/src/lib/logger.ts +0 -9
  104. package/packages/orq-rc/src/lib/matchers.ts +0 -325
  105. package/packages/orq-rc/src/lib/primitives.ts +0 -150
  106. package/packages/orq-rc/src/lib/retries.ts +0 -218
  107. package/packages/orq-rc/src/lib/schemas.ts +0 -91
  108. package/packages/orq-rc/src/lib/sdks.ts +0 -395
  109. package/packages/orq-rc/src/lib/security.ts +0 -261
  110. package/packages/orq-rc/src/lib/url.ts +0 -33
  111. package/packages/orq-rc/src/mcp-server/cli/start/command.ts +0 -125
  112. package/packages/orq-rc/src/mcp-server/cli/start/impl.ts +0 -140
  113. package/packages/orq-rc/src/mcp-server/cli.ts +0 -13
  114. package/packages/orq-rc/src/mcp-server/console-logger.ts +0 -71
  115. package/packages/orq-rc/src/mcp-server/extensions.ts +0 -17
  116. package/packages/orq-rc/src/mcp-server/mcp-server.ts +0 -26
  117. package/packages/orq-rc/src/mcp-server/prompts.ts +0 -110
  118. package/packages/orq-rc/src/mcp-server/resources.ts +0 -158
  119. package/packages/orq-rc/src/mcp-server/scopes.ts +0 -7
  120. package/packages/orq-rc/src/mcp-server/server.ts +0 -125
  121. package/packages/orq-rc/src/mcp-server/shared.ts +0 -75
  122. package/packages/orq-rc/src/mcp-server/tools/contactsCreate.ts +0 -37
  123. package/packages/orq-rc/src/mcp-server/tools/datasetsClear.ts +0 -35
  124. package/packages/orq-rc/src/mcp-server/tools/datasetsCreate.ts +0 -37
  125. package/packages/orq-rc/src/mcp-server/tools/datasetsCreateDatapoint.ts +0 -37
  126. package/packages/orq-rc/src/mcp-server/tools/datasetsCreateDatapoints.ts +0 -37
  127. package/packages/orq-rc/src/mcp-server/tools/datasetsDelete.ts +0 -35
  128. package/packages/orq-rc/src/mcp-server/tools/datasetsDeleteDatapoint.ts +0 -35
  129. package/packages/orq-rc/src/mcp-server/tools/datasetsList.ts +0 -37
  130. package/packages/orq-rc/src/mcp-server/tools/datasetsListDatapoints.ts +0 -37
  131. package/packages/orq-rc/src/mcp-server/tools/datasetsRetrieve.ts +0 -37
  132. package/packages/orq-rc/src/mcp-server/tools/datasetsRetrieveDatapoint.ts +0 -37
  133. package/packages/orq-rc/src/mcp-server/tools/datasetsUpdate.ts +0 -37
  134. package/packages/orq-rc/src/mcp-server/tools/datasetsUpdateDatapoint.ts +0 -35
  135. package/packages/orq-rc/src/mcp-server/tools/deploymentsGetConfig.ts +0 -37
  136. package/packages/orq-rc/src/mcp-server/tools/deploymentsInvoke.ts +0 -37
  137. package/packages/orq-rc/src/mcp-server/tools/deploymentsList.ts +0 -37
  138. package/packages/orq-rc/src/mcp-server/tools/deploymentsMetricsCreate.ts +0 -37
  139. package/packages/orq-rc/src/mcp-server/tools/deploymentsStream.ts +0 -37
  140. package/packages/orq-rc/src/mcp-server/tools/feedbackCreate.ts +0 -37
  141. package/packages/orq-rc/src/mcp-server/tools/filesCreate.ts +0 -37
  142. package/packages/orq-rc/src/mcp-server/tools/filesDelete.ts +0 -33
  143. package/packages/orq-rc/src/mcp-server/tools/filesGet.ts +0 -37
  144. package/packages/orq-rc/src/mcp-server/tools/filesList.ts +0 -37
  145. package/packages/orq-rc/src/mcp-server/tools/promptsCreate.ts +0 -35
  146. package/packages/orq-rc/src/mcp-server/tools/promptsDelete.ts +0 -33
  147. package/packages/orq-rc/src/mcp-server/tools/promptsGetVersion.ts +0 -37
  148. package/packages/orq-rc/src/mcp-server/tools/promptsList.ts +0 -37
  149. package/packages/orq-rc/src/mcp-server/tools/promptsListVersions.ts +0 -37
  150. package/packages/orq-rc/src/mcp-server/tools/promptsRetrieve.ts +0 -37
  151. package/packages/orq-rc/src/mcp-server/tools/promptsUpdate.ts +0 -35
  152. package/packages/orq-rc/src/mcp-server/tools/remoteconfigsRetrieve.ts +0 -36
  153. package/packages/orq-rc/src/mcp-server/tools.ts +0 -126
  154. package/packages/orq-rc/src/models/components/deployments.ts +0 -4164
  155. package/packages/orq-rc/src/models/components/index.ts +0 -6
  156. package/packages/orq-rc/src/models/components/security.ts +0 -71
  157. package/packages/orq-rc/src/models/errors/apierror.ts +0 -27
  158. package/packages/orq-rc/src/models/errors/getpromptversion.ts +0 -71
  159. package/packages/orq-rc/src/models/errors/honoapierror.ts +0 -82
  160. package/packages/orq-rc/src/models/errors/httpclienterrors.ts +0 -62
  161. package/packages/orq-rc/src/models/errors/index.ts +0 -10
  162. package/packages/orq-rc/src/models/errors/sdkvalidationerror.ts +0 -97
  163. package/packages/orq-rc/src/models/errors/updateprompt.ts +0 -71
  164. package/packages/orq-rc/src/models/operations/bulkcreatedatapoints.ts +0 -1816
  165. package/packages/orq-rc/src/models/operations/cleardataset.ts +0 -75
  166. package/packages/orq-rc/src/models/operations/createcontact.ts +0 -256
  167. package/packages/orq-rc/src/models/operations/createdataset.ts +0 -296
  168. package/packages/orq-rc/src/models/operations/createdatasetitem.ts +0 -1740
  169. package/packages/orq-rc/src/models/operations/createfeedback.ts +0 -286
  170. package/packages/orq-rc/src/models/operations/createprompt.ts +0 -3735
  171. package/packages/orq-rc/src/models/operations/deletedatapoint.ts +0 -81
  172. package/packages/orq-rc/src/models/operations/deletedataset.ts +0 -75
  173. package/packages/orq-rc/src/models/operations/deleteprompt.ts +0 -69
  174. package/packages/orq-rc/src/models/operations/deploymentcreatemetric.ts +0 -4936
  175. package/packages/orq-rc/src/models/operations/deploymentgetconfig.ts +0 -6090
  176. package/packages/orq-rc/src/models/operations/deploymentinvoke.ts +0 -1199
  177. package/packages/orq-rc/src/models/operations/deployments.ts +0 -2194
  178. package/packages/orq-rc/src/models/operations/deploymentstream.ts +0 -5960
  179. package/packages/orq-rc/src/models/operations/filedelete.ts +0 -78
  180. package/packages/orq-rc/src/models/operations/fileget.ts +0 -223
  181. package/packages/orq-rc/src/models/operations/filelist.ts +0 -377
  182. package/packages/orq-rc/src/models/operations/fileupload.ts +0 -324
  183. package/packages/orq-rc/src/models/operations/getallprompts.ts +0 -2165
  184. package/packages/orq-rc/src/models/operations/getoneprompt.ts +0 -1989
  185. package/packages/orq-rc/src/models/operations/getpromptversion.ts +0 -1987
  186. package/packages/orq-rc/src/models/operations/index.ts +0 -35
  187. package/packages/orq-rc/src/models/operations/listdatasetdatapoints.ts +0 -1115
  188. package/packages/orq-rc/src/models/operations/listdatasets.ts +0 -448
  189. package/packages/orq-rc/src/models/operations/listpromptversions.ts +0 -2163
  190. package/packages/orq-rc/src/models/operations/remoteconfigsgetconfig.ts +0 -190
  191. package/packages/orq-rc/src/models/operations/retrievedatapoint.ts +0 -924
  192. package/packages/orq-rc/src/models/operations/retrievedataset.ts +0 -288
  193. package/packages/orq-rc/src/models/operations/updatedatapoint.ts +0 -1729
  194. package/packages/orq-rc/src/models/operations/updatedataset.ts +0 -374
  195. package/packages/orq-rc/src/models/operations/updateprompt.ts +0 -3914
  196. package/packages/orq-rc/src/sdk/contacts.ts +0 -27
  197. package/packages/orq-rc/src/sdk/datasets.ts +0 -222
  198. package/packages/orq-rc/src/sdk/deployments.ts +0 -89
  199. package/packages/orq-rc/src/sdk/feedback.ts +0 -27
  200. package/packages/orq-rc/src/sdk/files.ts +0 -78
  201. package/packages/orq-rc/src/sdk/index.ts +0 -5
  202. package/packages/orq-rc/src/sdk/metrics.ts +0 -27
  203. package/packages/orq-rc/src/sdk/prompts.ts +0 -126
  204. package/packages/orq-rc/src/sdk/remoteconfigs.ts +0 -24
  205. package/packages/orq-rc/src/sdk/sdk.ts +0 -49
  206. package/packages/orq-rc/src/types/async.ts +0 -68
  207. package/packages/orq-rc/src/types/blobs.ts +0 -31
  208. package/packages/orq-rc/src/types/constdatetime.ts +0 -15
  209. package/packages/orq-rc/src/types/enums.ts +0 -16
  210. package/packages/orq-rc/src/types/fp.ts +0 -50
  211. package/packages/orq-rc/src/types/index.ts +0 -11
  212. package/packages/orq-rc/src/types/operations.ts +0 -105
  213. package/packages/orq-rc/src/types/rfcdate.ts +0 -54
  214. package/packages/orq-rc/src/types/streams.ts +0 -21
  215. package/packages/orq-rc/tsconfig.json +0 -41
@@ -1,325 +0,0 @@
1
- /*
2
- * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
- */
4
-
5
- import { APIError } from "../models/errors/apierror.js";
6
- import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
7
- import { Result } from "../types/fp.js";
8
- import { discardSentinel } from "./event-streams.js";
9
- import { matchResponse, matchStatusCode, StatusCodePredicate } from "./http.js";
10
- import { isPlainObject } from "./is-plain-object.js";
11
- import { safeParse } from "./schemas.js";
12
-
13
- export type Encoding =
14
- | "json"
15
- | "text"
16
- | "bytes"
17
- | "stream"
18
- | "sse"
19
- | "nil"
20
- | "fail";
21
-
22
- const DEFAULT_CONTENT_TYPES: Record<Encoding, string> = {
23
- json: "application/json",
24
- text: "text/plain",
25
- bytes: "application/octet-stream",
26
- stream: "application/octet-stream",
27
- sse: "text/event-stream",
28
- nil: "*",
29
- fail: "*",
30
- };
31
-
32
- type Schema<T> = { parse(raw: unknown): T };
33
-
34
- type MatchOptions = {
35
- ctype?: string;
36
- hdrs?: boolean;
37
- key?: string;
38
- sseSentinel?: string;
39
- };
40
-
41
- export type ValueMatcher<V> = MatchOptions & {
42
- enc: Encoding;
43
- codes: StatusCodePredicate;
44
- schema: Schema<V>;
45
- };
46
-
47
- export type ErrorMatcher<E> = MatchOptions & {
48
- enc: Encoding;
49
- codes: StatusCodePredicate;
50
- schema: Schema<E>;
51
- err: true;
52
- };
53
-
54
- export type FailMatcher = {
55
- enc: "fail";
56
- codes: StatusCodePredicate;
57
- };
58
-
59
- export type Matcher<T, E> = ValueMatcher<T> | ErrorMatcher<E> | FailMatcher;
60
-
61
- export function jsonErr<E>(
62
- codes: StatusCodePredicate,
63
- schema: Schema<E>,
64
- options?: MatchOptions,
65
- ): ErrorMatcher<E> {
66
- return { ...options, err: true, enc: "json", codes, schema };
67
- }
68
- export function json<T>(
69
- codes: StatusCodePredicate,
70
- schema: Schema<T>,
71
- options?: MatchOptions,
72
- ): ValueMatcher<T> {
73
- return { ...options, enc: "json", codes, schema };
74
- }
75
-
76
- export function textErr<E>(
77
- codes: StatusCodePredicate,
78
- schema: Schema<E>,
79
- options?: MatchOptions,
80
- ): ErrorMatcher<E> {
81
- return { ...options, err: true, enc: "text", codes, schema };
82
- }
83
- export function text<T>(
84
- codes: StatusCodePredicate,
85
- schema: Schema<T>,
86
- options?: MatchOptions,
87
- ): ValueMatcher<T> {
88
- return { ...options, enc: "text", codes, schema };
89
- }
90
-
91
- export function bytesErr<E>(
92
- codes: StatusCodePredicate,
93
- schema: Schema<E>,
94
- options?: MatchOptions,
95
- ): ErrorMatcher<E> {
96
- return { ...options, err: true, enc: "bytes", codes, schema };
97
- }
98
- export function bytes<T>(
99
- codes: StatusCodePredicate,
100
- schema: Schema<T>,
101
- options?: MatchOptions,
102
- ): ValueMatcher<T> {
103
- return { ...options, enc: "bytes", codes, schema };
104
- }
105
-
106
- export function streamErr<E>(
107
- codes: StatusCodePredicate,
108
- schema: Schema<E>,
109
- options?: MatchOptions,
110
- ): ErrorMatcher<E> {
111
- return { ...options, err: true, enc: "stream", codes, schema };
112
- }
113
- export function stream<T>(
114
- codes: StatusCodePredicate,
115
- schema: Schema<T>,
116
- options?: MatchOptions,
117
- ): ValueMatcher<T> {
118
- return { ...options, enc: "stream", codes, schema };
119
- }
120
-
121
- export function sseErr<E>(
122
- codes: StatusCodePredicate,
123
- schema: Schema<E>,
124
- options?: MatchOptions,
125
- ): ErrorMatcher<E> {
126
- return { ...options, err: true, enc: "sse", codes, schema };
127
- }
128
- export function sse<T>(
129
- codes: StatusCodePredicate,
130
- schema: Schema<T>,
131
- options?: MatchOptions,
132
- ): ValueMatcher<T> {
133
- return { ...options, enc: "sse", codes, schema };
134
- }
135
-
136
- export function nilErr<E>(
137
- codes: StatusCodePredicate,
138
- schema: Schema<E>,
139
- options?: MatchOptions,
140
- ): ErrorMatcher<E> {
141
- return { ...options, err: true, enc: "nil", codes, schema };
142
- }
143
- export function nil<T>(
144
- codes: StatusCodePredicate,
145
- schema: Schema<T>,
146
- options?: MatchOptions,
147
- ): ValueMatcher<T> {
148
- return { ...options, enc: "nil", codes, schema };
149
- }
150
-
151
- export function fail(codes: StatusCodePredicate): FailMatcher {
152
- return { enc: "fail", codes };
153
- }
154
-
155
- export type MatchedValue<Matchers> = Matchers extends Matcher<infer T, any>[]
156
- ? T
157
- : never;
158
- export type MatchedError<Matchers> = Matchers extends Matcher<any, infer E>[]
159
- ? E
160
- : never;
161
- export type MatchFunc<T, E> = (
162
- response: Response,
163
- options?: { resultKey?: string; extraFields?: Record<string, unknown> },
164
- ) => Promise<[result: Result<T, E>, raw: unknown]>;
165
-
166
- export function match<T, E>(
167
- ...matchers: Array<Matcher<T, E>>
168
- ): MatchFunc<T, E | APIError | SDKValidationError> {
169
- return async function matchFunc(
170
- response: Response,
171
- options?: { resultKey?: string; extraFields?: Record<string, unknown> },
172
- ): Promise<
173
- [result: Result<T, E | APIError | SDKValidationError>, raw: unknown]
174
- > {
175
- let raw: unknown;
176
- let matcher: Matcher<T, E> | undefined;
177
- for (const match of matchers) {
178
- const { codes } = match;
179
- const ctpattern = "ctype" in match
180
- ? match.ctype
181
- : DEFAULT_CONTENT_TYPES[match.enc];
182
- if (ctpattern && matchResponse(response, codes, ctpattern)) {
183
- matcher = match;
184
- break;
185
- } else if (!ctpattern && matchStatusCode(response, codes)) {
186
- matcher = match;
187
- break;
188
- }
189
- }
190
-
191
- if (!matcher) {
192
- const responseBody = await response.text();
193
- return [{
194
- ok: false,
195
- error: new APIError(
196
- "Unexpected API response status or content-type",
197
- response,
198
- responseBody,
199
- ),
200
- }, responseBody];
201
- }
202
-
203
- const encoding = matcher.enc;
204
- switch (encoding) {
205
- case "json":
206
- raw = await response.json();
207
- break;
208
- case "bytes":
209
- raw = new Uint8Array(await response.arrayBuffer());
210
- break;
211
- case "stream":
212
- raw = response.body;
213
- break;
214
- case "text":
215
- raw = await response.text();
216
- break;
217
- case "sse":
218
- raw = response.body && matcher.sseSentinel
219
- ? discardSentinel(response.body, matcher.sseSentinel)
220
- : response.body;
221
- break;
222
- case "nil":
223
- raw = await discardResponseBody(response);
224
- break;
225
- case "fail":
226
- raw = await response.text();
227
- break;
228
- default:
229
- encoding satisfies never;
230
- throw new Error(`Unsupported response type: ${encoding}`);
231
- }
232
-
233
- if (matcher.enc === "fail") {
234
- return [{
235
- ok: false,
236
- error: new APIError(
237
- "API error occurred",
238
- response,
239
- typeof raw === "string" ? raw : "",
240
- ),
241
- }, raw];
242
- }
243
-
244
- const resultKey = matcher.key || options?.resultKey;
245
- let data: unknown;
246
-
247
- if ("err" in matcher) {
248
- data = {
249
- ...options?.extraFields,
250
- ...(matcher.hdrs ? { Headers: unpackHeaders(response.headers) } : null),
251
- ...(isPlainObject(raw) ? raw : null),
252
- };
253
- } else if (resultKey) {
254
- data = {
255
- ...options?.extraFields,
256
- ...(matcher.hdrs ? { Headers: unpackHeaders(response.headers) } : null),
257
- [resultKey]: raw,
258
- };
259
- } else if (matcher.hdrs) {
260
- data = {
261
- ...options?.extraFields,
262
- ...(matcher.hdrs ? { Headers: unpackHeaders(response.headers) } : null),
263
- ...(isPlainObject(raw) ? raw : null),
264
- };
265
- } else {
266
- data = raw;
267
- }
268
-
269
- if ("err" in matcher) {
270
- const result = safeParse(
271
- data,
272
- (v: unknown) => matcher.schema.parse(v),
273
- "Response validation failed",
274
- );
275
- return [result.ok ? { ok: false, error: result.value } : result, raw];
276
- } else {
277
- return [
278
- safeParse(
279
- data,
280
- (v: unknown) => matcher.schema.parse(v),
281
- "Response validation failed",
282
- ),
283
- raw,
284
- ];
285
- }
286
- };
287
- }
288
-
289
- const headerValRE = /, */;
290
- /**
291
- * Iterates over a Headers object and returns an object with all the header
292
- * entries. Values are represented as an array to account for repeated headers.
293
- */
294
- export function unpackHeaders(headers: Headers): Record<string, string[]> {
295
- const out: Record<string, string[]> = {};
296
-
297
- for (const [k, v] of headers.entries()) {
298
- out[k] = v.split(headerValRE);
299
- }
300
-
301
- return out;
302
- }
303
-
304
- /**
305
- * Discards the response body to free up resources.
306
- *
307
- * To learn why this is need, see the undici docs:
308
- * https://undici.nodejs.org/#/?id=garbage-collection
309
- */
310
- export async function discardResponseBody(res: Response) {
311
- const reader = res.body?.getReader();
312
- if (reader == null) {
313
- return;
314
- }
315
-
316
- try {
317
- let done = false;
318
- while (!done) {
319
- const res = await reader.read();
320
- done = res.done;
321
- }
322
- } finally {
323
- reader.releaseLock();
324
- }
325
- }
@@ -1,150 +0,0 @@
1
- /*
2
- * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
- */
4
-
5
- class InvariantError extends Error {
6
- constructor(message: string) {
7
- super(message);
8
- this.name = "InvariantError";
9
- }
10
- }
11
-
12
- export function invariant(
13
- condition: unknown,
14
- message: string,
15
- ): asserts condition {
16
- if (!condition) {
17
- throw new InvariantError(message);
18
- }
19
- }
20
-
21
- export type ExactPartial<T> = {
22
- [P in keyof T]?: T[P] | undefined;
23
- };
24
-
25
- export type Remap<Inp, Mapping extends { [k in keyof Inp]?: string | null }> = {
26
- [k in keyof Inp as Mapping[k] extends string /* if we have a string mapping for this key then use it */
27
- ? Mapping[k]
28
- : Mapping[k] extends null /* if the mapping is to `null` then drop the key */
29
- ? never
30
- : k /* otherwise keep the key as-is */]: Inp[k];
31
- };
32
-
33
- /**
34
- * Converts or omits an object's keys according to a mapping.
35
- *
36
- * @param inp An object whose keys will be remapped
37
- * @param mappings A mapping of original keys to new keys. If a key is not present in the mapping, it will be left as is. If a key is mapped to `null`, it will be removed in the resulting object.
38
- * @returns A new object with keys remapped or omitted according to the mappings
39
- */
40
- export function remap<
41
- Inp extends Record<string, unknown>,
42
- const Mapping extends { [k in keyof Inp]?: string | null },
43
- >(inp: Inp, mappings: Mapping): Remap<Inp, Mapping> {
44
- let out: any = {};
45
-
46
- if (!Object.keys(mappings).length) {
47
- out = inp;
48
- return out;
49
- }
50
-
51
- for (const [k, v] of Object.entries(inp)) {
52
- const j = mappings[k];
53
- if (j === null) {
54
- continue;
55
- }
56
- out[j ?? k] = v;
57
- }
58
-
59
- return out;
60
- }
61
-
62
- export function combineSignals(
63
- ...signals: Array<AbortSignal | null | undefined>
64
- ): AbortSignal | null {
65
- const filtered: AbortSignal[] = [];
66
- for (const signal of signals) {
67
- if (signal) {
68
- filtered.push(signal);
69
- }
70
- }
71
-
72
- switch (filtered.length) {
73
- case 0:
74
- case 1:
75
- return filtered[0] || null;
76
- default:
77
- if ("any" in AbortSignal && typeof AbortSignal.any === "function") {
78
- return AbortSignal.any(filtered);
79
- }
80
- return abortSignalAny(filtered);
81
- }
82
- }
83
-
84
- export function abortSignalAny(signals: AbortSignal[]): AbortSignal {
85
- const controller = new AbortController();
86
- const result = controller.signal;
87
- if (!signals.length) {
88
- return controller.signal;
89
- }
90
-
91
- if (signals.length === 1) {
92
- return signals[0] || controller.signal;
93
- }
94
-
95
- for (const signal of signals) {
96
- if (signal.aborted) {
97
- return signal;
98
- }
99
- }
100
-
101
- function abort(this: AbortSignal) {
102
- controller.abort(this.reason);
103
- clean();
104
- }
105
-
106
- const signalRefs: WeakRef<AbortSignal>[] = [];
107
- function clean() {
108
- for (const signalRef of signalRefs) {
109
- const signal = signalRef.deref();
110
- if (signal) {
111
- signal.removeEventListener("abort", abort);
112
- }
113
- }
114
- }
115
-
116
- for (const signal of signals) {
117
- signalRefs.push(new WeakRef(signal));
118
- signal.addEventListener("abort", abort);
119
- }
120
-
121
- return result;
122
- }
123
-
124
- export function compactMap<T>(
125
- values: Record<string, T | undefined>,
126
- ): Record<string, T> {
127
- const out: Record<string, T> = {};
128
-
129
- for (const [k, v] of Object.entries(values)) {
130
- if (typeof v !== "undefined") {
131
- out[k] = v;
132
- }
133
- }
134
-
135
- return out;
136
- }
137
-
138
- export function allRequired<V extends Record<string, unknown>>(
139
- v: V,
140
- ):
141
- | {
142
- [K in keyof V]: NonNullable<V[K]>;
143
- }
144
- | undefined {
145
- if (Object.values(v).every((x) => x == null)) {
146
- return void 0;
147
- }
148
-
149
- return v as ReturnType<typeof allRequired<V>>;
150
- }
@@ -1,218 +0,0 @@
1
- /*
2
- * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
- */
4
-
5
- import { isConnectionError, isTimeoutError } from "./http.js";
6
-
7
- export type BackoffStrategy = {
8
- initialInterval: number;
9
- maxInterval: number;
10
- exponent: number;
11
- maxElapsedTime: number;
12
- };
13
-
14
- const defaultBackoff: BackoffStrategy = {
15
- initialInterval: 500,
16
- maxInterval: 60000,
17
- exponent: 1.5,
18
- maxElapsedTime: 3600000,
19
- };
20
-
21
- export type RetryConfig =
22
- | { strategy: "none" }
23
- | {
24
- strategy: "backoff";
25
- backoff?: BackoffStrategy;
26
- retryConnectionErrors?: boolean;
27
- };
28
-
29
- /**
30
- * PermanentError is an error that is not recoverable. Throwing this error will
31
- * cause a retry loop to terminate.
32
- */
33
- export class PermanentError extends Error {
34
- /** The underlying cause of the error. */
35
- override readonly cause: unknown;
36
-
37
- constructor(message: string, options?: { cause?: unknown }) {
38
- let msg = message;
39
- if (options?.cause) {
40
- msg += `: ${options.cause}`;
41
- }
42
-
43
- super(msg, options);
44
- this.name = "PermanentError";
45
- // In older runtimes, the cause field would not have been assigned through
46
- // the super() call.
47
- if (typeof this.cause === "undefined") {
48
- this.cause = options?.cause;
49
- }
50
-
51
- Object.setPrototypeOf(this, PermanentError.prototype);
52
- }
53
- }
54
-
55
- /**
56
- * TemporaryError is an error is used to signal that an HTTP request can be
57
- * retried as part of a retry loop. If retry attempts are exhausted and this
58
- * error is thrown, the response will be returned to the caller.
59
- */
60
- export class TemporaryError extends Error {
61
- response: Response;
62
-
63
- constructor(message: string, response: Response) {
64
- super(message);
65
- this.response = response;
66
- this.name = "TemporaryError";
67
-
68
- Object.setPrototypeOf(this, TemporaryError.prototype);
69
- }
70
- }
71
-
72
- export async function retry(
73
- fetchFn: () => Promise<Response>,
74
- options: {
75
- config: RetryConfig;
76
- statusCodes: string[];
77
- },
78
- ): Promise<Response> {
79
- switch (options.config.strategy) {
80
- case "backoff":
81
- return retryBackoff(
82
- wrapFetcher(fetchFn, {
83
- statusCodes: options.statusCodes,
84
- retryConnectionErrors: !!options.config.retryConnectionErrors,
85
- }),
86
- options.config.backoff ?? defaultBackoff,
87
- );
88
- default:
89
- return await fetchFn();
90
- }
91
- }
92
-
93
- function wrapFetcher(
94
- fn: () => Promise<Response>,
95
- options: {
96
- statusCodes: string[];
97
- retryConnectionErrors: boolean;
98
- },
99
- ): () => Promise<Response> {
100
- return async () => {
101
- try {
102
- const res = await fn();
103
- if (isRetryableResponse(res, options.statusCodes)) {
104
- throw new TemporaryError(
105
- "Response failed with retryable status code",
106
- res,
107
- );
108
- }
109
-
110
- return res;
111
- } catch (err: unknown) {
112
- if (err instanceof TemporaryError) {
113
- throw err;
114
- }
115
-
116
- if (
117
- options.retryConnectionErrors &&
118
- (isTimeoutError(err) || isConnectionError(err))
119
- ) {
120
- throw err;
121
- }
122
-
123
- throw new PermanentError("Permanent error", { cause: err });
124
- }
125
- };
126
- }
127
-
128
- const codeRangeRE = new RegExp("^[0-9]xx$", "i");
129
-
130
- function isRetryableResponse(res: Response, statusCodes: string[]): boolean {
131
- const actual = `${res.status}`;
132
-
133
- return statusCodes.some((code) => {
134
- if (!codeRangeRE.test(code)) {
135
- return code === actual;
136
- }
137
-
138
- const expectFamily = code.charAt(0);
139
- if (!expectFamily) {
140
- throw new Error("Invalid status code range");
141
- }
142
-
143
- const actualFamily = actual.charAt(0);
144
- if (!actualFamily) {
145
- throw new Error(`Invalid response status code: ${actual}`);
146
- }
147
-
148
- return actualFamily === expectFamily;
149
- });
150
- }
151
-
152
- async function retryBackoff(
153
- fn: () => Promise<Response>,
154
- strategy: BackoffStrategy,
155
- ): Promise<Response> {
156
- const { maxElapsedTime, initialInterval, exponent, maxInterval } = strategy;
157
-
158
- const start = Date.now();
159
- let x = 0;
160
-
161
- while (true) {
162
- try {
163
- const res = await fn();
164
- return res;
165
- } catch (err: unknown) {
166
- if (err instanceof PermanentError) {
167
- throw err.cause;
168
- }
169
- const elapsed = Date.now() - start;
170
- if (elapsed > maxElapsedTime) {
171
- if (err instanceof TemporaryError) {
172
- return err.response;
173
- }
174
-
175
- throw err;
176
- }
177
-
178
- let retryInterval = 0;
179
- if (err instanceof TemporaryError) {
180
- retryInterval = retryIntervalFromResponse(err.response);
181
- }
182
-
183
- if (retryInterval <= 0) {
184
- retryInterval =
185
- initialInterval * Math.pow(x, exponent) + Math.random() * 1000;
186
- }
187
-
188
- const d = Math.min(retryInterval, maxInterval);
189
-
190
- await delay(d);
191
- x++;
192
- }
193
- }
194
- }
195
-
196
- function retryIntervalFromResponse(res: Response): number {
197
- const retryVal = res.headers.get("retry-after") || "";
198
- if (!retryVal) {
199
- return 0;
200
- }
201
-
202
- const parsedNumber = Number(retryVal);
203
- if (Number.isInteger(parsedNumber)) {
204
- return parsedNumber * 1000;
205
- }
206
-
207
- const parsedDate = Date.parse(retryVal);
208
- if (Number.isInteger(parsedDate)) {
209
- const deltaMS = parsedDate - Date.now();
210
- return deltaMS > 0 ? Math.ceil(deltaMS) : 0;
211
- }
212
-
213
- return 0;
214
- }
215
-
216
- async function delay(delay: number): Promise<void> {
217
- return new Promise((resolve) => setTimeout(resolve, delay));
218
- }