@orq-ai/node 3.3.2 → 3.4.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 (239) hide show
  1. package/bin/mcp-server.js +6 -9
  2. package/bin/mcp-server.js.map +7 -7
  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/package.json +3 -2
  12. package/src/lib/config.ts +2 -2
  13. package/src/mcp-server/mcp-server.ts +1 -1
  14. package/src/mcp-server/server.ts +1 -1
  15. package/packages/orq-rc/FUNCTIONS.md +0 -106
  16. package/packages/orq-rc/README.md +0 -698
  17. package/packages/orq-rc/RUNTIMES.md +0 -48
  18. package/packages/orq-rc/docs/sdks/contacts/README.md +0 -84
  19. package/packages/orq-rc/docs/sdks/datasets/README.md +0 -940
  20. package/packages/orq-rc/docs/sdks/deployments/README.md +0 -316
  21. package/packages/orq-rc/docs/sdks/feedback/README.md +0 -92
  22. package/packages/orq-rc/docs/sdks/files/README.md +0 -311
  23. package/packages/orq-rc/docs/sdks/knowledge/README.md +0 -1279
  24. package/packages/orq-rc/docs/sdks/metrics/README.md +0 -86
  25. package/packages/orq-rc/docs/sdks/orq/README.md +0 -10
  26. package/packages/orq-rc/docs/sdks/prompts/README.md +0 -614
  27. package/packages/orq-rc/docs/sdks/remoteconfigs/README.md +0 -80
  28. package/packages/orq-rc/jsr.json +0 -28
  29. package/packages/orq-rc/package-lock.json +0 -3217
  30. package/packages/orq-rc/package.json +0 -45
  31. package/packages/orq-rc/src/core.ts +0 -13
  32. package/packages/orq-rc/src/funcs/contactsCreate.ts +0 -154
  33. package/packages/orq-rc/src/funcs/datasetsClear.ts +0 -161
  34. package/packages/orq-rc/src/funcs/datasetsCreate.ts +0 -159
  35. package/packages/orq-rc/src/funcs/datasetsCreateDatapoint.ts +0 -161
  36. package/packages/orq-rc/src/funcs/datasetsCreateDatapoints.ts +0 -165
  37. package/packages/orq-rc/src/funcs/datasetsDelete.ts +0 -161
  38. package/packages/orq-rc/src/funcs/datasetsDeleteDatapoint.ts +0 -176
  39. package/packages/orq-rc/src/funcs/datasetsList.ts +0 -161
  40. package/packages/orq-rc/src/funcs/datasetsListDatapoints.ts +0 -168
  41. package/packages/orq-rc/src/funcs/datasetsRetrieve.ts +0 -169
  42. package/packages/orq-rc/src/funcs/datasetsRetrieveDatapoint.ts +0 -175
  43. package/packages/orq-rc/src/funcs/datasetsUpdate.ts +0 -170
  44. package/packages/orq-rc/src/funcs/datasetsUpdateDatapoint.ts +0 -173
  45. package/packages/orq-rc/src/funcs/deploymentsGetConfig.ts +0 -162
  46. package/packages/orq-rc/src/funcs/deploymentsInvoke.ts +0 -170
  47. package/packages/orq-rc/src/funcs/deploymentsList.ts +0 -170
  48. package/packages/orq-rc/src/funcs/deploymentsMetricsCreate.ts +0 -162
  49. package/packages/orq-rc/src/funcs/deploymentsStream.ts +0 -178
  50. package/packages/orq-rc/src/funcs/feedbackCreate.ts +0 -154
  51. package/packages/orq-rc/src/funcs/filesCreate.ts +0 -174
  52. package/packages/orq-rc/src/funcs/filesDelete.ts +0 -158
  53. package/packages/orq-rc/src/funcs/filesGet.ts +0 -160
  54. package/packages/orq-rc/src/funcs/filesList.ts +0 -161
  55. package/packages/orq-rc/src/funcs/knowledgeCreate.ts +0 -152
  56. package/packages/orq-rc/src/funcs/knowledgeCreateChunks.ts +0 -165
  57. package/packages/orq-rc/src/funcs/knowledgeCreateDatasource.ts +0 -160
  58. package/packages/orq-rc/src/funcs/knowledgeDelete.ts +0 -161
  59. package/packages/orq-rc/src/funcs/knowledgeDeleteChunk.ts +0 -168
  60. package/packages/orq-rc/src/funcs/knowledgeDeleteDatasource.ts +0 -167
  61. package/packages/orq-rc/src/funcs/knowledgeList.ts +0 -163
  62. package/packages/orq-rc/src/funcs/knowledgeListChunks.ts +0 -172
  63. package/packages/orq-rc/src/funcs/knowledgeListDatasources.ts +0 -168
  64. package/packages/orq-rc/src/funcs/knowledgeRetrieve.ts +0 -160
  65. package/packages/orq-rc/src/funcs/knowledgeRetrieveChunk.ts +0 -167
  66. package/packages/orq-rc/src/funcs/knowledgeRetrieveDatasource.ts +0 -163
  67. package/packages/orq-rc/src/funcs/knowledgeSearch.ts +0 -158
  68. package/packages/orq-rc/src/funcs/knowledgeUpdate.ts +0 -158
  69. package/packages/orq-rc/src/funcs/knowledgeUpdateChunk.ts +0 -168
  70. package/packages/orq-rc/src/funcs/knowledgeUpdateDatasource.ts +0 -164
  71. package/packages/orq-rc/src/funcs/promptsCreate.ts +0 -154
  72. package/packages/orq-rc/src/funcs/promptsDelete.ts +0 -158
  73. package/packages/orq-rc/src/funcs/promptsGetVersion.ts +0 -175
  74. package/packages/orq-rc/src/funcs/promptsList.ts +0 -161
  75. package/packages/orq-rc/src/funcs/promptsListVersions.ts +0 -167
  76. package/packages/orq-rc/src/funcs/promptsRetrieve.ts +0 -160
  77. package/packages/orq-rc/src/funcs/promptsUpdate.ts +0 -167
  78. package/packages/orq-rc/src/funcs/remoteconfigsRetrieve.ts +0 -155
  79. package/packages/orq-rc/src/hooks/global.ts +0 -44
  80. package/packages/orq-rc/src/hooks/hooks.ts +0 -132
  81. package/packages/orq-rc/src/hooks/index.ts +0 -6
  82. package/packages/orq-rc/src/hooks/registration.ts +0 -15
  83. package/packages/orq-rc/src/hooks/types.ts +0 -110
  84. package/packages/orq-rc/src/index.ts +0 -7
  85. package/packages/orq-rc/src/lib/base64.ts +0 -37
  86. package/packages/orq-rc/src/lib/config.ts +0 -70
  87. package/packages/orq-rc/src/lib/dlv.ts +0 -53
  88. package/packages/orq-rc/src/lib/encodings.ts +0 -483
  89. package/packages/orq-rc/src/lib/env.ts +0 -73
  90. package/packages/orq-rc/src/lib/event-streams.ts +0 -264
  91. package/packages/orq-rc/src/lib/files.ts +0 -40
  92. package/packages/orq-rc/src/lib/http.ts +0 -323
  93. package/packages/orq-rc/src/lib/is-plain-object.ts +0 -43
  94. package/packages/orq-rc/src/lib/logger.ts +0 -9
  95. package/packages/orq-rc/src/lib/matchers.ts +0 -325
  96. package/packages/orq-rc/src/lib/primitives.ts +0 -150
  97. package/packages/orq-rc/src/lib/retries.ts +0 -218
  98. package/packages/orq-rc/src/lib/schemas.ts +0 -91
  99. package/packages/orq-rc/src/lib/sdks.ts +0 -395
  100. package/packages/orq-rc/src/lib/security.ts +0 -261
  101. package/packages/orq-rc/src/lib/url.ts +0 -33
  102. package/packages/orq-rc/src/mcp-server/cli/start/command.ts +0 -125
  103. package/packages/orq-rc/src/mcp-server/cli/start/impl.ts +0 -140
  104. package/packages/orq-rc/src/mcp-server/cli.ts +0 -13
  105. package/packages/orq-rc/src/mcp-server/console-logger.ts +0 -71
  106. package/packages/orq-rc/src/mcp-server/extensions.ts +0 -17
  107. package/packages/orq-rc/src/mcp-server/mcp-server.ts +0 -26
  108. package/packages/orq-rc/src/mcp-server/prompts.ts +0 -110
  109. package/packages/orq-rc/src/mcp-server/resources.ts +0 -158
  110. package/packages/orq-rc/src/mcp-server/scopes.ts +0 -7
  111. package/packages/orq-rc/src/mcp-server/server.ts +0 -157
  112. package/packages/orq-rc/src/mcp-server/shared.ts +0 -75
  113. package/packages/orq-rc/src/mcp-server/tools/contactsCreate.ts +0 -37
  114. package/packages/orq-rc/src/mcp-server/tools/datasetsClear.ts +0 -35
  115. package/packages/orq-rc/src/mcp-server/tools/datasetsCreate.ts +0 -37
  116. package/packages/orq-rc/src/mcp-server/tools/datasetsCreateDatapoint.ts +0 -37
  117. package/packages/orq-rc/src/mcp-server/tools/datasetsCreateDatapoints.ts +0 -37
  118. package/packages/orq-rc/src/mcp-server/tools/datasetsDelete.ts +0 -35
  119. package/packages/orq-rc/src/mcp-server/tools/datasetsDeleteDatapoint.ts +0 -35
  120. package/packages/orq-rc/src/mcp-server/tools/datasetsList.ts +0 -37
  121. package/packages/orq-rc/src/mcp-server/tools/datasetsListDatapoints.ts +0 -37
  122. package/packages/orq-rc/src/mcp-server/tools/datasetsRetrieve.ts +0 -37
  123. package/packages/orq-rc/src/mcp-server/tools/datasetsRetrieveDatapoint.ts +0 -37
  124. package/packages/orq-rc/src/mcp-server/tools/datasetsUpdate.ts +0 -37
  125. package/packages/orq-rc/src/mcp-server/tools/datasetsUpdateDatapoint.ts +0 -35
  126. package/packages/orq-rc/src/mcp-server/tools/deploymentsGetConfig.ts +0 -37
  127. package/packages/orq-rc/src/mcp-server/tools/deploymentsInvoke.ts +0 -37
  128. package/packages/orq-rc/src/mcp-server/tools/deploymentsList.ts +0 -37
  129. package/packages/orq-rc/src/mcp-server/tools/deploymentsMetricsCreate.ts +0 -37
  130. package/packages/orq-rc/src/mcp-server/tools/deploymentsStream.ts +0 -37
  131. package/packages/orq-rc/src/mcp-server/tools/feedbackCreate.ts +0 -37
  132. package/packages/orq-rc/src/mcp-server/tools/filesCreate.ts +0 -37
  133. package/packages/orq-rc/src/mcp-server/tools/filesDelete.ts +0 -33
  134. package/packages/orq-rc/src/mcp-server/tools/filesGet.ts +0 -37
  135. package/packages/orq-rc/src/mcp-server/tools/filesList.ts +0 -37
  136. package/packages/orq-rc/src/mcp-server/tools/knowledgeCreate.ts +0 -35
  137. package/packages/orq-rc/src/mcp-server/tools/knowledgeCreateChunks.ts +0 -35
  138. package/packages/orq-rc/src/mcp-server/tools/knowledgeCreateDatasource.ts +0 -35
  139. package/packages/orq-rc/src/mcp-server/tools/knowledgeDelete.ts +0 -35
  140. package/packages/orq-rc/src/mcp-server/tools/knowledgeDeleteChunk.ts +0 -33
  141. package/packages/orq-rc/src/mcp-server/tools/knowledgeDeleteDatasource.ts +0 -35
  142. package/packages/orq-rc/src/mcp-server/tools/knowledgeList.ts +0 -37
  143. package/packages/orq-rc/src/mcp-server/tools/knowledgeListChunks.ts +0 -35
  144. package/packages/orq-rc/src/mcp-server/tools/knowledgeListDatasources.ts +0 -35
  145. package/packages/orq-rc/src/mcp-server/tools/knowledgeRetrieve.ts +0 -37
  146. package/packages/orq-rc/src/mcp-server/tools/knowledgeRetrieveChunk.ts +0 -35
  147. package/packages/orq-rc/src/mcp-server/tools/knowledgeRetrieveDatasource.ts +0 -35
  148. package/packages/orq-rc/src/mcp-server/tools/knowledgeSearch.ts +0 -35
  149. package/packages/orq-rc/src/mcp-server/tools/knowledgeUpdate.ts +0 -35
  150. package/packages/orq-rc/src/mcp-server/tools/knowledgeUpdateChunk.ts +0 -35
  151. package/packages/orq-rc/src/mcp-server/tools/knowledgeUpdateDatasource.ts +0 -35
  152. package/packages/orq-rc/src/mcp-server/tools/promptsCreate.ts +0 -35
  153. package/packages/orq-rc/src/mcp-server/tools/promptsDelete.ts +0 -33
  154. package/packages/orq-rc/src/mcp-server/tools/promptsGetVersion.ts +0 -37
  155. package/packages/orq-rc/src/mcp-server/tools/promptsList.ts +0 -37
  156. package/packages/orq-rc/src/mcp-server/tools/promptsListVersions.ts +0 -37
  157. package/packages/orq-rc/src/mcp-server/tools/promptsRetrieve.ts +0 -37
  158. package/packages/orq-rc/src/mcp-server/tools/promptsUpdate.ts +0 -35
  159. package/packages/orq-rc/src/mcp-server/tools/remoteconfigsRetrieve.ts +0 -36
  160. package/packages/orq-rc/src/mcp-server/tools.ts +0 -126
  161. package/packages/orq-rc/src/models/components/deployments.ts +0 -4164
  162. package/packages/orq-rc/src/models/components/index.ts +0 -6
  163. package/packages/orq-rc/src/models/components/security.ts +0 -71
  164. package/packages/orq-rc/src/models/errors/apierror.ts +0 -27
  165. package/packages/orq-rc/src/models/errors/getpromptversion.ts +0 -71
  166. package/packages/orq-rc/src/models/errors/honoapierror.ts +0 -82
  167. package/packages/orq-rc/src/models/errors/httpclienterrors.ts +0 -62
  168. package/packages/orq-rc/src/models/errors/index.ts +0 -10
  169. package/packages/orq-rc/src/models/errors/sdkvalidationerror.ts +0 -97
  170. package/packages/orq-rc/src/models/errors/updateprompt.ts +0 -71
  171. package/packages/orq-rc/src/models/operations/bulkcreatedatapoints.ts +0 -1816
  172. package/packages/orq-rc/src/models/operations/cleardataset.ts +0 -75
  173. package/packages/orq-rc/src/models/operations/createchunk.ts +0 -680
  174. package/packages/orq-rc/src/models/operations/createcontact.ts +0 -256
  175. package/packages/orq-rc/src/models/operations/createdataset.ts +0 -296
  176. package/packages/orq-rc/src/models/operations/createdatasetitem.ts +0 -1740
  177. package/packages/orq-rc/src/models/operations/createdatasource.ts +0 -852
  178. package/packages/orq-rc/src/models/operations/createfeedback.ts +0 -286
  179. package/packages/orq-rc/src/models/operations/createknowledge.ts +0 -676
  180. package/packages/orq-rc/src/models/operations/createprompt.ts +0 -3743
  181. package/packages/orq-rc/src/models/operations/deletechunk.ts +0 -96
  182. package/packages/orq-rc/src/models/operations/deletedatapoint.ts +0 -81
  183. package/packages/orq-rc/src/models/operations/deletedataset.ts +0 -75
  184. package/packages/orq-rc/src/models/operations/deletedatasource.ts +0 -87
  185. package/packages/orq-rc/src/models/operations/deleteknowledge.ts +0 -78
  186. package/packages/orq-rc/src/models/operations/deleteprompt.ts +0 -69
  187. package/packages/orq-rc/src/models/operations/deploymentcreatemetric.ts +0 -4936
  188. package/packages/orq-rc/src/models/operations/deploymentgetconfig.ts +0 -6090
  189. package/packages/orq-rc/src/models/operations/deploymentinvoke.ts +0 -1199
  190. package/packages/orq-rc/src/models/operations/deployments.ts +0 -2155
  191. package/packages/orq-rc/src/models/operations/deploymentstream.ts +0 -5960
  192. package/packages/orq-rc/src/models/operations/filedelete.ts +0 -78
  193. package/packages/orq-rc/src/models/operations/fileget.ts +0 -223
  194. package/packages/orq-rc/src/models/operations/filelist.ts +0 -337
  195. package/packages/orq-rc/src/models/operations/fileupload.ts +0 -324
  196. package/packages/orq-rc/src/models/operations/getallprompts.ts +0 -2127
  197. package/packages/orq-rc/src/models/operations/getonechunk.ts +0 -265
  198. package/packages/orq-rc/src/models/operations/getoneknowledge.ts +0 -444
  199. package/packages/orq-rc/src/models/operations/getoneprompt.ts +0 -1993
  200. package/packages/orq-rc/src/models/operations/getpromptversion.ts +0 -1991
  201. package/packages/orq-rc/src/models/operations/index.ts +0 -51
  202. package/packages/orq-rc/src/models/operations/listchunks.ts +0 -444
  203. package/packages/orq-rc/src/models/operations/listdatasetdatapoints.ts +0 -1071
  204. package/packages/orq-rc/src/models/operations/listdatasets.ts +0 -406
  205. package/packages/orq-rc/src/models/operations/listdatasources.ts +0 -447
  206. package/packages/orq-rc/src/models/operations/listknowledgebases.ts +0 -568
  207. package/packages/orq-rc/src/models/operations/listpromptversions.ts +0 -2125
  208. package/packages/orq-rc/src/models/operations/remoteconfigsgetconfig.ts +0 -190
  209. package/packages/orq-rc/src/models/operations/retrievedatapoint.ts +0 -924
  210. package/packages/orq-rc/src/models/operations/retrievedataset.ts +0 -288
  211. package/packages/orq-rc/src/models/operations/retrievedatasource.ts +0 -273
  212. package/packages/orq-rc/src/models/operations/searchknowledge.ts +0 -1673
  213. package/packages/orq-rc/src/models/operations/updatechunk.ts +0 -418
  214. package/packages/orq-rc/src/models/operations/updatedatapoint.ts +0 -1729
  215. package/packages/orq-rc/src/models/operations/updatedataset.ts +0 -393
  216. package/packages/orq-rc/src/models/operations/updatedatasource.ts +0 -345
  217. package/packages/orq-rc/src/models/operations/updateknowledge.ts +0 -790
  218. package/packages/orq-rc/src/models/operations/updateprompt.ts +0 -3929
  219. package/packages/orq-rc/src/sdk/contacts.ts +0 -27
  220. package/packages/orq-rc/src/sdk/datasets.ts +0 -222
  221. package/packages/orq-rc/src/sdk/deployments.ts +0 -89
  222. package/packages/orq-rc/src/sdk/feedback.ts +0 -27
  223. package/packages/orq-rc/src/sdk/files.ts +0 -78
  224. package/packages/orq-rc/src/sdk/index.ts +0 -5
  225. package/packages/orq-rc/src/sdk/knowledge.ts +0 -261
  226. package/packages/orq-rc/src/sdk/metrics.ts +0 -27
  227. package/packages/orq-rc/src/sdk/prompts.ts +0 -126
  228. package/packages/orq-rc/src/sdk/remoteconfigs.ts +0 -24
  229. package/packages/orq-rc/src/sdk/sdk.ts +0 -55
  230. package/packages/orq-rc/src/types/async.ts +0 -68
  231. package/packages/orq-rc/src/types/blobs.ts +0 -31
  232. package/packages/orq-rc/src/types/constdatetime.ts +0 -15
  233. package/packages/orq-rc/src/types/enums.ts +0 -16
  234. package/packages/orq-rc/src/types/fp.ts +0 -50
  235. package/packages/orq-rc/src/types/index.ts +0 -11
  236. package/packages/orq-rc/src/types/operations.ts +0 -105
  237. package/packages/orq-rc/src/types/rfcdate.ts +0 -54
  238. package/packages/orq-rc/src/types/streams.ts +0 -21
  239. package/packages/orq-rc/tsconfig.json +0 -41
