@seamapi/nextlove-sdk-generator 1.4.0
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.
- package/LICENSE.txt +20 -0
- package/README.md +16 -0
- package/index.d.ts +6 -0
- package/index.js +7 -0
- package/index.js.map +1 -0
- package/lib/cli.d.ts +2 -0
- package/lib/cli.js +53 -0
- package/lib/cli.js.map +1 -0
- package/lib/fs-util/index.d.ts +2 -0
- package/lib/fs-util/index.js +3 -0
- package/lib/fs-util/index.js.map +1 -0
- package/lib/fs-util/populate-fs.d.ts +1 -0
- package/lib/fs-util/populate-fs.js +11 -0
- package/lib/fs-util/populate-fs.js.map +1 -0
- package/lib/fs-util/write-fs.d.ts +1 -0
- package/lib/fs-util/write-fs.js +10 -0
- package/lib/fs-util/write-fs.js.map +1 -0
- package/lib/generate-csharp-sdk/codegen.d.ts +235 -0
- package/lib/generate-csharp-sdk/codegen.js +432 -0
- package/lib/generate-csharp-sdk/codegen.js.map +1 -0
- package/lib/generate-csharp-sdk/constants.d.ts +1 -0
- package/lib/generate-csharp-sdk/constants.js +2 -0
- package/lib/generate-csharp-sdk/constants.js.map +1 -0
- package/lib/generate-csharp-sdk/generate-csharp-sdk.d.ts +1 -0
- package/lib/generate-csharp-sdk/generate-csharp-sdk.js +81 -0
- package/lib/generate-csharp-sdk/generate-csharp-sdk.js.map +1 -0
- package/lib/generate-csharp-sdk/generate-csproj.d.ts +1 -0
- package/lib/generate-csharp-sdk/generate-csproj.js +45 -0
- package/lib/generate-csharp-sdk/generate-csproj.js.map +1 -0
- package/lib/generate-csharp-sdk/templates/dataclass.d.ts +24 -0
- package/lib/generate-csharp-sdk/templates/dataclass.js +468 -0
- package/lib/generate-csharp-sdk/templates/dataclass.js.map +1 -0
- package/lib/generate-csharp-sdk/templates/fs/csharp-testing.sln +34 -0
- package/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/ApiResponse.cs +159 -0
- package/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/ClientUtils.cs +280 -0
- package/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/ExceptionFactory.cs +12 -0
- package/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/GlobalSeamRequestConfiguration.cs +60 -0
- package/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/HttpMethod.cs +29 -0
- package/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/IAsynchronousSeam.cs +142 -0
- package/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/IReadableSeamRequestConfiguration.cs +68 -0
- package/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/ISynchronousSeam.cs +103 -0
- package/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/Multimap.cs +286 -0
- package/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/RequestOptions.cs +74 -0
- package/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/RetryConfiguration.cs +21 -0
- package/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/Seam.cs +1070 -0
- package/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/SeamException.cs +64 -0
- package/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/SeamRequestConfiguration.cs +662 -0
- package/lib/generate-csharp-sdk/templates/fs/src/Seam/Model/AsbtractModelSchema.cs +62 -0
- package/lib/generate-php-sdk/generate-php-sdk.d.ts +1 -0
- package/lib/generate-php-sdk/generate-php-sdk.js +127 -0
- package/lib/generate-php-sdk/generate-php-sdk.js.map +1 -0
- package/lib/generate-php-sdk/index.d.ts +1 -0
- package/lib/generate-php-sdk/index.js +2 -0
- package/lib/generate-php-sdk/index.js.map +1 -0
- package/lib/generate-php-sdk/templates/composer.json.template.d.ts +2 -0
- package/lib/generate-php-sdk/templates/composer.json.template.js +25 -0
- package/lib/generate-php-sdk/templates/composer.json.template.js.map +1 -0
- package/lib/generate-php-sdk/templates/env.example.template.d.ts +2 -0
- package/lib/generate-php-sdk/templates/env.example.template.js +4 -0
- package/lib/generate-php-sdk/templates/env.example.template.js.map +1 -0
- package/lib/generate-php-sdk/templates/gitignore.template.d.ts +2 -0
- package/lib/generate-php-sdk/templates/gitignore.template.js +6 -0
- package/lib/generate-php-sdk/templates/gitignore.template.js.map +1 -0
- package/lib/generate-php-sdk/templates/package.json.template.d.ts +2 -0
- package/lib/generate-php-sdk/templates/package.json.template.js +12 -0
- package/lib/generate-php-sdk/templates/package.json.template.js.map +1 -0
- package/lib/generate-php-sdk/templates/readme.md.template.d.ts +2 -0
- package/lib/generate-php-sdk/templates/readme.md.template.js +86 -0
- package/lib/generate-php-sdk/templates/readme.md.template.js.map +1 -0
- package/lib/generate-php-sdk/templates/smoke-test.template.d.ts +2 -0
- package/lib/generate-php-sdk/templates/smoke-test.template.js +30 -0
- package/lib/generate-php-sdk/templates/smoke-test.template.js.map +1 -0
- package/lib/generate-php-sdk/templates/test-fixture.template.d.ts +2 -0
- package/lib/generate-php-sdk/templates/test-fixture.template.js +21 -0
- package/lib/generate-php-sdk/templates/test-fixture.template.js.map +1 -0
- package/lib/generate-php-sdk/utils/deep-extract-resource-object-schemas.d.ts +16 -0
- package/lib/generate-php-sdk/utils/deep-extract-resource-object-schemas.js +97 -0
- package/lib/generate-php-sdk/utils/deep-extract-resource-object-schemas.js.map +1 -0
- package/lib/generate-php-sdk/utils/deep-flatten-one-of-and-all-of-schema.d.ts +2 -0
- package/lib/generate-php-sdk/utils/deep-flatten-one-of-and-all-of-schema.js +95 -0
- package/lib/generate-php-sdk/utils/deep-flatten-one-of-and-all-of-schema.js.map +1 -0
- package/lib/generate-php-sdk/utils/generate-resource-object-class.d.ts +8 -0
- package/lib/generate-php-sdk/utils/generate-resource-object-class.js +73 -0
- package/lib/generate-php-sdk/utils/generate-resource-object-class.js.map +1 -0
- package/lib/generate-php-sdk/utils/generate-seam-client.d.ts +7 -0
- package/lib/generate-php-sdk/utils/generate-seam-client.js +103 -0
- package/lib/generate-php-sdk/utils/generate-seam-client.js.map +1 -0
- package/lib/generate-php-sdk/utils/get-php-type.d.ts +1 -0
- package/lib/generate-php-sdk/utils/get-php-type.js +17 -0
- package/lib/generate-php-sdk/utils/get-php-type.js.map +1 -0
- package/lib/generate-php-sdk/utils/php-client.d.ts +31 -0
- package/lib/generate-php-sdk/utils/php-client.js +130 -0
- package/lib/generate-php-sdk/utils/php-client.js.map +1 -0
- package/lib/generate-python-sdk/class-file.d.ts +20 -0
- package/lib/generate-python-sdk/class-file.js +75 -0
- package/lib/generate-python-sdk/class-file.js.map +1 -0
- package/lib/generate-python-sdk/generate-python-sdk.d.ts +1 -0
- package/lib/generate-python-sdk/generate-python-sdk.js +117 -0
- package/lib/generate-python-sdk/generate-python-sdk.js.map +1 -0
- package/lib/generate-python-sdk/index.d.ts +1 -0
- package/lib/generate-python-sdk/index.js +2 -0
- package/lib/generate-python-sdk/index.js.map +1 -0
- package/lib/generate-python-sdk/map-python-type.d.ts +2 -0
- package/lib/generate-python-sdk/map-python-type.js +26 -0
- package/lib/generate-python-sdk/map-python-type.js.map +1 -0
- package/lib/generate-python-sdk/templates/conftest.py.template.d.ts +2 -0
- package/lib/generate-python-sdk/templates/conftest.py.template.js +12 -0
- package/lib/generate-python-sdk/templates/conftest.py.template.js.map +1 -0
- package/lib/generate-python-sdk/templates/pyproject.toml.template.d.ts +2 -0
- package/lib/generate-python-sdk/templates/pyproject.toml.template.js +21 -0
- package/lib/generate-python-sdk/templates/pyproject.toml.template.js.map +1 -0
- package/lib/generate-python-sdk/templates/readme.md.template.d.ts +2 -0
- package/lib/generate-python-sdk/templates/readme.md.template.js +48 -0
- package/lib/generate-python-sdk/templates/readme.md.template.js.map +1 -0
- package/lib/generate-python-sdk/templates/routes.py.template.d.ts +2 -0
- package/lib/generate-python-sdk/templates/routes.py.template.js +13 -0
- package/lib/generate-python-sdk/templates/routes.py.template.js.map +1 -0
- package/lib/generate-python-sdk/templates/seam.py.template.d.ts +2 -0
- package/lib/generate-python-sdk/templates/seam.py.template.js +74 -0
- package/lib/generate-python-sdk/templates/seam.py.template.js.map +1 -0
- package/lib/generate-python-sdk/templates/snippets/abstract-routes.template.d.ts +2 -0
- package/lib/generate-python-sdk/templates/snippets/abstract-routes.template.js +9 -0
- package/lib/generate-python-sdk/templates/snippets/abstract-routes.template.js.map +1 -0
- package/lib/generate-python-sdk/templates/snippets/abstract-seam.template.d.ts +2 -0
- package/lib/generate-python-sdk/templates/snippets/abstract-seam.template.js +9 -0
- package/lib/generate-python-sdk/templates/snippets/abstract-seam.template.js.map +1 -0
- package/lib/generate-python-sdk/templates/snippets/resource-dataclass.template.d.ts +5 -0
- package/lib/generate-python-sdk/templates/snippets/resource-dataclass.template.js +10 -0
- package/lib/generate-python-sdk/templates/snippets/resource-dataclass.template.js.map +1 -0
- package/lib/generate-python-sdk/templates/test_smoke.py.template.d.ts +2 -0
- package/lib/generate-python-sdk/templates/test_smoke.py.template.js +13 -0
- package/lib/generate-python-sdk/templates/test_smoke.py.template.js.map +1 -0
- package/lib/generate-python-sdk/templates/utils/deep_attr_dict.py.template.d.ts +2 -0
- package/lib/generate-python-sdk/templates/utils/deep_attr_dict.py.template.js +28 -0
- package/lib/generate-python-sdk/templates/utils/deep_attr_dict.py.template.js.map +1 -0
- package/lib/generate-ruby-sdk/generate-ruby-sdk.d.ts +1 -0
- package/lib/generate-ruby-sdk/generate-ruby-sdk.js +132 -0
- package/lib/generate-ruby-sdk/generate-ruby-sdk.js.map +1 -0
- package/lib/generate-ruby-sdk/index.d.ts +1 -0
- package/lib/generate-ruby-sdk/index.js +2 -0
- package/lib/generate-ruby-sdk/index.js.map +1 -0
- package/lib/generate-ruby-sdk/request.rb.template.d.ts +1 -0
- package/lib/generate-ruby-sdk/request.rb.template.js +2 -0
- package/lib/generate-ruby-sdk/request.rb.template.js.map +1 -0
- package/lib/generate-ruby-sdk/ruby-client.d.ts +35 -0
- package/lib/generate-ruby-sdk/ruby-client.js +59 -0
- package/lib/generate-ruby-sdk/ruby-client.js.map +1 -0
- package/lib/generate-ruby-sdk/templates/base_client.rb.template.d.ts +2 -0
- package/lib/generate-ruby-sdk/templates/base_client.rb.template.js +22 -0
- package/lib/generate-ruby-sdk/templates/base_client.rb.template.js.map +1 -0
- package/lib/generate-ruby-sdk/templates/base_resource.rb.template.d.ts +2 -0
- package/lib/generate-ruby-sdk/templates/base_resource.rb.template.js +59 -0
- package/lib/generate-ruby-sdk/templates/base_resource.rb.template.js.map +1 -0
- package/lib/generate-ruby-sdk/templates/client.rb.template.d.ts +2 -0
- package/lib/generate-ruby-sdk/templates/client.rb.template.js +74 -0
- package/lib/generate-ruby-sdk/templates/client.rb.template.js.map +1 -0
- package/lib/generate-ruby-sdk/templates/gemfile.template.d.ts +2 -0
- package/lib/generate-ruby-sdk/templates/gemfile.template.js +7 -0
- package/lib/generate-ruby-sdk/templates/gemfile.template.js.map +1 -0
- package/lib/generate-ruby-sdk/templates/logger.rb.template.d.ts +2 -0
- package/lib/generate-ruby-sdk/templates/logger.rb.template.js +13 -0
- package/lib/generate-ruby-sdk/templates/logger.rb.template.js.map +1 -0
- package/lib/generate-ruby-sdk/templates/rakefile.template.d.ts +2 -0
- package/lib/generate-ruby-sdk/templates/rakefile.template.js +23 -0
- package/lib/generate-ruby-sdk/templates/rakefile.template.js.map +1 -0
- package/lib/generate-ruby-sdk/templates/readme.md.template.d.ts +2 -0
- package/lib/generate-ruby-sdk/templates/readme.md.template.js +184 -0
- package/lib/generate-ruby-sdk/templates/readme.md.template.js.map +1 -0
- package/lib/generate-ruby-sdk/templates/request.rb.template.d.ts +2 -0
- package/lib/generate-ruby-sdk/templates/request.rb.template.js +71 -0
- package/lib/generate-ruby-sdk/templates/request.rb.template.js.map +1 -0
- package/lib/generate-ruby-sdk/templates/resource_error.rb.template.d.ts +2 -0
- package/lib/generate-ruby-sdk/templates/resource_error.rb.template.js +8 -0
- package/lib/generate-ruby-sdk/templates/resource_error.rb.template.js.map +1 -0
- package/lib/generate-ruby-sdk/templates/resource_errors_support.rb.template.d.ts +2 -0
- package/lib/generate-ruby-sdk/templates/resource_errors_support.rb.template.js +10 -0
- package/lib/generate-ruby-sdk/templates/resource_errors_support.rb.template.js.map +1 -0
- package/lib/generate-ruby-sdk/templates/resource_warning.rb.template.d.ts +2 -0
- package/lib/generate-ruby-sdk/templates/resource_warning.rb.template.js +8 -0
- package/lib/generate-ruby-sdk/templates/resource_warning.rb.template.js.map +1 -0
- package/lib/generate-ruby-sdk/templates/resource_warnings_support.rb.template.d.ts +2 -0
- package/lib/generate-ruby-sdk/templates/resource_warnings_support.rb.template.js +10 -0
- package/lib/generate-ruby-sdk/templates/resource_warnings_support.rb.template.js.map +1 -0
- package/lib/generate-ruby-sdk/templates/seamapi.gemspec.template.d.ts +2 -0
- package/lib/generate-ruby-sdk/templates/seamapi.gemspec.template.js +41 -0
- package/lib/generate-ruby-sdk/templates/seamapi.gemspec.template.js.map +1 -0
- package/lib/generate-ruby-sdk/templates/snippets/resource.rb.template.d.ts +6 -0
- package/lib/generate-ruby-sdk/templates/snippets/resource.rb.template.js +15 -0
- package/lib/generate-ruby-sdk/templates/snippets/resource.rb.template.js.map +1 -0
- package/lib/generate-ruby-sdk/templates/version.rb.template.d.ts +2 -0
- package/lib/generate-ruby-sdk/templates/version.rb.template.js +6 -0
- package/lib/generate-ruby-sdk/templates/version.rb.template.js.map +1 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +3 -0
- package/lib/index.js.map +1 -0
- package/lib/openapi/flatten-obj-schema.d.ts +5 -0
- package/lib/openapi/flatten-obj-schema.js +86 -0
- package/lib/openapi/flatten-obj-schema.js.map +1 -0
- package/lib/openapi/get-parameter-and-response-schema.d.ts +20 -0
- package/lib/openapi/get-parameter-and-response-schema.js +42 -0
- package/lib/openapi/get-parameter-and-response-schema.js.map +1 -0
- package/lib/openapi/index.d.ts +2 -0
- package/lib/openapi/index.js +3 -0
- package/lib/openapi/index.js.map +1 -0
- package/lib/types.d.ts +91 -0
- package/lib/types.js +2 -0
- package/lib/types.js.map +1 -0
- package/package.json +95 -0
- package/src/index.ts +6 -0
- package/src/lib/cli.ts +71 -0
- package/src/lib/fs-util/index.ts +2 -0
- package/src/lib/fs-util/populate-fs.ts +14 -0
- package/src/lib/fs-util/write-fs.ts +10 -0
- package/src/lib/generate-csharp-sdk/codegen.ts +648 -0
- package/src/lib/generate-csharp-sdk/constants.ts +1 -0
- package/src/lib/generate-csharp-sdk/generate-csharp-sdk.ts +126 -0
- package/src/lib/generate-csharp-sdk/generate-csproj.ts +45 -0
- package/src/lib/generate-csharp-sdk/templates/dataclass.ts +973 -0
- package/src/lib/generate-csharp-sdk/templates/fs/csharp-testing.sln +34 -0
- package/src/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/ApiResponse.cs +159 -0
- package/src/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/ClientUtils.cs +280 -0
- package/src/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/ExceptionFactory.cs +12 -0
- package/src/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/GlobalSeamRequestConfiguration.cs +60 -0
- package/src/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/HttpMethod.cs +29 -0
- package/src/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/IAsynchronousSeam.cs +142 -0
- package/src/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/IReadableSeamRequestConfiguration.cs +68 -0
- package/src/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/ISynchronousSeam.cs +103 -0
- package/src/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/Multimap.cs +286 -0
- package/src/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/RequestOptions.cs +74 -0
- package/src/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/RetryConfiguration.cs +21 -0
- package/src/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/Seam.cs +1070 -0
- package/src/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/SeamException.cs +64 -0
- package/src/lib/generate-csharp-sdk/templates/fs/src/Seam/Client/SeamRequestConfiguration.cs +662 -0
- package/src/lib/generate-csharp-sdk/templates/fs/src/Seam/Model/AsbtractModelSchema.cs +62 -0
- package/src/lib/generate-php-sdk/generate-php-sdk.ts +176 -0
- package/src/lib/generate-php-sdk/index.ts +1 -0
- package/src/lib/generate-php-sdk/templates/composer.json.template.ts +24 -0
- package/src/lib/generate-php-sdk/templates/env.example.template.ts +3 -0
- package/src/lib/generate-php-sdk/templates/gitignore.template.ts +5 -0
- package/src/lib/generate-php-sdk/templates/package.json.template.ts +11 -0
- package/src/lib/generate-php-sdk/templates/readme.md.template.ts +85 -0
- package/src/lib/generate-php-sdk/templates/smoke-test.template.ts +29 -0
- package/src/lib/generate-php-sdk/templates/test-fixture.template.ts +20 -0
- package/src/lib/generate-php-sdk/utils/deep-extract-resource-object-schemas.ts +160 -0
- package/src/lib/generate-php-sdk/utils/deep-flatten-one-of-and-all-of-schema.ts +128 -0
- package/src/lib/generate-php-sdk/utils/generate-resource-object-class.ts +105 -0
- package/src/lib/generate-php-sdk/utils/generate-seam-client.ts +115 -0
- package/src/lib/generate-php-sdk/utils/get-php-type.ts +21 -0
- package/src/lib/generate-php-sdk/utils/php-client.ts +189 -0
- package/src/lib/generate-python-sdk/class-file.ts +114 -0
- package/src/lib/generate-python-sdk/generate-python-sdk.ts +147 -0
- package/src/lib/generate-python-sdk/index.ts +1 -0
- package/src/lib/generate-python-sdk/map-python-type.ts +29 -0
- package/src/lib/generate-python-sdk/templates/conftest.py.template.ts +11 -0
- package/src/lib/generate-python-sdk/templates/pyproject.toml.template.ts +20 -0
- package/src/lib/generate-python-sdk/templates/readme.md.template.ts +47 -0
- package/src/lib/generate-python-sdk/templates/routes.py.template.ts +13 -0
- package/src/lib/generate-python-sdk/templates/seam.py.template.ts +73 -0
- package/src/lib/generate-python-sdk/templates/snippets/abstract-routes.template.ts +9 -0
- package/src/lib/generate-python-sdk/templates/snippets/abstract-seam.template.ts +8 -0
- package/src/lib/generate-python-sdk/templates/snippets/resource-dataclass.template.ts +15 -0
- package/src/lib/generate-python-sdk/templates/test_smoke.py.template.ts +12 -0
- package/src/lib/generate-python-sdk/templates/utils/deep_attr_dict.py.template.ts +27 -0
- package/src/lib/generate-ruby-sdk/generate-ruby-sdk.ts +153 -0
- package/src/lib/generate-ruby-sdk/index.ts +1 -0
- package/src/lib/generate-ruby-sdk/request.rb.template.ts +0 -0
- package/src/lib/generate-ruby-sdk/ruby-client.ts +81 -0
- package/src/lib/generate-ruby-sdk/templates/base_client.rb.template.ts +21 -0
- package/src/lib/generate-ruby-sdk/templates/base_resource.rb.template.ts +58 -0
- package/src/lib/generate-ruby-sdk/templates/client.rb.template.ts +73 -0
- package/src/lib/generate-ruby-sdk/templates/gemfile.template.ts +6 -0
- package/src/lib/generate-ruby-sdk/templates/logger.rb.template.ts +12 -0
- package/src/lib/generate-ruby-sdk/templates/rakefile.template.ts +22 -0
- package/src/lib/generate-ruby-sdk/templates/readme.md.template.ts +183 -0
- package/src/lib/generate-ruby-sdk/templates/request.rb.template.ts +70 -0
- package/src/lib/generate-ruby-sdk/templates/resource_error.rb.template.ts +7 -0
- package/src/lib/generate-ruby-sdk/templates/resource_errors_support.rb.template.ts +9 -0
- package/src/lib/generate-ruby-sdk/templates/resource_warning.rb.template.ts +7 -0
- package/src/lib/generate-ruby-sdk/templates/resource_warnings_support.rb.template.ts +9 -0
- package/src/lib/generate-ruby-sdk/templates/seamapi.gemspec.template.ts +40 -0
- package/src/lib/generate-ruby-sdk/templates/snippets/resource.rb.template.ts +24 -0
- package/src/lib/generate-ruby-sdk/templates/version.rb.template.ts +5 -0
- package/src/lib/index.ts +2 -0
- package/src/lib/openapi/flatten-obj-schema.ts +124 -0
- package/src/lib/openapi/get-parameter-and-response-schema.ts +59 -0
- package/src/lib/openapi/index.ts +2 -0
- package/src/lib/types.ts +96 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
export function deepFlattenOneOfAndAllOfSchema(schema) {
|
|
2
|
+
if ("oneOf" in schema) {
|
|
3
|
+
return flattenOneOf(schema);
|
|
4
|
+
}
|
|
5
|
+
else if ("allOf" in schema) {
|
|
6
|
+
return flattenAllOf(schema);
|
|
7
|
+
}
|
|
8
|
+
else if ("type" in schema &&
|
|
9
|
+
schema.type === "object" &&
|
|
10
|
+
schema.properties) {
|
|
11
|
+
return flattenObject(schema);
|
|
12
|
+
}
|
|
13
|
+
else if ("type" in schema && schema.type === "array" && schema.items) {
|
|
14
|
+
return flattenArray(schema);
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
// For primitive types, return the schema as is
|
|
18
|
+
return schema;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
function flattenOneOf(one_of_schema) {
|
|
22
|
+
const flattened_schema = {
|
|
23
|
+
type: "object",
|
|
24
|
+
properties: {},
|
|
25
|
+
required: [],
|
|
26
|
+
};
|
|
27
|
+
for (const sub_schema of one_of_schema.oneOf) {
|
|
28
|
+
const flattened_sub_schema = deepFlattenOneOfAndAllOfSchema(sub_schema);
|
|
29
|
+
// Check if the sub-schema is a primitive schema
|
|
30
|
+
if ("type" in flattened_sub_schema &&
|
|
31
|
+
!("properties" in flattened_sub_schema)) {
|
|
32
|
+
return { type: flattened_sub_schema.type };
|
|
33
|
+
}
|
|
34
|
+
if ("$ref" in flattened_sub_schema) {
|
|
35
|
+
console.error("$ref not currently supported when flattening oneOf");
|
|
36
|
+
continue;
|
|
37
|
+
}
|
|
38
|
+
// Merge properties
|
|
39
|
+
Object.assign(flattened_schema.properties, flattened_sub_schema.properties);
|
|
40
|
+
// Update required array with common properties
|
|
41
|
+
flattened_schema.required =
|
|
42
|
+
flattened_schema.required.length === 0
|
|
43
|
+
? flattened_sub_schema.required
|
|
44
|
+
: flattened_schema.required.filter((prop) => flattened_sub_schema.required.includes(prop));
|
|
45
|
+
}
|
|
46
|
+
return flattened_schema;
|
|
47
|
+
}
|
|
48
|
+
function flattenAllOf(all_of_schema) {
|
|
49
|
+
const flattened_schema = {
|
|
50
|
+
type: "object",
|
|
51
|
+
properties: {},
|
|
52
|
+
required: [],
|
|
53
|
+
};
|
|
54
|
+
for (const sub_Schema of all_of_schema.allOf) {
|
|
55
|
+
const flattened_sub_schema = deepFlattenOneOfAndAllOfSchema(sub_Schema);
|
|
56
|
+
// Check if the sub-schema is a primitive schema
|
|
57
|
+
if ("type" in flattened_sub_schema &&
|
|
58
|
+
!("properties" in flattened_sub_schema)) {
|
|
59
|
+
return { type: flattened_sub_schema.type };
|
|
60
|
+
}
|
|
61
|
+
if ("$ref" in flattened_sub_schema) {
|
|
62
|
+
console.error("$ref not currently supported when flattening allOf");
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
// Merge properties
|
|
66
|
+
Object.assign(flattened_schema.properties, flattened_sub_schema.properties);
|
|
67
|
+
// Merge required array
|
|
68
|
+
flattened_schema.required = [
|
|
69
|
+
...new Set([
|
|
70
|
+
...flattened_schema.required,
|
|
71
|
+
...flattened_sub_schema.required,
|
|
72
|
+
]),
|
|
73
|
+
];
|
|
74
|
+
}
|
|
75
|
+
return flattened_schema;
|
|
76
|
+
}
|
|
77
|
+
function flattenObject(obj_schema) {
|
|
78
|
+
const flattened_schema = {
|
|
79
|
+
type: "object",
|
|
80
|
+
properties: {},
|
|
81
|
+
required: obj_schema.required || [],
|
|
82
|
+
};
|
|
83
|
+
for (const prop in obj_schema.properties) {
|
|
84
|
+
flattened_schema.properties[prop] = deepFlattenOneOfAndAllOfSchema(obj_schema.properties[prop]);
|
|
85
|
+
}
|
|
86
|
+
return flattened_schema;
|
|
87
|
+
}
|
|
88
|
+
function flattenArray(array_schema) {
|
|
89
|
+
const flattened_schema = {
|
|
90
|
+
type: "array",
|
|
91
|
+
items: deepFlattenOneOfAndAllOfSchema(array_schema.items),
|
|
92
|
+
};
|
|
93
|
+
return flattened_schema;
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=deep-flatten-one-of-and-all-of-schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deep-flatten-one-of-and-all-of-schema.js","sourceRoot":"","sources":["../../../src/lib/generate-php-sdk/utils/deep-flatten-one-of-and-all-of-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { PropertySchemaWithReferenceObject } from "./deep-extract-resource-object-schemas.js";
|
|
2
|
+
interface Params {
|
|
3
|
+
resource_name: string;
|
|
4
|
+
resource_properties: Record<string, PropertySchemaWithReferenceObject>;
|
|
5
|
+
required_property_names: string[];
|
|
6
|
+
}
|
|
7
|
+
export declare const generateResourceObjectClass: ({ resource_name, resource_properties, required_property_names, }: Params) => string;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { getPhpType } from "./get-php-type.js";
|
|
2
|
+
export const generateResourceObjectClass = ({ resource_name, resource_properties, required_property_names, }) => {
|
|
3
|
+
const generateTypeDefinition = (prop_name, prop_schema) => {
|
|
4
|
+
const is_object_referencing_resource = "type" in prop_schema &&
|
|
5
|
+
prop_schema.type === "object" &&
|
|
6
|
+
"reference_object_type_name" in prop_schema;
|
|
7
|
+
const is_array_referencing_resource = "type" in prop_schema &&
|
|
8
|
+
prop_schema.type === "array" &&
|
|
9
|
+
"reference_object_type_name" in prop_schema;
|
|
10
|
+
if (is_object_referencing_resource) {
|
|
11
|
+
return `${prop_name}: ${prop_schema.reference_object_type_name}::from_json($json->${prop_name})${required_property_names.includes(prop_name) ? "," : " ?? null,"}`;
|
|
12
|
+
}
|
|
13
|
+
else if (is_array_referencing_resource) {
|
|
14
|
+
return `${prop_name}: array_map(
|
|
15
|
+
fn ($${prop_name[0]}) => ${prop_schema.reference_object_type_name}::from_json($${prop_name[0]}),
|
|
16
|
+
$json->${prop_name} ?? []
|
|
17
|
+
),`;
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
return `${prop_name}: $json->${prop_name}${required_property_names.includes(prop_name) ? "," : " ?? null,"}`;
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
const generateFromJsonMethod = () => {
|
|
24
|
+
return `
|
|
25
|
+
public static function from_json(mixed $json): ${resource_name}|null
|
|
26
|
+
{
|
|
27
|
+
if (!$json) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
return new self(
|
|
31
|
+
${Object.entries(resource_properties)
|
|
32
|
+
.map(([prop, prop_schema]) => generateTypeDefinition(prop, prop_schema))
|
|
33
|
+
.join("\n ")}
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
`;
|
|
37
|
+
};
|
|
38
|
+
const generateConstructor = () => {
|
|
39
|
+
return `
|
|
40
|
+
public function __construct(
|
|
41
|
+
${Object.entries(resource_properties)
|
|
42
|
+
.map(([prop_name, prop_schema]) => {
|
|
43
|
+
const is_object_referencing_resource = "type" in prop_schema &&
|
|
44
|
+
prop_schema.type === "object" &&
|
|
45
|
+
"reference_object_type_name" in prop_schema;
|
|
46
|
+
const php_type = is_object_referencing_resource
|
|
47
|
+
? prop_schema.reference_object_type_name
|
|
48
|
+
: getPhpType("type" in prop_schema ? prop_schema.type : "mixed");
|
|
49
|
+
return `public ${php_type}${php_type === "mixed"
|
|
50
|
+
? ""
|
|
51
|
+
: required_property_names.includes(prop_name)
|
|
52
|
+
? ""
|
|
53
|
+
: " | null"} $${prop_name},`;
|
|
54
|
+
})
|
|
55
|
+
.join("\n ")}
|
|
56
|
+
) {
|
|
57
|
+
}
|
|
58
|
+
`;
|
|
59
|
+
};
|
|
60
|
+
const phpClass = `<?php
|
|
61
|
+
|
|
62
|
+
namespace Seam\\Objects;
|
|
63
|
+
|
|
64
|
+
class ${resource_name}
|
|
65
|
+
{
|
|
66
|
+
${generateFromJsonMethod()}
|
|
67
|
+
|
|
68
|
+
${generateConstructor()}
|
|
69
|
+
}
|
|
70
|
+
`;
|
|
71
|
+
return phpClass;
|
|
72
|
+
};
|
|
73
|
+
//# sourceMappingURL=generate-resource-object-class.js.map
|
|
@@ -0,0 +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":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAQ9C,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,EAC1C,aAAa,EACb,mBAAmB,EACnB,uBAAuB,GAChB,EAAE,EAAE;IACX,MAAM,sBAAsB,GAAG,CAC7B,SAAiB,EACjB,WAA8C,EAC9C,EAAE;QACF,MAAM,8BAA8B,GAClC,MAAM,IAAI,WAAW;YACrB,WAAW,CAAC,IAAI,KAAK,QAAQ;YAC7B,4BAA4B,IAAI,WAAW,CAAA;QAE7C,MAAM,6BAA6B,GACjC,MAAM,IAAI,WAAW;YACrB,WAAW,CAAC,IAAI,KAAK,OAAO;YAC5B,4BAA4B,IAAI,WAAW,CAAA;QAE7C,IAAI,8BAA8B,EAAE;YAClC,OAAO,GAAG,SAAS,KACjB,WAAW,CAAC,0BACd,sBAAsB,SAAS,IAC7B,uBAAuB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WACtD,EAAE,CAAA;SACH;aAAM,IAAI,6BAA6B,EAAE;YACxC,OAAO,GAAG,SAAS;iBACR,SAAS,CAAC,CAAC,CAAC,QAAQ,WAAW,CAAC,0BAA0B,gBAAgB,SAAS,CAAC,CAAC,CAAC;mBACpF,SAAS;WACjB,CAAA;SACN;aAAM;YACL,OAAO,GAAG,SAAS,YAAY,SAAS,GACtC,uBAAuB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WACtD,EAAE,CAAA;SACH;IACH,CAAC,CAAA;IAED,MAAM,sBAAsB,GAAG,GAAG,EAAE;QAClC,OAAO;qDAC0C,aAAa;;;;;;cAMpD,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC;aAClC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE,CAC3B,sBAAsB,CAAC,IAAI,EAAE,WAAW,CAAC,CAC1C;aACA,IAAI,CAAC,gBAAgB,CAAC;;;GAGlC,CAAA;IACD,CAAC,CAAA;IAED,MAAM,mBAAmB,GAAG,GAAG,EAAE;QAC/B,OAAO;;UAED,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC;aAClC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,EAAE;YAChC,MAAM,8BAA8B,GAClC,MAAM,IAAI,WAAW;gBACrB,WAAW,CAAC,IAAI,KAAK,QAAQ;gBAC7B,4BAA4B,IAAI,WAAW,CAAA;YAC7C,MAAM,QAAQ,GAAG,8BAA8B;gBAC7C,CAAC,CAAC,WAAW,CAAC,0BAA0B;gBACxC,CAAC,CAAC,UAAU,CAAC,MAAM,IAAI,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;YAElE,OAAO,UAAU,QAAQ,GACvB,QAAQ,KAAK,OAAO;gBAClB,CAAC,CAAC,EAAE;gBACJ,CAAC,CAAC,uBAAuB,CAAC,QAAQ,CAAC,SAAS,CAAC;oBAC7C,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,SACN,KAAK,SAAS,GAAG,CAAA;QACnB,CAAC,CAAC;aACD,IAAI,CAAC,YAAY,CAAC;;;GAG1B,CAAA;IACD,CAAC,CAAA;IAED,MAAM,QAAQ,GAAG;;;;QAIX,aAAa;;MAEf,sBAAsB,EAAE;;MAExB,mBAAmB,EAAE;;CAE1B,CAAA;IAEC,OAAO,QAAQ,CAAA;AACjB,CAAC,CAAA"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
export const generateSeamClient = ({ resource_clients, resource_object_names, }) => {
|
|
2
|
+
const parent_resource_clients = resource_clients.filter((c) => c.is_parent_client);
|
|
3
|
+
return `<?php
|
|
4
|
+
|
|
5
|
+
namespace Seam;
|
|
6
|
+
|
|
7
|
+
${resource_object_names.map((n) => `use Seam\\Objects\\${n};`).join("\n")}
|
|
8
|
+
|
|
9
|
+
use GuzzleHttp\\Client as HTTPClient;
|
|
10
|
+
use \\Exception as Exception;
|
|
11
|
+
|
|
12
|
+
class SeamClient
|
|
13
|
+
{
|
|
14
|
+
${parent_resource_clients
|
|
15
|
+
.map((c) => `public ${c.client_name}Client $${c.namespace};`)
|
|
16
|
+
.join("\n ")}
|
|
17
|
+
|
|
18
|
+
public string $api_key;
|
|
19
|
+
public HTTPClient $client;
|
|
20
|
+
|
|
21
|
+
public function __construct(
|
|
22
|
+
$api_key,
|
|
23
|
+
$endpoint = "https://connect.getseam.com",
|
|
24
|
+
$throw_http_errors = false
|
|
25
|
+
) {
|
|
26
|
+
$this->api_key = $api_key;
|
|
27
|
+
$this->client = new HTTPClient([
|
|
28
|
+
"base_uri" => $endpoint,
|
|
29
|
+
"timeout" => 60.0,
|
|
30
|
+
"headers" => [
|
|
31
|
+
"Authorization" => "Bearer " . $this->api_key,
|
|
32
|
+
"User-Agent" => "Seam PHP Client 0.0.1",
|
|
33
|
+
],
|
|
34
|
+
"http_errors" => $throw_http_errors,
|
|
35
|
+
]);
|
|
36
|
+
${parent_resource_clients
|
|
37
|
+
.map((c) => `$this->${c.namespace} = new ${c.client_name}Client($this);`)
|
|
38
|
+
.join("\n ")}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
public function request(
|
|
42
|
+
$method,
|
|
43
|
+
$path,
|
|
44
|
+
$json = null,
|
|
45
|
+
$query = null,
|
|
46
|
+
$inner_object = null
|
|
47
|
+
) {
|
|
48
|
+
$options = [
|
|
49
|
+
"json" => $json,
|
|
50
|
+
"query" => $query,
|
|
51
|
+
];
|
|
52
|
+
$options = array_filter($options, fn ($option) => $option !== null);
|
|
53
|
+
|
|
54
|
+
// TODO handle request errors
|
|
55
|
+
$response = $this->client->request($method, $path, $options);
|
|
56
|
+
$statusCode = $response->getStatusCode();
|
|
57
|
+
|
|
58
|
+
$res_json = null;
|
|
59
|
+
try {
|
|
60
|
+
$res_json = json_decode($response->getBody());
|
|
61
|
+
} catch (Exception $ignoreError) {
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if (($res_json->error ?? null) != null) {
|
|
65
|
+
throw new Exception(
|
|
66
|
+
"Error Calling \\"" .
|
|
67
|
+
$method .
|
|
68
|
+
" " .
|
|
69
|
+
$path .
|
|
70
|
+
"\\" : " .
|
|
71
|
+
($res_json->error->type ?? "") .
|
|
72
|
+
": " .
|
|
73
|
+
$res_json->error->message
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
if ($statusCode >= 400) {
|
|
78
|
+
throw new Exception(
|
|
79
|
+
"HTTP Error: [" . $statusCode . "] " . $method . " " . $path
|
|
80
|
+
);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
if ($inner_object) {
|
|
84
|
+
if (!is_array($res_json->$inner_object) && ($res_json->$inner_object ?? null) == null) {
|
|
85
|
+
throw new Exception(
|
|
86
|
+
'Missing Inner Object "' .
|
|
87
|
+
$inner_object .
|
|
88
|
+
'" for ' .
|
|
89
|
+
$method .
|
|
90
|
+
" " .
|
|
91
|
+
$path
|
|
92
|
+
);
|
|
93
|
+
}
|
|
94
|
+
return $res_json->$inner_object;
|
|
95
|
+
}
|
|
96
|
+
return $res_json;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
${resource_clients.map((c) => c.serialize()).join("\n\n")}
|
|
101
|
+
`;
|
|
102
|
+
};
|
|
103
|
+
//# sourceMappingURL=generate-seam-client.js.map
|
|
@@ -0,0 +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;;;;;;;IAOrE,uBAAuB;SACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,WAAW,WAAW,CAAC,CAAC,SAAS,GAAG,CAAC;SAC5D,IAAI,CAAC,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;MAoBX,uBAAuB;SACtB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,SAAS,UAAU,CAAC,CAAC,WAAW,gBAAgB,CAAC;SACxE,IAAI,CAAC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8DnB,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;CACxD,CAAA;AACD,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const getPhpType: (zod_type: string) => "string" | "array" | "float" | "bool" | "mixed";
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export const getPhpType = (zod_type) => {
|
|
2
|
+
switch (zod_type) {
|
|
3
|
+
case "string":
|
|
4
|
+
return "string";
|
|
5
|
+
case "number":
|
|
6
|
+
return "float";
|
|
7
|
+
case "boolean":
|
|
8
|
+
return "bool";
|
|
9
|
+
case "object":
|
|
10
|
+
return "mixed";
|
|
11
|
+
case "array":
|
|
12
|
+
return "array";
|
|
13
|
+
default:
|
|
14
|
+
return "mixed";
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=get-php-type.js.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export type PhpClientMethodParameter = {
|
|
2
|
+
name: string;
|
|
3
|
+
type: string;
|
|
4
|
+
required?: boolean | undefined;
|
|
5
|
+
position?: number | undefined;
|
|
6
|
+
};
|
|
7
|
+
export type PhpClientMethod = {
|
|
8
|
+
method_name: string;
|
|
9
|
+
path: string;
|
|
10
|
+
parameters: PhpClientMethodParameter[];
|
|
11
|
+
return_resource: string;
|
|
12
|
+
return_path: string;
|
|
13
|
+
is_array_response: boolean;
|
|
14
|
+
};
|
|
15
|
+
type ClientName = string;
|
|
16
|
+
type Namespace = string;
|
|
17
|
+
export type PhpClientIdentifiers = {
|
|
18
|
+
client_name: ClientName;
|
|
19
|
+
namespace: Namespace;
|
|
20
|
+
};
|
|
21
|
+
export declare class PhpClient {
|
|
22
|
+
client_name: ClientName;
|
|
23
|
+
namespace: Namespace;
|
|
24
|
+
is_parent_client: boolean;
|
|
25
|
+
child_client_identifiers: PhpClientIdentifiers[];
|
|
26
|
+
methods: PhpClientMethod[];
|
|
27
|
+
constructor(client_name: ClientName, namespace: Namespace, is_parent_client: boolean, child_client_identifiers: PhpClientIdentifiers[]);
|
|
28
|
+
addMethod(method: PhpClientMethod): void;
|
|
29
|
+
serialize(): string;
|
|
30
|
+
}
|
|
31
|
+
export {};
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
export class PhpClient {
|
|
2
|
+
constructor(client_name, namespace, is_parent_client, child_client_identifiers) {
|
|
3
|
+
this.client_name = client_name;
|
|
4
|
+
this.namespace = namespace;
|
|
5
|
+
this.is_parent_client = is_parent_client;
|
|
6
|
+
this.child_client_identifiers = child_client_identifiers;
|
|
7
|
+
this.methods = [];
|
|
8
|
+
this.methods = [];
|
|
9
|
+
}
|
|
10
|
+
addMethod(method) {
|
|
11
|
+
this.methods.push(method);
|
|
12
|
+
}
|
|
13
|
+
serialize() {
|
|
14
|
+
const has_child_clients = this.child_client_identifiers.length > 0;
|
|
15
|
+
return [
|
|
16
|
+
`class ${this.client_name}Client`,
|
|
17
|
+
`{`,
|
|
18
|
+
` private SeamClient $seam;`,
|
|
19
|
+
` ${has_child_clients
|
|
20
|
+
? this.child_client_identifiers
|
|
21
|
+
.map((i) => ` public ${i.client_name}Client $${i.namespace};`)
|
|
22
|
+
.join("\n")
|
|
23
|
+
: ""}`,
|
|
24
|
+
` public function __construct(SeamClient $seam)`,
|
|
25
|
+
` {`,
|
|
26
|
+
` $this->seam = $seam;`,
|
|
27
|
+
` ${has_child_clients
|
|
28
|
+
? this.child_client_identifiers
|
|
29
|
+
.map((i) => `$this->${i.namespace} = new ${i.client_name}Client($seam);`)
|
|
30
|
+
.join("\n")
|
|
31
|
+
: ""}`,
|
|
32
|
+
` }`,
|
|
33
|
+
"",
|
|
34
|
+
...this.methods.map(({ method_name, path, parameters, return_resource, return_path, is_array_response, }) => {
|
|
35
|
+
const does_method_use_action_attempt = return_resource === "ActionAttempt" &&
|
|
36
|
+
this.client_name !== "ActionAttempts";
|
|
37
|
+
const method_return_type = is_array_response
|
|
38
|
+
? "array"
|
|
39
|
+
: return_resource
|
|
40
|
+
? return_resource
|
|
41
|
+
: "void";
|
|
42
|
+
return [
|
|
43
|
+
"",
|
|
44
|
+
` public function ${method_name}(`,
|
|
45
|
+
` ${parameters
|
|
46
|
+
.sort((a, b) => (a.position ?? a.required ? 1000 : 9999) -
|
|
47
|
+
(b.position ?? b.required ? 1000 : 9999))
|
|
48
|
+
.map((p) => `${p.type} $${p.name}${p.required ? "" : " = null"}`)
|
|
49
|
+
.concat(does_method_use_action_attempt
|
|
50
|
+
? ["bool $wait_for_action_attempt = true"]
|
|
51
|
+
: [])
|
|
52
|
+
.join(",\n ")}`,
|
|
53
|
+
` ): ${method_return_type} {`,
|
|
54
|
+
` $request_payload = [];`,
|
|
55
|
+
``,
|
|
56
|
+
`${parameters
|
|
57
|
+
.map((p) => [
|
|
58
|
+
` if ($${p.name} !== null) {`,
|
|
59
|
+
` $request_payload["${p.name}"] = $${p.name};`,
|
|
60
|
+
` }`,
|
|
61
|
+
].join("\n"))
|
|
62
|
+
.join("\n")}`,
|
|
63
|
+
``,
|
|
64
|
+
` ${return_resource ? "$res = " : ""}$this->seam->request(`,
|
|
65
|
+
` "POST",`,
|
|
66
|
+
` "${path}",`,
|
|
67
|
+
` json: $request_payload,`,
|
|
68
|
+
` ${return_path ? `inner_object: "${return_path}",` : ""}`,
|
|
69
|
+
` );`,
|
|
70
|
+
``,
|
|
71
|
+
does_method_use_action_attempt
|
|
72
|
+
? [
|
|
73
|
+
" if (!$wait_for_action_attempt) {",
|
|
74
|
+
` return ${return_resource}::from_json($res);`,
|
|
75
|
+
" }",
|
|
76
|
+
].join("\n")
|
|
77
|
+
: "",
|
|
78
|
+
``,
|
|
79
|
+
does_method_use_action_attempt
|
|
80
|
+
? [
|
|
81
|
+
` $action_attempt = $this->seam->action_attempts->poll_until_ready(`,
|
|
82
|
+
` $res->action_attempt_id`,
|
|
83
|
+
` );`,
|
|
84
|
+
``,
|
|
85
|
+
` return $action_attempt;`,
|
|
86
|
+
].join("\n")
|
|
87
|
+
: "",
|
|
88
|
+
``,
|
|
89
|
+
return_resource && !does_method_use_action_attempt
|
|
90
|
+
? ` return ${is_array_response
|
|
91
|
+
? `array_map(fn ($r) => ${return_resource}::from_json($r), $res);`
|
|
92
|
+
: `${return_resource}::from_json($res);`}`
|
|
93
|
+
: "",
|
|
94
|
+
` }`,
|
|
95
|
+
].join("\n");
|
|
96
|
+
}),
|
|
97
|
+
this.client_name === "ActionAttempts"
|
|
98
|
+
? [
|
|
99
|
+
" public function poll_until_ready(string $action_attempt_id): ActionAttempt",
|
|
100
|
+
" {",
|
|
101
|
+
" $seam = $this->seam;",
|
|
102
|
+
" $time_waiting = 0.0;",
|
|
103
|
+
" $action_attempt = $seam->action_attempts->get($action_attempt_id);",
|
|
104
|
+
"",
|
|
105
|
+
' while ($action_attempt->status == "pending") {',
|
|
106
|
+
" $action_attempt = $seam->action_attempts->get(",
|
|
107
|
+
" $action_attempt->action_attempt_id",
|
|
108
|
+
" );",
|
|
109
|
+
" if ($time_waiting > 20.0) {",
|
|
110
|
+
' throw new Exception("Timed out waiting for access code to be created");',
|
|
111
|
+
" }",
|
|
112
|
+
" $time_waiting += 0.4;",
|
|
113
|
+
" usleep(400000); // sleep for 0.4 seconds",
|
|
114
|
+
" }",
|
|
115
|
+
"",
|
|
116
|
+
' if ($action_attempt->status == "failed") {',
|
|
117
|
+
" throw new Exception(",
|
|
118
|
+
' "Action Attempt failed: " . $action_attempt->error->message',
|
|
119
|
+
" );",
|
|
120
|
+
" }",
|
|
121
|
+
"",
|
|
122
|
+
" return $action_attempt;",
|
|
123
|
+
" }",
|
|
124
|
+
].join("\n")
|
|
125
|
+
: "",
|
|
126
|
+
"}",
|
|
127
|
+
].join("\n");
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=php-client.js.map
|
|
@@ -0,0 +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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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export type ClassFileMethod = {
|
|
2
|
+
method_name: string;
|
|
3
|
+
path: string;
|
|
4
|
+
parameters: Array<{
|
|
5
|
+
name: string;
|
|
6
|
+
type: string;
|
|
7
|
+
position?: number | undefined;
|
|
8
|
+
}>;
|
|
9
|
+
return_path: string[];
|
|
10
|
+
return_resource: string;
|
|
11
|
+
};
|
|
12
|
+
export declare class ClassFile {
|
|
13
|
+
name: string;
|
|
14
|
+
namespace: string | undefined;
|
|
15
|
+
methods: ClassFileMethod[];
|
|
16
|
+
constructor(name: string, namespace?: string | undefined);
|
|
17
|
+
addMethod(method: ClassFileMethod): void;
|
|
18
|
+
serializeToAbstractClassWithoutImports(): string;
|
|
19
|
+
serializeToClass(): string;
|
|
20
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
export class ClassFile {
|
|
2
|
+
constructor(name, namespace) {
|
|
3
|
+
this.name = name;
|
|
4
|
+
this.namespace = namespace;
|
|
5
|
+
this.methods = [];
|
|
6
|
+
}
|
|
7
|
+
addMethod(method) {
|
|
8
|
+
this.methods.push(method);
|
|
9
|
+
}
|
|
10
|
+
serializeToAbstractClassWithoutImports() {
|
|
11
|
+
return [
|
|
12
|
+
`class Abstract${this.name}(abc.ABC):`,
|
|
13
|
+
this.methods.length === 0 ? ` pass` : "",
|
|
14
|
+
...this.methods.map(({ method_name, parameters }) => [
|
|
15
|
+
"",
|
|
16
|
+
"",
|
|
17
|
+
`@abc.abstractmethod`,
|
|
18
|
+
`def ${method_name}(self, ${parameters
|
|
19
|
+
.sort((a, b) => (a.position ?? 9999) - (b.position ?? 9999))
|
|
20
|
+
.map(({ name, type, position }) => position !== undefined
|
|
21
|
+
? `${name}: ${type}`
|
|
22
|
+
: `${name}: Optional[${type}] = None`)
|
|
23
|
+
.join(", ")}):`,
|
|
24
|
+
` raise NotImplementedError()`,
|
|
25
|
+
]
|
|
26
|
+
.map((s) => ` ${s}`)
|
|
27
|
+
.join("\n")),
|
|
28
|
+
].join("\n");
|
|
29
|
+
}
|
|
30
|
+
serializeToClass() {
|
|
31
|
+
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
|
+
"",
|
|
39
|
+
`class ${this.name}(Abstract${this.name}):`,
|
|
40
|
+
// TODO DOCSTRING
|
|
41
|
+
` seam: Seam`,
|
|
42
|
+
"",
|
|
43
|
+
` def __init__(self, seam: Seam):`,
|
|
44
|
+
` self.seam = seam`,
|
|
45
|
+
"",
|
|
46
|
+
...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);
|
|
49
|
+
return [
|
|
50
|
+
"",
|
|
51
|
+
"",
|
|
52
|
+
`def ${method_name}(self, ${parameters
|
|
53
|
+
.sort((a, b) => (a.position ?? 9999) - (b.position ?? 9999))
|
|
54
|
+
.map(({ name, type, position }) => position !== undefined
|
|
55
|
+
? `${name}: ${type}`
|
|
56
|
+
: `${name}: Optional[${type}] = None`)
|
|
57
|
+
.join(", ")}):`,
|
|
58
|
+
` json_payload = {}`,
|
|
59
|
+
...parameters.map(({ name }) => ` if ${name} is not None:\n json_payload["${name}"] = ${name}`),
|
|
60
|
+
` res = self.seam.make_request(`,
|
|
61
|
+
` "POST",`,
|
|
62
|
+
` "${path}",`,
|
|
63
|
+
` json=json_payload`,
|
|
64
|
+
` )`,
|
|
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('"]["')}"])`,
|
|
68
|
+
]
|
|
69
|
+
.map((s) => ` ${s}`)
|
|
70
|
+
.join("\n");
|
|
71
|
+
}),
|
|
72
|
+
].join("\n");
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=class-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"class-file.js","sourceRoot":"","sources":["../../src/lib/generate-python-sdk/class-file.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const generatePythonSDK: () => Promise<any>;
|