@seamapi/nextlove-sdk-generator 1.5.2 → 1.5.4

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 (75) hide show
  1. package/lib/endpoints-returning-deprecated-action-attempt.d.ts +2 -0
  2. package/lib/endpoints-returning-deprecated-action-attempt.js +10 -0
  3. package/lib/endpoints-returning-deprecated-action-attempt.js.map +1 -0
  4. package/lib/generate-php-sdk/generate-php-sdk.js +4 -18
  5. package/lib/generate-php-sdk/generate-php-sdk.js.map +1 -1
  6. package/lib/generate-php-sdk/utils/generate-resource-object-class.js +4 -0
  7. package/lib/generate-php-sdk/utils/generate-resource-object-class.js.map +1 -1
  8. package/lib/generate-php-sdk/utils/get-php-type.d.ts +1 -1
  9. package/lib/generate-php-sdk/utils/get-php-type.js +1 -1
  10. package/lib/generate-php-sdk/utils/get-php-type.js.map +1 -1
  11. package/lib/generate-php-sdk/utils/php-client.d.ts +3 -3
  12. package/lib/generate-php-sdk/utils/php-client.js.map +1 -1
  13. package/lib/generate-python-sdk/class-file.d.ts +15 -2
  14. package/lib/generate-python-sdk/class-file.js +140 -21
  15. package/lib/generate-python-sdk/class-file.js.map +1 -1
  16. package/lib/generate-python-sdk/generate-python-sdk.js +65 -17
  17. package/lib/generate-python-sdk/generate-python-sdk.js.map +1 -1
  18. package/lib/generate-python-sdk/map-python-type.d.ts +1 -1
  19. package/lib/generate-python-sdk/map-python-type.js +6 -2
  20. package/lib/generate-python-sdk/map-python-type.js.map +1 -1
  21. package/lib/generate-python-sdk/templates/.gitignore.template.d.ts +2 -0
  22. package/lib/generate-python-sdk/templates/.gitignore.template.js +12 -0
  23. package/lib/generate-python-sdk/templates/.gitignore.template.js.map +1 -0
  24. package/lib/generate-python-sdk/templates/__init__.py.template.d.ts +2 -0
  25. package/lib/generate-python-sdk/templates/__init__.py.template.js +7 -0
  26. package/lib/generate-python-sdk/templates/__init__.py.template.js.map +1 -0
  27. package/lib/generate-python-sdk/templates/conftest.py.template.js +75 -6
  28. package/lib/generate-python-sdk/templates/conftest.py.template.js.map +1 -1
  29. package/lib/generate-python-sdk/templates/prebuild.py.template.d.ts +2 -0
  30. package/lib/generate-python-sdk/templates/prebuild.py.template.js +13 -0
  31. package/lib/generate-python-sdk/templates/prebuild.py.template.js.map +1 -0
  32. package/lib/generate-python-sdk/templates/pyproject.toml.template.js +6 -2
  33. package/lib/generate-python-sdk/templates/pyproject.toml.template.js.map +1 -1
  34. package/lib/generate-python-sdk/templates/seam.py.template.js +90 -14
  35. package/lib/generate-python-sdk/templates/seam.py.template.js.map +1 -1
  36. package/lib/generate-python-sdk/templates/snippets/abstract-seam.template.js +12 -5
  37. package/lib/generate-python-sdk/templates/snippets/abstract-seam.template.js.map +1 -1
  38. package/lib/generate-python-sdk/templates/snippets/resource-dataclass.template.js +6 -1
  39. package/lib/generate-python-sdk/templates/snippets/resource-dataclass.template.js.map +1 -1
  40. package/lib/generate-python-sdk/templates/snippets/seam-api-exception-class.template.d.ts +2 -0
  41. package/lib/generate-python-sdk/templates/snippets/seam-api-exception-class.template.js +17 -0
  42. package/lib/generate-python-sdk/templates/snippets/seam-api-exception-class.template.js.map +1 -0
  43. package/lib/generate-python-sdk/templates/utils/get_sentry_dsn.py.template.d.ts +2 -0
  44. package/lib/generate-python-sdk/templates/utils/get_sentry_dsn.py.template.js +6 -0
  45. package/lib/generate-python-sdk/templates/utils/get_sentry_dsn.py.template.js.map +1 -0
  46. package/lib/generate-python-sdk/templates/utils/report_error.py.template.d.ts +2 -0
  47. package/lib/generate-python-sdk/templates/utils/report_error.py.template.js +17 -0
  48. package/lib/generate-python-sdk/templates/utils/report_error.py.template.js.map +1 -0
  49. package/lib/openapi/get-parameter-and-response-schema.js +9 -9
  50. package/lib/openapi/get-parameter-and-response-schema.js.map +1 -1
  51. package/lib/openapi/map-parent-to-children-resource.d.ts +3 -0
  52. package/lib/openapi/map-parent-to-children-resource.js +17 -0
  53. package/lib/openapi/map-parent-to-children-resource.js.map +1 -0
  54. package/package.json +1 -1
  55. package/src/lib/endpoints-returning-deprecated-action-attempt.ts +10 -0
  56. package/src/lib/generate-php-sdk/generate-php-sdk.ts +6 -30
  57. package/src/lib/generate-php-sdk/utils/generate-resource-object-class.ts +5 -0
  58. package/src/lib/generate-php-sdk/utils/get-php-type.ts +1 -1
  59. package/src/lib/generate-php-sdk/utils/php-client.ts +2 -2
  60. package/src/lib/generate-python-sdk/class-file.ts +232 -49
  61. package/src/lib/generate-python-sdk/generate-python-sdk.ts +96 -23
  62. package/src/lib/generate-python-sdk/map-python-type.ts +9 -3
  63. package/src/lib/generate-python-sdk/templates/.gitignore.template.ts +11 -0
  64. package/src/lib/generate-python-sdk/templates/__init__.py.template.ts +6 -0
  65. package/src/lib/generate-python-sdk/templates/conftest.py.template.ts +75 -6
  66. package/src/lib/generate-python-sdk/templates/prebuild.py.template.ts +12 -0
  67. package/src/lib/generate-python-sdk/templates/pyproject.toml.template.ts +6 -2
  68. package/src/lib/generate-python-sdk/templates/seam.py.template.ts +90 -14
  69. package/src/lib/generate-python-sdk/templates/snippets/abstract-seam.template.ts +12 -5
  70. package/src/lib/generate-python-sdk/templates/snippets/resource-dataclass.template.ts +9 -1
  71. package/src/lib/generate-python-sdk/templates/snippets/seam-api-exception-class.template.ts +16 -0
  72. package/src/lib/generate-python-sdk/templates/utils/get_sentry_dsn.py.template.ts +5 -0
  73. package/src/lib/generate-python-sdk/templates/utils/report_error.py.template.ts +16 -0
  74. package/src/lib/openapi/get-parameter-and-response-schema.ts +8 -11
  75. package/src/lib/openapi/map-parent-to-children-resource.ts +28 -0
