@seamapi/nextlove-sdk-generator 1.15.1 → 1.15.3

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.
@@ -36,7 +36,8 @@ export const generateCSharpSDK = async (options = {}) => {
36
36
  if (!response_obj_type && !response_arr_type) {
37
37
  if (!response_schema ||
38
38
  "oneOf" in response_schema ||
39
- Object.keys(response_schema.properties).filter((k) => k.toLowerCase() !== "ok").length > 0) {
39
+ (Object.keys(response_schema.properties).filter((k) => k.toLowerCase() !== "ok").length > 0 &&
40
+ route.post["x-response-key"] !== null)) {
40
41
  console.log(`No response object/array ref for "${route.path}", skipping`);
41
42
  continue;
42
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generate-csharp-sdk.js","sourceRoot":"","sources":["../../src/lib/generate-csharp-sdk/generate-csharp-sdk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-csharp-sdk.js","sourceRoot":"","sources":["../../src/lib/generate-csharp-sdk/generate-csharp-sdk.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,11 @@ use Seam\\Utils\\PackageVersion;
9
9
 
10
10
  use GuzzleHttp\\Client as HTTPClient;
11
11
  use \\Exception as Exception;
12
+ use Seam\\HttpApiError;
13
+ use Seam\\HttpUnauthorizedError;
14
+ use Seam\\HttpInvalidInputError;
15
+ use Seam\\ActionAttemptFailedError;
16
+ use Seam\\ActionAttemptTimeoutError;
12
17
 
13
18
  define('LTS_VERSION', '1.0.0');
14
19
 
@@ -57,12 +62,12 @@ class SeamClient
57
62
  "json" => $json,
58
63
  "query" => $query,
59
64
  ];
60
- $options = array_filter($options, fn ($option) => $option !== null);
65
+ $options = array_filter($options, fn($option) => $option !== null);
61
66
 
62
67
  // TODO handle request errors
63
68
  $response = $this->client->request($method, $path, $options);
64
69
  $status_code = $response->getStatusCode();
65
- $request_id = $response->getHeaderLine('seam-request-id');
70
+ $request_id = $response->getHeaderLine("seam-request-id");
66
71
 
67
72
  $res_json = null;
68
73
  try {
@@ -70,44 +75,26 @@ class SeamClient
70
75
  } catch (Exception $ignoreError) {
71
76
  }
72
77
 
73
- if (($res_json->error ?? null) != null) {
74
- throw new Exception(
75
- "Error Calling \\"" .
76
- $method .
77
- " " .
78
- $path .
79
- "\\" : " .
80
- ($res_json->error->type ?? "") .
81
- ": " .
82
- $res_json->error->message .
83
- " [Request ID: " . $request_id . "]"
84
- );
85
- }
86
-
87
78
  if ($status_code >= 400) {
88
- $error_message = $response->getReasonPhrase();
79
+ if ($status_code === 401) {
80
+ throw new HttpUnauthorizedError($request_id);
81
+ }
89
82
 
90
- throw new Exception(
91
- "HTTP Error: " . $error_message . " [" . $status_code . "] " . $method . " " . $path .
92
- " [Request ID: " . $request_id . "]"
93
- );
94
- }
83
+ if (($res_json->error ?? null) != null) {
84
+ if ($res_json->error->type === 'invalid_input') {
85
+ throw new HttpInvalidInputError($res_json->error, $status_code, $request_id);
86
+ }
95
87
 
96
- if ($inner_object) {
97
- if (!is_array($res_json->$inner_object) && ($res_json->$inner_object ?? null) == null) {
98
- throw new Exception(
99
- 'Missing Inner Object "' .
100
- $inner_object .
101
- '" for ' .
102
- $method .
103
- " " .
104
- $path .
105
- " [Request ID: " . $request_id . "]"
106
- );
88
+ throw new HttpApiError($res_json->error, $status_code, $request_id);
107
89
  }
108
- return $res_json->$inner_object;
90
+
91
+ throw \GuzzleHttp\Exception\RequestException::create(
92
+ new \GuzzleHttp\Psr7\Request($method, $path),
93
+ $response
94
+ );
109
95
  }
110
- return $res_json;
96
+
97
+ return $inner_object ? $res_json->$inner_object : $res_json;
111
98
  }
112
99
  }
113
100
 
@@ -1 +1 @@
1
- {"version":3,"file":"generate-seam-client.js","sourceRoot":"","sources":["../../../src/lib/generate-php-sdk/utils/generate-seam-client.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EACjC,gBAAgB,EAChB,qBAAqB,GACd,EAAE,EAAE;IACX,MAAM,uBAAuB,GAAG,gBAAgB,CAAC,MAAM,CACrD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAC1B,CAAA;IAED,OAAO;;;;EAIP,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;IAUrE,uBAAuB;SACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,WAAW,WAAW,CAAC,CAAC,SAAS,GAAG,CAAC;SAC5D,IAAI,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;MAyBX,uBAAuB;SACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,WAAW,gBAAgB,CAAC;SACxE,IAAI,CAAC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoEnB,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;CACxD,CAAA;AACD,CAAC,CAAA"}
1
+ {"version":3,"file":"generate-seam-client.js","sourceRoot":"","sources":["../../../src/lib/generate-php-sdk/utils/generate-seam-client.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EACjC,gBAAgB,EAChB,qBAAqB,GACd,EAAE,EAAE;IACX,MAAM,uBAAuB,GAAG,gBAAgB,CAAC,MAAM,CACrD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAC1B,CAAA;IAED,OAAO;;;;EAIP,qBAAqB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;IAerE,uBAAuB;SACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,WAAW,WAAW,CAAC,CAAC,SAAS,GAAG,CAAC;SAC5D,IAAI,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;MAyBX,uBAAuB;SACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,WAAW,gBAAgB,CAAC;SACxE,IAAI,CAAC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkDnB,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;CACxD,CAAA;AACD,CAAC,CAAA"}
@@ -96,27 +96,26 @@ export class PhpClient {
96
96
  }),
97
97
  this.client_name === "ActionAttempts"
98
98
  ? [
99
- " public function poll_until_ready(string $action_attempt_id): ActionAttempt",
99
+ " public function poll_until_ready(string $action_attempt_id, float $timeout = 20.0): ActionAttempt",
100
100
  " {",
101
101
  " $seam = $this->seam;",
102
102
  " $time_waiting = 0.0;",
103
+ " $polling_interval = 0.4;",
103
104
  " $action_attempt = $seam->action_attempts->get($action_attempt_id);",
104
105
  "",
105
- ' while ($action_attempt->status == "pending") {',
106
+ " while ($action_attempt->status == 'pending') {",
106
107
  " $action_attempt = $seam->action_attempts->get(",
107
108
  " $action_attempt->action_attempt_id",
108
109
  " );",
109
- " if ($time_waiting > 20.0) {",
110
- ' throw new Exception("Timed out waiting for action attempt to be ready");',
110
+ " if ($time_waiting > $timeout) {",
111
+ " throw new ActionAttemptTimeoutError($action_attempt, $timeout);",
111
112
  " }",
112
- " $time_waiting += 0.4;",
113
- " usleep(400000); // sleep for 0.4 seconds",
113
+ " $time_waiting += $polling_interval;",
114
+ " usleep($polling_interval * 1000000);",
114
115
  " }",
115
116
  "",
116
- ' if ($action_attempt->status == "failed") {',
117
- " throw new Exception(",
118
- ' "Action Attempt failed: " . $action_attempt->error->message',
119
- " );",
117
+ " if ($action_attempt->status == 'error') {",
118
+ " throw new ActionAttemptFailedError($action_attempt);",
120
119
  " }",
121
120
  "",
122
121
  " return $action_attempt;",
@@ -1 +1 @@
1
- {"version":3,"file":"php-client.js","sourceRoot":"","sources":["../../../src/lib/generate-php-sdk/utils/php-client.ts"],"names":[],"mappings":"AAuBA,MAAM,OAAO,SAAS;IAGpB,YACS,WAAuB,EACvB,SAAoB,EACpB,gBAAyB,EACzB,wBAA+C;QAH/C,gBAAW,GAAX,WAAW,CAAY;QACvB,cAAS,GAAT,SAAS,CAAW;QACpB,qBAAgB,GAAhB,gBAAgB,CAAS;QACzB,6BAAwB,GAAxB,wBAAwB,CAAuB;QANxD,YAAO,GAAsB,EAAE,CAAA;QAQ7B,IAAI,CAAC,OAAO,GAAG,EAAE,CAAA;IACnB,CAAC;IAED,SAAS,CAAC,MAAuB;QAC/B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC3B,CAAC;IAED,SAAS;QACP,MAAM,iBAAiB,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,GAAG,CAAC,CAAA;QAElE,OAAO;YACL,SAAS,IAAI,CAAC,WAAW,QAAQ;YACjC,GAAG;YACH,6BAA6B;YAC7B,KACE,iBAAiB;gBACf,CAAC,CAAC,IAAI,CAAC,wBAAwB;qBAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC,WAAW,WAAW,CAAC,CAAC,SAAS,GAAG,CAAC;qBAC9D,IAAI,CAAC,IAAI,CAAC;gBACf,CAAC,CAAC,EACN,EAAE;YACF,iDAAiD;YACjD,KAAK;YACL,0BAA0B;YAC1B,OACE,iBAAiB;gBACf,CAAC,CAAC,IAAI,CAAC,wBAAwB;qBAC1B,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CACJ,UAAU,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,WAAW,gBAAgB,CAC/D;qBACA,IAAI,CAAC,IAAI,CAAC;gBACf,CAAC,CAAC,EACN,EAAE;YACF,KAAK;YACL,EAAE;YACF,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CACjB,CAAC,EACC,WAAW,EACX,IAAI,EACJ,UAAU,EACV,eAAe,EACf,WAAW,EACX,iBAAiB,GAClB,EAAE,EAAE;gBACH,MAAM,8BAA8B,GAClC,eAAe,KAAK,eAAe;oBACnC,IAAI,CAAC,WAAW,KAAK,gBAAgB,CAAA;gBACvC,MAAM,kBAAkB,GAAG,iBAAiB;oBAC1C,CAAC,CAAC,OAAO;oBACT,CAAC,CAAC,eAAe;wBACjB,CAAC,CAAC,eAAe;wBACjB,CAAC,CAAC,MAAM,CAAA;gBAEV,OAAO;oBACL,EAAE;oBACF,qBAAqB,WAAW,GAAG;oBACnC,OAAO,UAAU;yBACd,IAAI,CACH,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;wBACxC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAC3C;yBACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;yBAChE,MAAM,CACL,8BAA8B;wBAC5B,CAAC,CAAC,CAAC,sCAAsC,CAAC;wBAC1C,CAAC,CAAC,EAAE,CACP;yBACA,IAAI,CAAC,SAAS,CAAC,EAAE;oBACpB,QAAQ,kBAAkB,IAAI;oBAE9B,4BAA4B;oBAC5B,EAAE;oBAEF,GAAG,UAAU;yBACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACT;wBACE,YAAY,CAAC,CAAC,IAAI,cAAc;wBAChC,2BAA2B,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,IAAI,GAAG;wBACnD,OAAO;qBACR,CAAC,IAAI,CAAC,IAAI,CAAC,CACb;yBACA,IAAI,CAAC,IAAI,CAAC,EAAE;oBACf,EAAE;oBAEF,OAAO,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,uBAAuB;oBAC9D,eAAe;oBACf,UAAU,IAAI,IAAI;oBAClB,+BAA+B;oBAC/B,SAAS,WAAW,CAAC,CAAC,CAAC,kBAAkB,WAAW,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC/D,QAAQ;oBACR,EAAE;oBAEF,8BAA8B;wBAC5B,CAAC,CAAC;4BACE,sCAAsC;4BACtC,gBAAgB,eAAe,oBAAoB;4BACnD,OAAO;yBACR,CAAC,IAAI,CAAC,IAAI,CAAC;wBACd,CAAC,CAAC,EAAE;oBACN,EAAE;oBACF,8BAA8B;wBAC5B,CAAC,CAAC;4BACE,uEAAuE;4BACvE,+BAA+B;4BAC/B,QAAQ;4BACR,EAAE;4BACF,6BAA6B;yBAC9B,CAAC,IAAI,CAAC,IAAI,CAAC;wBACd,CAAC,CAAC,EAAE;oBACN,EAAE;oBAEF,eAAe,IAAI,CAAC,8BAA8B;wBAChD,CAAC,CAAC,cACE,iBAAiB;4BACf,CAAC,CAAC,wBAAwB,eAAe,yBAAyB;4BAClE,CAAC,CAAC,GAAG,eAAe,oBACxB,EAAE;wBACJ,CAAC,CAAC,EAAE;oBACN,KAAK;iBACN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACd,CAAC,CACF;YACD,IAAI,CAAC,WAAW,KAAK,gBAAgB;gBACnC,CAAC,CAAC;oBACE,8EAA8E;oBAC9E,KAAK;oBACL,0BAA0B;oBAC1B,0BAA0B;oBAC1B,wEAAwE;oBACxE,EAAE;oBACF,oDAAoD;oBACpD,sDAAsD;oBACtD,4CAA4C;oBAC5C,UAAU;oBACV,mCAAmC;oBACnC,kFAAkF;oBAClF,SAAS;oBACT,6BAA6B;oBAC7B,gDAAgD;oBAChD,OAAO;oBACP,EAAE;oBACF,gDAAgD;oBAChD,4BAA4B;oBAC5B,qEAAqE;oBACrE,UAAU;oBACV,OAAO;oBACP,EAAE;oBACF,6BAA6B;oBAC7B,KAAK;iBACN,CAAC,IAAI,CAAC,IAAI,CAAC;gBACd,CAAC,CAAC,EAAE;YACN,GAAG;SACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"php-client.js","sourceRoot":"","sources":["../../../src/lib/generate-php-sdk/utils/php-client.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ export const getParameterAndResponseSchema = (route) => {
4
4
  const response_schema = route.post.responses["200"]?.content?.["application/json"]?.schema;
5
5
  const nullable = !(response_schema &&
6
6
  "required" in response_schema &&
7
- response_schema.required?.includes(route.post["x-fern-sdk-return-value"]));
7
+ response_schema.required?.includes(route.post["x-response-key"] ?? ""));
8
8
  if (!response_schema) {
9
9
  return { nullable };
10
10
  }
@@ -19,7 +19,7 @@ export const getParameterAndResponseSchema = (route) => {
19
19
  return { nullable };
20
20
  }
21
21
  const parameter_schema = processParameterSchema(route.post.requestBody.content["application/json"].schema);
22
- const res_return_schema = response_schema.properties[route.post["x-fern-sdk-return-value"]];
22
+ const res_return_schema = response_schema.properties[route.post["x-response-key"] ?? ""];
23
23
  const response_obj_ref = res_return_schema?.$ref;
24
24
  const response_arr_ref = res_return_schema?.items?.$ref;
25
25
  if (!response_obj_ref && !response_arr_ref) {
@@ -1 +1 @@
1
- {"version":3,"file":"get-parameter-and-response-schema.js","sourceRoot":"","sources":["../../src/lib/openapi/get-parameter-and-response-schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,8BAA8B,EAAE,MAAM,4CAA4C,CAAA;AAE3F,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,KAAY,EAAE,EAAE;IAC5D,MAAM,eAAe,GACnB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAEpE,MAAM,QAAQ,GAAG,CAAC,CAChB,eAAe;QACf,UAAU,IAAI,eAAe;QAC7B,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAC1E,CAAA;IAED,IAAI,CAAC,eAAe,EAAE;QACpB,OAAO,EAAE,QAAQ,EAAE,CAAA;KACpB;IAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE;QAC3B,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG;YACvB,OAAO,EAAE;gBACP,kBAAkB,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE;aACnE;SACK,CAAA;KACT;IAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,kBAAkB,CAAC,EAAE;QACzD,OAAO,EAAE,QAAQ,EAAE,CAAA;KACpB;IAED,MAAM,gBAAgB,GAAG,sBAAsB,CAC7C,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAC1D,CAAA;IAED,MAAM,iBAAiB,GAAI,eAAuB,CAAC,UAAU,CAC3D,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CACtC,CAAA;IAED,MAAM,gBAAgB,GAAG,iBAAiB,EAAE,IAAI,CAAA;IAChD,MAAM,gBAAgB,GAAG,iBAAiB,EAAE,KAAK,EAAE,IAAI,CAAA;IAEvD,IAAI,CAAC,gBAAgB,IAAI,CAAC,gBAAgB,EAAE;QAC1C,OAAO;YACL,iBAAiB,EAAE,SAAS;YAC5B,iBAAiB,EAAE,SAAS;YAC5B,gBAAgB;YAChB,QAAQ;YACR,eAAe;SAChB,CAAA;KACF;SAAM;QACL,OAAO;YACL,iBAAiB,EAAE,gBAAgB,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE;YACtD,iBAAiB,EAAE,gBAAgB,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE;YACtD,gBAAgB;YAChB,iBAAiB,EAAE,iBAA0C;YAC7D,QAAQ;YACR,eAAe;SAChB,CAAA;KACF;AACH,CAAC,CAAA;AAED,SAAS,sBAAsB,CAC7B,MAOK;IAEL,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;IAEjD,KAAK,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CACpD,gBAAgB,CAAC,UAAU,CAC5B,EAAE;QACD,IAAI,OAAO,IAAI,WAAW,IAAI,OAAO,IAAI,WAAW,EAAE;YACpD,gBAAgB,CAAC,UAAU,CAAC,UAAU,CAAC;gBACrC,8BAA8B,CAAC,WAAW,CAAC,CAAA;SAC9C;KACF;IAED,OAAO,gBAAgB,CAAA;AACzB,CAAC"}
1
+ {"version":3,"file":"get-parameter-and-response-schema.js","sourceRoot":"","sources":["../../src/lib/openapi/get-parameter-and-response-schema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,8BAA8B,EAAE,MAAM,4CAA4C,CAAA;AAE3F,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,KAAY,EAAE,EAAE;IAC5D,MAAM,eAAe,GACnB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAEpE,MAAM,QAAQ,GAAG,CAAC,CAChB,eAAe;QACf,UAAU,IAAI,eAAe;QAC7B,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CACvE,CAAA;IAED,IAAI,CAAC,eAAe,EAAE;QACpB,OAAO,EAAE,QAAQ,EAAE,CAAA;KACpB;IAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE;QAC3B,KAAK,CAAC,IAAI,CAAC,WAAW,GAAG;YACvB,OAAO,EAAE;gBACP,kBAAkB,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE;aACnE;SACK,CAAA;KACT;IAED,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,kBAAkB,CAAC,EAAE;QACzD,OAAO,EAAE,QAAQ,EAAE,CAAA;KACpB;IAED,MAAM,gBAAgB,GAAG,sBAAsB,CAC7C,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAC1D,CAAA;IAED,MAAM,iBAAiB,GAAI,eAAuB,CAAC,UAAU,CAC3D,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CACnC,CAAA;IAED,MAAM,gBAAgB,GAAG,iBAAiB,EAAE,IAAI,CAAA;IAChD,MAAM,gBAAgB,GAAG,iBAAiB,EAAE,KAAK,EAAE,IAAI,CAAA;IAEvD,IAAI,CAAC,gBAAgB,IAAI,CAAC,gBAAgB,EAAE;QAC1C,OAAO;YACL,iBAAiB,EAAE,SAAS;YAC5B,iBAAiB,EAAE,SAAS;YAC5B,gBAAgB;YAChB,QAAQ;YACR,eAAe;SAChB,CAAA;KACF;SAAM;QACL,OAAO;YACL,iBAAiB,EAAE,gBAAgB,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE;YACtD,iBAAiB,EAAE,gBAAgB,EAAE,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE;YACtD,gBAAgB;YAChB,iBAAiB,EAAE,iBAA0C;YAC7D,QAAQ;YACR,eAAe;SAChB,CAAA;KACF;AACH,CAAC,CAAA;AAED,SAAS,sBAAsB,CAC7B,MAOK;IAEL,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAA;IAEjD,KAAK,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CACpD,gBAAgB,CAAC,UAAU,CAC5B,EAAE;QACD,IAAI,OAAO,IAAI,WAAW,IAAI,OAAO,IAAI,WAAW,EAAE;YACpD,gBAAgB,CAAC,UAAU,CAAC,UAAU,CAAC;gBACrC,8BAA8B,CAAC,WAAW,CAAC,CAAA;SAC9C;KACF;IAED,OAAO,gBAAgB,CAAA;AACzB,CAAC"}
package/lib/types.d.ts CHANGED
@@ -88,6 +88,7 @@ export type Route = {
88
88
  "x-fern-sdk-group-name": string[];
89
89
  "x-fern-sdk-method-name": string;
90
90
  "x-fern-sdk-return-value": string;
91
+ "x-response-key": string | null;
91
92
  responses: {
92
93
  200: RequestResponseDef;
93
94
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@seamapi/nextlove-sdk-generator",
3
- "version": "1.15.1",
3
+ "version": "1.15.3",
4
4
  "description": "Utilities for building NextLove SDK Generators",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -73,9 +73,10 @@ export const generateCSharpSDK = async (options: CSharpSDKOptions = {}) => {
73
73
  if (
74
74
  !response_schema ||
75
75
  "oneOf" in response_schema ||
76
- Object.keys(response_schema.properties).filter(
76
+ (Object.keys(response_schema.properties).filter(
77
77
  (k) => k.toLowerCase() !== "ok"
78
- ).length > 0
78
+ ).length > 0 &&
79
+ route.post["x-response-key"] !== null)
79
80
  ) {
80
81
  console.log(
81
82
  `No response object/array ref for "${route.path}", skipping`
@@ -22,6 +22,11 @@ use Seam\\Utils\\PackageVersion;
22
22
 
23
23
  use GuzzleHttp\\Client as HTTPClient;
24
24
  use \\Exception as Exception;
25
+ use Seam\\HttpApiError;
26
+ use Seam\\HttpUnauthorizedError;
27
+ use Seam\\HttpInvalidInputError;
28
+ use Seam\\ActionAttemptFailedError;
29
+ use Seam\\ActionAttemptTimeoutError;
25
30
 
26
31
  define('LTS_VERSION', '1.0.0');
27
32
 
@@ -70,12 +75,12 @@ class SeamClient
70
75
  "json" => $json,
71
76
  "query" => $query,
72
77
  ];
73
- $options = array_filter($options, fn ($option) => $option !== null);
78
+ $options = array_filter($options, fn($option) => $option !== null);
74
79
 
75
80
  // TODO handle request errors
76
81
  $response = $this->client->request($method, $path, $options);
77
82
  $status_code = $response->getStatusCode();
78
- $request_id = $response->getHeaderLine('seam-request-id');
83
+ $request_id = $response->getHeaderLine("seam-request-id");
79
84
 
80
85
  $res_json = null;
81
86
  try {
@@ -83,44 +88,26 @@ class SeamClient
83
88
  } catch (Exception $ignoreError) {
84
89
  }
85
90
 
86
- if (($res_json->error ?? null) != null) {
87
- throw new Exception(
88
- "Error Calling \\"" .
89
- $method .
90
- " " .
91
- $path .
92
- "\\" : " .
93
- ($res_json->error->type ?? "") .
94
- ": " .
95
- $res_json->error->message .
96
- " [Request ID: " . $request_id . "]"
97
- );
98
- }
99
-
100
91
  if ($status_code >= 400) {
101
- $error_message = $response->getReasonPhrase();
92
+ if ($status_code === 401) {
93
+ throw new HttpUnauthorizedError($request_id);
94
+ }
102
95
 
103
- throw new Exception(
104
- "HTTP Error: " . $error_message . " [" . $status_code . "] " . $method . " " . $path .
105
- " [Request ID: " . $request_id . "]"
106
- );
107
- }
96
+ if (($res_json->error ?? null) != null) {
97
+ if ($res_json->error->type === 'invalid_input') {
98
+ throw new HttpInvalidInputError($res_json->error, $status_code, $request_id);
99
+ }
108
100
 
109
- if ($inner_object) {
110
- if (!is_array($res_json->$inner_object) && ($res_json->$inner_object ?? null) == null) {
111
- throw new Exception(
112
- 'Missing Inner Object "' .
113
- $inner_object .
114
- '" for ' .
115
- $method .
116
- " " .
117
- $path .
118
- " [Request ID: " . $request_id . "]"
119
- );
101
+ throw new HttpApiError($res_json->error, $status_code, $request_id);
120
102
  }
121
- return $res_json->$inner_object;
103
+
104
+ throw \GuzzleHttp\Exception\RequestException::create(
105
+ new \GuzzleHttp\Psr7\Request($method, $path),
106
+ $response
107
+ );
122
108
  }
123
- return $res_json;
109
+
110
+ return $inner_object ? $res_json->$inner_object : $res_json;
124
111
  }
125
112
  }
126
113
 
@@ -156,27 +156,26 @@ export class PhpClient {
156
156
  ),
157
157
  this.client_name === "ActionAttempts"
158
158
  ? [
159
- " public function poll_until_ready(string $action_attempt_id): ActionAttempt",
159
+ " public function poll_until_ready(string $action_attempt_id, float $timeout = 20.0): ActionAttempt",
160
160
  " {",
161
161
  " $seam = $this->seam;",
162
162
  " $time_waiting = 0.0;",
163
+ " $polling_interval = 0.4;",
163
164
  " $action_attempt = $seam->action_attempts->get($action_attempt_id);",
164
165
  "",
165
- ' while ($action_attempt->status == "pending") {',
166
+ " while ($action_attempt->status == 'pending') {",
166
167
  " $action_attempt = $seam->action_attempts->get(",
167
168
  " $action_attempt->action_attempt_id",
168
169
  " );",
169
- " if ($time_waiting > 20.0) {",
170
- ' throw new Exception("Timed out waiting for action attempt to be ready");',
170
+ " if ($time_waiting > $timeout) {",
171
+ " throw new ActionAttemptTimeoutError($action_attempt, $timeout);",
171
172
  " }",
172
- " $time_waiting += 0.4;",
173
- " usleep(400000); // sleep for 0.4 seconds",
173
+ " $time_waiting += $polling_interval;",
174
+ " usleep($polling_interval * 1000000);",
174
175
  " }",
175
176
  "",
176
- ' if ($action_attempt->status == "failed") {',
177
- " throw new Exception(",
178
- ' "Action Attempt failed: " . $action_attempt->error->message',
179
- " );",
177
+ " if ($action_attempt->status == 'error') {",
178
+ " throw new ActionAttemptFailedError($action_attempt);",
180
179
  " }",
181
180
  "",
182
181
  " return $action_attempt;",
@@ -9,7 +9,7 @@ export const getParameterAndResponseSchema = (route: Route) => {
9
9
  const nullable = !(
10
10
  response_schema &&
11
11
  "required" in response_schema &&
12
- response_schema.required?.includes(route.post["x-fern-sdk-return-value"])
12
+ response_schema.required?.includes(route.post["x-response-key"] ?? "")
13
13
  )
14
14
 
15
15
  if (!response_schema) {
@@ -33,7 +33,7 @@ export const getParameterAndResponseSchema = (route: Route) => {
33
33
  )
34
34
 
35
35
  const res_return_schema = (response_schema as any).properties[
36
- route.post["x-fern-sdk-return-value"]
36
+ route.post["x-response-key"] ?? ""
37
37
  ]
38
38
 
39
39
  const response_obj_ref = res_return_schema?.$ref
package/src/lib/types.ts CHANGED
@@ -95,6 +95,7 @@ export type Route = {
95
95
  "x-fern-sdk-group-name": string[]
96
96
  "x-fern-sdk-method-name": string
97
97
  "x-fern-sdk-return-value": string
98
+ "x-response-key": string | null
98
99
  responses: { 200: RequestResponseDef }
99
100
  requestBody: RequestResponseDef
100
101
  }