@orq-ai/node 3.0.0-rc.19 → 3.0.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 (244) hide show
  1. package/README.md +1 -1
  2. package/RUNTIMES.md +27 -1
  3. package/funcs/contactsCreate.d.ts.map +1 -1
  4. package/funcs/contactsCreate.js +7 -6
  5. package/funcs/contactsCreate.js.map +1 -1
  6. package/funcs/deploymentsAll.d.ts.map +1 -1
  7. package/funcs/deploymentsAll.js +9 -8
  8. package/funcs/deploymentsAll.js.map +1 -1
  9. package/funcs/deploymentsGetConfig.d.ts.map +1 -1
  10. package/funcs/deploymentsGetConfig.js +7 -6
  11. package/funcs/deploymentsGetConfig.js.map +1 -1
  12. package/funcs/deploymentsInvoke.d.ts.map +1 -1
  13. package/funcs/deploymentsInvoke.js +8 -7
  14. package/funcs/deploymentsInvoke.js.map +1 -1
  15. package/funcs/deploymentsMetricsCreate.d.ts.map +1 -1
  16. package/funcs/deploymentsMetricsCreate.js +7 -6
  17. package/funcs/deploymentsMetricsCreate.js.map +1 -1
  18. package/funcs/feedbackCreate.d.ts.map +1 -1
  19. package/funcs/feedbackCreate.js +7 -6
  20. package/funcs/feedbackCreate.js.map +1 -1
  21. package/funcs/filesBulkUpload.d.ts.map +1 -1
  22. package/funcs/filesBulkUpload.js +10 -8
  23. package/funcs/filesBulkUpload.js.map +1 -1
  24. package/funcs/filesDelete.d.ts.map +1 -1
  25. package/funcs/filesDelete.js +7 -6
  26. package/funcs/filesDelete.js.map +1 -1
  27. package/funcs/filesGet.d.ts.map +1 -1
  28. package/funcs/filesGet.js +7 -6
  29. package/funcs/filesGet.js.map +1 -1
  30. package/funcs/filesList.d.ts.map +1 -1
  31. package/funcs/filesList.js +11 -10
  32. package/funcs/filesList.js.map +1 -1
  33. package/funcs/filesUpdate.d.ts.map +1 -1
  34. package/funcs/filesUpdate.js +7 -6
  35. package/funcs/filesUpdate.js.map +1 -1
  36. package/funcs/filesUpload.d.ts.map +1 -1
  37. package/funcs/filesUpload.js +17 -15
  38. package/funcs/filesUpload.js.map +1 -1
  39. package/funcs/promptSnippetsFindOne.d.ts.map +1 -1
  40. package/funcs/promptSnippetsFindOne.js +7 -6
  41. package/funcs/promptSnippetsFindOne.js.map +1 -1
  42. package/funcs/promptTemplatesGetAll.d.ts.map +1 -1
  43. package/funcs/promptTemplatesGetAll.js +10 -9
  44. package/funcs/promptTemplatesGetAll.js.map +1 -1
  45. package/funcs/promptsCreate.d.ts.map +1 -1
  46. package/funcs/promptsCreate.js +7 -6
  47. package/funcs/promptsCreate.js.map +1 -1
  48. package/funcs/promptsCreateVersion.d.ts.map +1 -1
  49. package/funcs/promptsCreateVersion.js +7 -6
  50. package/funcs/promptsCreateVersion.js.map +1 -1
  51. package/funcs/promptsDelete.d.ts.map +1 -1
  52. package/funcs/promptsDelete.js +7 -6
  53. package/funcs/promptsDelete.js.map +1 -1
  54. package/funcs/promptsDuplicate.d.ts.map +1 -1
  55. package/funcs/promptsDuplicate.js +7 -6
  56. package/funcs/promptsDuplicate.js.map +1 -1
  57. package/funcs/promptsGetAll.d.ts.map +1 -1
  58. package/funcs/promptsGetAll.js +7 -6
  59. package/funcs/promptsGetAll.js.map +1 -1
  60. package/funcs/promptsGetOne.d.ts.map +1 -1
  61. package/funcs/promptsGetOne.js +7 -6
  62. package/funcs/promptsGetOne.js.map +1 -1
  63. package/funcs/promptsUpdate.d.ts.map +1 -1
  64. package/funcs/promptsUpdate.js +7 -6
  65. package/funcs/promptsUpdate.js.map +1 -1
  66. package/funcs/remoteconfigGetConfig.d.ts.map +1 -1
  67. package/funcs/remoteconfigGetConfig.js +7 -6
  68. package/funcs/remoteconfigGetConfig.js.map +1 -1
  69. package/lib/config.d.ts +4 -4
  70. package/lib/config.d.ts.map +1 -1
  71. package/lib/config.js +5 -6
  72. package/lib/config.js.map +1 -1
  73. package/lib/encodings.d.ts +10 -9
  74. package/lib/encodings.d.ts.map +1 -1
  75. package/lib/encodings.js +91 -66
  76. package/lib/encodings.js.map +1 -1
  77. package/lib/env.js +1 -2
  78. package/lib/env.js.map +1 -1
  79. package/lib/event-streams.js +2 -3
  80. package/lib/event-streams.js.map +1 -1
  81. package/lib/http.js +1 -2
  82. package/lib/http.js.map +1 -1
  83. package/lib/matchers.js +5 -6
  84. package/lib/matchers.js.map +1 -1
  85. package/lib/primitives.d.ts +1 -0
  86. package/lib/primitives.d.ts.map +1 -1
  87. package/lib/primitives.js +11 -1
  88. package/lib/primitives.js.map +1 -1
  89. package/lib/retries.js +3 -4
  90. package/lib/retries.js.map +1 -1
  91. package/lib/sdks.d.ts.map +1 -1
  92. package/lib/sdks.js +19 -17
  93. package/lib/sdks.js.map +1 -1
  94. package/lib/security.js +2 -3
  95. package/lib/security.js.map +1 -1
  96. package/lib/url.js +1 -1
  97. package/lib/url.js.map +1 -1
  98. package/models/errors/httpclienterrors.js +2 -2
  99. package/models/errors/httpclienterrors.js.map +1 -1
  100. package/package.json +2 -3
  101. package/packages/orq-rc/FUNCTIONS.md +106 -0
  102. package/packages/orq-rc/README.md +564 -0
  103. package/packages/orq-rc/RUNTIMES.md +22 -0
  104. package/packages/orq-rc/docs/sdks/contacts/README.md +84 -0
  105. package/packages/orq-rc/docs/sdks/deployments/README.md +239 -0
  106. package/packages/orq-rc/docs/sdks/feedback/README.md +92 -0
  107. package/packages/orq-rc/docs/sdks/files/README.md +473 -0
  108. package/packages/orq-rc/docs/sdks/metrics/README.md +86 -0
  109. package/packages/orq-rc/docs/sdks/orq/README.md +10 -0
  110. package/packages/orq-rc/docs/sdks/prompt/README.md +6 -0
  111. package/packages/orq-rc/docs/sdks/prompts/README.md +533 -0
  112. package/packages/orq-rc/docs/sdks/remoteconfig/README.md +80 -0
  113. package/packages/orq-rc/docs/sdks/snippets/README.md +84 -0
  114. package/packages/orq-rc/docs/sdks/templates/README.md +80 -0
  115. package/packages/orq-rc/src/core.ts +13 -0
  116. package/packages/orq-rc/src/funcs/contactsCreate.ts +124 -0
  117. package/packages/orq-rc/src/funcs/deploymentsAll.ts +138 -0
  118. package/packages/orq-rc/src/funcs/deploymentsGetConfig.ts +132 -0
  119. package/packages/orq-rc/src/funcs/deploymentsInvoke.ts +135 -0
  120. package/packages/orq-rc/src/funcs/deploymentsMetricsCreate.ts +132 -0
  121. package/packages/orq-rc/src/funcs/feedbackCreate.ts +124 -0
  122. package/packages/orq-rc/src/funcs/filesBulkUpload.ts +126 -0
  123. package/packages/orq-rc/src/funcs/filesDelete.ts +128 -0
  124. package/packages/orq-rc/src/funcs/filesGet.ts +127 -0
  125. package/packages/orq-rc/src/funcs/filesList.ts +129 -0
  126. package/packages/orq-rc/src/funcs/filesUpdate.ts +128 -0
  127. package/packages/orq-rc/src/funcs/filesUpload.ts +145 -0
  128. package/packages/orq-rc/src/funcs/promptSnippetsFindOne.ts +128 -0
  129. package/packages/orq-rc/src/funcs/promptTemplatesGetAll.ts +130 -0
  130. package/packages/orq-rc/src/funcs/promptsCreate.ts +124 -0
  131. package/packages/orq-rc/src/funcs/promptsCreateVersion.ts +129 -0
  132. package/packages/orq-rc/src/funcs/promptsDelete.ts +128 -0
  133. package/packages/orq-rc/src/funcs/promptsDuplicate.ts +128 -0
  134. package/packages/orq-rc/src/funcs/promptsGetAll.ts +126 -0
  135. package/packages/orq-rc/src/funcs/promptsGetOne.ts +128 -0
  136. package/packages/orq-rc/src/funcs/promptsUpdate.ts +136 -0
  137. package/packages/orq-rc/src/funcs/remoteconfigGetConfig.ts +125 -0
  138. package/packages/orq-rc/src/hooks/hooks.ts +132 -0
  139. package/packages/orq-rc/src/hooks/index.ts +6 -0
  140. package/packages/orq-rc/src/hooks/registration.ts +14 -0
  141. package/packages/orq-rc/src/hooks/types.ts +109 -0
  142. package/packages/orq-rc/src/index.ts +7 -0
  143. package/packages/orq-rc/src/lib/base64.ts +37 -0
  144. package/packages/orq-rc/src/lib/config.ts +60 -0
  145. package/packages/orq-rc/src/lib/dlv.ts +53 -0
  146. package/packages/orq-rc/src/lib/encodings.ts +449 -0
  147. package/packages/orq-rc/src/lib/env.ts +41 -0
  148. package/packages/orq-rc/src/lib/event-streams.ts +264 -0
  149. package/packages/orq-rc/src/lib/files.ts +40 -0
  150. package/packages/orq-rc/src/lib/http.ts +323 -0
  151. package/packages/orq-rc/src/lib/is-plain-object.ts +43 -0
  152. package/packages/orq-rc/src/lib/logger.ts +9 -0
  153. package/packages/orq-rc/src/lib/matchers.ts +325 -0
  154. package/packages/orq-rc/src/lib/primitives.ts +122 -0
  155. package/packages/orq-rc/src/lib/retries.ts +219 -0
  156. package/packages/orq-rc/src/lib/schemas.ts +86 -0
  157. package/packages/orq-rc/src/lib/sdks.ts +397 -0
  158. package/packages/orq-rc/src/lib/security.ts +254 -0
  159. package/packages/orq-rc/src/lib/url.ts +33 -0
  160. package/packages/orq-rc/src/models/components/deployments.ts +1673 -0
  161. package/packages/orq-rc/src/models/components/index.ts +6 -0
  162. package/packages/orq-rc/src/models/components/security.ts +71 -0
  163. package/packages/orq-rc/src/models/errors/apierror.ts +27 -0
  164. package/packages/orq-rc/src/models/errors/honoapierror.ts +82 -0
  165. package/packages/orq-rc/src/models/errors/httpclienterrors.ts +62 -0
  166. package/packages/orq-rc/src/models/errors/index.ts +9 -0
  167. package/packages/orq-rc/src/models/errors/sdkvalidationerror.ts +97 -0
  168. package/packages/orq-rc/src/models/errors/updateprompt.ts +71 -0
  169. package/packages/orq-rc/src/models/operations/bulkfileupload.ts +315 -0
  170. package/packages/orq-rc/src/models/operations/createcontact.ts +256 -0
  171. package/packages/orq-rc/src/models/operations/createfeedback.ts +286 -0
  172. package/packages/orq-rc/src/models/operations/createprompt.ts +3461 -0
  173. package/packages/orq-rc/src/models/operations/createpromptversion.ts +3703 -0
  174. package/packages/orq-rc/src/models/operations/deleteprompt.ts +69 -0
  175. package/packages/orq-rc/src/models/operations/deploymentcreatemetric.ts +1790 -0
  176. package/packages/orq-rc/src/models/operations/deploymentgetconfig.ts +3483 -0
  177. package/packages/orq-rc/src/models/operations/deploymentinvoke.ts +2385 -0
  178. package/packages/orq-rc/src/models/operations/deployments.ts +2098 -0
  179. package/packages/orq-rc/src/models/operations/duplicateprompt.ts +69 -0
  180. package/packages/orq-rc/src/models/operations/filedelete.ts +78 -0
  181. package/packages/orq-rc/src/models/operations/fileget.ts +222 -0
  182. package/packages/orq-rc/src/models/operations/filelist.ts +333 -0
  183. package/packages/orq-rc/src/models/operations/fileupdate.ts +298 -0
  184. package/packages/orq-rc/src/models/operations/fileupload.ts +322 -0
  185. package/packages/orq-rc/src/models/operations/findonepromptsnippet.ts +13629 -0
  186. package/packages/orq-rc/src/models/operations/getallprompts.ts +18640 -0
  187. package/packages/orq-rc/src/models/operations/getallprompttemplates.ts +13690 -0
  188. package/packages/orq-rc/src/models/operations/getoneprompt.ts +69 -0
  189. package/packages/orq-rc/src/models/operations/index.ts +26 -0
  190. package/packages/orq-rc/src/models/operations/remoteconfigsgetconfig.ts +190 -0
  191. package/packages/orq-rc/src/models/operations/updateprompt.ts +14407 -0
  192. package/packages/orq-rc/src/sdk/contacts.ts +27 -0
  193. package/packages/orq-rc/src/sdk/deployments.ts +75 -0
  194. package/packages/orq-rc/src/sdk/feedback.ts +27 -0
  195. package/packages/orq-rc/src/sdk/files.ts +105 -0
  196. package/packages/orq-rc/src/sdk/index.ts +5 -0
  197. package/packages/orq-rc/src/sdk/metrics.ts +27 -0
  198. package/packages/orq-rc/src/sdk/prompt.ts +19 -0
  199. package/packages/orq-rc/src/sdk/prompts.ts +114 -0
  200. package/packages/orq-rc/src/sdk/remoteconfig.ts +24 -0
  201. package/packages/orq-rc/src/sdk/sdk.ts +49 -0
  202. package/packages/orq-rc/src/sdk/snippets.ts +24 -0
  203. package/packages/orq-rc/src/sdk/templates.ts +24 -0
  204. package/packages/orq-rc/src/types/blobs.ts +31 -0
  205. package/packages/orq-rc/src/types/constdatetime.ts +15 -0
  206. package/packages/orq-rc/src/types/enums.ts +16 -0
  207. package/packages/orq-rc/src/types/fp.ts +50 -0
  208. package/packages/orq-rc/src/types/index.ts +11 -0
  209. package/packages/orq-rc/src/types/operations.ts +105 -0
  210. package/packages/orq-rc/src/types/rfcdate.ts +54 -0
  211. package/packages/orq-rc/src/types/streams.ts +21 -0
  212. package/sdk/deployments.js +1 -2
  213. package/sdk/deployments.js.map +1 -1
  214. package/sdk/prompt.js +2 -4
  215. package/sdk/prompt.js.map +1 -1
  216. package/sdk/sdk.js +7 -14
  217. package/sdk/sdk.js.map +1 -1
  218. package/src/funcs/contactsCreate.ts +3 -2
  219. package/src/funcs/deploymentsAll.ts +3 -2
  220. package/src/funcs/deploymentsGetConfig.ts +3 -2
  221. package/src/funcs/deploymentsInvoke.ts +3 -2
  222. package/src/funcs/deploymentsMetricsCreate.ts +3 -2
  223. package/src/funcs/feedbackCreate.ts +3 -2
  224. package/src/funcs/filesBulkUpload.ts +6 -4
  225. package/src/funcs/filesDelete.ts +3 -2
  226. package/src/funcs/filesGet.ts +3 -2
  227. package/src/funcs/filesList.ts +3 -2
  228. package/src/funcs/filesUpdate.ts +3 -2
  229. package/src/funcs/filesUpload.ts +9 -6
  230. package/src/funcs/promptSnippetsFindOne.ts +3 -2
  231. package/src/funcs/promptTemplatesGetAll.ts +3 -2
  232. package/src/funcs/promptsCreate.ts +3 -2
  233. package/src/funcs/promptsCreateVersion.ts +3 -2
  234. package/src/funcs/promptsDelete.ts +3 -2
  235. package/src/funcs/promptsDuplicate.ts +3 -2
  236. package/src/funcs/promptsGetAll.ts +3 -2
  237. package/src/funcs/promptsGetOne.ts +3 -2
  238. package/src/funcs/promptsUpdate.ts +3 -2
  239. package/src/funcs/remoteconfigGetConfig.ts +3 -2
  240. package/src/lib/config.ts +4 -4
  241. package/src/lib/encodings.ts +95 -61
  242. package/src/lib/primitives.ts +14 -0
  243. package/src/lib/sdks.ts +4 -1
  244. package/src/lib/security.ts +1 -1
