@moovio/sdk 0.16.4 → 0.16.6

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 (181) hide show
  1. package/README.md +62 -44
  2. package/bin/mcp-server.js +1867 -585
  3. package/bin/mcp-server.js.map +37 -9
  4. package/docs/sdks/products/README.md +616 -0
  5. package/examples/package-lock.json +1 -1
  6. package/funcs/productsCreate.d.ts +15 -0
  7. package/funcs/productsCreate.d.ts.map +1 -0
  8. package/funcs/productsCreate.js +138 -0
  9. package/funcs/productsCreate.js.map +1 -0
  10. package/funcs/productsDisable.d.ts +17 -0
  11. package/funcs/productsDisable.d.ts.map +1 -0
  12. package/funcs/productsDisable.js +139 -0
  13. package/funcs/productsDisable.js.map +1 -0
  14. package/funcs/productsGet.d.ts +14 -0
  15. package/funcs/productsGet.d.ts.map +1 -0
  16. package/funcs/productsGet.js +126 -0
  17. package/funcs/productsGet.js.map +1 -0
  18. package/funcs/productsList.d.ts +14 -0
  19. package/funcs/productsList.d.ts.map +1 -0
  20. package/funcs/productsList.js +127 -0
  21. package/funcs/productsList.js.map +1 -0
  22. package/funcs/productsUpdate.d.ts +15 -0
  23. package/funcs/productsUpdate.d.ts.map +1 -0
  24. package/funcs/productsUpdate.js +142 -0
  25. package/funcs/productsUpdate.js.map +1 -0
  26. package/jsr.json +1 -1
  27. package/lib/config.d.ts +2 -2
  28. package/lib/config.js +2 -2
  29. package/mcp-server/mcp-server.js +1 -1
  30. package/mcp-server/server.d.ts.map +1 -1
  31. package/mcp-server/server.js +11 -1
  32. package/mcp-server/server.js.map +1 -1
  33. package/mcp-server/tools/productsCreate.d.ts +8 -0
  34. package/mcp-server/tools/productsCreate.d.ts.map +1 -0
  35. package/mcp-server/tools/productsCreate.js +62 -0
  36. package/mcp-server/tools/productsCreate.js.map +1 -0
  37. package/mcp-server/tools/productsDisable.d.ts +8 -0
  38. package/mcp-server/tools/productsDisable.d.ts.map +1 -0
  39. package/mcp-server/tools/productsDisable.js +63 -0
  40. package/mcp-server/tools/productsDisable.js.map +1 -0
  41. package/mcp-server/tools/productsGet.d.ts +8 -0
  42. package/mcp-server/tools/productsGet.d.ts.map +1 -0
  43. package/mcp-server/tools/productsGet.js +62 -0
  44. package/mcp-server/tools/productsGet.js.map +1 -0
  45. package/mcp-server/tools/productsList.d.ts +8 -0
  46. package/mcp-server/tools/productsList.d.ts.map +1 -0
  47. package/mcp-server/tools/productsList.js +62 -0
  48. package/mcp-server/tools/productsList.js.map +1 -0
  49. package/mcp-server/tools/productsUpdate.d.ts +8 -0
  50. package/mcp-server/tools/productsUpdate.d.ts.map +1 -0
  51. package/mcp-server/tools/productsUpdate.js +62 -0
  52. package/mcp-server/tools/productsUpdate.js.map +1 -0
  53. package/models/components/amountdecimalvalidationerror.d.ts +31 -0
  54. package/models/components/amountdecimalvalidationerror.d.ts.map +1 -0
  55. package/models/components/amountdecimalvalidationerror.js +71 -0
  56. package/models/components/amountdecimalvalidationerror.js.map +1 -0
  57. package/models/components/assignproductimage.d.ts +32 -0
  58. package/models/components/assignproductimage.d.ts.map +1 -0
  59. package/models/components/assignproductimage.js +69 -0
  60. package/models/components/assignproductimage.js.map +1 -0
  61. package/models/components/assignproductimagevalidationerror.d.ts +29 -0
  62. package/models/components/assignproductimagevalidationerror.d.ts.map +1 -0
  63. package/models/components/assignproductimagevalidationerror.js +69 -0
  64. package/models/components/assignproductimagevalidationerror.js.map +1 -0
  65. package/models/components/createproductoption.d.ts +55 -0
  66. package/models/components/createproductoption.d.ts.map +1 -0
  67. package/models/components/createproductoption.js +77 -0
  68. package/models/components/createproductoption.js.map +1 -0
  69. package/models/components/createproductoptiongroup.d.ts +60 -0
  70. package/models/components/createproductoptiongroup.d.ts.map +1 -0
  71. package/models/components/createproductoptiongroup.js +78 -0
  72. package/models/components/createproductoptiongroup.js.map +1 -0
  73. package/models/components/index.d.ts +12 -0
  74. package/models/components/index.d.ts.map +1 -1
  75. package/models/components/index.js +12 -0
  76. package/models/components/index.js.map +1 -1
  77. package/models/components/product.d.ts +81 -0
  78. package/models/components/product.d.ts.map +1 -0
  79. package/models/components/product.js +88 -0
  80. package/models/components/product.js.map +1 -0
  81. package/models/components/productimagemetadata.d.ts +42 -0
  82. package/models/components/productimagemetadata.d.ts.map +1 -0
  83. package/models/components/productimagemetadata.js +73 -0
  84. package/models/components/productimagemetadata.js.map +1 -0
  85. package/models/components/productoption.d.ts +58 -0
  86. package/models/components/productoption.d.ts.map +1 -0
  87. package/models/components/productoption.js +77 -0
  88. package/models/components/productoption.js.map +1 -0
  89. package/models/components/productoptiongroup.d.ts +63 -0
  90. package/models/components/productoptiongroup.d.ts.map +1 -0
  91. package/models/components/productoptiongroup.js +78 -0
  92. package/models/components/productoptiongroup.js.map +1 -0
  93. package/models/components/productoptiongroupvalidationerror.d.ts +42 -0
  94. package/models/components/productoptiongroupvalidationerror.d.ts.map +1 -0
  95. package/models/components/productoptiongroupvalidationerror.js +78 -0
  96. package/models/components/productoptiongroupvalidationerror.js.map +1 -0
  97. package/models/components/productoptionvalidationerror.d.ts +41 -0
  98. package/models/components/productoptionvalidationerror.d.ts.map +1 -0
  99. package/models/components/productoptionvalidationerror.js +77 -0
  100. package/models/components/productoptionvalidationerror.js.map +1 -0
  101. package/models/components/productrequest.d.ts +61 -0
  102. package/models/components/productrequest.d.ts.map +1 -0
  103. package/models/components/productrequest.js +80 -0
  104. package/models/components/productrequest.js.map +1 -0
  105. package/models/errors/index.d.ts +1 -0
  106. package/models/errors/index.d.ts.map +1 -1
  107. package/models/errors/index.js +1 -0
  108. package/models/errors/index.js.map +1 -1
  109. package/models/errors/productrequestvalidationerror.d.ts +61 -0
  110. package/models/errors/productrequestvalidationerror.d.ts.map +1 -0
  111. package/models/errors/productrequestvalidationerror.js +105 -0
  112. package/models/errors/productrequestvalidationerror.js.map +1 -0
  113. package/models/operations/createproduct.d.ts +101 -0
  114. package/models/operations/createproduct.d.ts.map +1 -0
  115. package/models/operations/createproduct.js +155 -0
  116. package/models/operations/createproduct.js.map +1 -0
  117. package/models/operations/disableproduct.d.ts +98 -0
  118. package/models/operations/disableproduct.d.ts.map +1 -0
  119. package/models/operations/disableproduct.js +142 -0
  120. package/models/operations/disableproduct.js.map +1 -0
  121. package/models/operations/getproduct.d.ts +101 -0
  122. package/models/operations/getproduct.d.ts.map +1 -0
  123. package/models/operations/getproduct.js +147 -0
  124. package/models/operations/getproduct.js.map +1 -0
  125. package/models/operations/index.d.ts +5 -0
  126. package/models/operations/index.d.ts.map +1 -1
  127. package/models/operations/index.js +5 -0
  128. package/models/operations/index.js.map +1 -1
  129. package/models/operations/listproducts.d.ts +103 -0
  130. package/models/operations/listproducts.d.ts.map +1 -0
  131. package/models/operations/listproducts.js +149 -0
  132. package/models/operations/listproducts.js.map +1 -0
  133. package/models/operations/updateproduct.d.ts +103 -0
  134. package/models/operations/updateproduct.d.ts.map +1 -0
  135. package/models/operations/updateproduct.js +157 -0
  136. package/models/operations/updateproduct.js.map +1 -0
  137. package/package.json +1 -1
  138. package/sdk/products.d.ts +27 -0
  139. package/sdk/products.d.ts.map +1 -0
  140. package/sdk/products.js +49 -0
  141. package/sdk/products.js.map +1 -0
  142. package/sdk/sdk.d.ts +3 -0
  143. package/sdk/sdk.d.ts.map +1 -1
  144. package/sdk/sdk.js +4 -0
  145. package/sdk/sdk.js.map +1 -1
  146. package/src/funcs/productsCreate.ts +200 -0
  147. package/src/funcs/productsDisable.ts +199 -0
  148. package/src/funcs/productsGet.ts +182 -0
  149. package/src/funcs/productsList.ts +182 -0
  150. package/src/funcs/productsUpdate.ts +206 -0
  151. package/src/lib/config.ts +2 -2
  152. package/src/mcp-server/mcp-server.ts +1 -1
  153. package/src/mcp-server/server.ts +11 -1
  154. package/src/mcp-server/tools/productsCreate.ts +35 -0
  155. package/src/mcp-server/tools/productsDisable.ts +35 -0
  156. package/src/mcp-server/tools/productsGet.ts +35 -0
  157. package/src/mcp-server/tools/productsList.ts +35 -0
  158. package/src/mcp-server/tools/productsUpdate.ts +35 -0
  159. package/src/models/components/amountdecimalvalidationerror.ts +72 -0
  160. package/src/models/components/assignproductimage.ts +69 -0
  161. package/src/models/components/assignproductimagevalidationerror.ts +69 -0
  162. package/src/models/components/createproductoption.ts +108 -0
  163. package/src/models/components/createproductoptiongroup.ts +110 -0
  164. package/src/models/components/index.ts +12 -0
  165. package/src/models/components/product.ts +148 -0
  166. package/src/models/components/productimagemetadata.ts +83 -0
  167. package/src/models/components/productoption.ts +107 -0
  168. package/src/models/components/productoptiongroup.ts +113 -0
  169. package/src/models/components/productoptiongroupvalidationerror.ts +91 -0
  170. package/src/models/components/productoptionvalidationerror.ts +94 -0
  171. package/src/models/components/productrequest.ts +117 -0
  172. package/src/models/errors/index.ts +1 -0
  173. package/src/models/errors/productrequestvalidationerror.ts +124 -0
  174. package/src/models/operations/createproduct.ts +231 -0
  175. package/src/models/operations/disableproduct.ts +216 -0
  176. package/src/models/operations/getproduct.ts +223 -0
  177. package/src/models/operations/index.ts +5 -0
  178. package/src/models/operations/listproducts.ts +227 -0
  179. package/src/models/operations/updateproduct.ts +235 -0
  180. package/src/sdk/products.ts +86 -0
  181. package/src/sdk/sdk.ts +6 -0