@@ -0,0 +1,2 @@
1
+ export declare const endpoints_returning_deprecated_action_attempt: string[];
2
+ export default endpoints_returning_deprecated_action_attempt;
@@ -0,0 +1,10 @@
1
+ export const endpoints_returning_deprecated_action_attempt = [
2
+ "/access_codes/delete",
3
+ "/access_codes/unmanaged/delete",
4
+ "/access_codes/update",
5
+ "/noise_sensors/noise_thresholds/delete",
6
+ "/noise_sensors/noise_thresholds/update",
7
+ "/thermostats/climate_setting_schedules/update",
8
+ ];
9
+ export default endpoints_returning_deprecated_action_attempt;
10
+ //# sourceMappingURL=endpoints-returning-deprecated-action-attempt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"endpoints-returning-deprecated-action-attempt.js","sourceRoot":"","sources":["../src/lib/endpoints-returning-deprecated-action-attempt.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,6CAA6C,GAAG;IAC3D,sBAAsB;IACtB,gCAAgC;IAChC,sBAAsB;IACtB,wCAAwC;IACxC,wCAAwC;IACxC,+CAA+C;CAChD,CAAA;AAED,eAAe,6CAA6C,CAAA"}
@@ -13,6 +13,7 @@ import gitignoreTemplate from "./templates/gitignore.template.js";
13
13
  import envExampleTemplate from "./templates/env.example.template.js";
14
14
  import testFixtureTemplate from "./templates/test-fixture.template.js";
15
15
  import smokeTestTemplate from "./templates/smoke-test.template.js";
16
+ import mapParentToChildrenResources from "../../lib/openapi/map-parent-to-children-resource.js";
16
17
  export const generatePhpSDK = async () => {
17
18
  const openapi = await axios
18
19
  .get("https://connect.getseam.com/openapi.json")
@@ -51,29 +52,14 @@ export const generatePhpSDK = async () => {
51
52
  });
52
53
  }
53
54
  }
54
- const parent_resource_to_children_map = routes.reduce((acc, route) => {
55
- if (!route.post?.["x-fern-sdk-group-name"])
56
- return acc;
57
- const [parent_resource_name, child_resource_name] = route.post["x-fern-sdk-group-name"];
58
- // Making TS happy
59
- if (!parent_resource_name)
60
- return acc;
61
- if (!acc[parent_resource_name]) {
62
- acc[parent_resource_name] = [];
63
- }
64
- if (child_resource_name &&
65
- !acc[parent_resource_name].includes(child_resource_name)) {
66
- acc[parent_resource_name].push(child_resource_name);
67
- }
68
- return acc;
69
- }, {});
55
+ const parent_to_children_resources_map = mapParentToChildrenResources(routes);
70
56
  const clients = {};
