@greensecurity/javascript-sdk 0.9.1 → 0.10.2

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 (115) hide show
  1. package/README.md +14 -5
  2. package/funcs/organizationsGetFacility.d.ts +2 -1
  3. package/funcs/organizationsGetFacility.d.ts.map +1 -1
  4. package/funcs/organizationsGetFacility.js +11 -7
  5. package/funcs/organizationsGetFacility.js.map +1 -1
  6. package/funcs/organizationsListOrSearchFacilities.d.ts +2 -1
  7. package/funcs/organizationsListOrSearchFacilities.d.ts.map +1 -1
  8. package/funcs/organizationsListOrSearchFacilities.js +11 -7
  9. package/funcs/organizationsListOrSearchFacilities.js.map +1 -1
  10. package/funcs/userGetCurrentUser.d.ts +2 -1
  11. package/funcs/userGetCurrentUser.d.ts.map +1 -1
  12. package/funcs/userGetCurrentUser.js +10 -6
  13. package/funcs/userGetCurrentUser.js.map +1 -1
  14. package/funcs/userGetUserById.d.ts +2 -1
  15. package/funcs/userGetUserById.d.ts.map +1 -1
  16. package/funcs/userGetUserById.js +11 -7
  17. package/funcs/userGetUserById.js.map +1 -1
  18. package/funcs/userLogsUserIntoTheSystem.d.ts +2 -1
  19. package/funcs/userLogsUserIntoTheSystem.d.ts.map +1 -1
  20. package/funcs/userLogsUserIntoTheSystem.js +11 -7
  21. package/funcs/userLogsUserIntoTheSystem.js.map +1 -1
  22. package/funcs/userMagiclink.d.ts +17 -0
  23. package/funcs/userMagiclink.d.ts.map +1 -0
  24. package/funcs/userMagiclink.js +115 -0
  25. package/funcs/userMagiclink.js.map +1 -0
  26. package/funcs/userPassword.d.ts +18 -0
  27. package/funcs/userPassword.d.ts.map +1 -0
  28. package/funcs/userPassword.js +116 -0
  29. package/funcs/userPassword.js.map +1 -0
  30. package/funcs/userPasswordResetRequest.d.ts +17 -0
  31. package/funcs/userPasswordResetRequest.d.ts.map +1 -0
  32. package/funcs/userPasswordResetRequest.js +115 -0
  33. package/funcs/userPasswordResetRequest.js.map +1 -0
  34. package/funcs/vendorsCreateVendorRegistration.d.ts +2 -1
  35. package/funcs/vendorsCreateVendorRegistration.d.ts.map +1 -1
  36. package/funcs/vendorsCreateVendorRegistration.js +11 -7
  37. package/funcs/vendorsCreateVendorRegistration.js.map +1 -1
  38. package/funcs/vendorsListVendorJobTitles.d.ts +2 -1
  39. package/funcs/vendorsListVendorJobTitles.d.ts.map +1 -1
  40. package/funcs/vendorsListVendorJobTitles.js +11 -7
  41. package/funcs/vendorsListVendorJobTitles.js.map +1 -1
  42. package/jsr.json +1 -1
  43. package/lib/config.d.ts +3 -3
  44. package/lib/config.js +3 -3
  45. package/lib/config.js.map +1 -1
  46. package/lib/sdks.d.ts +1 -1
  47. package/lib/sdks.d.ts.map +1 -1
  48. package/models/operations/index.d.ts +3 -0
  49. package/models/operations/index.d.ts.map +1 -1
  50. package/models/operations/index.js +3 -0
  51. package/models/operations/index.js.map +1 -1
  52. package/models/operations/magiclink.d.ts +57 -0
  53. package/models/operations/magiclink.d.ts.map +1 -0
  54. package/models/operations/magiclink.js +96 -0
  55. package/models/operations/magiclink.js.map +1 -0
  56. package/models/operations/password.d.ts +59 -0
  57. package/models/operations/password.d.ts.map +1 -0
  58. package/models/operations/password.js +107 -0
  59. package/models/operations/password.js.map +1 -0
  60. package/models/operations/passwordresetrequest.d.ts +57 -0
  61. package/models/operations/passwordresetrequest.d.ts.map +1 -0
  62. package/models/operations/passwordresetrequest.js +96 -0
  63. package/models/operations/passwordresetrequest.js.map +1 -0
  64. package/package.json +1 -1
  65. package/react-query/index.d.ts +3 -0
  66. package/react-query/index.d.ts.map +1 -1
  67. package/react-query/index.js +3 -0
  68. package/react-query/index.js.map +1 -1
  69. package/react-query/userMagiclink.d.ts +23 -0
  70. package/react-query/userMagiclink.d.ts.map +1 -0
  71. package/react-query/userMagiclink.js +47 -0
  72. package/react-query/userMagiclink.js.map +1 -0
  73. package/react-query/userPassword.d.ts +24 -0
  74. package/react-query/userPassword.d.ts.map +1 -0
  75. package/react-query/userPassword.js +48 -0
  76. package/react-query/userPassword.js.map +1 -0
  77. package/react-query/userPasswordResetRequest.d.ts +23 -0
  78. package/react-query/userPasswordResetRequest.d.ts.map +1 -0
  79. package/react-query/userPasswordResetRequest.js +47 -0
  80. package/react-query/userPasswordResetRequest.js.map +1 -0
  81. package/sdk/user.d.ts +22 -0
  82. package/sdk/user.d.ts.map +1 -1
  83. package/sdk/user.js +31 -0
  84. package/sdk/user.js.map +1 -1
  85. package/src/funcs/organizationsGetFacility.ts +37 -8
  86. package/src/funcs/organizationsListOrSearchFacilities.ts +35 -8
  87. package/src/funcs/userGetCurrentUser.ts +33 -7
  88. package/src/funcs/userGetUserById.ts +36 -8
  89. package/src/funcs/userLogsUserIntoTheSystem.ts +36 -8
  90. package/src/funcs/userMagiclink.ts +162 -0
  91. package/src/funcs/userPassword.ts +163 -0
  92. package/src/funcs/userPasswordResetRequest.ts +163 -0
  93. package/src/funcs/vendorsCreateVendorRegistration.ts +36 -8
  94. package/src/funcs/vendorsListVendorJobTitles.ts +37 -8
  95. package/src/lib/config.ts +3 -3
  96. package/src/lib/sdks.ts +1 -1
  97. package/src/models/operations/index.ts +3 -0
  98. package/src/models/operations/magiclink.ts +127 -0
  99. package/src/models/operations/password.ts +140 -0
  100. package/src/models/operations/passwordresetrequest.ts +131 -0
  101. package/src/react-query/index.ts +3 -0
  102. package/src/react-query/userMagiclink.ts +88 -0
  103. package/src/react-query/userPassword.ts +89 -0
  104. package/src/react-query/userPasswordResetRequest.ts +89 -0
  105. package/src/sdk/user.ts +55 -0
  106. package/src/types/async.ts +68 -0
  107. package/types/async.d.ts +23 -0
  108. package/types/async.d.ts.map +1 -0
  109. package/types/async.js +44 -0
  110. package/types/async.js.map +1 -0
  111. package/.devcontainer/README.md +0 -35
  112. package/docs/sdks/greensecurity/README.md +0 -14
  113. package/docs/sdks/organizations/README.md +0 -252
  114. package/docs/sdks/user/README.md +0 -348
  115. package/docs/sdks/vendors/README.md +0 -219