@@ -1,91 +0,0 @@
1
- /*
2
- * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
- */
4
-
5
- import {
6
- output,
7
- ZodEffects,
8
- ZodError,
9
- ZodObject,
10
- ZodRawShape,
11
- ZodTypeAny,
12
- } from "zod";
13
- import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
14
- import { ERR, OK, Result } from "../types/fp.js";
15
-
16
- /**
17
- * Utility function that executes some code which may throw a ZodError. It
18
- * intercepts this error and converts it to an SDKValidationError so as to not
19
- * leak Zod implementation details to user code.
20
- */
21
- export function parse<Inp, Out>(
22
- rawValue: Inp,
23
- fn: (value: Inp) => Out,
24
- errorMessage: string,
25
- ): Out {
26
- try {
27
- return fn(rawValue);
28
- } catch (err) {
29
- if (err instanceof ZodError) {
30
- throw new SDKValidationError(errorMessage, err, rawValue);
31
- }
32
- throw err;
33
- }
34
- }
35
-
36
- /**
37
- * Utility function that executes some code which may result in a ZodError. It
38
- * intercepts this error and converts it to an SDKValidationError so as to not
39
- * leak Zod implementation details to user code.
40
- */
41
- export function safeParse<Inp, Out>(
42
- rawValue: Inp,
43
- fn: (value: Inp) => Out,
44
- errorMessage: string,
45
- ): Result<Out, SDKValidationError> {
46
- try {
47
- return OK(fn(rawValue));
48
- } catch (err) {
49
- return ERR(new SDKValidationError(errorMessage, err, rawValue));
50
- }
51
- }
52
-
53
- export function collectExtraKeys<
54
- Shape extends ZodRawShape,
55
- Catchall extends ZodTypeAny,
56
- K extends string,
57
- >(
58
- obj: ZodObject<Shape, "strip", Catchall>,
59
- extrasKey: K,
60
- optional: boolean,
61
- ): ZodEffects<
62
- typeof obj,
63
- & output<ZodObject<Shape, "strict">>
64
- & {
65
- [k in K]: Record<string, output<Catchall>>;
66
- }
67
- > {
68
- return obj.transform((val) => {
69
- const extras: Record<string, output<Catchall>> = {};
70
- const { shape } = obj;
71
- for (const [key] of Object.entries(val)) {
72
- if (key in shape) {
73
- continue;
74
- }
75
-
76
- const v = val[key];
77
- if (typeof v === "undefined") {
78
- continue;
79
- }
80
-
81
- extras[key] = v;
82
- delete val[key];
83
- }
84
-
85
- if (optional && Object.keys(extras).length === 0) {
86
- return val;
87
- }
88
-
89
- return { ...val, [extrasKey]: extras };
90
- });
91
- }
@@ -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
- }