71
57
  const processClient = (resource_name) => {
72
- const child_client_identifiers = (parent_resource_to_children_map[resource_name] ?? []).map((child_resource) => ({
58
+ const child_client_identifiers = (parent_to_children_resources_map[resource_name] ?? []).map((child_resource) => ({
73
59
  client_name: pascalCase(`${resource_name} ${child_resource}`),
74
60
  namespace: child_resource,
75
61
  }));
76
- const is_parent_client = Object.keys(parent_resource_to_children_map).includes(resource_name);
62
+ const is_parent_client = Object.keys(parent_to_children_resources_map).includes(resource_name);
77
63
  const pascal_resource_name = pascalCase(resource_name);
78
64
  clients[pascal_resource_name] = new PhpClient(pascal_resource_name, resource_name, is_parent_client, child_client_identifiers);
79
65
  };
@@ -1 +1 @@
1
- {"version":3,"file":"generate-php-sdk.js","sourceRoot":"","sources":["../../src/lib/generate-php-sdk/generate-php-sdk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-php-sdk.js","sourceRoot":"","sources":["../../src/lib/generate-php-sdk/generate-php-sdk.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,6BAA6B,EAAE,MAAM,cAAc,CAAA;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAA;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,EAAE,SAAS,EAA4B,MAAM,uBAAuB,CAAA;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AACpE,OAAO,EAAE,gCAAgC,EAAE,MAAM,iDAAiD,CAAA;AAClG,OAAO,gBAAgB,MAAM,mCAAmC,CAAA;AAChE,OAAO,mBAAmB,MAAM,sCAAsC,CAAA;AACtE,OAAO,oBAAoB,MAAM,uCAAuC,CAAA;AACxE,OAAO,iBAAiB,MAAM,mCAAmC,CAAA;AACjE,OAAO,kBAAkB,MAAM,qCAAqC,CAAA;AACpE,OAAO,mBAAmB,MAAM,sCAAsC,CAAA;AACtE,OAAO,iBAAiB,MAAM,oCAAoC,CAAA;AAClE,OAAO,4BAA4B,MAAM,gDAAgD,CAAA;AAEzF,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,IAAI,EAAE;IACvC,MAAM,OAAO,GAAkB,MAAM,KAAK;SACvC,GAAG,CAAC,0CAA0C,CAAC;SAC/C,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC1B,MAAM,MAAM,GAAY,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACxE,IAAI;QACJ,GAAG,CAAC;KACL,CAAC,CAAC,CAAA;IAEH,MAAM,EAAE,GAAQ,EAAE,CAAA;IAElB,EAAE,CAAC,WAAW,CAAC,GAAG,gBAAgB,EAAE,CAAA;IACpC,EAAE,CAAC,cAAc,CAAC,GAAG,mBAAmB,EAAE,CAAA;IAC1C,EAAE,CAAC,eAAe,CAAC,GAAG,oBAAoB,EAAE,CAAA;IAC5C,EAAE,CAAC,YAAY,CAAC,GAAG,iBAAiB,EAAE,CAAA;IACtC,EAAE,CAAC,cAAc,CAAC,GAAG,kBAAkB,EAAE,CAAA;IACzC,EAAE,CAAC,mBAAmB,CAAC,GAAG,mBAAmB,EAAE,CAAA;IAC/C,EAAE,CAAC,qBAAqB,CAAC,GAAG,iBAAiB,EAAE,CAAA;IAE/C,MAAM,0BAA0B,GAAa,EAAE,CAAA;IAC/C,KAAK,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAChD,OAAO,CAAC,UAAU,CAAC,OAAO,CAC3B,EAAE;QACD,0BAA0B,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAA;QAExD,MAAM,qCAAqC,GACzC,gCAAgC,CAAC;YAC/B,WAAW;YACX,WAAW,EAAE,MAAM;SACpB,CAAC,CAAA;QAEJ,KAAK,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,uBAAuB,EAAE,IAAI,MAAM,CAAC,MAAM,CACvE,qCAAqC,CACtC,EAAE;YACD,EAAE,CAAC,eAAe,IAAI,MAAM,CAAC,GAAG,2BAA2B,CAAC;gBAC1D,aAAa,EAAE,IAAI;gBACnB,mBAAmB;gBACjB,0EAA0E;gBAC1E,IAAI,KAAK,eAAe;oBACtB,CAAC,CAAC;wBACE,GAAG,UAAU;wBACb,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE;qBAC3C;oBACH,CAAC,CAAC,UAAU;gBAChB,uBAAuB;aACxB,CAAC,CAAA;SACH;KACF;IAED,MAAM,gCAAgC,GAAG,4BAA4B,CAAC,MAAM,CAAC,CAAA;IAC7E,MAAM,OAAO,GAA8B,EAAE,CAAA;IAE7C,MAAM,aAAa,GAAG,CAAC,aAAqB,EAAE,EAAE;QAC9C,MAAM,wBAAwB,GAA0B,CACtD,gCAAgC,CAAC,aAAa,CAAC,IAAI,EAAE,CACtD,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;YACzB,WAAW,EAAE,UAAU,CAAC,GAAG,aAAa,IAAI,cAAc,EAAE,CAAC;YAC7D,SAAS,EAAE,cAAc;SAC1B,CAAC,CAAC,CAAA;QACH,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAClC,gCAAgC,CACjC,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAA;QACzB,MAAM,oBAAoB,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA;QAEtD,OAAO,CAAC,oBAAoB,CAAC,GAAG,IAAI,SAAS,CAC3C,oBAAoB,EACpB,aAAa,EACb,gBAAgB,EAChB,wBAAwB,CACzB,CAAA;IACH,CAAC,CAAA;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;QAC1B,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC;YAAE,SAAQ;QAEjE,MAAM,WAAW,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAA;QAC5D,MAAM,CAAC,aAAa,CAAC,GAAG,WAAW,CAAA;QACnC,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACvC,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC,CAAA;QAEzC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;YACzB,aAAa,CAAC,SAAS,CAAC,CAAA;SACzB;QAED;;;UAGE;QACF,IAAI,aAAa,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,EAAE;YACxD,aAAa,CAAC,aAAa,CAAC,CAAA;SAC7B;QAED,MAAM,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;QAEnC,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,CAAC,IAAI,CAAC,kBAAkB,WAAW,aAAa,CAAC,CAAA;YACxD,SAAQ;SACT;QAED,MAAM,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,GAC9D,6BAA6B,CAAC,KAAK,CAAC,CAAA;QAEtC,IAAI,CAAC,gBAAgB,EAAE;YACrB,OAAO,CAAC,IAAI,CAAC,4BAA4B,KAAK,CAAC,IAAI,aAAa,CAAC,CAAA;YACjE,SAAQ;SACT;QAED,MAAM,eAAe,GAAG,iBAAiB,IAAI,iBAAiB,IAAI,EAAE,CAAA;QAEpE,MAAM,CAAC,SAAS,CAAC;YACf,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC;YACjD,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC;iBACpD,MAAM,CACL,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,EAAE,EAAE,CACjB,MAAM,IAAI,SAAS;gBACnB,CAAC,OAAO,IAAI,SAAS,IAAI,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CACjE;iBACA,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,SAAS,CAAM,EAAE,EAAE,CAAC,CAAC;gBACtC,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,UAAU,CAAC,SAAS,EAAE,IAAI,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC5D,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC;gBACzD,QAAQ,EACN,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,KAAK,KAAK;oBAC9C,UAAU,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,KAAK;oBAC1D,CAAC,CAAC,CAAC;oBACH,CAAC,CAAC,SAAS;aAChB,CAAC,CAAC;YACL,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC;YAClD,eAAe,EAAE,UAAU,CAAC,eAAe,CAAC;YAC5C,iBAAiB,EAAE,OAAO,CAAC,iBAAiB,CAAC;SAC9C,CAAC,CAAA;KACH;IAED,EAAE,CAAC,oBAAoB,CAAC,GAAG,kBAAkB,CAAC;QAC5C,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;QACxC,qBAAqB,EAAE,0BAA0B;KAClD,CAAC,CAAA;IAEF,OAAO,EAAE,CAAA;AACX,CAAC,CAAA"}
@@ -1,5 +1,9 @@
1
1
  import { getPhpType } from "./get-php-type.js";
2
2
  export const generateResourceObjectClass = ({ resource_name, resource_properties, required_property_names, }) => {
3
+ // TODO: remove this when seam-connect is patched
4
+ if (resource_name.endsWith("Errors") || resource_name.endsWith("Warnings")) {
5
+ resource_properties["created_at"] = { type: "string" };
6
+ }
3
7
  const generateTypeDefinition = (prop_name, prop_schema) => {
4
8
  const is_object_referencing_resource = "type" in prop_schema &&
5
9
  prop_schema.type === "object" &&
@@ -1 +1 @@
1
- {"version":3,"file":"generate-resource-object-class.js","sourceRoot":"","sources":["../../../src/lib/generate-php-sdk/utils/generate-resource-object-class.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generate-resource-object-class.js","sourceRoot":"","sources":["../../../src/lib/generate-php-sdk/utils/generate-resource-object-class.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export declare const getPhpType: (zod_type: string) => "string" | "array" | "float" | "bool" | "mixed";
1
+ export declare const getPhpType: (zod_type: string) => "string" | "array" | "int" | "bool" | "mixed";
@@ -3,7 +3,7 @@ export const getPhpType = (zod_type) => {
3
3
  case "string":
4
4
  return "string";
5
5
  case "number":
6
- return "float";
6
+ return "int";
7
7
  case "boolean":
8
8
  return "bool";
9
9
  case "object":
@@ -1 +1 @@
1
- {"version":3,"file":"get-php-type.js","sourceRoot":"","sources":["../../../src/lib/generate-php-sdk/utils/get-php-type.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAE,EAAE;IAC7C,QAAQ,QAAQ,EAAE;QAChB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAA;QAEjB,KAAK,QAAQ;YACX,OAAO,OAAO,CAAA;QAEhB,KAAK,SAAS;YACZ,OAAO,MAAM,CAAA;QAEf,KAAK,QAAQ;YACX,OAAO,OAAO,CAAA;QAEhB,KAAK,OAAO;YACV,OAAO,OAAO,CAAA;QAEhB;YACE,OAAO,OAAO,CAAA;KACjB;AACH,CAAC,CAAA"}
1
+ {"version":3,"file":"get-php-type.js","sourceRoot":"","sources":["../../../src/lib/generate-php-sdk/utils/get-php-type.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,QAAgB,EAAE,EAAE;IAC7C,QAAQ,QAAQ,EAAE;QAChB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAA;QAEjB,KAAK,QAAQ;YACX,OAAO,KAAK,CAAA;QAEd,KAAK,SAAS;YACZ,OAAO,MAAM,CAAA;QAEf,KAAK,QAAQ;YACX,OAAO,OAAO,CAAA;QAEhB,KAAK,OAAO;YACV,OAAO,OAAO,CAAA;QAEhB;YACE,OAAO,OAAO,CAAA;KACjB;AACH,CAAC,CAAA"}
@@ -14,7 +14,7 @@ export type PhpClientMethod = {
14
14
  };
15
15
  type ClientName = string;
16
16
  type Namespace = string;
17
- export type PhpClientIdentifiers = {
17
+ export type PhpClientIdentifier = {
18
18
  client_name: ClientName;
19
19
  namespace: Namespace;
20
20
  };
@@ -22,9 +22,9 @@ export declare class PhpClient {
22
22
  client_name: ClientName;
23
23
  namespace: Namespace;
24
24
  is_parent_client: boolean;
25
- child_client_identifiers: PhpClientIdentifiers[];
25
+ child_client_identifiers: PhpClientIdentifier[];
26
26
  methods: PhpClientMethod[];
27
- constructor(client_name: ClientName, namespace: Namespace, is_parent_client: boolean, child_client_identifiers: PhpClientIdentifiers[]);
27
+ constructor(client_name: ClientName, namespace: Namespace, is_parent_client: boolean, child_client_identifiers: PhpClientIdentifier[]);
28
28
  addMethod(method: PhpClientMethod): void;
29
29
  serialize(): string;
30
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"php-client.js","sourceRoot":"","sources":["../../../src/lib/generate-php-sdk/utils/php-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"php-client.js","sourceRoot":"","sources":["../../../src/lib/generate-php-sdk/utils/php-client.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,33 @@
1
- export type ClassFileMethod = {
1
+ export type ClassFileMethodBase = {
2
2
  method_name: string;
3
3
  path: string;
4
4
  parameters: Array<{
5
5
  name: string;
6
6
  type: string;
7
7
  position?: number | undefined;
8
+ required?: boolean | undefined;
9
+ default_value?: string;
8
10
  }>;
11
+ };
12
+ export type ClassFileMethod = ClassFileMethodBase & ({
9
13
  return_path: string[];
10
14
  return_resource: string;
15
+ } | {
16
+ return_path: string[];
17
+ return_resource: "void";
18
+ });
19
+ type ChildClassIdentifier = {
20
+ class_name: string;
21
+ namespace: string;
11
22
  };
12
23
  export declare class ClassFile {
13
24
  name: string;
14
25
  namespace: string | undefined;
15
26
  methods: ClassFileMethod[];
16
- constructor(name: string, namespace?: string | undefined);
27
+ child_class_identifiers: ChildClassIdentifier[];
28
+ constructor(name: string, namespace: string | undefined, child_class_identifiers: ChildClassIdentifier[]);
17
29
  addMethod(method: ClassFileMethod): void;
18
30
  serializeToAbstractClassWithoutImports(): string;
19
31
  serializeToClass(): string;
20
32
  }
33
+ export {};
@@ -1,25 +1,58 @@
1
1
  export class ClassFile {
2
- constructor(name, namespace) {
2
+ constructor(name, namespace, child_class_identifiers) {
3
3
  this.name = name;
4
4
  this.namespace = namespace;
5
5
  this.methods = [];
6
+ this.child_class_identifiers = child_class_identifiers;
6
7
  }
7
8
  addMethod(method) {
8
9
  this.methods.push(method);
9
10
  }
10
11
  serializeToAbstractClassWithoutImports() {
12
+ const has_child_classes = this.child_class_identifiers.length > 0;
11
13
  return [
12
14
  `class Abstract${this.name}(abc.ABC):`,
13
15
  this.methods.length === 0 ? ` pass` : "",
14
- ...this.methods.map(({ method_name, parameters }) => [
16
+ `${has_child_classes
17
+ ? this.child_class_identifiers
18
+ .map((i) => [
19
+ ` @property`,
20
+ ` @abc.abstractmethod`,
21
+ ` def ${i.namespace}(self) -> Abstract${i.class_name}:`,
22
+ ` raise NotImplementedError()`,
23
+ ].join("\n"))
24
+ .join("\n\n")
25
+ : ""}`,
26
+ ...this.methods
27
+ .concat(this.name === "ActionAttempts"
28
+ ? [
29
+ {
30
+ method_name: "poll_until_ready",
31
+ parameters: [
32
+ { name: "action_attempt_id", type: "str", required: true },
33
+ { name: "timeout", type: "float", default_value: "5.0" },
34
+ {
35
+ name: "polling_interval",
36
+ type: "float",
37
+ default_value: "0.5",
38
+ },
39
+ ],
40
+ return_path: [],
41
+ return_resource: "ActionAttempt",
42
+ path: "",
43
+ },
44
+ ]
45
+ : [])
46
+ .map(({ method_name, parameters }) => [
15
47
  "",
16
48
  "",
17
49
  `@abc.abstractmethod`,
18
50
  `def ${method_name}(self, ${parameters
19
- .sort((a, b) => (a.position ?? 9999) - (b.position ?? 9999))
20
- .map(({ name, type, position }) => position !== undefined
51
+ .sort((a, b) => (a.position ?? a.required ? 1000 : 9999) -
52
+ (b.position ?? b.required ? 1000 : 9999))
53
+ .map(({ name, type, required, default_value }) => required
21
54
  ? `${name}: ${type}`
22
- : `${name}: Optional[${type}] = None`)
55
+ : `${name}: Optional[${type}] = ${default_value ?? "None"}`)
23
56
  .join(", ")}):`,
24
57
  ` raise NotImplementedError()`,
25
58
  ]
@@ -28,47 +61,133 @@ export class ClassFile {
28
61
  ].join("\n");
29
62
  }
30
63
  serializeToClass() {
64
+ const validClasses = [
65
+ `Abstract${this.name}`,
66
+ `AbstractSeam as Seam`,
67
+ ...Array.from(new Set(this.methods.map((m) => m.return_resource.replace(/^List\[/, "").replace(/\]$/, "")))),
68
+ ].filter((classInstance) => classInstance !== "");
69
+ const has_child_classes = this.child_class_identifiers.length > 0;
31
70
  return [
32
- `from seamapi.types import (${[
33
- `Abstract${this.name}`,
34
- `AbstractSeam as Seam`,
35
- ...Array.from(new Set(this.methods.map((m) => m.return_resource.replace(/^List\[/, "").replace(/\]$/, "")))),
36
- ].join(",")})`,
37
- `from typing import (Optional, Any)`,
38
- "",
71
+ `from seamapi.types import (${validClasses
72
+ .filter((cls) => cls !== "None")
73
+ .join(",")})`,
74
+ `from typing import Optional, Any, List, Dict, Union`,
75
+ `${has_child_classes
76
+ ? this.child_class_identifiers
77
+ .map((i) => `from seamapi.${this.namespace}_${i.namespace} import ${i.class_name}`)
78
+ .join("\n")
79
+ : ""}`,
80
+ `${this.name === "ActionAttempts" ? "import time\n" : ""}`,
39
81
  `class ${this.name}(Abstract${this.name}):`,
40
82
  // TODO DOCSTRING
41
83
  ` seam: Seam`,
42
84
  "",
43
85
  ` def __init__(self, seam: Seam):`,
44
86
  ` self.seam = seam`,
87
+ `${has_child_classes
88
+ ? this.child_class_identifiers
89
+ .map((i) => ` self._${i.namespace} = ${i.class_name}(seam=seam)`)
90
+ .join("\n")
91
+ : ""}`,
45
92
  "",
93
+ `${has_child_classes
94
+ ? this.child_class_identifiers
95
+ .map((i) => [
96
+ ` @property`,
97
+ ` def ${i.namespace}(self) -> ${i.class_name}:`,
98
+ ` return self._${i.namespace}`,
99
+ ].join("\n"))
100
+ .join("\n\n")
101
+ : ""}`,
46
102
  ...this.methods.map(({ method_name, path, return_resource, return_path, parameters }) => {
47
- const is_return_resource_a_list = return_resource.startsWith("List[");
48
- const list_item_type = return_resource.slice(5, -1);
103
+ let return_resource_item = return_resource;
104
+ const is_return_resource_list = return_resource_item.startsWith("List[");
105
+ if (is_return_resource_list) {
106
+ return_resource_item = return_resource.slice(5, -1);
107
+ }
108
+ const does_method_use_action_attempt = return_resource === "ActionAttempt" && !is_return_resource_list;
109
+ const is_none_return_type = return_resource_item === "None";
49
110
  return [
50
111
  "",
51
112
  "",
52
113
  `def ${method_name}(self, ${parameters
53
- .sort((a, b) => (a.position ?? 9999) - (b.position ?? 9999))
54
- .map(({ name, type, position }) => position !== undefined
114
+ .sort((a, b) => (a.position ?? a.required ? 1000 : 9999) -
115
+ (b.position ?? b.required ? 1000 : 9999))
116
+ .map(({ name, type, required }) => required
55
117
  ? `${name}: ${type}`
56
118
  : `${name}: Optional[${type}] = None`)
57
- .join(", ")}):`,
119
+ .concat(does_method_use_action_attempt
120
+ ? [
121
+ "wait_for_action_attempt: Union[bool, Dict[str, float]] = True",
122
+ ]
123
+ : [])
124
+ .join(", ")}) -> ${return_resource}:`,
58
125
  ` json_payload = {}`,
126
+ "",
59
127
  ...parameters.map(({ name }) => ` if ${name} is not None:\n json_payload["${name}"] = ${name}`),
60
- ` res = self.seam.make_request(`,
128
+ "",
129
+ ` ${is_none_return_type ? "" : "res = "}self.seam.make_request(`,
61
130
  ` "POST",`,
62
131
  ` "${path}",`,
63
132
  ` json=json_payload`,
64
133
  ` )`,
65
- is_return_resource_a_list
66
- ? ` return [${list_item_type}.from_dict(item) for item in res["${return_path.join('"]["')}"]]`
67
- : ` return ${return_resource}.from_dict(res["${return_path.join('"]["')}"])`,
134
+ "",
135
+ does_method_use_action_attempt
136
+ ? [
137
+ " if isinstance(wait_for_action_attempt, dict):",
138
+ ` updated_action_attempt = self.seam.action_attempts.poll_until_ready(`,
139
+ " res['action_attempt']['action_attempt_id'],",
140
+ " timeout=wait_for_action_attempt.get('timeout', None),",
141
+ " polling_interval=wait_for_action_attempt.get('polling_interval', None),",
142
+ " )",
143
+ " elif wait_for_action_attempt is True:",
144
+ ` updated_action_attempt = self.seam.action_attempts.poll_until_ready(`,
145
+ " res['action_attempt']['action_attempt_id']",
146
+ " )",
147
+ " else:",
148
+ ` return ${return_resource}.from_dict(res["${return_path.join('"]["')}"])`,
149
+ "",
150
+ " return updated_action_attempt",
151
+ ].join("\n")
152
+ : "",
153
+ "",
154
+ !does_method_use_action_attempt
155
+ ? is_none_return_type
156
+ ? ` return None`
157
+ : is_return_resource_list
158
+ ? ` return [${return_resource_item}.from_dict(item) for item in res["${return_path.join('"]["')}"]]`
159
+ : ` return ${return_resource}.from_dict(res["${return_path.join('"]["')}"])`
160
+ : "",
68
161
  ]
69
162
  .map((s) => ` ${s}`)
70
163
  .join("\n");
71
164
  }),
165
+ this.name === "ActionAttempts"
166
+ ? [
167
+ "",
168
+ " def poll_until_ready(self, action_attempt_id: str, timeout: Optional[float] = 5.0, polling_interval: Optional[float] = 0.5) -> ActionAttempt:",
169
+ " seam = self.seam",
170
+ " time_waiting = 0.0",
171
+ "",
172
+ " action_attempt = seam.action_attempts.get(action_attempt_id, wait_for_action_attempt=False)",
173
+ "",
174
+ " while action_attempt.status == 'pending':",
175
+ " time.sleep(polling_interval)",
176
+ " time_waiting += polling_interval",
177
+ "",
178
+ " if time_waiting > timeout:",
179
+ " raise Exception('Timed out waiting for action attempt to be ready')",
180
+ "",
181
+ " action_attempt = seam.action_attempts.get(",
182
+ " action_attempt.action_attempt_id, wait_for_action_attempt=False",
183
+ " )",
184
+ "",
185
+ " if action_attempt.status == 'failed':",
186
+ " raise Exception(f'Action Attempt failed: {action_attempt.error.message}')",
187
+ "",
188
+ " return action_attempt",
189
+ ].join("\n")
190
+ : "",
72
191
  ].join("\n");
73
192
  }
74
193
  }
@@ -1 +1 @@
1
- {"version":3,"file":"class-file.js","sourceRoot":"","sources":["../../src/lib/generate-python-sdk/class-file.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"class-file.js","sourceRoot":"","sources":["../../src/lib/generate-python-sdk/class-file.ts"],"names":[],"mappings":"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"}
@@ -13,7 +13,16 @@ import abstractRoutesTemplate from "./templates/snippets/abstract-routes.templat
13
13
  import abstractSeamTemplate from "./templates/snippets/abstract-seam.template.js";
14
14
  import resourceDataclassTemplate from "./templates/snippets/resource-dataclass.template.js";
15
15
  import readmeMdTemplate from "./templates/readme.md.template.js";
16
+ import initTemplate from "./templates/__init__.py.template.js";
17
+ import gitignoreTemplate from "./templates/.gitignore.template.js";
18
+ import prebuildTemplate from "./templates/prebuild.py.template.js";
19
+ import reportErrorTemplate from "./templates/utils/report_error.py.template.js";
20
+ import getSentryDsnTemplate from "./templates/utils/get_sentry_dsn.py.template.js";
21
+ import SeamApiExceptionClassTemplate from "./templates/snippets/seam-api-exception-class.template.js";
16
22
  import { getParameterAndResponseSchema } from "../../lib/openapi/get-parameter-and-response-schema.js";
23
+ import mapParentToChildrenResources from "../../lib/openapi/map-parent-to-children-resource.js";
24
+ import { deepFlattenOneOfAndAllOfSchema } from "../../lib/generate-php-sdk/utils/deep-flatten-one-of-and-all-of-schema.js";
25
+ import endpoints_returning_deprecated_action_attempt from "../../lib/endpoints-returning-deprecated-action-attempt.js";
17
26
  export const generatePythonSDK = async () => {
18
27
  const openapi = await axios
19
28
  .get("https://connect.getseam.com/openapi.json")
@@ -23,21 +32,38 @@ export const generatePythonSDK = async () => {
23
32
  ...v,
24
33
  }));
25
34
  const fs = {};
26
- fs["README.md"] = readmeMdTemplate();
27
35
  const class_map = {};
28
36
  const namespaces = [];
37
+ const parent_to_children_resources_map = mapParentToChildrenResources(routes);
38
+ const processClass = (resource_name) => {
39
+ const child_class_identifiers = (parent_to_children_resources_map[resource_name] ?? []).map((child_resource) => ({
40
+ class_name: pascalCase(`${resource_name} ${child_resource}`),
41
+ namespace: child_resource,
42
+ }));
43
+ const pascal_resource_name = pascalCase(resource_name);
44
+ class_map[pascal_resource_name] = new ClassFile(pascal_resource_name, resource_name, child_class_identifiers);
45
+ };
29
46
  for (const route of routes) {
30
47
  if (!route.post)
31
48
  continue;
32
49
  if (!route.post["x-fern-sdk-group-name"])
33
50
  continue;
34
51
  const group_names = [...route.post["x-fern-sdk-group-name"]];
52
+ const [base_resource] = group_names;
35
53
  const namespace = group_names.join("_");
36
54
  group_names.reverse();
37
- const class_name = pascalCase(group_names.join("_"));
55
+ const class_name = pascalCase(namespace);
38
56
  if (!class_map[class_name]) {
39
57
  namespaces.push(route.post["x-fern-sdk-group-name"]);
40
- class_map[class_name] = new ClassFile(class_name, namespace);
58
+ processClass(namespace);
59
+ }
60
+ /*
61
+ special case when we don't have routes for a base resource
62
+ and thus a respective x-fern-sdk-group-name for ex. /noise_sensors
63
+ */
64
+ if (base_resource && !class_map[pascalCase(base_resource)]) {
65
+ namespaces.push([base_resource]);
66
+ processClass(base_resource);
41
67
  }
42
68
  const cls = class_map[class_name];
43
69
  if (!cls) {
@@ -45,10 +71,6 @@ export const generatePythonSDK = async () => {
45
71
  continue;
46
72
  }
47
73
  const { parameter_schema, response_obj_type, response_arr_type } = getParameterAndResponseSchema(route);
48
- if (!response_obj_type && !response_arr_type) {
49
- console.warn(`No response object/array ref for "${route.path}", skipping`);
50
- continue;
51
- }
52
74
  if (!parameter_schema) {
53
75
  console.warn(`No parameter schema for "${route.path}", skipping`);
54
76
  continue;
@@ -57,19 +79,25 @@ export const generatePythonSDK = async () => {
57
79
  method_name: route.post["x-fern-sdk-method-name"],
58
80
  path: route.path,
59
81
  parameters: Object.entries(parameter_schema.properties)
60
- .filter(([_, param_val]) => param_val && typeof param_val === "object" && "type" in param_val)
82
+ .filter(([_, param_val]) => "type" in param_val ||
83
+ ("oneOf" in param_val && "type" in (param_val.oneOf[0] ?? {})))
61
84
  .map(([param_name, param_val]) => ({
62
85
  name: param_name,
63
- type: mapPythonType(param_val.type),
86
+ type: mapPythonType("type" in param_val
87
+ ? param_val
88
+ : deepFlattenOneOfAndAllOfSchema(param_val)),
64
89
  position: route.post["x-fern-sdk-method-name"] === "get" &&
65
90
  param_name === `${route.post["x-fern-sdk-return-value"]}_id`
66
91
  ? 0
67
92
  : undefined,
93
+ required: parameter_schema.required?.includes(param_name),
68
94
  })),
69
95
  return_path: [route.post["x-fern-sdk-return-value"]],
70
- return_resource: response_obj_type
71
- ? pascalCase(response_obj_type)
72
- : `List[${pascalCase(response_arr_type)}]`,
96
+ return_resource: determineReturnResource({
97
+ route_path: route.path,
98
+ response_obj_type,
99
+ response_arr_type,
100
+ }),
73
101
  });
74
102
  }
75
103
  const top_level_namespaces = namespaces
@@ -93,25 +121,45 @@ export const generatePythonSDK = async () => {
93
121
  })))),
94
122
  "",
95
123
  "",
96
- `class SeamAPIException(Exception):`,
97
- ` pass`,
124
+ SeamApiExceptionClassTemplate(),
98
125
  "",
99
126
  "",
100
- ...Object.entries(class_map).map(([_, cls]) => cls.serializeToAbstractClassWithoutImports()),
127
+ ...Object.entries(class_map)
128
+ .sort(
129
+ // define classes without children first for parent-child referencing
130
+ ([, a], [, b]) => a.child_class_identifiers.length - b.child_class_identifiers.length)
131
+ .map(([_, cls]) => cls.serializeToAbstractClassWithoutImports()),
101
132
  "",
102
133
  "",
103
134
  abstractRoutesTemplate(top_level_namespaces),
104
135
  "",
105
136
  abstractSeamTemplate(),
106
137
  ].join("\n");
107
- fs["seamapi/__init__.py"] = `from seamapi.seam import Seam`;
138
+ fs["README.md"] = readmeMdTemplate();
139
+ fs["pyproject.toml"] = pyprojectTomlTemplate();
140
+ fs[".gitignore"] = gitignoreTemplate();
141
+ fs["scripts/prebuild.py"] = prebuildTemplate();
142
+ fs["seamapi/__init__.py"] = initTemplate();
108
143
  fs["seamapi/routes.py"] = routesPyTemplate(top_level_namespaces);
109
144
  fs["seamapi/seam.py"] = seamPyTemplate();
110
145
  fs["seamapi/utils/deep_attr_dict.py"] = deep_attr_dictPyTemplate();
111
- fs["pyproject.toml"] = pyprojectTomlTemplate();
146
+ fs["seamapi/utils/report_error.py"] = reportErrorTemplate();
147
+ fs["seamapi/utils/get_sentry_dsn.py"] = getSentryDsnTemplate();
112
148
  fs["tests/conftest.py"] = conftestPyTemplate();
113
149
  fs["tests/test_smoke.py"] = test_smokePyTemplate();
114
150
  fs["tests/__init__.py"] = "";
115
151
  return fs;
116
152
  };
153
+ function determineReturnResource({ route_path, response_arr_type, response_obj_type, }) {
154
+ if (endpoints_returning_deprecated_action_attempt.includes(route_path)) {
155
+ return "None";
156
+ }
157
+ if (response_obj_type) {
158
+ return pascalCase(response_obj_type);
159
+ }
160
+ if (response_arr_type) {
161
+ return `List[${pascalCase(response_arr_type)}]`;
162
+ }
163
+ return "None";
164
+ }
117
165
  //# sourceMappingURL=generate-python-sdk.js.map