@@ -22,6 +22,7 @@ import {
22
22
  import * as errors from "../models/errors/index.js";
23
23
  import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
24
24
  import * as operations from "../models/operations/index.js";
25
+ import { APICall, APIPromise } from "../types/async.js";
25
26
  import { Result } from "../types/fp.js";
26
27
 
27
28
  /**
@@ -30,11 +31,11 @@ import { Result } from "../types/fp.js";
30
31
  * @remarks
31
32
  * Returns a user object for the user represented by the identifier in the path.
32
33
  */
33
- export async function userGetUserById(
34
+ export function userGetUserById(
34
35
  client: GreenSecurityCore,
35
36
  request: operations.GetUserByIdRequest,
36
37
  options?: RequestOptions,
37
- ): Promise<
38
+ ): APIPromise<
38
39
  Result<
39
40
  components.User,
40
41
  | errors.ApiErrorResponse
@@ -46,6 +47,33 @@ export async function userGetUserById(
46
47
  | RequestTimeoutError
47
48
  | ConnectionError
48
49
  >
50
+ > {
51
+ return new APIPromise($do(
52
+ client,
53
+ request,
54
+ options,
55
+ ));
56
+ }
57
+
58
+ async function $do(
59
+ client: GreenSecurityCore,
60
+ request: operations.GetUserByIdRequest,
61
+ options?: RequestOptions,
62
+ ): Promise<
63
+ [
64
+ Result<
65
+ components.User,
66
+ | errors.ApiErrorResponse
67
+ | APIError
68
+ | SDKValidationError
69
+ | UnexpectedClientError
70
+ | InvalidRequestError
71
+ | RequestAbortedError
72
+ | RequestTimeoutError
73
+ | ConnectionError
74
+ >,
75
+ APICall,
76
+ ]
49
77
  > {
50
78
  const parsed = safeParse(
51
79
  request,
@@ -53,7 +81,7 @@ export async function userGetUserById(
53
81
  "Input validation failed",
54
82
  );
55
83
  if (!parsed.ok) {
56
- return parsed;
84
+ return [parsed, { status: "invalid" }];
57
85
  }
58
86
  const payload = parsed.value;
59
87
  const body = null;
@@ -75,7 +103,7 @@ export async function userGetUserById(
75
103
  const requestSecurity = resolveGlobalSecurity(securityInput);
76
104
 
77
105
  const context = {
78
- baseURL: options?.serverURL ?? "",
106
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
79
107
  operationID: "getUserById",
80
108
  oAuth2Scopes: [],
81
109
 
@@ -98,7 +126,7 @@ export async function userGetUserById(
98
126
  timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
99
127
  }, options);
100
128
  if (!requestRes.ok) {
101
- return requestRes;
129
+ return [requestRes, { status: "invalid" }];
102
130
  }
103
131
  const req = requestRes.value;
104
132
 
@@ -109,7 +137,7 @@ export async function userGetUserById(
109
137
  retryCodes: context.retryCodes,
110
138
  });
111
139
  if (!doResult.ok) {
112
- return doResult;
140
+ return [doResult, { status: "request-error", request: req }];
113
141
  }
114
142
  const response = doResult.value;
115
143
 
@@ -134,8 +162,8 @@ export async function userGetUserById(
134
162
  M.fail("5XX"),
135
163
  )(response, { extraFields: responseFields });
136
164
  if (!result.ok) {
137
- return result;
165
+ return [result, { status: "complete", request: req, response }];
138
166
  }
139
167
 
140
- return result;
168
+ return [result, { status: "complete", request: req, response }];
141
169
  }
@@ -20,6 +20,7 @@ import {
20
20
  import * as errors from "../models/errors/index.js";
21
21
  import { SDKValidationError } from "../models/errors/sdkvalidationerror.js";
22
22
  import * as operations from "../models/operations/index.js";
23
+ import { APICall, APIPromise } from "../types/async.js";
23
24
  import { Result } from "../types/fp.js";
24
25
 
25
26
  /**
@@ -58,11 +59,11 @@ import { Result } from "../types/fp.js";
58
59
  * 4. The `user_token` will be appended as a query string parameter to your `return_url` - you must parse this token and store it
59
60
  * 5. Fetch the user object from `/users/me` using the token
60
61
  */
61
- export async function userLogsUserIntoTheSystem(
62
+ export function userLogsUserIntoTheSystem(
62
63
  client: GreenSecurityCore,
63
64
  request: operations.LogsUserIntoTheSystemRequestBody,
64
65
  options?: RequestOptions,
65
- ): Promise<
66
+ ): APIPromise<
66
67
  Result<
67
68
  operations.LogsUserIntoTheSystemResponse,
68
69
  | errors.ApiErrorResponse
@@ -74,6 +75,33 @@ export async function userLogsUserIntoTheSystem(
74
75
  | RequestTimeoutError
75
76
  | ConnectionError
76
77
  >
78
+ > {
79
+ return new APIPromise($do(
80
+ client,
81
+ request,
82
+ options,
83
+ ));
84
+ }
85
+
86
+ async function $do(
87
+ client: GreenSecurityCore,
88
+ request: operations.LogsUserIntoTheSystemRequestBody,
89
+ options?: RequestOptions,
90
+ ): Promise<
91
+ [
92
+ Result<
93
+ operations.LogsUserIntoTheSystemResponse,
94
+ | errors.ApiErrorResponse
95
+ | APIError
96
+ | SDKValidationError
97
+ | UnexpectedClientError
98
+ | InvalidRequestError
99
+ | RequestAbortedError
100
+ | RequestTimeoutError
101
+ | ConnectionError
102
+ >,
103
+ APICall,
104
+ ]
77
105
  > {
78
106
  const parsed = safeParse(
79
107
  request,
@@ -82,7 +110,7 @@ export async function userLogsUserIntoTheSystem(
82
110
  "Input validation failed",
83
111
  );
84
112
  if (!parsed.ok) {
85
- return parsed;
113
+ return [parsed, { status: "invalid" }];
86
114
  }
87
115
  const payload = parsed.value;
88
116
  const body = encodeJSON("body", payload, { explode: true });
@@ -95,7 +123,7 @@ export async function userLogsUserIntoTheSystem(
95
123
  }));
96
124
 
97
125
  const context = {
98
- baseURL: options?.serverURL ?? "",
126
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
99
127
  operationID: "logsUserIntoTheSystem",
100
128
  oAuth2Scopes: [],
101
129
 
@@ -117,7 +145,7 @@ export async function userLogsUserIntoTheSystem(
117
145
  timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
118
146
  }, options);
119
147
  if (!requestRes.ok) {
120
- return requestRes;
148
+ return [requestRes, { status: "invalid" }];
121
149
  }
122
150
  const req = requestRes.value;
123
151
 
@@ -128,7 +156,7 @@ export async function userLogsUserIntoTheSystem(
128
156
  retryCodes: context.retryCodes,
129
157
  });
130
158
  if (!doResult.ok) {
131
- return doResult;
159
+ return [doResult, { status: "request-error", request: req }];
132
160
  }
133
161
  const response = doResult.value;
134
162
 
@@ -154,8 +182,8 @@ export async function userLogsUserIntoTheSystem(
154
182
  M.fail("5XX"),
155
183
  )(response, { extraFields: responseFields });
156
184
  if (!result.ok) {
157
- return result;
185
+ return [result, { status: "complete", request: req, response }];
158
186
  }
159
187
 
160
- return result;
188
+ return [result, { status: "complete", request: req, response }];
161
189
  }
@@ -0,0 +1,162 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { GreenSecurityCore } from "../core.js";
6
+ import { encodeJSON } 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 { APIError } from "../models/errors/apierror.js";
14
+ import {
15
+ ConnectionError,
16
+ InvalidRequestError,
17
+ RequestAbortedError,
18
+ RequestTimeoutError,
19
+ UnexpectedClientError,
20
+ } from "../models/errors/httpclienterrors.js";
21
+ import * as errors from "../models/errors/index.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
+ * Magic link
29
+ *
30
+ * @remarks
31
+ * It sends an email with a magic link to allow the user to log in.
32
+ */
33
+ export function userMagiclink(
34
+ client: GreenSecurityCore,
35
+ request: operations.MagiclinkRequestBody,
36
+ options?: RequestOptions,
37
+ ): APIPromise<
38
+ Result<
39
+ operations.MagiclinkResponseBody,
40
+ | errors.ApiErrorResponse
41
+ | APIError
42
+ | SDKValidationError
43
+ | UnexpectedClientError
44
+ | InvalidRequestError
45
+ | RequestAbortedError
46
+ | RequestTimeoutError
47
+ | ConnectionError
48
+ >
49
+ > {
50
+ return new APIPromise($do(
51
+ client,
52
+ request,
53
+ options,
54
+ ));
55
+ }
56
+
57
+ async function $do(
58
+ client: GreenSecurityCore,
59
+ request: operations.MagiclinkRequestBody,
60
+ options?: RequestOptions,
61
+ ): Promise<
62
+ [
63
+ Result<
64
+ operations.MagiclinkResponseBody,
65
+ | errors.ApiErrorResponse
66
+ | APIError
67
+ | SDKValidationError
68
+ | UnexpectedClientError
69
+ | InvalidRequestError
70
+ | RequestAbortedError
71
+ | RequestTimeoutError
72
+ | ConnectionError
73
+ >,
74
+ APICall,
75
+ ]
76
+ > {
77
+ const parsed = safeParse(
78
+ request,
79
+ (value) => operations.MagiclinkRequestBody$outboundSchema.parse(value),
80
+ "Input validation failed",
81
+ );
82
+ if (!parsed.ok) {
83
+ return [parsed, { status: "invalid" }];
84
+ }
85
+ const payload = parsed.value;
86
+ const body = encodeJSON("body", payload, { explode: true });
87
+
88
+ const path = pathToFunc("/users/magiclink")();
89
+
90
+ const headers = new Headers(compactMap({
91
+ "Content-Type": "application/json",
92
+ Accept: "application/json",
93
+ }));
94
+
95
+ const securityInput = await extractSecurity(client._options.security);
96
+ const requestSecurity = resolveGlobalSecurity(securityInput);
97
+
98
+ const context = {
99
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
100
+ operationID: "magiclink",
101
+ oAuth2Scopes: [],
102
+
103
+ resolvedSecurity: requestSecurity,
104
+
105
+ securitySource: client._options.security,
106
+ retryConfig: options?.retries
107
+ || client._options.retryConfig
108
+ || { strategy: "none" },
109
+ retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"],
110
+ };
111
+
112
+ const requestRes = client._createRequest(context, {
113
+ security: requestSecurity,
114
+ method: "POST",
115
+ baseURL: options?.serverURL,
116
+ path: path,
117
+ headers: headers,
118
+ body: body,
119
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
120
+ }, options);
121
+ if (!requestRes.ok) {
122
+ return [requestRes, { status: "invalid" }];
123
+ }
124
+ const req = requestRes.value;
125
+
126
+ const doResult = await client._do(req, {
127
+ context,
128
+ errorCodes: ["404", "4XX", "5XX"],
129
+ retryConfig: context.retryConfig,
130
+ retryCodes: context.retryCodes,
131
+ });
132
+ if (!doResult.ok) {
133
+ return [doResult, { status: "request-error", request: req }];
134
+ }
135
+ const response = doResult.value;
136
+
137
+ const responseFields = {
138
+ HttpMeta: { Response: response, Request: req },
139
+ };
140
+
141
+ const [result] = await M.match<
142
+ operations.MagiclinkResponseBody,
143
+ | errors.ApiErrorResponse
144
+ | APIError
145
+ | SDKValidationError
146
+ | UnexpectedClientError
147
+ | InvalidRequestError
148
+ | RequestAbortedError
149
+ | RequestTimeoutError
150
+ | ConnectionError
151
+ >(
152
+ M.json(200, operations.MagiclinkResponseBody$inboundSchema),
153
+ M.jsonErr(404, errors.ApiErrorResponse$inboundSchema),
154
+ M.fail("4XX"),
155
+ M.fail("5XX"),
156
+ )(response, { extraFields: responseFields });
157
+ if (!result.ok) {
158
+ return [result, { status: "complete", request: req, response }];
159
+ }
160
+
161
+ return [result, { status: "complete", request: req, response }];
162
+ }
@@ -0,0 +1,163 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { GreenSecurityCore } from "../core.js";
6
+ import { encodeJSON } 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 { APIError } from "../models/errors/apierror.js";
14
+ import {
15
+ ConnectionError,
16
+ InvalidRequestError,
17
+ RequestAbortedError,
18
+ RequestTimeoutError,
19
+ UnexpectedClientError,
20
+ } from "../models/errors/httpclienterrors.js";
21
+ import * as errors from "../models/errors/index.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
+ * Password reset
29
+ *
30
+ * @remarks
31
+ * Resets the a user's password using a password_reset_id that was sent to them via email.
32
+ * See /users/passwordresetrequest to initiate a password reset flow.
33
+ */
34
+ export function userPassword(
35
+ client: GreenSecurityCore,
36
+ request: operations.PasswordRequestBody,
37
+ options?: RequestOptions,
38
+ ): APIPromise<
39
+ Result<
40
+ operations.PasswordResponseBody,
41
+ | errors.ApiErrorResponse
42
+ | APIError
43
+ | SDKValidationError
44
+ | UnexpectedClientError
45
+ | InvalidRequestError
46
+ | RequestAbortedError
47
+ | RequestTimeoutError
48
+ | ConnectionError
49
+ >
50
+ > {
51
+ return new APIPromise($do(
52
+ client,
53
+ request,
54
+ options,
55
+ ));
56
+ }
57
+
58
+ async function $do(
59
+ client: GreenSecurityCore,
60
+ request: operations.PasswordRequestBody,
61
+ options?: RequestOptions,
62
+ ): Promise<
63
+ [
64
+ Result<
65
+ operations.PasswordResponseBody,
66
+ | errors.ApiErrorResponse
67
+ | APIError
68
+ | SDKValidationError
69
+ | UnexpectedClientError
70
+ | InvalidRequestError
71
+ | RequestAbortedError
72
+ | RequestTimeoutError
73
+ | ConnectionError
74
+ >,
75
+ APICall,
76
+ ]
77
+ > {
78
+ const parsed = safeParse(
79
+ request,
80
+ (value) => operations.PasswordRequestBody$outboundSchema.parse(value),
81
+ "Input validation failed",
82
+ );
83
+ if (!parsed.ok) {
84
+ return [parsed, { status: "invalid" }];
85
+ }
86
+ const payload = parsed.value;
87
+ const body = encodeJSON("body", payload, { explode: true });
88
+
89
+ const path = pathToFunc("/users/password")();
90
+
91
+ const headers = new Headers(compactMap({
92
+ "Content-Type": "application/json",
93
+ Accept: "application/json",
94
+ }));
95
+
96
+ const securityInput = await extractSecurity(client._options.security);
97
+ const requestSecurity = resolveGlobalSecurity(securityInput);
98
+
99
+ const context = {
100
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
101
+ operationID: "password",
102
+ oAuth2Scopes: [],
103
+
104
+ resolvedSecurity: requestSecurity,
105
+
106
+ securitySource: client._options.security,
107
+ retryConfig: options?.retries
108
+ || client._options.retryConfig
109
+ || { strategy: "none" },
110
+ retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"],
111
+ };
112
+
113
+ const requestRes = client._createRequest(context, {
114
+ security: requestSecurity,
115
+ method: "POST",
116
+ baseURL: options?.serverURL,
117
+ path: path,
118
+ headers: headers,
119
+ body: body,
120
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
121
+ }, options);
122
+ if (!requestRes.ok) {
123
+ return [requestRes, { status: "invalid" }];
124
+ }
125
+ const req = requestRes.value;
126
+
127
+ const doResult = await client._do(req, {
128
+ context,
129
+ errorCodes: ["404", "4XX", "5XX"],
130
+ retryConfig: context.retryConfig,
131
+ retryCodes: context.retryCodes,
132
+ });
133
+ if (!doResult.ok) {
134
+ return [doResult, { status: "request-error", request: req }];
135
+ }
136
+ const response = doResult.value;
137
+
138
+ const responseFields = {
139
+ HttpMeta: { Response: response, Request: req },
140
+ };
141
+
142
+ const [result] = await M.match<
143
+ operations.PasswordResponseBody,
144
+ | errors.ApiErrorResponse
145
+ | APIError
146
+ | SDKValidationError
147
+ | UnexpectedClientError
148
+ | InvalidRequestError
149
+ | RequestAbortedError
150
+ | RequestTimeoutError
151
+ | ConnectionError
152
+ >(
153
+ M.json(200, operations.PasswordResponseBody$inboundSchema),
154
+ M.jsonErr(404, errors.ApiErrorResponse$inboundSchema),
155
+ M.fail("4XX"),
156
+ M.fail("5XX"),
157
+ )(response, { extraFields: responseFields });
158
+ if (!result.ok) {
159
+ return [result, { status: "complete", request: req, response }];
160
+ }
161
+
162
+ return [result, { status: "complete", request: req, response }];
163
+ }
@@ -0,0 +1,163 @@
1
+ /*
2
+ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT.
3
+ */
4
+
5
+ import { GreenSecurityCore } from "../core.js";
6
+ import { encodeJSON } 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 { APIError } from "../models/errors/apierror.js";
14
+ import {
15
+ ConnectionError,
16
+ InvalidRequestError,
17
+ RequestAbortedError,
18
+ RequestTimeoutError,
19
+ UnexpectedClientError,
20
+ } from "../models/errors/httpclienterrors.js";
21
+ import * as errors from "../models/errors/index.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
+ * Password reset request
29
+ *
30
+ * @remarks
31
+ * It sends an email with a link for resetting a user's password.
32
+ */
33
+ export function userPasswordResetRequest(
34
+ client: GreenSecurityCore,
35
+ request: operations.PasswordResetRequestRequestBody,
36
+ options?: RequestOptions,
37
+ ): APIPromise<
38
+ Result<
39
+ operations.PasswordResetRequestResponseBody,
40
+ | errors.ApiErrorResponse
41
+ | APIError
42
+ | SDKValidationError
43
+ | UnexpectedClientError
44
+ | InvalidRequestError
45
+ | RequestAbortedError
46
+ | RequestTimeoutError
47
+ | ConnectionError
48
+ >
49
+ > {
50
+ return new APIPromise($do(
51
+ client,
52
+ request,
53
+ options,
54
+ ));
55
+ }
56
+
57
+ async function $do(
58
+ client: GreenSecurityCore,
59
+ request: operations.PasswordResetRequestRequestBody,
60
+ options?: RequestOptions,
61
+ ): Promise<
62
+ [
63
+ Result<
64
+ operations.PasswordResetRequestResponseBody,
65
+ | errors.ApiErrorResponse
66
+ | APIError
67
+ | SDKValidationError
68
+ | UnexpectedClientError
69
+ | InvalidRequestError
70
+ | RequestAbortedError
71
+ | RequestTimeoutError
72
+ | ConnectionError
73
+ >,
74
+ APICall,
75
+ ]
76
+ > {
77
+ const parsed = safeParse(
78
+ request,
79
+ (value) =>
80
+ operations.PasswordResetRequestRequestBody$outboundSchema.parse(value),
81
+ "Input validation failed",
82
+ );
83
+ if (!parsed.ok) {
84
+ return [parsed, { status: "invalid" }];
85
+ }
86
+ const payload = parsed.value;
87
+ const body = encodeJSON("body", payload, { explode: true });
88
+
89
+ const path = pathToFunc("/users/passwordresetrequest")();
90
+
91
+ const headers = new Headers(compactMap({
92
+ "Content-Type": "application/json",
93
+ Accept: "application/json",
94
+ }));
95
+
96
+ const securityInput = await extractSecurity(client._options.security);
97
+ const requestSecurity = resolveGlobalSecurity(securityInput);
98
+
99
+ const context = {
100
+ baseURL: options?.serverURL ?? client._baseURL ?? "",
101
+ operationID: "passwordResetRequest",
102
+ oAuth2Scopes: [],
103
+
104
+ resolvedSecurity: requestSecurity,
105
+
106
+ securitySource: client._options.security,
107
+ retryConfig: options?.retries
108
+ || client._options.retryConfig
109
+ || { strategy: "none" },
110
+ retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"],
111
+ };
112
+
113
+ const requestRes = client._createRequest(context, {
114
+ security: requestSecurity,
115
+ method: "POST",
116
+ baseURL: options?.serverURL,
117
+ path: path,
118
+ headers: headers,
119
+ body: body,
120
+ timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1,
121
+ }, options);
122
+ if (!requestRes.ok) {
123
+ return [requestRes, { status: "invalid" }];
124
+ }
125
+ const req = requestRes.value;
126
+
127
+ const doResult = await client._do(req, {
128
+ context,
129
+ errorCodes: ["404", "4XX", "5XX"],
130
+ retryConfig: context.retryConfig,
131
+ retryCodes: context.retryCodes,
132
+ });
133
+ if (!doResult.ok) {
134
+ return [doResult, { status: "request-error", request: req }];
135
+ }
136
+ const response = doResult.value;
137
+
138
+ const responseFields = {
139
+ HttpMeta: { Response: response, Request: req },
140
+ };
141
+
142
+ const [result] = await M.match<
143
+ operations.PasswordResetRequestResponseBody,
144
+ | errors.ApiErrorResponse
145
+ | APIError
146
+ | SDKValidationError
147
+ | UnexpectedClientError
148
+ | InvalidRequestError
149
+ | RequestAbortedError
150
+ | RequestTimeoutError
151
+ | ConnectionError
152
+ >(
153
+ M.json(200, operations.PasswordResetRequestResponseBody$inboundSchema),
154
+ M.jsonErr(404, errors.ApiErrorResponse$inboundSchema),
155
+ M.fail("4XX"),
156
+ M.fail("5XX"),
157
+ )(response, { extraFields: responseFields });
158
+ if (!result.ok) {
159
+ return [result, { status: "complete", request: req, response }];
160
+ }
161
+
162
+ return [result, { status: "complete", request: req, response }];
163
+ }