@@ -0,0 +1,254 @@
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
+
8
+ type OAuth2PasswordFlow = {
9
+ username: string;
10
+ password?: string | undefined;
11
+ clientID: string;
12
+ clientSecret?: string | undefined;
13
+ tokenURL: string;
14
+ };
15
+
16
+ export enum SecurityErrorCode {
17
+ Incomplete = "incomplete",
18
+ UnrecognisedSecurityType = "unrecognized_security_type",
19
+ }
20
+
21
+ export class SecurityError extends Error {
22
+ constructor(
23
+ public code: SecurityErrorCode,
24
+ message: string,
25
+ ) {
26
+ super(message);
27
+ this.name = "SecurityError";
28
+ }
29
+
30
+ static incomplete(): SecurityError {
31
+ return new SecurityError(
32
+ SecurityErrorCode.Incomplete,
33
+ "Security requirements not met in order to perform the operation",
34
+ );
35
+ }
36
+ static unrecognizedType(type: string): SecurityError {
37
+ return new SecurityError(
38
+ SecurityErrorCode.UnrecognisedSecurityType,
39
+ `Unrecognised security type: ${type}`,
40
+ );
41
+ }
42
+ }
43
+
44
+ export type SecurityState = {
45
+ basic: { username?: string | undefined; password?: string | undefined };
46
+ headers: Record<string, string>;
47
+ queryParams: Record<string, string>;
48
+ cookies: Record<string, string>;
49
+ oauth2: ({ type: "password" } & OAuth2PasswordFlow) | { type: "none" };
50
+ };
51
+
52
+ type SecurityInputBasic = {
53
+ type: "http:basic";
54
+ value:
55
+ | { username?: string | undefined; password?: string | undefined }
56
+ | null
57
+ | undefined;
58
+ };
59
+
60
+ type SecurityInputBearer = {
61
+ type: "http:bearer";
62
+ value: string | null | undefined;
63
+ fieldName: string;
64
+ };
65
+
66
+ type SecurityInputAPIKey = {
67
+ type: "apiKey:header" | "apiKey:query" | "apiKey:cookie";
68
+ value: string | null | undefined;
69
+ fieldName: string;
70
+ };
71
+
72
+ type SecurityInputOIDC = {
73
+ type: "openIdConnect";
74
+ value: string | null | undefined;
75
+ fieldName: string;
76
+ };
77
+
78
+ type SecurityInputOAuth2 = {
79
+ type: "oauth2";
80
+ value: string | null | undefined;
81
+ fieldName: string;
82
+ };
83
+
84
+ type SecurityInputOAuth2ClientCredentials = {
85
+ type: "oauth2:client_credentials";
86
+ value:
87
+ | { clientID?: string | undefined; clientSecret?: string | undefined }
88
+ | null
89
+ | undefined;
90
+ };
91
+
92
+ type SecurityInputOAuth2PasswordCredentials = {
93
+ type: "oauth2:password";
94
+ value:
95
+ | string
96
+ | null
97
+ | undefined;
98
+ fieldName: string;
99
+ };
100
+
101
+ type SecurityInputCustom = {
102
+ type: "http:custom";
103
+ value: any | null | undefined;
104
+ fieldName: string;
105
+ };
106
+
107
+ export type SecurityInput =
108
+ | SecurityInputBasic
109
+ | SecurityInputBearer
110
+ | SecurityInputAPIKey
111
+ | SecurityInputOAuth2
112
+ | SecurityInputOAuth2ClientCredentials
113
+ | SecurityInputOAuth2PasswordCredentials
114
+ | SecurityInputOIDC
115
+ | SecurityInputCustom;
116
+
117
+ export function resolveSecurity(
118
+ ...options: SecurityInput[][]
119
+ ): SecurityState | null {
120
+ const state: SecurityState = {
121
+ basic: { username: "", password: "" },
122
+ headers: {},
123
+ queryParams: {},
124
+ cookies: {},
125
+ oauth2: { type: "none" },
126
+ };
127
+
128
+ const option = options.find((opts) => {
129
+ return opts.every((o) => {
130
+ if (o.value == null) {
131
+ return false;
132
+ } else if (o.type === "http:basic") {
133
+ return o.value.username != null || o.value.password != null;
134
+ } else if (o.type === "http:custom") {
135
+ return null;
136
+ } else if (o.type === "oauth2:password") {
137
+ return (
138
+ typeof o.value === "string" && !!o.value
139
+ );
140
+ } else if (o.type === "oauth2:client_credentials") {
141
+ return o.value.clientID != null || o.value.clientSecret != null;
142
+ } else if (typeof o.value === "string") {
143
+ return !!o.value;
144
+ } else {
145
+ throw new Error(
146
+ `Unrecognized security type: ${o.type} (value type: ${typeof o
147
+ .value})`,
148
+ );
149
+ }
150
+ });
151
+ });
152
+ if (option == null) {
153
+ return null;
154
+ }
155
+
156
+ option.forEach((spec) => {
157
+ if (spec.value == null) {
158
+ return;
159
+ }
160
+
161
+ const { type } = spec;
162
+
163
+ switch (type) {
164
+ case "apiKey:header":
165
+ state.headers[spec.fieldName] = spec.value;
166
+ break;
167
+ case "apiKey:query":
168
+ state.queryParams[spec.fieldName] = spec.value;
169
+ break;
170
+ case "apiKey:cookie":
171
+ state.cookies[spec.fieldName] = spec.value;
172
+ break;
173
+ case "http:basic":
174
+ applyBasic(state, spec);
175
+ break;
176
+ case "http:custom":
177
+ break;
178
+ case "http:bearer":
179
+ applyBearer(state, spec);
180
+ break;
181
+ case "oauth2":
182
+ applyBearer(state, spec);
183
+ break;
184
+ case "oauth2:password":
185
+ applyBearer(state, spec);
186
+ break;
187
+ case "oauth2:client_credentials":
188
+ break;
189
+ case "openIdConnect":
190
+ applyBearer(state, spec);
191
+ break;
192
+ default:
193
+ spec satisfies never;
194
+ throw SecurityError.unrecognizedType(type);
195
+ }
196
+ });
197
+
198
+ return state;
199
+ }
200
+
201
+ function applyBasic(
202
+ state: SecurityState,
203
+ spec: SecurityInputBasic,
204
+ ) {
205
+ if (spec.value == null) {
206
+ return;
207
+ }
208
+
209
+ state.basic = spec.value;
210
+ }
211
+
212
+ function applyBearer(
213
+ state: SecurityState,
214
+ spec:
215
+ | SecurityInputBearer
216
+ | SecurityInputOAuth2
217
+ | SecurityInputOIDC
218
+ | SecurityInputOAuth2PasswordCredentials,
219
+ ) {
220
+ if (typeof spec.value !== "string" || !spec.value) {
221
+ return;
222
+ }
223
+
224
+ let value = spec.value;
225
+ if (value.slice(0, 7).toLowerCase() !== "bearer ") {
226
+ value = `Bearer ${value}`;
227
+ }
228
+
229
+ state.headers[spec.fieldName] = value;
230
+ }
231
+
232
+ export function resolveGlobalSecurity(
233
+ security: Partial<components.Security> | null | undefined,
234
+ ): SecurityState | null {
235
+ return resolveSecurity(
236
+ [
237
+ {
238
+ fieldName: "Authorization",
239
+ type: "http:bearer",
240
+ value: security?.apiKey ?? env().ORQ_API_KEY,
241
+ },
242
+ ],
243
+ );
244
+ }
245
+
246
+ export async function extractSecurity<
247
+ T extends string | Record<string, unknown>,
248
+ >(sec: T | (() => Promise<T>) | undefined): Promise<T | undefined> {
249
+ if (sec == null) {
250
+ return;
251
+ }
252
+
253
+ return typeof sec === "function" ? sec() : sec;
254
+ }
@@ -0,0 +1,33 @@
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
+ }