@orq-ai/node 3.2.6 → 3.3.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (211) hide show
  1. package/bin/mcp-server.js +33 -36
  2. package/bin/mcp-server.js.map +20 -20
  3. package/jsr.json +1 -1
  4. package/lib/config.d.ts +3 -3
  5. package/lib/config.js +3 -3
  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 +3 -3
  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 -622
  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 -235
  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 -27
  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/feedbackCreate.ts +0 -154
  75. package/packages/orq-rc/src/funcs/filesCreate.ts +0 -177
  76. package/packages/orq-rc/src/funcs/filesDelete.ts +0 -158
  77. package/packages/orq-rc/src/funcs/filesGet.ts +0 -160
  78. package/packages/orq-rc/src/funcs/filesList.ts +0 -162
  79. package/packages/orq-rc/src/funcs/promptsCreate.ts +0 -154
  80. package/packages/orq-rc/src/funcs/promptsDelete.ts +0 -158
  81. package/packages/orq-rc/src/funcs/promptsGetVersion.ts +0 -175
  82. package/packages/orq-rc/src/funcs/promptsList.ts +0 -162
  83. package/packages/orq-rc/src/funcs/promptsListVersions.ts +0 -168
  84. package/packages/orq-rc/src/funcs/promptsRetrieve.ts +0 -160
  85. package/packages/orq-rc/src/funcs/promptsUpdate.ts +0 -167
  86. package/packages/orq-rc/src/funcs/remoteconfigsRetrieve.ts +0 -155
  87. package/packages/orq-rc/src/hooks/global.ts +0 -44
  88. package/packages/orq-rc/src/hooks/hooks.ts +0 -132
  89. package/packages/orq-rc/src/hooks/index.ts +0 -6
  90. package/packages/orq-rc/src/hooks/registration.ts +0 -15
  91. package/packages/orq-rc/src/hooks/types.ts +0 -110
  92. package/packages/orq-rc/src/index.ts +0 -7
  93. package/packages/orq-rc/src/lib/base64.ts +0 -37
  94. package/packages/orq-rc/src/lib/config.ts +0 -70
  95. package/packages/orq-rc/src/lib/dlv.ts +0 -53
  96. package/packages/orq-rc/src/lib/encodings.ts +0 -483
  97. package/packages/orq-rc/src/lib/env.ts +0 -73
  98. package/packages/orq-rc/src/lib/files.ts +0 -40
  99. package/packages/orq-rc/src/lib/http.ts +0 -323
  100. package/packages/orq-rc/src/lib/is-plain-object.ts +0 -43
  101. package/packages/orq-rc/src/lib/logger.ts +0 -9
  102. package/packages/orq-rc/src/lib/matchers.ts +0 -322
  103. package/packages/orq-rc/src/lib/primitives.ts +0 -150
  104. package/packages/orq-rc/src/lib/retries.ts +0 -218
  105. package/packages/orq-rc/src/lib/schemas.ts +0 -91
  106. package/packages/orq-rc/src/lib/sdks.ts +0 -395
  107. package/packages/orq-rc/src/lib/security.ts +0 -253
  108. package/packages/orq-rc/src/lib/url.ts +0 -33
  109. package/packages/orq-rc/src/mcp-server/cli/start/command.ts +0 -125
  110. package/packages/orq-rc/src/mcp-server/cli/start/impl.ts +0 -140
  111. package/packages/orq-rc/src/mcp-server/cli.ts +0 -13
  112. package/packages/orq-rc/src/mcp-server/console-logger.ts +0 -71
  113. package/packages/orq-rc/src/mcp-server/extensions.ts +0 -17
  114. package/packages/orq-rc/src/mcp-server/mcp-server.ts +0 -26
  115. package/packages/orq-rc/src/mcp-server/prompts.ts +0 -110
  116. package/packages/orq-rc/src/mcp-server/resources.ts +0 -158
  117. package/packages/orq-rc/src/mcp-server/scopes.ts +0 -7
  118. package/packages/orq-rc/src/mcp-server/server.ts +0 -123
  119. package/packages/orq-rc/src/mcp-server/shared.ts +0 -75
  120. package/packages/orq-rc/src/mcp-server/tools/contactsCreate.ts +0 -37
  121. package/packages/orq-rc/src/mcp-server/tools/datasetsClear.ts +0 -35
  122. package/packages/orq-rc/src/mcp-server/tools/datasetsCreate.ts +0 -37
  123. package/packages/orq-rc/src/mcp-server/tools/datasetsCreateDatapoint.ts +0 -37
  124. package/packages/orq-rc/src/mcp-server/tools/datasetsCreateDatapoints.ts +0 -37
  125. package/packages/orq-rc/src/mcp-server/tools/datasetsDelete.ts +0 -35
  126. package/packages/orq-rc/src/mcp-server/tools/datasetsDeleteDatapoint.ts +0 -35
  127. package/packages/orq-rc/src/mcp-server/tools/datasetsList.ts +0 -37
  128. package/packages/orq-rc/src/mcp-server/tools/datasetsListDatapoints.ts +0 -37
  129. package/packages/orq-rc/src/mcp-server/tools/datasetsRetrieve.ts +0 -37
  130. package/packages/orq-rc/src/mcp-server/tools/datasetsRetrieveDatapoint.ts +0 -37
  131. package/packages/orq-rc/src/mcp-server/tools/datasetsUpdate.ts +0 -37
  132. package/packages/orq-rc/src/mcp-server/tools/datasetsUpdateDatapoint.ts +0 -35
  133. package/packages/orq-rc/src/mcp-server/tools/deploymentsGetConfig.ts +0 -37
  134. package/packages/orq-rc/src/mcp-server/tools/deploymentsInvoke.ts +0 -37
  135. package/packages/orq-rc/src/mcp-server/tools/deploymentsList.ts +0 -37
  136. package/packages/orq-rc/src/mcp-server/tools/deploymentsMetricsCreate.ts +0 -37
  137. package/packages/orq-rc/src/mcp-server/tools/feedbackCreate.ts +0 -37
  138. package/packages/orq-rc/src/mcp-server/tools/filesCreate.ts +0 -37
  139. package/packages/orq-rc/src/mcp-server/tools/filesDelete.ts +0 -33
  140. package/packages/orq-rc/src/mcp-server/tools/filesGet.ts +0 -37
  141. package/packages/orq-rc/src/mcp-server/tools/filesList.ts +0 -37
  142. package/packages/orq-rc/src/mcp-server/tools/promptsCreate.ts +0 -35
  143. package/packages/orq-rc/src/mcp-server/tools/promptsDelete.ts +0 -33
  144. package/packages/orq-rc/src/mcp-server/tools/promptsGetVersion.ts +0 -37
  145. package/packages/orq-rc/src/mcp-server/tools/promptsList.ts +0 -37
  146. package/packages/orq-rc/src/mcp-server/tools/promptsListVersions.ts +0 -37
  147. package/packages/orq-rc/src/mcp-server/tools/promptsRetrieve.ts +0 -37
  148. package/packages/orq-rc/src/mcp-server/tools/promptsUpdate.ts +0 -35
  149. package/packages/orq-rc/src/mcp-server/tools/remoteconfigsRetrieve.ts +0 -36
  150. package/packages/orq-rc/src/mcp-server/tools.ts +0 -126
  151. package/packages/orq-rc/src/models/components/deployments.ts +0 -4164
  152. package/packages/orq-rc/src/models/components/index.ts +0 -6
  153. package/packages/orq-rc/src/models/components/security.ts +0 -71
  154. package/packages/orq-rc/src/models/errors/apierror.ts +0 -27
  155. package/packages/orq-rc/src/models/errors/getpromptversion.ts +0 -71
  156. package/packages/orq-rc/src/models/errors/honoapierror.ts +0 -82
  157. package/packages/orq-rc/src/models/errors/httpclienterrors.ts +0 -62
  158. package/packages/orq-rc/src/models/errors/index.ts +0 -10
  159. package/packages/orq-rc/src/models/errors/sdkvalidationerror.ts +0 -97
  160. package/packages/orq-rc/src/models/errors/updateprompt.ts +0 -71
  161. package/packages/orq-rc/src/models/operations/bulkcreatedatapoints.ts +0 -1816
  162. package/packages/orq-rc/src/models/operations/cleardataset.ts +0 -75
  163. package/packages/orq-rc/src/models/operations/createcontact.ts +0 -256
  164. package/packages/orq-rc/src/models/operations/createdataset.ts +0 -296
  165. package/packages/orq-rc/src/models/operations/createdatasetitem.ts +0 -1740
  166. package/packages/orq-rc/src/models/operations/createfeedback.ts +0 -286
  167. package/packages/orq-rc/src/models/operations/createprompt.ts +0 -3816
  168. package/packages/orq-rc/src/models/operations/deletedatapoint.ts +0 -81
  169. package/packages/orq-rc/src/models/operations/deletedataset.ts +0 -75
  170. package/packages/orq-rc/src/models/operations/deleteprompt.ts +0 -69
  171. package/packages/orq-rc/src/models/operations/deploymentcreatemetric.ts +0 -4936
  172. package/packages/orq-rc/src/models/operations/deploymentgetconfig.ts +0 -6090
  173. package/packages/orq-rc/src/models/operations/deploymentinvoke.ts +0 -1199
  174. package/packages/orq-rc/src/models/operations/deployments.ts +0 -2194
  175. package/packages/orq-rc/src/models/operations/filedelete.ts +0 -78
  176. package/packages/orq-rc/src/models/operations/fileget.ts +0 -223
  177. package/packages/orq-rc/src/models/operations/filelist.ts +0 -377
  178. package/packages/orq-rc/src/models/operations/fileupload.ts +0 -324
  179. package/packages/orq-rc/src/models/operations/getallprompts.ts +0 -2165
  180. package/packages/orq-rc/src/models/operations/getoneprompt.ts +0 -1989
  181. package/packages/orq-rc/src/models/operations/getpromptversion.ts +0 -1987
  182. package/packages/orq-rc/src/models/operations/index.ts +0 -34
  183. package/packages/orq-rc/src/models/operations/listdatasetdatapoints.ts +0 -1115
  184. package/packages/orq-rc/src/models/operations/listdatasets.ts +0 -448
  185. package/packages/orq-rc/src/models/operations/listpromptversions.ts +0 -2163
  186. package/packages/orq-rc/src/models/operations/remoteconfigsgetconfig.ts +0 -190
  187. package/packages/orq-rc/src/models/operations/retrievedatapoint.ts +0 -924
  188. package/packages/orq-rc/src/models/operations/retrievedataset.ts +0 -288
  189. package/packages/orq-rc/src/models/operations/updatedatapoint.ts +0 -1729
  190. package/packages/orq-rc/src/models/operations/updatedataset.ts +0 -374
  191. package/packages/orq-rc/src/models/operations/updateprompt.ts +0 -3831
  192. package/packages/orq-rc/src/sdk/contacts.ts +0 -27
  193. package/packages/orq-rc/src/sdk/datasets.ts +0 -222
  194. package/packages/orq-rc/src/sdk/deployments.ts +0 -70
  195. package/packages/orq-rc/src/sdk/feedback.ts +0 -27
  196. package/packages/orq-rc/src/sdk/files.ts +0 -78
  197. package/packages/orq-rc/src/sdk/index.ts +0 -5
  198. package/packages/orq-rc/src/sdk/metrics.ts +0 -27
  199. package/packages/orq-rc/src/sdk/prompts.ts +0 -126
  200. package/packages/orq-rc/src/sdk/remoteconfigs.ts +0 -24
  201. package/packages/orq-rc/src/sdk/sdk.ts +0 -49
  202. package/packages/orq-rc/src/types/async.ts +0 -68
  203. package/packages/orq-rc/src/types/blobs.ts +0 -31
  204. package/packages/orq-rc/src/types/constdatetime.ts +0 -15
  205. package/packages/orq-rc/src/types/enums.ts +0 -16
  206. package/packages/orq-rc/src/types/fp.ts +0 -50
  207. package/packages/orq-rc/src/types/index.ts +0 -11
  208. package/packages/orq-rc/src/types/operations.ts +0 -105
  209. package/packages/orq-rc/src/types/rfcdate.ts +0 -54
  210. package/packages/orq-rc/src/types/streams.ts +0 -21
  211. package/packages/orq-rc/tsconfig.json +0 -41