@@ -0,0 +1,200 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { MoovCore } from "../core.js";
6
+ import { encodeJSON, encodeSimple } from "../lib/encodings.js";
7
+ import * as M from "../lib/matchers.js";
8
+ import { compactMap } from "../lib/primitives.js";
9
+ import { safeParse } from "../lib/schemas.js";
10
+ import { RequestOptions } from "../lib/sdks.js";
11
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
12
+ import { pathToFunc } from "../lib/url.js";
13
+ import {
14
+ ConnectionError,
15
+ InvalidRequestError,
16
+ RequestAbortedError,
17
+ RequestTimeoutError,
18
+ UnexpectedClientError,
19
+ } from "../models/errors/httpclienterrors.js";
20
+ import * as errors from "../models/errors/index.js";
21
+ import { MoovError } from "../models/errors/mooverror.js";
22
+ import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
23
+ import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
24
+ import * as operations from "../models/operations/index.js";
25
+ import { APICall, APIPromise } from "../types/async.js";
26
+ import { Result } from "../types/fp.js";
27
+
28
+ /**
29
+ * Creates a new product for the specified account.
30
+ */
31
+ export function productsCreate(
32
+ client: MoovCore,
33
+ request: operations.CreateProductRequest,
34
+ options?: RequestOptions,
35
+ ): APIPromise<
36
+ Result<
37
+ operations.CreateProductResponse,
38
+ | errors.GenericError
39
+ | errors.ProductRequestValidationError
40
+ | MoovError
41
+ | ResponseValidationError
42
+ | ConnectionError
43
+ | RequestAbortedError
44
+ | RequestTimeoutError
45
+ | InvalidRequestError
46
+ | UnexpectedClientError
47
+ | SDKValidationError
48
+ >
49
+ > {
50
+ return new APIPromise($do(
51
+ client,
52
+ request,
53
+ options,
54
+ ));
55
+ }
56
+
57
+ async function $do(
58
+ client: MoovCore,
59
+ request: operations.CreateProductRequest,
60
+ options?: RequestOptions,
61
+ ): Promise<
62
+ [
63
+ Result<
64
+ operations.CreateProductResponse,
65
+ | errors.GenericError
66
+ | errors.ProductRequestValidationError
67
+ | MoovError
68
+ | ResponseValidationError
69
+ | ConnectionError
70
+ | RequestAbortedError
71
+ | RequestTimeoutError
72
+ | InvalidRequestError
73
+ | UnexpectedClientError
74
+ | SDKValidationError
75
+ >,
76
+ APICall,
77
+ ]
78
+ > {
79
+ const parsed = safeParse(
80
+ request,
81
+ (value) => operations.CreateProductRequest$outboundSchema.parse(value),
82
+ "Input validation failed",
83
+ );
84
+ if (!parsed.ok) {
85
+ return [parsed, { status: "invalid" }];
86
+ }
87
+ const payload = parsed.value;
88
+ const body = encodeJSON("body", payload.ProductRequest, { explode: true });
89
+
90
+ const pathParams = {
91
+ accountID: encodeSimple("accountID", payload.accountID, {
92
+ explode: false,
93
+ charEncoding: "percent",
94
+ }),
95
+ };
96
+
97
+ const path = pathToFunc("/accounts/{accountID}/products")(pathParams);
98
+
99
+ const headers = new Headers(compactMap({
100
+ "Content-Type": "application/json",
101
+ Accept: "application/json",
102
+ "x-moov-version": encodeSimple(
103
+ "x-moov-version",
104
+ client._options.xMoovVersion,
105
+ { explode: false, charEncoding: "none" },
106
+ ),
107
+ }));
108
+
109
+ const securityInput = await extractSecurity(client._options.security);
110
+ const requestSecurity = resolveGlobalSecurity(securityInput);
111
+
112
+ const context = {
113
+ options: client._options,
114
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
115
+ operationID: "createProduct",
116
+ oAuth2Scopes: null,
117
+
118
+ resolvedSecurity: requestSecurity,
119
+
120
+ securitySource: client._options.security,
121
+ retryConfig: options?.retries
122
+ || client._options.retryConfig
123
+ || { strategy: "none" },
124
+ retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"],
125
+ };
126
+
127
+ const requestRes = client._createRequest(context, {
128
+ security: requestSecurity,
129
+ method: "POST",
130
+ baseURL: options?.serverURL,
131
+ path: path,
132
+ headers: headers,
133
+ body: body,
134
+ userAgent: client._options.userAgent,
135
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
136
+ }, options);
137
+ if (!requestRes.ok) {
138
+ return [requestRes, { status: "invalid" }];
139
+ }
140
+ const req = requestRes.value;
141
+
142
+ const doResult = await client._do(req, {
143
+ context,
144
+ errorCodes: [
145
+ "400",
146
+ "401",
147
+ "403",
148
+ "404",
149
+ "409",
150
+ "422",
151
+ "429",
152
+ "4XX",
153
+ "500",
154
+ "504",
155
+ "5XX",
156
+ ],
157
+ retryConfig: context.retryConfig,
158
+ retryCodes: context.retryCodes,
159
+ });
160
+ if (!doResult.ok) {
161
+ return [doResult, { status: "request-error", request: req }];
162
+ }
163
+ const response = doResult.value;
164
+
165
+ const responseFields = {
166
+ HttpMeta: { Response: response, Request: req },
167
+ };
168
+
169
+ const [result] = await M.match<
170
+ operations.CreateProductResponse,
171
+ | errors.GenericError
172
+ | errors.ProductRequestValidationError
173
+ | MoovError
174
+ | ResponseValidationError
175
+ | ConnectionError
176
+ | RequestAbortedError
177
+ | RequestTimeoutError
178
+ | InvalidRequestError
179
+ | UnexpectedClientError
180
+ | SDKValidationError
181
+ >(
182
+ M.json(201, operations.CreateProductResponse$inboundSchema, {
183
+ hdrs: true,
184
+ key: "Result",
185
+ }),
186
+ M.jsonErr([400, 409], errors.GenericError$inboundSchema, { hdrs: true }),
187
+ M.jsonErr(422, errors.ProductRequestValidationError$inboundSchema, {
188
+ hdrs: true,
189
+ }),
190
+ M.fail([401, 403, 404, 429]),
191
+ M.fail([500, 504]),
192
+ M.fail("4XX"),
193
+ M.fail("5XX"),
194
+ )(response, req, { extraFields: responseFields });
195
+ if (!result.ok) {
196
+ return [result, { status: "complete", request: req, response }];
197
+ }
198
+
199
+ return [result, { status: "complete", request: req, response }];
200
+ }
@@ -0,0 +1,199 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { MoovCore } from "../core.js";
6
+ import { encodeSimple } from "../lib/encodings.js";
7
+ import * as M from "../lib/matchers.js";
8
+ import { compactMap } from "../lib/primitives.js";
9
+ import { safeParse } from "../lib/schemas.js";
10
+ import { RequestOptions } from "../lib/sdks.js";
11
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
12
+ import { pathToFunc } from "../lib/url.js";
13
+ import {
14
+ ConnectionError,
15
+ InvalidRequestError,
16
+ RequestAbortedError,
17
+ RequestTimeoutError,
18
+ UnexpectedClientError,
19
+ } from "../models/errors/httpclienterrors.js";
20
+ import * as errors from "../models/errors/index.js";
21
+ import { MoovError } from "../models/errors/mooverror.js";
22
+ import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
23
+ import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
24
+ import * as operations from "../models/operations/index.js";
25
+ import { APICall, APIPromise } from "../types/async.js";
26
+ import { Result } from "../types/fp.js";
27
+
28
+ /**
29
+ * Disable a product by ID.
30
+ *
31
+ * The product will no longer be available, but will remain in the system for historical and reporting purposes.
32
+ */
33
+ export function productsDisable(
34
+ client: MoovCore,
35
+ request: operations.DisableProductRequest,
36
+ options?: RequestOptions,
37
+ ): APIPromise<
38
+ Result<
39
+ operations.DisableProductResponse | undefined,
40
+ | errors.GenericError
41
+ | MoovError
42
+ | ResponseValidationError
43
+ | ConnectionError
44
+ | RequestAbortedError
45
+ | RequestTimeoutError
46
+ | InvalidRequestError
47
+ | UnexpectedClientError
48
+ | SDKValidationError
49
+ >
50
+ > {
51
+ return new APIPromise($do(
52
+ client,
53
+ request,
54
+ options,
55
+ ));
56
+ }
57
+
58
+ async function $do(
59
+ client: MoovCore,
60
+ request: operations.DisableProductRequest,
61
+ options?: RequestOptions,
62
+ ): Promise<
63
+ [
64
+ Result<
65
+ operations.DisableProductResponse | undefined,
66
+ | errors.GenericError
67
+ | MoovError
68
+ | ResponseValidationError
69
+ | ConnectionError
70
+ | RequestAbortedError
71
+ | RequestTimeoutError
72
+ | InvalidRequestError
73
+ | UnexpectedClientError
74
+ | SDKValidationError
75
+ >,
76
+ APICall,
77
+ ]
78
+ > {
79
+ const parsed = safeParse(
80
+ request,
81
+ (value) => operations.DisableProductRequest$outboundSchema.parse(value),
82
+ "Input validation failed",
83
+ );
84
+ if (!parsed.ok) {
85
+ return [parsed, { status: "invalid" }];
86
+ }
87
+ const payload = parsed.value;
88
+ const body = null;
89
+
90
+ const pathParams = {
91
+ accountID: encodeSimple("accountID", payload.accountID, {
92
+ explode: false,
93
+ charEncoding: "percent",
94
+ }),
95
+ productID: encodeSimple("productID", payload.productID, {
96
+ explode: false,
97
+ charEncoding: "percent",
98
+ }),
99
+ };
100
+
101
+ const path = pathToFunc("/accounts/{accountID}/products/{productID}")(
102
+ pathParams,
103
+ );
104
+
105
+ const headers = new Headers(compactMap({
106
+ Accept: "application/json",
107
+ "x-moov-version": encodeSimple(
108
+ "x-moov-version",
109
+ client._options.xMoovVersion,
110
+ { explode: false, charEncoding: "none" },
111
+ ),
112
+ }));
113
+
114
+ const securityInput = await extractSecurity(client._options.security);
115
+ const requestSecurity = resolveGlobalSecurity(securityInput);
116
+
117
+ const context = {
118
+ options: client._options,
119
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
120
+ operationID: "disableProduct",
121
+ oAuth2Scopes: null,
122
+
123
+ resolvedSecurity: requestSecurity,
124
+
125
+ securitySource: client._options.security,
126
+ retryConfig: options?.retries
127
+ || client._options.retryConfig
128
+ || { strategy: "none" },
129
+ retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"],
130
+ };
131
+
132
+ const requestRes = client._createRequest(context, {
133
+ security: requestSecurity,
134
+ method: "DELETE",
135
+ baseURL: options?.serverURL,
136
+ path: path,
137
+ headers: headers,
138
+ body: body,
139
+ userAgent: client._options.userAgent,
140
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
141
+ }, options);
142
+ if (!requestRes.ok) {
143
+ return [requestRes, { status: "invalid" }];
144
+ }
145
+ const req = requestRes.value;
146
+
147
+ const doResult = await client._do(req, {
148
+ context,
149
+ errorCodes: [
150
+ "400",
151
+ "401",
152
+ "403",
153
+ "404",
154
+ "409",
155
+ "429",
156
+ "4XX",
157
+ "500",
158
+ "504",
159
+ "5XX",
160
+ ],
161
+ retryConfig: context.retryConfig,
162
+ retryCodes: context.retryCodes,
163
+ });
164
+ if (!doResult.ok) {
165
+ return [doResult, { status: "request-error", request: req }];
166
+ }
167
+ const response = doResult.value;
168
+
169
+ const responseFields = {
170
+ HttpMeta: { Response: response, Request: req },
171
+ };
172
+
173
+ const [result] = await M.match<
174
+ operations.DisableProductResponse | undefined,
175
+ | errors.GenericError
176
+ | MoovError
177
+ | ResponseValidationError
178
+ | ConnectionError
179
+ | RequestAbortedError
180
+ | RequestTimeoutError
181
+ | InvalidRequestError
182
+ | UnexpectedClientError
183
+ | SDKValidationError
184
+ >(
185
+ M.nil(204, operations.DisableProductResponse$inboundSchema.optional(), {
186
+ hdrs: true,
187
+ }),
188
+ M.jsonErr([400, 409], errors.GenericError$inboundSchema, { hdrs: true }),
189
+ M.fail([401, 403, 404, 429]),
190
+ M.fail([500, 504]),
191
+ M.fail("4XX"),
192
+ M.fail("5XX"),
193
+ )(response, req, { extraFields: responseFields });
194
+ if (!result.ok) {
195
+ return [result, { status: "complete", request: req, response }];
196
+ }
197
+
198
+ return [result, { status: "complete", request: req, response }];
199
+ }
@@ -0,0 +1,182 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { MoovCore } from "../core.js";
6
+ import { encodeSimple } from "../lib/encodings.js";
7
+ import * as M from "../lib/matchers.js";
8
+ import { compactMap } from "../lib/primitives.js";
9
+ import { safeParse } from "../lib/schemas.js";
10
+ import { RequestOptions } from "../lib/sdks.js";
11
+ import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js";
12
+ import { pathToFunc } from "../lib/url.js";
13
+ import {
14
+ ConnectionError,
15
+ InvalidRequestError,
16
+ RequestAbortedError,
17
+ RequestTimeoutError,
18
+ UnexpectedClientError,
19
+ } from "../models/errors/httpclienterrors.js";
20
+ import { MoovError } from "../models/errors/mooverror.js";
21
+ import { ResponseValidationError } from "../models/errors/responsevalidationerror.js";
22
+ import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
23
+ import * as operations from "../models/operations/index.js";
24
+ import { APICall, APIPromise } from "../types/async.js";
25
+ import { Result } from "../types/fp.js";
26
+
27
+ /**
28
+ * Retrieve a product by ID.
29
+ */
30
+ export function productsGet(
31
+ client: MoovCore,
32
+ request: operations.GetProductRequest,
33
+ options?: RequestOptions,
34
+ ): APIPromise<
35
+ Result<
36
+ operations.GetProductResponse,
37
+ | MoovError
38
+ | ResponseValidationError
39
+ | ConnectionError
40
+ | RequestAbortedError
41
+ | RequestTimeoutError
42
+ | InvalidRequestError
43
+ | UnexpectedClientError
44
+ | SDKValidationError
45
+ >
46
+ > {
47
+ return new APIPromise($do(
48
+ client,
49
+ request,
50
+ options,
51
+ ));
52
+ }
53
+
54
+ async function $do(
55
+ client: MoovCore,
56
+ request: operations.GetProductRequest,
57
+ options?: RequestOptions,
58
+ ): Promise<
59
+ [
60
+ Result<
61
+ operations.GetProductResponse,
62
+ | MoovError
63
+ | ResponseValidationError
64
+ | ConnectionError
65
+ | RequestAbortedError
66
+ | RequestTimeoutError
67
+ | InvalidRequestError
68
+ | UnexpectedClientError
69
+ | SDKValidationError
70
+ >,
71
+ APICall,
72
+ ]
73
+ > {
74
+ const parsed = safeParse(
75
+ request,
76
+ (value) => operations.GetProductRequest$outboundSchema.parse(value),
77
+ "Input validation failed",
78
+ );
79
+ if (!parsed.ok) {
80
+ return [parsed, { status: "invalid" }];
81
+ }
82
+ const payload = parsed.value;
83
+ const body = null;
84
+
85
+ const pathParams = {
86
+ accountID: encodeSimple("accountID", payload.accountID, {
87
+ explode: false,
88
+ charEncoding: "percent",
89
+ }),
90
+ productID: encodeSimple("productID", payload.productID, {
91
+ explode: false,
92
+ charEncoding: "percent",
93
+ }),
94
+ };
95
+
96
+ const path = pathToFunc("/accounts/{accountID}/products/{productID}")(
97
+ pathParams,
98
+ );
99
+
100
+ const headers = new Headers(compactMap({
101
+ Accept: "application/json",
102
+ "x-moov-version": encodeSimple(
103
+ "x-moov-version",
104
+ client._options.xMoovVersion,
105
+ { explode: false, charEncoding: "none" },
106
+ ),
107
+ }));
108
+
109
+ const securityInput = await extractSecurity(client._options.security);
110
+ const requestSecurity = resolveGlobalSecurity(securityInput);
111
+
112
+ const context = {
113
+ options: client._options,
114
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
115
+ operationID: "getProduct",
116
+ oAuth2Scopes: null,
117
+
118
+ resolvedSecurity: requestSecurity,
119
+
120
+ securitySource: client._options.security,
121
+ retryConfig: options?.retries
122
+ || client._options.retryConfig
123
+ || { strategy: "none" },
124
+ retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"],
125
+ };
126
+
127
+ const requestRes = client._createRequest(context, {
128
+ security: requestSecurity,
129
+ method: "GET",
130
+ baseURL: options?.serverURL,
131
+ path: path,
132
+ headers: headers,
133
+ body: body,
134
+ userAgent: client._options.userAgent,
135
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
136
+ }, options);
137
+ if (!requestRes.ok) {
138
+ return [requestRes, { status: "invalid" }];
139
+ }
140
+ const req = requestRes.value;
141
+
142
+ const doResult = await client._do(req, {
143
+ context,
144
+ errorCodes: ["401", "403", "404", "429", "4XX", "500", "504", "5XX"],
145
+ retryConfig: context.retryConfig,
146
+ retryCodes: context.retryCodes,
147
+ });
148
+ if (!doResult.ok) {
149
+ return [doResult, { status: "request-error", request: req }];
150
+ }
151
+ const response = doResult.value;
152
+
153
+ const responseFields = {
154
+ HttpMeta: { Response: response, Request: req },
155
+ };
156
+
157
+ const [result] = await M.match<
158
+ operations.GetProductResponse,
159
+ | MoovError
160
+ | ResponseValidationError
161
+ | ConnectionError
162
+ | RequestAbortedError
163
+ | RequestTimeoutError
164
+ | InvalidRequestError
165
+ | UnexpectedClientError
166
+ | SDKValidationError
167
+ >(
168
+ M.json(200, operations.GetProductResponse$inboundSchema, {
169
+ hdrs: true,
170
+ key: "Result",
171
+ }),
172
+ M.fail([401, 403, 404, 429]),
173
+ M.fail([500, 504]),
174
+ M.fail("4XX"),
175
+ M.fail("5XX"),
176
+ )(response, req, { extraFields: responseFields });
177
+ if (!result.ok) {
178
+ return [result, { status: "complete", request: req, response }];
179
+ }
180
+
181
+ return [result, { status: "complete", request: req, response }];
182
+ }