@@ -1,395 +0,0 @@
1
- /*
2
- * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
- */
4
-
5
- import { SDKHooks } from "../hooks/hooks.js";
6
- import { HookContext } from "../hooks/types.js";
7
- import {
8
- ConnectionError,
9
- InvalidRequestError,
10
- RequestAbortedError,
11
- RequestTimeoutError,
12
- UnexpectedClientError,
13
- } from "../models/errors/httpclienterrors.js";
14
- import { ERR, OK, Result } from "../types/fp.js";
15
- import { stringToBase64 } from "./base64.js";
16
- import { SDK_METADATA, SDKOptions, serverURLFromOptions } from "./config.js";
17
- import { encodeForm } from "./encodings.js";
18
- import { env, fillGlobals } from "./env.js";
19
- import {
20
- HTTPClient,
21
- isAbortError,
22
- isConnectionError,
23
- isTimeoutError,
24
- matchContentType,
25
- matchStatusCode,
26
- } from "./http.js";
27
- import { Logger } from "./logger.js";
28
- import { retry, RetryConfig } from "./retries.js";
29
- import { SecurityState } from "./security.js";
30
-
31
- export type RequestOptions = {
32
- /**
33
- * Sets a timeout, in milliseconds, on HTTP requests made by an SDK method. If
34
- * `fetchOptions.signal` is set then it will take precedence over this option.
35
- */
36
- timeoutMs?: number;
37
- /**
38
- * Set or override a retry policy on HTTP calls.
39
- */
40
- retries?: RetryConfig;
41
- /**
42
- * Specifies the status codes which should be retried using the given retry policy.
43
- */
44
- retryCodes?: string[];
45
- /**
46
- * Overrides the base server URL that will be used by an operation.
47
- */
48
- serverURL?: string | URL;
49
- /**
50
- * Sets various request options on the `fetch` call made by an SDK method.
51
- *
52
- * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options|Request}
53
- */
54
- fetchOptions?: Omit<RequestInit, "method" | "body">;
55
- };
56
-
57
- type RequestConfig = {
58
- method: string;
59
- path: string;
60
- baseURL?: string | URL | undefined;
61
- query?: string;
62
- body?: RequestInit["body"];
63
- headers?: HeadersInit;
64
- security?: SecurityState | null;
65
- uaHeader?: string;
66
- timeoutMs?: number;
67
- };
68
-
69
- const gt: unknown = typeof globalThis === "undefined" ? null : globalThis;
70
- const webWorkerLike = typeof gt === "object"
71
- && gt != null
72
- && "importScripts" in gt
73
- && typeof gt["importScripts"] === "function";
74
- const isBrowserLike = webWorkerLike
75
- || (typeof navigator !== "undefined" && "serviceWorker" in navigator)
76
- || (typeof window === "object" && typeof window.document !== "undefined");
77
-
78
- export class ClientSDK {
79
- readonly #httpClient: HTTPClient;
80
- readonly #hooks: SDKHooks;
81
- readonly #logger?: Logger | undefined;
82
- public readonly _baseURL: URL | null;
83
- public readonly _options: SDKOptions & { hooks?: SDKHooks };
84
-
85
- constructor(options: SDKOptions = {}) {
86
- const opt = options as unknown;
87
- if (
88
- typeof opt === "object"
89
- && opt != null
90
- && "hooks" in opt
91
- && opt.hooks instanceof SDKHooks
92
- ) {
93
- this.#hooks = opt.hooks;
94
- } else {
95
- this.#hooks = new SDKHooks();
96
- }
97
- this._options = { ...fillGlobals(options), hooks: this.#hooks };
98
-
99
- const url = serverURLFromOptions(options);
100
- if (url) {
101
- url.pathname = url.pathname.replace(/\/+$/, "") + "/";
102
- }
103
- const { baseURL, client } = this.#hooks.sdkInit({
104
- baseURL: url,
105
- client: options.httpClient || new HTTPClient(),
106
- });
107
- this._baseURL = baseURL;
108
- this.#httpClient = client;
109
- this.#logger = options.debugLogger;
110
- if (!this.#logger && env().ORQ_DEBUG) {
111
- this.#logger = console;
112
- }
113
- }
114
-
115
- public _createRequest(
116
- context: HookContext,
117
- conf: RequestConfig,
118
- options?: RequestOptions,
119
- ): Result<Request, InvalidRequestError | UnexpectedClientError> {
120
- const { method, path, query, headers: opHeaders, security } = conf;
121
-
122
- const base = conf.baseURL ?? this._baseURL;
123
- if (!base) {
124
- return ERR(new InvalidRequestError("No base URL provided for operation"));
125
- }
126
- const reqURL = new URL(base);
127
- const inputURL = new URL(path, reqURL);
128
-
129
- if (path) {
130
- reqURL.pathname += reqURL.pathname.endsWith("/") ? "" : "/";
131
- reqURL.pathname += inputURL.pathname.replace(/^\/+/, "");
132
- }
133
-
134
- let finalQuery = query || "";
135
-
136
- const secQuery: string[] = [];
137
- for (const [k, v] of Object.entries(security?.queryParams || {})) {
138
- const q = encodeForm(k, v, { charEncoding: "percent" });
139
- if (typeof q !== "undefined") {
140
- secQuery.push(q);
141
- }
142
- }
143
- if (secQuery.length) {
144
- finalQuery += `&${secQuery.join("&")}`;
145
- }
146
-
147
- if (finalQuery) {
148
- const q = finalQuery.startsWith("&") ? finalQuery.slice(1) : finalQuery;
149
- reqURL.search = `?${q}`;
150
- }
151
-
152
- const headers = new Headers(opHeaders);
153
-
154
- const username = security?.basic.username;
155
- const password = security?.basic.password;
156
- if (username != null || password != null) {
157
- const encoded = stringToBase64(
158
- [username || "", password || ""].join(":"),
159
- );
160
- headers.set("Authorization", `Basic ${encoded}`);
161
- }
162
-
163
- const securityHeaders = new Headers(security?.headers || {});
164
- for (const [k, v] of securityHeaders) {
165
- headers.set(k, v);
166
- }
167
-
168
- let cookie = headers.get("cookie") || "";
169
- for (const [k, v] of Object.entries(security?.cookies || {})) {
170
- cookie += `; ${k}=${v}`;
171
- }
172
- cookie = cookie.startsWith("; ") ? cookie.slice(2) : cookie;
173
- headers.set("cookie", cookie);
174
-
175
- const userHeaders = new Headers(options?.fetchOptions?.headers);
176
- for (const [k, v] of userHeaders) {
177
- headers.set(k, v);
178
- }
179
-
180
- // Only set user agent header in non-browser-like environments since CORS
181
- // policy disallows setting it in browsers e.g. Chrome throws an error.
182
- if (!isBrowserLike) {
183
- headers.set(conf.uaHeader ?? "user-agent", SDK_METADATA.userAgent);
184
- }
185
-
186
- let fetchOptions = options?.fetchOptions;
187
- if (!fetchOptions?.signal && conf.timeoutMs && conf.timeoutMs > 0) {
188
- const timeoutSignal = AbortSignal.timeout(conf.timeoutMs);
189
- if (!fetchOptions) {
190
- fetchOptions = { signal: timeoutSignal };
191
- } else {
192
- fetchOptions.signal = timeoutSignal;
193
- }
194
- }
195
-
196
- if (conf.body instanceof ReadableStream) {
197
- if (!fetchOptions) {
198
- fetchOptions = {};
199
- }
200
- Object.assign(fetchOptions, { duplex: "half" });
201
- }
202
-
203
- let input;
204
- try {
205
- input = this.#hooks.beforeCreateRequest(context, {
206
- url: reqURL,
207
- options: {
208
- ...fetchOptions,
209
- body: conf.body ?? null,
210
- headers,
211
- method,
212
- },
213
- });
214
- } catch (err: unknown) {
215
- return ERR(
216
- new UnexpectedClientError("Create request hook failed to execute", {
217
- cause: err,
218
- }),
219
- );
220
- }
221
-
222
- return OK(new Request(input.url, input.options));
223
- }
224
-
225
- public async _do(
226
- request: Request,
227
- options: {
228
- context: HookContext;
229
- errorCodes: number | string | (number | string)[];
230
- retryConfig: RetryConfig;
231
- retryCodes: string[];
232
- },
233
- ): Promise<
234
- Result<
235
- Response,
236
- | RequestAbortedError
237
- | RequestTimeoutError
238
- | ConnectionError
239
- | UnexpectedClientError
240
- >
241
- > {
242
- const { context, errorCodes } = options;
243
-
244
- return retry(
245
- async () => {
246
- const req = await this.#hooks.beforeRequest(context, request.clone());
247
- await logRequest(this.#logger, req).catch((e) =>
248
- this.#logger?.log("Failed to log request:", e)
249
- );
250
-
251
- let response = await this.#httpClient.request(req);
252
-
253
- try {
254
- if (matchStatusCode(response, errorCodes)) {
255
- const result = await this.#hooks.afterError(
256
- context,
257
- response,
258
- null,
259
- );
260
- if (result.error) {
261
- throw result.error;
262
- }
263
- response = result.response || response;
264
- } else {
265
- response = await this.#hooks.afterSuccess(context, response);
266
- }
267
- } finally {
268
- await logResponse(this.#logger, response, req)
269
- .catch(e => this.#logger?.log("Failed to log response:", e));
270
- }
271
-
272
- return response;
273
- },
274
- { config: options.retryConfig, statusCodes: options.retryCodes },
275
- ).then(
276
- (r) => OK(r),
277
- (err) => {
278
- switch (true) {
279
- case isAbortError(err):
280
- return ERR(
281
- new RequestAbortedError("Request aborted by client", {
282
- cause: err,
283
- }),
284
- );
285
- case isTimeoutError(err):
286
- return ERR(
287
- new RequestTimeoutError("Request timed out", { cause: err }),
288
- );
289
- case isConnectionError(err):
290
- return ERR(
291
- new ConnectionError("Unable to make request", { cause: err }),
292
- );
293
- default:
294
- return ERR(
295
- new UnexpectedClientError("Unexpected HTTP client error", {
296
- cause: err,
297
- }),
298
- );
299
- }
300
- },
301
- );
302
- }
303
- }
304
-
305
- const jsonLikeContentTypeRE = /^application\/(?:.{0,100}\+)?json/;
306
- async function logRequest(logger: Logger | undefined, req: Request) {
307
- if (!logger) {
308
- return;
309
- }
310
-
311
- const contentType = req.headers.get("content-type");
312
- const ct = contentType?.split(";")[0] || "";
313
-
314
- logger.group(`> Request: ${req.method} ${req.url}`);
315
-
316
- logger.group("Headers:");
317
- for (const [k, v] of req.headers.entries()) {
318
- logger.log(`${k}: ${v}`);
319
- }
320
- logger.groupEnd();
321
-
322
- logger.group("Body:");
323
- switch (true) {
324
- case jsonLikeContentTypeRE.test(ct):
325
- logger.log(await req.clone().json());
326
- break;
327
- case ct.startsWith("text/"):
328
- logger.log(await req.clone().text());
329
- break;
330
- case ct === "multipart/form-data": {
331
- const body = await req.clone().formData();
332
- for (const [k, v] of body) {
333
- const vlabel = v instanceof Blob ? "<Blob>" : v;
334
- logger.log(`${k}: ${vlabel}`);
335
- }
336
- break;
337
- }
338
- default:
339
- logger.log(`<${contentType}>`);
340
- break;
341
- }
342
- logger.groupEnd();
343
-
344
- logger.groupEnd();
345
- }
346
-
347
- async function logResponse(
348
- logger: Logger | undefined,
349
- res: Response,
350
- req: Request,
351
- ) {
352
- if (!logger) {
353
- return;
354
- }
355
-
356
- const contentType = res.headers.get("content-type");
357
- const ct = contentType?.split(";")[0] || "";
358
-
359
- logger.group(`< Response: ${req.method} ${req.url}`);
360
- logger.log("Status Code:", res.status, res.statusText);
361
-
362
- logger.group("Headers:");
363
- for (const [k, v] of res.headers.entries()) {
364
- logger.log(`${k}: ${v}`);
365
- }
366
- logger.groupEnd();
367
-
368
- logger.group("Body:");
369
- switch (true) {
370
- case matchContentType(res, "application/json")
371
- || jsonLikeContentTypeRE.test(ct):
372
- logger.log(await res.clone().json());
373
- break;
374
- case matchContentType(res, "text/event-stream"):
375
- logger.log(`<${contentType}>`);
376
- break;
377
- case matchContentType(res, "text/*"):
378
- logger.log(await res.clone().text());
379
- break;
380
- case matchContentType(res, "multipart/form-data"): {
381
- const body = await res.clone().formData();
382
- for (const [k, v] of body) {
383
- const vlabel = v instanceof Blob ? "<Blob>" : v;
384
- logger.log(`${k}: ${vlabel}`);
385
- }
386
- break;
387
- }
388
- default:
389
- logger.log(`<${contentType}>`);
390
- break;
391
- }
392
- logger.groupEnd();
393
-
394
- logger.groupEnd();
395
- }
@@ -1,253 +0,0 @@
1
- /*
2
- * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
- */
4
-
5
- import * as components from "../models/components/index.js";
6
- import { env } from "./env.js";
7
- type OAuth2PasswordFlow = {
8
- username: string;
9
- password?: string | undefined;
10
- clientID: string;
11
- clientSecret?: string | undefined;
12
- tokenURL: string;
13
- };
14
-
15
- export enum SecurityErrorCode {
16
- Incomplete = "incomplete",
17
- UnrecognisedSecurityType = "unrecognized_security_type",
18
- }
19
-
20
- export class SecurityError extends Error {
21
- constructor(
22
- public code: SecurityErrorCode,
23
- message: string,
24
- ) {
25
- super(message);
26
- this.name = "SecurityError";
27
- }
28
-
29
- static incomplete(): SecurityError {
30
- return new SecurityError(
31
- SecurityErrorCode.Incomplete,
32
- "Security requirements not met in order to perform the operation",
33
- );
34
- }
35
- static unrecognizedType(type: string): SecurityError {
36
- return new SecurityError(
37
- SecurityErrorCode.UnrecognisedSecurityType,
38
- `Unrecognised security type: ${type}`,
39
- );
40
- }
41
- }
42
-
43
- export type SecurityState = {
44
- basic: { username?: string | undefined; password?: string | undefined };
45
- headers: Record<string, string>;
46
- queryParams: Record<string, string>;
47
- cookies: Record<string, string>;
48
- oauth2: ({ type: "password" } & OAuth2PasswordFlow) | { type: "none" };
49
- };
50
-
51
- type SecurityInputBasic = {
52
- type: "http:basic";
53
- value:
54
- | { username?: string | undefined; password?: string | undefined }
55
- | null
56
- | undefined;
57
- };
58
-
59
- type SecurityInputBearer = {
60
- type: "http:bearer";
61
- value: string | null | undefined;
62
- fieldName: string;
63
- };
64
-
65
- type SecurityInputAPIKey = {
66
- type: "apiKey:header" | "apiKey:query" | "apiKey:cookie";
67
- value: string | null | undefined;
68
- fieldName: string;
69
- };
70
-
71
- type SecurityInputOIDC = {
72
- type: "openIdConnect";
73
- value: string | null | undefined;
74
- fieldName: string;
75
- };
76
-
77
- type SecurityInputOAuth2 = {
78
- type: "oauth2";
79
- value: string | null | undefined;
80
- fieldName: string;
81
- };
82
-
83
- type SecurityInputOAuth2ClientCredentials = {
84
- type: "oauth2:client_credentials";
85
- value:
86
- | { clientID?: string | undefined; clientSecret?: string | undefined }
87
- | null
88
- | undefined;
89
- };
90
-
91
- type SecurityInputOAuth2PasswordCredentials = {
92
- type: "oauth2:password";
93
- value:
94
- | string
95
- | null
96
- | undefined;
97
- fieldName: string;
98
- };
99
-
100
- type SecurityInputCustom = {
101
- type: "http:custom";
102
- value: any | null | undefined;
103
- fieldName: string;
104
- };
105
-
106
- export type SecurityInput =
107
- | SecurityInputBasic
108
- | SecurityInputBearer
109
- | SecurityInputAPIKey
110
- | SecurityInputOAuth2
111
- | SecurityInputOAuth2ClientCredentials
112
- | SecurityInputOAuth2PasswordCredentials
113
- | SecurityInputOIDC
114
- | SecurityInputCustom;
115
-
116
- export function resolveSecurity(
117
- ...options: SecurityInput[][]
118
- ): SecurityState | null {
119
- const state: SecurityState = {
120
- basic: {},
121
- headers: {},
122
- queryParams: {},
123
- cookies: {},
124
- oauth2: { type: "none" },
125
- };
126
-
127
- const option = options.find((opts) => {
128
- return opts.every((o) => {
129
- if (o.value == null) {
130
- return false;
131
- } else if (o.type === "http:basic") {
132
- return o.value.username != null || o.value.password != null;
133
- } else if (o.type === "http:custom") {
134
- return null;
135
- } else if (o.type === "oauth2:password") {
136
- return (
137
- typeof o.value === "string" && !!o.value
138
- );
139
- } else if (o.type === "oauth2:client_credentials") {
140
- return o.value.clientID != null || o.value.clientSecret != null;
141
- } else if (typeof o.value === "string") {
142
- return !!o.value;
143
- } else {
144
- throw new Error(
145
- `Unrecognized security type: ${o.type} (value type: ${typeof o
146
- .value})`,
147
- );
148
- }
149
- });
150
- });
151
- if (option == null) {
152
- return null;
153
- }
154
-
155
- option.forEach((spec) => {
156
- if (spec.value == null) {
157
- return;
158
- }
159
-
160
- const { type } = spec;
161
-
162
- switch (type) {
163
- case "apiKey:header":
164
- state.headers[spec.fieldName] = spec.value;
165
- break;
166
- case "apiKey:query":
167
- state.queryParams[spec.fieldName] = spec.value;
168
- break;
169
- case "apiKey:cookie":
170
- state.cookies[spec.fieldName] = spec.value;
171
- break;
172
- case "http:basic":
173
- applyBasic(state, spec);
174
- break;
175
- case "http:custom":
176
- break;
177
- case "http:bearer":
178
- applyBearer(state, spec);
179
- break;
180
- case "oauth2":
181
- applyBearer(state, spec);
182
- break;
183
- case "oauth2:password":
184
- applyBearer(state, spec);
185
- break;
186
- case "oauth2:client_credentials":
187
- break;
188
- case "openIdConnect":
189
- applyBearer(state, spec);
190
- break;
191
- default:
192
- spec satisfies never;
193
- throw SecurityError.unrecognizedType(type);
194
- }
195
- });
196
-
197
- return state;
198
- }
199
-
200
- function applyBasic(
201
- state: SecurityState,
202
- spec: SecurityInputBasic,
203
- ) {
204
- if (spec.value == null) {
205
- return;
206
- }
207
-
208
- state.basic = spec.value;
209
- }
210
-
211
- function applyBearer(
212
- state: SecurityState,
213
- spec:
214
- | SecurityInputBearer
215
- | SecurityInputOAuth2
216
- | SecurityInputOIDC
217
- | SecurityInputOAuth2PasswordCredentials,
218
- ) {
219
- if (typeof spec.value !== "string" || !spec.value) {
220
- return;
221
- }
222
-
223
- let value = spec.value;
224
- if (value.slice(0, 7).toLowerCase() !== "bearer ") {
225
- value = `Bearer ${value}`;
226
- }
227
-
228
- state.headers[spec.fieldName] = value;
229
- }
230
-
231
- export function resolveGlobalSecurity(
232
- security: Partial<components.Security> | null | undefined,
233
- ): SecurityState | null {
234
- return resolveSecurity(
235
- [
236
- {
237
- fieldName: "Authorization",
238
- type: "http:bearer",
239
- value: security?.apiKey ?? env().ORQ_API_KEY,
240
- },
241
- ],
242
- );
243
- }
244
-
245
- export async function extractSecurity<
246
- T extends string | Record<string, unknown>,
247
- >(sec: T | (() => Promise<T>) | undefined): Promise<T | undefined> {
248
- if (sec == null) {
249
- return;
250
- }
251
-
252
- return typeof sec === "function" ? sec() : sec;
253
- }
@@ -1,33 +0,0 @@
1
- /*
2
- * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
- */
4
-
5
- const hasOwn = Object.prototype.hasOwnProperty;
6
-
7
- export type Params = Partial<Record<string, string | number>>;
8
-
9
- export function pathToFunc(
10
- pathPattern: string,
11
- options?: { charEncoding?: "percent" | "none" },
12
- ): (params?: Params) => string {
13
- const paramRE = /\{([a-zA-Z0-9_]+?)\}/g;
14
-
15
- return function buildURLPath(params: Record<string, unknown> = {}): string {
16
- return pathPattern.replace(paramRE, function (_, placeholder) {
17
- if (!hasOwn.call(params, placeholder)) {
18
- throw new Error(`Parameter '${placeholder}' is required`);
19
- }
20
-
21
- const value = params[placeholder];
22
- if (typeof value !== "string" && typeof value !== "number") {
23
- throw new Error(
24
- `Parameter '${placeholder}' must be a string or number`,
25
- );
26
- }
27
-
28
- return options?.charEncoding === "percent"
29
- ? encodeURIComponent(`${value}`)
30
- : `${value}`;
31
- });
32
- };
33
- }