@api-client/core 0.19.10 → 0.19.11
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.md +9 -63
- package/bin/test.ts +1 -12
- package/build/src/browser.d.ts +0 -15
- package/build/src/browser.d.ts.map +1 -1
- package/build/src/browser.js +0 -17
- package/build/src/browser.js.map +1 -1
- package/build/src/events/EventTypes.d.ts +0 -6
- package/build/src/events/EventTypes.d.ts.map +1 -1
- package/build/src/events/EventTypes.js +0 -2
- package/build/src/events/EventTypes.js.map +1 -1
- package/build/src/events/Events.d.ts +0 -2
- package/build/src/events/Events.d.ts.map +1 -1
- package/build/src/events/Events.js +0 -2
- package/build/src/events/Events.js.map +1 -1
- package/build/src/index.d.ts +0 -15
- package/build/src/index.d.ts.map +1 -1
- package/build/src/index.js +0 -17
- package/build/src/index.js.map +1 -1
- package/build/src/modeling/Bindings.d.ts +3 -3
- package/build/src/modeling/Bindings.d.ts.map +1 -1
- package/build/src/modeling/Bindings.js.map +1 -1
- package/build/src/modeling/DomainAssociation.d.ts +5 -5
- package/build/src/modeling/DomainAssociation.d.ts.map +1 -1
- package/build/src/modeling/DomainAssociation.js.map +1 -1
- package/build/src/modeling/DomainEntity.d.ts +2 -3
- package/build/src/modeling/DomainEntity.d.ts.map +1 -1
- package/build/src/modeling/DomainEntity.js +1 -1
- package/build/src/modeling/DomainEntity.js.map +1 -1
- package/build/src/modeling/DomainProperty.d.ts +2 -3
- package/build/src/modeling/DomainProperty.d.ts.map +1 -1
- package/build/src/modeling/DomainProperty.js +1 -1
- package/build/src/modeling/DomainProperty.js.map +1 -1
- package/build/src/modeling/ai/types.d.ts +2 -2
- package/build/src/modeling/ai/types.d.ts.map +1 -1
- package/build/src/modeling/ai/types.js.map +1 -1
- package/build/src/{amf → modeling/amf}/DataValueGenerator.d.ts +1 -1
- package/build/src/modeling/amf/DataValueGenerator.d.ts.map +1 -0
- package/build/src/{amf → modeling/amf}/DataValueGenerator.js +2 -3
- package/build/src/modeling/amf/DataValueGenerator.js.map +1 -0
- package/build/src/modeling/amf/ShapeGenerator.d.ts +20 -20
- package/build/src/modeling/amf/ShapeGenerator.d.ts.map +1 -1
- package/build/src/modeling/amf/ShapeGenerator.js +16 -18
- package/build/src/modeling/amf/ShapeGenerator.js.map +1 -1
- package/build/src/modeling/amf/core_types.d.ts +9 -0
- package/build/src/modeling/amf/core_types.d.ts.map +1 -0
- package/build/src/modeling/amf/core_types.js +45 -0
- package/build/src/modeling/amf/core_types.js.map +1 -0
- package/build/src/models/http-flows/LegacyTranslator.js +1 -1
- package/build/src/models/http-flows/LegacyTranslator.js.map +1 -1
- package/build/src/runtime/http-runner/HttpFlows.js +1 -1
- package/build/src/runtime/http-runner/HttpFlows.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/eslint.config.js +0 -1
- package/package.json +11 -14
- package/src/events/EventTypes.ts +0 -2
- package/src/events/Events.ts +0 -2
- package/src/modeling/Bindings.ts +3 -3
- package/src/modeling/DomainAssociation.ts +5 -5
- package/src/modeling/DomainEntity.ts +3 -4
- package/src/modeling/DomainProperty.ts +3 -4
- package/src/modeling/ai/types.ts +2 -2
- package/src/{amf → modeling/amf}/DataValueGenerator.ts +3 -4
- package/src/modeling/amf/ShapeGenerator.ts +45 -61
- package/src/modeling/amf/core_types.ts +47 -0
- package/src/models/http-flows/LegacyTranslator.ts +1 -1
- package/src/runtime/http-runner/HttpFlows.ts +1 -1
- package/tests/unit/{amf → modeling/amf}/data_value_generator.spec.ts +2 -2
- package/tests/unit/modeling/amf/shape_generator.spec.ts +146 -167
- package/tests/unit/modeling/domain_asociation.spec.ts +13 -13
- package/tests/unit/runtime/runners/http_assertion_runner.spec.ts +1 -1
- package/tests/unit/runtime/runners/http_flow_runner.spec.ts +1 -1
- package/tests/unit/runtime/runners/project_runner.spec.ts +1 -1
- package/tests/unit/runtime/runners/request_runner.spec.ts +1 -1
- package/tests/unit/runtime/runners/serial_runner.spec.ts +1 -1
- package/build/src/amf/AmfMixin.d.ts +0 -396
- package/build/src/amf/AmfMixin.d.ts.map +0 -1
- package/build/src/amf/AmfMixin.js +0 -1138
- package/build/src/amf/AmfMixin.js.map +0 -1
- package/build/src/amf/AmfSerializer.d.ts +0 -137
- package/build/src/amf/AmfSerializer.d.ts.map +0 -1
- package/build/src/amf/AmfSerializer.js +0 -1947
- package/build/src/amf/AmfSerializer.js.map +0 -1
- package/build/src/amf/AmfTypes.d.ts +0 -25
- package/build/src/amf/AmfTypes.d.ts.map +0 -1
- package/build/src/amf/AmfTypes.js +0 -143
- package/build/src/amf/AmfTypes.js.map +0 -1
- package/build/src/amf/ApiExampleGenerator.d.ts +0 -40
- package/build/src/amf/ApiExampleGenerator.d.ts.map +0 -1
- package/build/src/amf/ApiExampleGenerator.js +0 -112
- package/build/src/amf/ApiExampleGenerator.js.map +0 -1
- package/build/src/amf/ApiMonacoSchemaGenerator.d.ts +0 -68
- package/build/src/amf/ApiMonacoSchemaGenerator.d.ts.map +0 -1
- package/build/src/amf/ApiMonacoSchemaGenerator.js +0 -248
- package/build/src/amf/ApiMonacoSchemaGenerator.js.map +0 -1
- package/build/src/amf/ApiSchemaGenerator.d.ts +0 -56
- package/build/src/amf/ApiSchemaGenerator.d.ts.map +0 -1
- package/build/src/amf/ApiSchemaGenerator.js +0 -94
- package/build/src/amf/ApiSchemaGenerator.js.map +0 -1
- package/build/src/amf/ApiSchemaValues.d.ts +0 -111
- package/build/src/amf/ApiSchemaValues.d.ts.map +0 -1
- package/build/src/amf/ApiSchemaValues.js +0 -463
- package/build/src/amf/ApiSchemaValues.js.map +0 -1
- package/build/src/amf/DataValueGenerator.d.ts.map +0 -1
- package/build/src/amf/DataValueGenerator.js.map +0 -1
- package/build/src/amf/Parsing.d.ts +0 -48
- package/build/src/amf/Parsing.d.ts.map +0 -1
- package/build/src/amf/Parsing.js +0 -2
- package/build/src/amf/Parsing.js.map +0 -1
- package/build/src/amf/Utils.d.ts +0 -37
- package/build/src/amf/Utils.d.ts.map +0 -1
- package/build/src/amf/Utils.js +0 -169
- package/build/src/amf/Utils.js.map +0 -1
- package/build/src/amf/data-node/DataNodeBase.d.ts +0 -34
- package/build/src/amf/data-node/DataNodeBase.d.ts.map +0 -1
- package/build/src/amf/data-node/DataNodeBase.js +0 -77
- package/build/src/amf/data-node/DataNodeBase.js.map +0 -1
- package/build/src/amf/data-node/JsonDataNodeGenerator.d.ts +0 -15
- package/build/src/amf/data-node/JsonDataNodeGenerator.d.ts.map +0 -1
- package/build/src/amf/data-node/JsonDataNodeGenerator.js +0 -23
- package/build/src/amf/data-node/JsonDataNodeGenerator.js.map +0 -1
- package/build/src/amf/data-node/UrlEncodedDataNodeGenerator.d.ts +0 -14
- package/build/src/amf/data-node/UrlEncodedDataNodeGenerator.d.ts.map +0 -1
- package/build/src/amf/data-node/UrlEncodedDataNodeGenerator.js +0 -48
- package/build/src/amf/data-node/UrlEncodedDataNodeGenerator.js.map +0 -1
- package/build/src/amf/data-node/XmlDataNodeGenerator.d.ts +0 -22
- package/build/src/amf/data-node/XmlDataNodeGenerator.d.ts.map +0 -1
- package/build/src/amf/data-node/XmlDataNodeGenerator.js +0 -34
- package/build/src/amf/data-node/XmlDataNodeGenerator.js.map +0 -1
- package/build/src/amf/definitions/Amf.d.ts +0 -363
- package/build/src/amf/definitions/Amf.d.ts.map +0 -1
- package/build/src/amf/definitions/Amf.js +0 -3
- package/build/src/amf/definitions/Amf.js.map +0 -1
- package/build/src/amf/definitions/Api.d.ts +0 -383
- package/build/src/amf/definitions/Api.d.ts.map +0 -1
- package/build/src/amf/definitions/Api.js +0 -2
- package/build/src/amf/definitions/Api.js.map +0 -1
- package/build/src/amf/definitions/Base.d.ts +0 -12
- package/build/src/amf/definitions/Base.d.ts.map +0 -1
- package/build/src/amf/definitions/Base.js +0 -2
- package/build/src/amf/definitions/Base.js.map +0 -1
- package/build/src/amf/definitions/Namespace.d.ts +0 -327
- package/build/src/amf/definitions/Namespace.d.ts.map +0 -1
- package/build/src/amf/definitions/Namespace.js +0 -346
- package/build/src/amf/definitions/Namespace.js.map +0 -1
- package/build/src/amf/definitions/Shapes.d.ts +0 -312
- package/build/src/amf/definitions/Shapes.d.ts.map +0 -1
- package/build/src/amf/definitions/Shapes.js +0 -87
- package/build/src/amf/definitions/Shapes.js.map +0 -1
- package/build/src/amf/models/AmfDataNode.d.ts +0 -67
- package/build/src/amf/models/AmfDataNode.d.ts.map +0 -1
- package/build/src/amf/models/AmfDataNode.js +0 -192
- package/build/src/amf/models/AmfDataNode.js.map +0 -1
- package/build/src/amf/shape/ShapeBase.d.ts +0 -74
- package/build/src/amf/shape/ShapeBase.d.ts.map +0 -1
- package/build/src/amf/shape/ShapeBase.js +0 -93
- package/build/src/amf/shape/ShapeBase.js.map +0 -1
- package/build/src/amf/shape/ShapeJsonSchemaGenerator.d.ts +0 -47
- package/build/src/amf/shape/ShapeJsonSchemaGenerator.d.ts.map +0 -1
- package/build/src/amf/shape/ShapeJsonSchemaGenerator.js +0 -420
- package/build/src/amf/shape/ShapeJsonSchemaGenerator.js.map +0 -1
- package/build/src/amf/shape/ShapeXmlSchemaGenerator.d.ts +0 -85
- package/build/src/amf/shape/ShapeXmlSchemaGenerator.d.ts.map +0 -1
- package/build/src/amf/shape/ShapeXmlSchemaGenerator.js +0 -852
- package/build/src/amf/shape/ShapeXmlSchemaGenerator.js.map +0 -1
- package/build/src/events/amf/AmfEventTypes.d.ts +0 -7
- package/build/src/events/amf/AmfEventTypes.d.ts.map +0 -1
- package/build/src/events/amf/AmfEventTypes.js +0 -7
- package/build/src/events/amf/AmfEventTypes.js.map +0 -1
- package/build/src/events/amf/AmfEvents.d.ts +0 -34
- package/build/src/events/amf/AmfEvents.d.ts.map +0 -1
- package/build/src/events/amf/AmfEvents.js +0 -63
- package/build/src/events/amf/AmfEvents.js.map +0 -1
- package/build/src/mocking/RandExp.d.ts +0 -55
- package/build/src/mocking/RandExp.d.ts.map +0 -1
- package/build/src/mocking/RandExp.js +0 -302
- package/build/src/mocking/RandExp.js.map +0 -1
- package/build/src/mocking/lib/ret.d.ts +0 -16
- package/build/src/mocking/lib/ret.d.ts.map +0 -1
- package/build/src/mocking/lib/ret.js +0 -284
- package/build/src/mocking/lib/ret.js.map +0 -1
- package/data/apis/APIC-187/APIC-187.raml +0 -21
- package/data/apis/APIC-187/dataType.raml +0 -132
- package/data/apis/APIC-187/example.raml +0 -84
- package/data/apis/APIC-188/APIC-188.raml +0 -21
- package/data/apis/APIC-188/dataType.raml +0 -132
- package/data/apis/APIC-188/example.raml +0 -84
- package/data/apis/APIC-233/APIC-233.raml +0 -15
- package/data/apis/APIC-391/APIC-391.raml +0 -44
- package/data/apis/APIC-391/examples/post-body-request-example.raml +0 -7
- package/data/apis/APIC-483/APIC-483.raml +0 -16
- package/data/apis/APIC-483/example/list-of-bank-succ.json +0 -32
- package/data/apis/APIC-483/schema/response-retrieve-list-bank.json +0 -68
- package/data/apis/APIC-487/APIC-487.raml +0 -36
- package/data/apis/APIC-655/APIC-655.raml +0 -44
- package/data/apis/APIC-655/delivery.json +0 -12
- package/data/apis/APIC-689/APIC-689.raml +0 -20
- package/data/apis/APIC-690/APIC-690.raml +0 -17
- package/data/apis/APIC-690/datatypes/Address.raml +0 -10
- package/data/apis/APIC-690/datatypes/Customer.raml +0 -17
- package/data/apis/APIC-690/examples/CustomerExample2.raml +0 -17
- package/data/apis/APIC-690/examples/CustomersExample.raml +0 -34
- package/data/apis/SE-10469/Purchase-Order-oagis-id-dd32f9c6c01048a19e15c423c9c741ae.json +0 -1383
- package/data/apis/SE-10469/SE-10469.raml +0 -11
- package/data/apis/SE-13092/Examples/PersonExample.raml +0 -7
- package/data/apis/SE-13092/SE-13092.raml +0 -37
- package/data/apis/SE-13092/datatypes/Address.raml +0 -5
- package/data/apis/SE-13092/datatypes/InlineType.raml +0 -5
- package/data/apis/SE-13092/datatypes/Person.raml +0 -15
- package/data/apis/SE-22063/SE-22063.raml +0 -14
- package/data/apis/SE-22063/stock.raml +0 -41
- package/data/apis/amf-helper-api/amf-helper-api.raml +0 -1024
- package/data/apis/amf-helper-api/examples/comment-example.json +0 -42
- package/data/apis/amf-helper-api/examples/commentCreateRequest-example.json +0 -7
- package/data/apis/amf-helper-api/examples/commentList-example.json +0 -48
- package/data/apis/amf-helper-api/examples/person.json +0 -14
- package/data/apis/amf-helper-api/examples/person.raml +0 -13
- package/data/apis/amf-helper-api/examples/person.xml +0 -14
- package/data/apis/amf-helper-api/libraries/comment-lib.raml +0 -143
- package/data/apis/amf-helper-api/library.raml +0 -7
- package/data/apis/amf-helper-api/schemas/person.json +0 -104
- package/data/apis/amf-helper-api/schemas/person.xsd +0 -26
- package/data/apis/amf-helper-api/traits/file.raml +0 -33
- package/data/apis/amf-helper-api/traits/pagination.raml +0 -80
- package/data/apis/amf-helper-api/traits/results.raml +0 -19
- package/data/apis/amf-helper-api/traits/visibility.raml +0 -14
- package/data/apis/amf-helper-api/types/app-person.raml +0 -101
- package/data/apis/amf-helper-api/types/dimensions.raml +0 -24
- package/data/apis/amf-helper-api/types/external-type.raml +0 -7
- package/data/apis/amf-helper-api/types/image.raml +0 -23
- package/data/apis/amf-helper-api/types/product.raml +0 -52
- package/data/apis/amf-helper-api/types/resource.raml +0 -11
- package/data/apis/amf-helper-api/types/standard-request.raml +0 -50
- package/data/apis/amf-helper-api/types/user.raml +0 -37
- package/data/apis/arc-demo-api/arc-demo-api.raml +0 -468
- package/data/apis/arc-demo-api/examples/e400.xml +0 -4
- package/data/apis/arc-demo-api/examples/e401.xml +0 -4
- package/data/apis/arc-demo-api/examples/e404.xml +0 -4
- package/data/apis/arc-demo-api/examples/image.xml +0 -5
- package/data/apis/arc-demo-api/examples/messages-example.json +0 -22
- package/data/apis/arc-demo-api/examples/messages-sent-example.json +0 -15
- package/data/apis/arc-demo-api/examples/person.json +0 -14
- package/data/apis/arc-demo-api/examples/person.url.encoded +0 -1
- package/data/apis/arc-demo-api/examples/person.xml +0 -14
- package/data/apis/arc-demo-api/examples/product.xml +0 -9
- package/data/apis/arc-demo-api/library.raml +0 -36
- package/data/apis/arc-demo-api/resourceTypes/app-person.raml +0 -49
- package/data/apis/arc-demo-api/resourceTypes/example-types.raml +0 -45
- package/data/apis/arc-demo-api/resourceTypes/image.raml +0 -23
- package/data/apis/arc-demo-api/resourceTypes/message-sent-type.raml +0 -23
- package/data/apis/arc-demo-api/resourceTypes/message-type.raml +0 -33
- package/data/apis/arc-demo-api/resourceTypes/product.raml +0 -52
- package/data/apis/arc-demo-api/resourceTypes/resource.raml +0 -11
- package/data/apis/arc-demo-api/schemas/error-response.xsd +0 -11
- package/data/apis/arc-demo-api/schemas/image.xsd +0 -11
- package/data/apis/arc-demo-api/schemas/person.json +0 -104
- package/data/apis/arc-demo-api/schemas/person.xsd +0 -26
- package/data/apis/arc-demo-api/schemas/product.xsd +0 -17
- package/data/apis/arc-demo-api/securitySchemes/basic.raml +0 -5
- package/data/apis/arc-demo-api/securitySchemes/oauth_2_0.raml +0 -29
- package/data/apis/arc-demo-api/securitySchemes/x-custom.raml +0 -26
- package/data/apis/arc-demo-api/traits/adminable.raml +0 -23
- package/data/apis/arc-demo-api/traits/pagination.raml +0 -83
- package/data/apis/arc-demo-api/traits/rate-limited.raml +0 -9
- package/data/apis/async-api/async-api.yaml +0 -96
- package/data/apis/example-generator-api/contact-email-example.raml +0 -6
- package/data/apis/example-generator-api/contact-example.raml +0 -5
- package/data/apis/example-generator-api/contact-fax-example.raml +0 -5
- package/data/apis/example-generator-api/contact-website-example.raml +0 -2
- package/data/apis/example-generator-api/example-1.raml +0 -6
- package/data/apis/example-generator-api/example-2.raml +0 -9
- package/data/apis/example-generator-api/example-3.raml +0 -4
- package/data/apis/example-generator-api/example-4.raml +0 -2
- package/data/apis/example-generator-api/example-5.raml +0 -4
- package/data/apis/example-generator-api/example-6.raml +0 -2
- package/data/apis/example-generator-api/example-7.raml +0 -5
- package/data/apis/example-generator-api/example-generator-api.raml +0 -423
- package/data/apis/example-generator-api/example.json +0 -14
- package/data/apis/example-generator-api/example.xml +0 -15
- package/data/apis/example-generator-api/example.xsd +0 -26
- package/data/apis/example-generator-api/examples/employee.raml +0 -7
- package/data/apis/example-generator-api/examples/employees.raml +0 -7
- package/data/apis/example-generator-api/linked-named-example.raml +0 -21
- package/data/apis/example-generator-api/named-example-with-link.raml +0 -5
- package/data/apis/example-generator-api/named-example.raml +0 -9
- package/data/apis/example-generator-api/user-json-example.raml +0 -17
- package/data/apis/example-generator-api/user-raml-example.raml +0 -37
- package/data/apis/example-generator-api/user.json +0 -8
- package/data/apis/example-generator-api/user.raml +0 -18
- package/data/apis/example-generator-api/users-json-example.raml +0 -17
- package/data/apis/example-generator-api/users-raml-example.raml +0 -32
- package/data/apis/example-generator-api/users.json +0 -8
- package/data/apis/expanded-api/expanded-api.raml +0 -8
- package/data/apis/flattened-api/flattened-api.raml +0 -8
- package/data/apis/multiple-servers/multiple-servers.yaml +0 -112
- package/data/apis/oas-3-api/oas-3-api.yaml +0 -356
- package/data/apis/oas-date/oas-date.yaml +0 -28
- package/data/apis/oas-types/oas-types.yaml +0 -159
- package/data/apis/oas-unions/oas-unions.yaml +0 -75
- package/data/apis/petstore/petstore.yaml +0 -954
- package/data/apis/raml-date/raml-date.raml +0 -28
- package/data/apis/recursive/recursive.raml +0 -14
- package/data/apis/schema-api/examples/person.json +0 -14
- package/data/apis/schema-api/examples/person.raml +0 -14
- package/data/apis/schema-api/examples/person.url.encoded +0 -1
- package/data/apis/schema-api/examples/person.xml +0 -14
- package/data/apis/schema-api/library/demo-types.raml +0 -43
- package/data/apis/schema-api/schema-api.raml +0 -656
- package/data/apis/schema-api/schemas/person.json +0 -104
- package/data/apis/schema-api/schemas/person.xsd +0 -26
- package/data/apis/schema-api/types/DemoPerson.raml +0 -67
- package/data/apis/secured-api/oauth-2-custom-settings.raml +0 -143
- package/data/apis/secured-api/oauth2-header-delivery.raml +0 -13
- package/data/apis/secured-api/oauth2-no-delivery.raml +0 -8
- package/data/apis/secured-api/oauth2-no-grants.raml +0 -12
- package/data/apis/secured-api/oauth2-pkce.raml +0 -13
- package/data/apis/secured-api/oauth2-query-delivery.raml +0 -13
- package/data/apis/secured-api/oauth_1_0.raml +0 -8
- package/data/apis/secured-api/oauth_1_0_no-settings.raml +0 -3
- package/data/apis/secured-api/oauth_1_0_no-signature.raml +0 -7
- package/data/apis/secured-api/oauth_1_0_signature.raml +0 -8
- package/data/apis/secured-api/passthrough-querystring.raml +0 -16
- package/data/apis/secured-api/passthrough.raml +0 -24
- package/data/apis/secured-api/secured-api.raml +0 -231
- package/data/apis/secured-api/x-custom.raml +0 -33
- package/data/apis/secured-api/x-other.raml +0 -29
- package/data/apis/secured-api/x-query-string.raml +0 -16
- package/data/apis/tracked-examples/datatypes/employee.raml +0 -5
- package/data/apis/tracked-examples/examples/employee.raml +0 -4
- package/data/apis/tracked-examples/examples/employees.raml +0 -8
- package/data/apis/tracked-examples/tracked-to-linked.raml +0 -28
- package/data/model.js +0 -129
- package/data/models/APIC-187.json +0 -11416
- package/data/models/APIC-188.json +0 -11416
- package/data/models/APIC-233.json +0 -539
- package/data/models/APIC-391.json +0 -1903
- package/data/models/APIC-483.json +0 -3110
- package/data/models/APIC-487.json +0 -1225
- package/data/models/APIC-655.json +0 -3145
- package/data/models/APIC-689.json +0 -797
- package/data/models/APIC-690.json +0 -5992
- package/data/models/SE-10469.json +0 -22898
- package/data/models/SE-13092.json +0 -2769
- package/data/models/SE-22063.json +0 -2314
- package/data/models/amf-helper-api.json +0 -84457
- package/data/models/arc-demo-api.json +0 -52041
- package/data/models/async-api.json +0 -3227
- package/data/models/example-generator-api.json +0 -45209
- package/data/models/expanded-api.json +0 -251
- package/data/models/flattened-api.json +0 -251
- package/data/models/multiple-servers.json +0 -2769
- package/data/models/oas-3-api.json +0 -10590
- package/data/models/oas-date.json +0 -637
- package/data/models/oas-types.json +0 -5352
- package/data/models/oas-unions.json +0 -1935
- package/data/models/petstore.json +0 -27712
- package/data/models/raml-date.json +0 -1114
- package/data/models/recursive.json +0 -610
- package/data/models/schema-api.json +0 -35527
- package/data/models/secured-api.json +0 -21071
- package/data/models/tracked-to-linked.json +0 -1914
- package/src/amf/AmfMixin.ts +0 -1726
- package/src/amf/AmfSerializer.ts +0 -2358
- package/src/amf/AmfTypes.ts +0 -147
- package/src/amf/ApiExampleGenerator.ts +0 -122
- package/src/amf/ApiMonacoSchemaGenerator.ts +0 -332
- package/src/amf/ApiSchemaGenerator.ts +0 -115
- package/src/amf/ApiSchemaValues.ts +0 -509
- package/src/amf/Parsing.ts +0 -50
- package/src/amf/Utils.ts +0 -172
- package/src/amf/data-node/DataNodeBase.ts +0 -83
- package/src/amf/data-node/JsonDataNodeGenerator.ts +0 -24
- package/src/amf/data-node/README.md +0 -3
- package/src/amf/data-node/UrlEncodedDataNodeGenerator.ts +0 -49
- package/src/amf/data-node/XmlDataNodeGenerator.ts +0 -46
- package/src/amf/definitions/Amf.ts +0 -440
- package/src/amf/definitions/Api.ts +0 -445
- package/src/amf/definitions/Base.ts +0 -13
- package/src/amf/definitions/Namespace.ts +0 -357
- package/src/amf/definitions/Shapes.ts +0 -438
- package/src/amf/models/AmfDataNode.ts +0 -210
- package/src/amf/shape/README.md +0 -4
- package/src/amf/shape/ShapeBase.ts +0 -174
- package/src/amf/shape/ShapeJsonSchemaGenerator.ts +0 -457
- package/src/amf/shape/ShapeXmlSchemaGenerator.ts +0 -933
- package/src/events/amf/AmfEventTypes.ts +0 -6
- package/src/events/amf/AmfEvents.ts +0 -78
- package/src/mocking/RandExp.ts +0 -335
- package/src/mocking/lib/ret.ts +0 -279
- package/tests/unit/amf/APIC-187.spec.ts +0 -41
- package/tests/unit/amf/APIC-188.spec.ts +0 -30
- package/tests/unit/amf/APIC-233.spec.ts +0 -32
- package/tests/unit/amf/APIC-391.spec.ts +0 -39
- package/tests/unit/amf/APIC-487.spec.ts +0 -44
- package/tests/unit/amf/APIC-655.spec.ts +0 -41
- package/tests/unit/amf/APIC-689.spec.ts +0 -28
- package/tests/unit/amf/APIC-690.spec.ts +0 -93
- package/tests/unit/amf/AmfLoader.ts +0 -538
- package/tests/unit/amf/AmfMixin.spec.ts +0 -1707
- package/tests/unit/amf/ApiExampleGenerator.spec.ts +0 -250
- package/tests/unit/amf/ApiMonacoSchemaGenerator.spec.ts +0 -183
- package/tests/unit/amf/ApiSchemaValues.spec.ts +0 -602
- package/tests/unit/amf/Namepsace.spec.ts +0 -494
- package/tests/unit/amf/SE-10469.spec.ts +0 -35
- package/tests/unit/amf/SE-13092.spec.ts +0 -64
- package/tests/unit/amf/SE-22063.spec.ts +0 -45
- package/tests/unit/amf/raml-examples.spec.ts +0 -43
- package/tests/unit/amf/schema_gen_array.spec.ts +0 -199
- package/tests/unit/amf/schema_gen_oas.spec.ts +0 -140
- package/tests/unit/amf/schema_gen_object.spec.ts +0 -279
- package/tests/unit/amf/schema_gen_scalar.spec.ts +0 -143
- package/tests/unit/amf/schema_gen_union.spec.ts +0 -401
- package/tests/unit/amf/schema_gen_unknown.spec.ts +0 -42
- package/tests/unit/amf/schema_gen_xml.spec.ts +0 -726
- package/tests/unit/amf/serializer/APIC-483.spec.ts +0 -36
- package/tests/unit/amf/serializer/Anotations.spec.ts +0 -50
- package/tests/unit/amf/serializer/Api.spec.ts +0 -210
- package/tests/unit/amf/serializer/Documentation.spec.ts +0 -52
- package/tests/unit/amf/serializer/Endpoints.spec.ts +0 -172
- package/tests/unit/amf/serializer/Operations.spec.ts +0 -330
- package/tests/unit/amf/serializer/Parameters.spec.ts +0 -149
- package/tests/unit/amf/serializer/PayloadExamples.spec.ts +0 -152
- package/tests/unit/amf/serializer/Security.spec.ts +0 -626
- package/tests/unit/amf/serializer/Server.spec.ts +0 -78
- package/tests/unit/amf/serializer/Shapes.spec.ts +0 -304
- package/tests/unit/amf/serializer/SourceMaps.spec.ts +0 -52
- package/tests/unit/amf/shapes/ShapeXmlSchemaGenerator.spec.ts +0 -28
- package/tests/unit/amf/tracked-to-linked.spec.ts +0 -90
- package/tests/unit/amf/xml-data-processing.spec.ts +0 -217
- package/tests/unit/events/amf.spec.ts +0 -151
|
@@ -1,538 +0,0 @@
|
|
|
1
|
-
import { readFile } from 'fs/promises'
|
|
2
|
-
import { AmfMixin } from '../../../src/amf/AmfMixin.js'
|
|
3
|
-
import { AmfSerializer } from '../../../src/amf/AmfSerializer.js'
|
|
4
|
-
import { AmfNamespace as ns } from '../../../src/amf/definitions/Namespace.js'
|
|
5
|
-
import {
|
|
6
|
-
IAmfDocument,
|
|
7
|
-
IAmfCreativeWork,
|
|
8
|
-
IAmfEndPoint,
|
|
9
|
-
IAmfOperation,
|
|
10
|
-
IAmfParameter,
|
|
11
|
-
IAmfPayload,
|
|
12
|
-
IAmfRequest,
|
|
13
|
-
IAmfResponse,
|
|
14
|
-
IAmfSecurityRequirement,
|
|
15
|
-
IAmfSecurityScheme,
|
|
16
|
-
IAmfServer,
|
|
17
|
-
IAmfShape,
|
|
18
|
-
IAmfWebApi,
|
|
19
|
-
} from '../../../src/amf/definitions/Amf.js'
|
|
20
|
-
import {
|
|
21
|
-
IApiDocumentation,
|
|
22
|
-
IApiEndPoint,
|
|
23
|
-
IApiOperation,
|
|
24
|
-
IApiParameter,
|
|
25
|
-
IApiPayload,
|
|
26
|
-
IApiRequest,
|
|
27
|
-
IApiResponse,
|
|
28
|
-
IApiSecurityScheme,
|
|
29
|
-
IApiServer,
|
|
30
|
-
} from '../../../src/amf/definitions/Api.js'
|
|
31
|
-
import { IShapeUnion } from '../../../src/amf/definitions/Shapes.js'
|
|
32
|
-
|
|
33
|
-
export interface EndpointOperation {
|
|
34
|
-
endpoint: IAmfEndPoint
|
|
35
|
-
operation: IAmfOperation
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export interface GraphLoadOptions {
|
|
39
|
-
noExpand?: boolean
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export class AmfLoader extends AmfMixin(Object) {
|
|
43
|
-
/**
|
|
44
|
-
* Reads AMF graph model as string
|
|
45
|
-
*/
|
|
46
|
-
async getGraph(fileName = 'demo-api', opts: GraphLoadOptions = {}): Promise<IAmfDocument> {
|
|
47
|
-
const file = `${fileName}.json`
|
|
48
|
-
const loc = new URL(`../../../data/models/${file}`, import.meta.url)
|
|
49
|
-
let result = JSON.parse(await readFile(loc, 'utf8'))
|
|
50
|
-
if (Array.isArray(result)) {
|
|
51
|
-
;[result] = result
|
|
52
|
-
}
|
|
53
|
-
if (opts.noExpand) {
|
|
54
|
-
return result
|
|
55
|
-
}
|
|
56
|
-
let amf = this._expand(result)
|
|
57
|
-
if (Array.isArray(amf)) {
|
|
58
|
-
;[amf] = amf
|
|
59
|
-
}
|
|
60
|
-
return amf
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
lookupEndpoint(model: IAmfDocument, path: string): IAmfEndPoint {
|
|
64
|
-
const amf = this._expand(model)
|
|
65
|
-
this.amf = amf
|
|
66
|
-
const webApi = this._computeApi(amf)
|
|
67
|
-
if (!webApi) {
|
|
68
|
-
throw new Error('This AMF model does not contain API definition.')
|
|
69
|
-
}
|
|
70
|
-
// @ts-expect-error Used in testing
|
|
71
|
-
const endpoints = webApi[this._getAmfKey(ns.aml.vocabularies.apiContract.endpoint)]
|
|
72
|
-
if (!Array.isArray(endpoints) || !endpoints.length) {
|
|
73
|
-
throw new Error('This API does not contain endpoints.')
|
|
74
|
-
}
|
|
75
|
-
const pathKey = ns.aml.vocabularies.apiContract.path
|
|
76
|
-
const ep = endpoints.find((i) => this._getValue(i, pathKey) === path)
|
|
77
|
-
if (!ep) {
|
|
78
|
-
throw new Error(`An endpoint with path ${path} does not exist in this API.`)
|
|
79
|
-
}
|
|
80
|
-
return ep
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
getEndpoint(model: IAmfDocument, path: string): IApiEndPoint {
|
|
84
|
-
const amf = this._expand(model)
|
|
85
|
-
const op = this.lookupEndpoint(amf, path)
|
|
86
|
-
if (!op) {
|
|
87
|
-
throw new Error(`Unknown endpoint for path ${path}`)
|
|
88
|
-
}
|
|
89
|
-
const serializer = new AmfSerializer(amf)
|
|
90
|
-
return serializer.endPoint(op)
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
lookupOperation(model: IAmfDocument, endpoint: string, operation: string): IAmfOperation {
|
|
94
|
-
const amf = this._expand(model)
|
|
95
|
-
const endPoint = this.lookupEndpoint(amf, endpoint)
|
|
96
|
-
const opKey = this._getAmfKey(ns.aml.vocabularies.apiContract.supportedOperation)
|
|
97
|
-
// @ts-expect-error Used in testing
|
|
98
|
-
const ops = this._ensureArray(endPoint[opKey]) as IAmfOperation[]
|
|
99
|
-
const result = ops.find(
|
|
100
|
-
(item) => (this._getValue(item, ns.aml.vocabularies.apiContract.method) as string) === operation
|
|
101
|
-
)
|
|
102
|
-
if (!result) {
|
|
103
|
-
throw new Error(`Unknown operation ${operation} for endpoint ${endpoint}`)
|
|
104
|
-
}
|
|
105
|
-
return result
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
getOperation(model: IAmfDocument, endpoint: string, operation: string): IApiOperation {
|
|
109
|
-
const amf = this._expand(model)
|
|
110
|
-
const op = this.lookupOperation(amf, endpoint, operation)
|
|
111
|
-
if (!op) {
|
|
112
|
-
throw new Error(`Unknown operation for path ${endpoint} and method ${operation}`)
|
|
113
|
-
}
|
|
114
|
-
const serializer = new AmfSerializer(amf)
|
|
115
|
-
return serializer.operation(op)
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
lookupEndpointOperation(model: IAmfDocument, path: string, operation: string): EndpointOperation {
|
|
119
|
-
const endpoint = this.lookupEndpoint(model, path)
|
|
120
|
-
const opKey = this._getAmfKey(ns.aml.vocabularies.apiContract.supportedOperation)
|
|
121
|
-
// @ts-expect-error Used in testing
|
|
122
|
-
const ops = this._ensureArray(endpoint[opKey]) as IAmfOperation[]
|
|
123
|
-
const op = ops.find((item) => this._getValue(item, ns.aml.vocabularies.apiContract.method) === operation)
|
|
124
|
-
if (!op) {
|
|
125
|
-
throw new Error(`Unknown operation for path ${endpoint} and method ${operation}`)
|
|
126
|
-
}
|
|
127
|
-
return {
|
|
128
|
-
endpoint,
|
|
129
|
-
operation: op,
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
lookupExpects(model: IAmfDocument, path: string, operation: string): IAmfRequest {
|
|
134
|
-
const op = this.lookupOperation(model, path, operation)
|
|
135
|
-
if (!op) {
|
|
136
|
-
throw new Error(`Unknown operation for path ${path} and method ${operation}`)
|
|
137
|
-
}
|
|
138
|
-
// @ts-expect-error Used in testing
|
|
139
|
-
let expects = op[this._getAmfKey(ns.aml.vocabularies.apiContract.expects)]
|
|
140
|
-
if (!expects) {
|
|
141
|
-
throw new Error(`IAmfOperation has no "expects" value.`)
|
|
142
|
-
}
|
|
143
|
-
if (Array.isArray(expects)) {
|
|
144
|
-
;[expects] = expects
|
|
145
|
-
}
|
|
146
|
-
return expects
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
lookupPayloads(model: IAmfDocument, endpoint: string, operation: string): IAmfPayload[] {
|
|
150
|
-
const expects = this.lookupExpects(model, endpoint, operation)
|
|
151
|
-
// @ts-expect-error Used in testing
|
|
152
|
-
let payloads = expects[this._getAmfKey(ns.aml.vocabularies.apiContract.payload)] as IAmfPayload[]
|
|
153
|
-
if (payloads && !Array.isArray(payloads)) {
|
|
154
|
-
payloads = [payloads]
|
|
155
|
-
}
|
|
156
|
-
return payloads
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
getPayloads(model: IAmfDocument, endpoint: string, operation: string): IApiPayload[] {
|
|
160
|
-
const amf = this._expand(model)
|
|
161
|
-
|
|
162
|
-
const payloads = this.lookupPayloads(amf, endpoint, operation)
|
|
163
|
-
if (!payloads) {
|
|
164
|
-
throw new Error(`No payloads for path ${endpoint} and operation ${operation}`)
|
|
165
|
-
}
|
|
166
|
-
const serializer = new AmfSerializer(amf)
|
|
167
|
-
return payloads.map((i) => serializer.payload(i))
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
lookupSecurity(model: IAmfDocument, name: string): IAmfSecurityScheme | undefined {
|
|
171
|
-
const amf = this._expand(model)
|
|
172
|
-
|
|
173
|
-
this.amf = amf
|
|
174
|
-
const declares = this._computeDeclares(amf) || []
|
|
175
|
-
let security = declares.find((item) => {
|
|
176
|
-
if (Array.isArray(item)) {
|
|
177
|
-
;[item] = item
|
|
178
|
-
}
|
|
179
|
-
if (this._getValue(item, ns.aml.vocabularies.core.displayName) === name) {
|
|
180
|
-
return true
|
|
181
|
-
}
|
|
182
|
-
if (this._getValue(item, ns.aml.vocabularies.core.name) === name) {
|
|
183
|
-
return true
|
|
184
|
-
}
|
|
185
|
-
return this._getValue(item, ns.aml.vocabularies.security.name) === name
|
|
186
|
-
})
|
|
187
|
-
if (Array.isArray(security)) {
|
|
188
|
-
;[security] = security
|
|
189
|
-
}
|
|
190
|
-
if (!security) {
|
|
191
|
-
const references = this._computeReferences(amf) || []
|
|
192
|
-
for (let i = 0, len = references.length; i < len; i++) {
|
|
193
|
-
if (!this._hasType(references[i], ns.aml.vocabularies.document.Module)) {
|
|
194
|
-
continue
|
|
195
|
-
}
|
|
196
|
-
security = this.lookupSecurity(references[i], name)
|
|
197
|
-
if (security) {
|
|
198
|
-
break
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
return security
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
getSecurity(model: IAmfDocument, name: string): IApiSecurityScheme {
|
|
206
|
-
const amf = this._expand(model)
|
|
207
|
-
const security = this.lookupSecurity(amf, name)
|
|
208
|
-
if (!security) {
|
|
209
|
-
throw new Error(`No security named ${name}`)
|
|
210
|
-
}
|
|
211
|
-
const serializer = new AmfSerializer(amf)
|
|
212
|
-
return serializer.securityScheme(security)
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
lookupShape(model: IAmfDocument, name: string): IAmfShape | undefined {
|
|
216
|
-
const amf = this._expand(model)
|
|
217
|
-
this.amf = amf
|
|
218
|
-
const declares = this._computeDeclares(amf) || []
|
|
219
|
-
let shape = declares.find((item) => {
|
|
220
|
-
if (Array.isArray(item)) {
|
|
221
|
-
;[item] = item
|
|
222
|
-
}
|
|
223
|
-
return this._getValue(item, ns.w3.shacl.name) === name
|
|
224
|
-
})
|
|
225
|
-
if (Array.isArray(shape)) {
|
|
226
|
-
;[shape] = shape
|
|
227
|
-
}
|
|
228
|
-
if (!shape) {
|
|
229
|
-
const references = this._computeReferences(amf) || []
|
|
230
|
-
for (let i = 0, len = references.length; i < len; i++) {
|
|
231
|
-
if (!this._hasType(references[i], ns.aml.vocabularies.document.Module)) {
|
|
232
|
-
continue
|
|
233
|
-
}
|
|
234
|
-
shape = this.lookupShape(references[i], name)
|
|
235
|
-
if (shape) {
|
|
236
|
-
break
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
return shape
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
getShape(model: IAmfDocument, name: string): IShapeUnion {
|
|
244
|
-
const amf = this._expand(model)
|
|
245
|
-
const shape = this.lookupShape(amf, name)
|
|
246
|
-
if (!shape) {
|
|
247
|
-
throw new Error(`No API shape named ${name}`)
|
|
248
|
-
}
|
|
249
|
-
const serializer = new AmfSerializer(amf)
|
|
250
|
-
return serializer.unknownShape(shape)
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
lookupDocumentation(model: IAmfDocument, name: string): IAmfCreativeWork | undefined {
|
|
254
|
-
const amf = this._expand(model)
|
|
255
|
-
this.amf = amf
|
|
256
|
-
const webApi = this._computeApi(amf)
|
|
257
|
-
if (!webApi) {
|
|
258
|
-
return undefined
|
|
259
|
-
}
|
|
260
|
-
const key = this._getAmfKey(ns.aml.vocabularies.core.documentation)
|
|
261
|
-
// @ts-expect-error Used in testing
|
|
262
|
-
const docs = this._ensureArray(webApi[key]) as IAmfCreativeWork[]
|
|
263
|
-
return docs.find((item) => {
|
|
264
|
-
if (Array.isArray(item)) {
|
|
265
|
-
;[item] = item
|
|
266
|
-
}
|
|
267
|
-
return this._getValue(item, ns.aml.vocabularies.core.title) === name
|
|
268
|
-
})
|
|
269
|
-
}
|
|
270
|
-
|
|
271
|
-
getDocumentation(model: IAmfDocument, name: string): IApiDocumentation {
|
|
272
|
-
const amf = this._expand(model)
|
|
273
|
-
const shape = this.lookupDocumentation(amf, name)
|
|
274
|
-
if (!shape) {
|
|
275
|
-
throw new Error(`No documentation named ${name}`)
|
|
276
|
-
}
|
|
277
|
-
const serializer = new AmfSerializer(amf)
|
|
278
|
-
return serializer.documentation(shape)
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
lookupEncodes(model: IAmfDocument): IAmfWebApi {
|
|
282
|
-
const amf = this._expand(model)
|
|
283
|
-
this.amf = amf
|
|
284
|
-
const key = this._getAmfKey(ns.aml.vocabularies.document.encodes) as string
|
|
285
|
-
// @ts-expect-error Used in testing
|
|
286
|
-
let result = amf[key]
|
|
287
|
-
if (Array.isArray(result)) {
|
|
288
|
-
;[result] = result
|
|
289
|
-
}
|
|
290
|
-
return result
|
|
291
|
-
}
|
|
292
|
-
|
|
293
|
-
lookupResponses(model: IAmfDocument, endpoint: string, operation: string): IAmfResponse[] {
|
|
294
|
-
const method = this.lookupOperation(model, endpoint, operation)
|
|
295
|
-
// @ts-expect-error Used in testing
|
|
296
|
-
return method[this._getAmfKey(ns.aml.vocabularies.apiContract.returns) as string]
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
getResponses(model: IAmfDocument, endpoint: string, operation: string): IApiResponse[] {
|
|
300
|
-
const amf = this._expand(model)
|
|
301
|
-
const responses = this.lookupResponses(amf, endpoint, operation)
|
|
302
|
-
const serializer = new AmfSerializer(amf)
|
|
303
|
-
return responses.map((i) => serializer.response(i))
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
lookupResponse(model: IAmfDocument, path: string, operation: string, code: string): IAmfResponse {
|
|
307
|
-
const responses = this.lookupResponses(model, path, operation)
|
|
308
|
-
if (!Array.isArray(responses) || !responses.length) {
|
|
309
|
-
throw new Error(`No responses for path ${path} and operation ${operation}`)
|
|
310
|
-
}
|
|
311
|
-
const response = responses.find((item) => {
|
|
312
|
-
if (this._getValue(item, ns.aml.vocabularies.apiContract.statusCode) === String(code)) {
|
|
313
|
-
return true
|
|
314
|
-
}
|
|
315
|
-
return false
|
|
316
|
-
})
|
|
317
|
-
if (!response) {
|
|
318
|
-
throw new Error(`No responses the status code ${code}`)
|
|
319
|
-
}
|
|
320
|
-
return response
|
|
321
|
-
}
|
|
322
|
-
|
|
323
|
-
/**
|
|
324
|
-
* @param code The response's status code
|
|
325
|
-
*/
|
|
326
|
-
getResponse(model: IAmfDocument, endpoint: string, operation: string, code: string): IApiResponse {
|
|
327
|
-
const amf = this._expand(model)
|
|
328
|
-
const response = this.lookupResponse(amf, endpoint, operation, code)
|
|
329
|
-
const serializer = new AmfSerializer(amf)
|
|
330
|
-
return serializer.response(response)
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
lookupRequest(model: IAmfDocument, endpoint: string, operation: string): IAmfRequest {
|
|
334
|
-
const method = this.lookupOperation(model, endpoint, operation)
|
|
335
|
-
// @ts-expect-error Used in testing
|
|
336
|
-
let requests = method[this._getAmfKey(ns.aml.vocabularies.apiContract.expects)]
|
|
337
|
-
if (Array.isArray(requests)) {
|
|
338
|
-
;[requests] = requests
|
|
339
|
-
}
|
|
340
|
-
if (!requests) {
|
|
341
|
-
throw new Error(`No request found in operation ${operation} and path ${endpoint}`)
|
|
342
|
-
}
|
|
343
|
-
return requests
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
getRequest(model: IAmfDocument, endpoint: string, operation: string): IApiRequest {
|
|
347
|
-
const amf = this._expand(model)
|
|
348
|
-
const request = this.lookupRequest(amf, endpoint, operation)
|
|
349
|
-
if (!request) {
|
|
350
|
-
throw new Error(`No request found in operation ${operation} and path ${endpoint}`)
|
|
351
|
-
}
|
|
352
|
-
const serializer = new AmfSerializer(amf)
|
|
353
|
-
return serializer.request(request)
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
/**
|
|
357
|
-
* @param path The endpoint path
|
|
358
|
-
* @param operation The operation path
|
|
359
|
-
* @param code The response's status code
|
|
360
|
-
*/
|
|
361
|
-
lookupResponsePayloads(model: IAmfDocument, path: string, operation: string, code: string): IAmfPayload[] {
|
|
362
|
-
const response = this.lookupResponse(model, path, operation, code)
|
|
363
|
-
const pKey = this._getAmfKey(ns.aml.vocabularies.apiContract.payload)
|
|
364
|
-
// @ts-expect-error Used in testing
|
|
365
|
-
const payloads = response[pKey]
|
|
366
|
-
return this._ensureArray(payloads) as IAmfPayload[]
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
/**
|
|
370
|
-
* @param path The endpoint path
|
|
371
|
-
* @param operation The operation path
|
|
372
|
-
* @param code The response's status code
|
|
373
|
-
*/
|
|
374
|
-
getResponsePayloads(model: IAmfDocument, path: string, operation: string, code: string): IApiPayload[] {
|
|
375
|
-
const amf = this._expand(model)
|
|
376
|
-
const payloads = this.lookupResponsePayloads(amf, path, operation, code)
|
|
377
|
-
const serializer = new AmfSerializer(amf)
|
|
378
|
-
return payloads.map((p) => serializer.payload(p))
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
lookupServers(model: IAmfDocument): IAmfServer[] | undefined {
|
|
382
|
-
const amf = this._expand(model)
|
|
383
|
-
this.amf = amf
|
|
384
|
-
const webApi = this._computeApi(amf)
|
|
385
|
-
if (!webApi) {
|
|
386
|
-
return undefined
|
|
387
|
-
}
|
|
388
|
-
const key = this._getAmfKey(ns.aml.vocabularies.apiContract.server)
|
|
389
|
-
// @ts-expect-error Used in testing
|
|
390
|
-
let result = webApi[key]
|
|
391
|
-
if (result && !Array.isArray(result)) {
|
|
392
|
-
result = [result]
|
|
393
|
-
}
|
|
394
|
-
return result
|
|
395
|
-
}
|
|
396
|
-
|
|
397
|
-
getServers(model: IAmfDocument): IApiServer[] | undefined {
|
|
398
|
-
const amf = this._expand(model)
|
|
399
|
-
const servers = this.lookupServers(amf)
|
|
400
|
-
if (servers) {
|
|
401
|
-
const serializer = new AmfSerializer(amf)
|
|
402
|
-
return servers.map((s) => serializer.server(s))
|
|
403
|
-
}
|
|
404
|
-
return undefined
|
|
405
|
-
}
|
|
406
|
-
|
|
407
|
-
lookupReturns(model: IAmfDocument, path: string, operation: string): IAmfResponse[] {
|
|
408
|
-
const op = this.lookupOperation(model, path, operation)
|
|
409
|
-
if (!op) {
|
|
410
|
-
throw new Error(`Unknown operation for path ${path} and method ${operation}`)
|
|
411
|
-
}
|
|
412
|
-
// @ts-expect-error Used in testing
|
|
413
|
-
let returns = op[this._getAmfKey(ns.aml.vocabularies.apiContract.returns)]
|
|
414
|
-
if (!returns) {
|
|
415
|
-
throw new Error(`IAmfOperation has no "returns" value.`)
|
|
416
|
-
}
|
|
417
|
-
if (!Array.isArray(returns)) {
|
|
418
|
-
returns = [returns]
|
|
419
|
-
}
|
|
420
|
-
return returns
|
|
421
|
-
}
|
|
422
|
-
|
|
423
|
-
/**
|
|
424
|
-
* Lookups a shape object from the declares array
|
|
425
|
-
*/
|
|
426
|
-
lookupDeclaredShape(model: IAmfDocument, name: string): IAmfShape {
|
|
427
|
-
this.amf = model
|
|
428
|
-
const items = this._computeDeclares(model)
|
|
429
|
-
if (!items) {
|
|
430
|
-
throw new Error(`Unable to find "declares" in the model.`)
|
|
431
|
-
}
|
|
432
|
-
const result = items.find((item) => {
|
|
433
|
-
const typed = item as IAmfShape
|
|
434
|
-
const objectName = this._getValue(typed, ns.w3.shacl.name) as string
|
|
435
|
-
return objectName === name
|
|
436
|
-
})
|
|
437
|
-
if (!result) {
|
|
438
|
-
throw new Error(`Unable to find shape ${name} in the model.`)
|
|
439
|
-
}
|
|
440
|
-
return result
|
|
441
|
-
}
|
|
442
|
-
|
|
443
|
-
lookupOperationSecurity(model: IAmfDocument, path: string, operation: string): IAmfSecurityRequirement[] {
|
|
444
|
-
const op = this.lookupOperation(model, path, operation)
|
|
445
|
-
if (!op) {
|
|
446
|
-
throw new Error(`Unknown operation for path ${path} and method ${operation}`)
|
|
447
|
-
}
|
|
448
|
-
// @ts-expect-error Used in testing
|
|
449
|
-
let security = op[this._getAmfKey(ns.aml.vocabularies.security.security) as string]
|
|
450
|
-
if (!security) {
|
|
451
|
-
throw new Error(`IAmfOperation has no "security" value.`)
|
|
452
|
-
}
|
|
453
|
-
if (!Array.isArray(security)) {
|
|
454
|
-
security = [security]
|
|
455
|
-
}
|
|
456
|
-
return security
|
|
457
|
-
}
|
|
458
|
-
|
|
459
|
-
lookupRequestPayloads(model: IAmfDocument, path: string, operation: string): IAmfPayload[] {
|
|
460
|
-
const request = this.lookupExpects(model, path, operation)
|
|
461
|
-
// @ts-expect-error Used in testing
|
|
462
|
-
const payload = request[this._getAmfKey(ns.aml.vocabularies.apiContract.payload) as string]
|
|
463
|
-
if (!payload || !payload.length) {
|
|
464
|
-
throw new Error(`IAmfOperation ${operation} of endpoint ${payload} has no request payload.`)
|
|
465
|
-
}
|
|
466
|
-
return payload
|
|
467
|
-
}
|
|
468
|
-
|
|
469
|
-
lookupRequestPayload(model: IAmfDocument, path: string, operation: string, mime: string): IAmfPayload {
|
|
470
|
-
const payloads = this.lookupRequestPayloads(model, path, operation)
|
|
471
|
-
const payload = payloads.find((i) => this._getValue(i, ns.aml.vocabularies.core.mediaType) === mime)
|
|
472
|
-
if (!payload) {
|
|
473
|
-
throw new Error(`IAmfOperation ${operation} of endpoint ${payload} has no request payload for ${mime}.`)
|
|
474
|
-
}
|
|
475
|
-
return payload
|
|
476
|
-
}
|
|
477
|
-
|
|
478
|
-
/**
|
|
479
|
-
* Reads a request parameter from an operation for: URI, query params, headers, and cookies.
|
|
480
|
-
*
|
|
481
|
-
* @param endpoint The endpoint path
|
|
482
|
-
* @param operation The operation path
|
|
483
|
-
* @param param The param name
|
|
484
|
-
*/
|
|
485
|
-
getParameter(model: IAmfDocument, endpoint: string, operation: string, param: string): IApiParameter {
|
|
486
|
-
const amf = this._expand(model)
|
|
487
|
-
const expects = this.lookupExpects(amf, endpoint, operation)
|
|
488
|
-
if (!expects) {
|
|
489
|
-
throw new Error(`The operation ${operation} of endpoint ${endpoint} has no request.`)
|
|
490
|
-
}
|
|
491
|
-
const serializer = new AmfSerializer(amf)
|
|
492
|
-
const request = serializer.request(expects)
|
|
493
|
-
if (!request) {
|
|
494
|
-
throw new Error(`The operation ${operation} of endpoint ${endpoint} has no request.`)
|
|
495
|
-
}
|
|
496
|
-
let pool: IApiParameter[] = []
|
|
497
|
-
if (Array.isArray(request.uriParameters)) {
|
|
498
|
-
pool = pool.concat(request.uriParameters)
|
|
499
|
-
}
|
|
500
|
-
if (Array.isArray(request.cookieParameters)) {
|
|
501
|
-
pool = pool.concat(request.cookieParameters)
|
|
502
|
-
}
|
|
503
|
-
if (Array.isArray(request.queryParameters)) {
|
|
504
|
-
pool = pool.concat(request.queryParameters)
|
|
505
|
-
}
|
|
506
|
-
if (Array.isArray(request.headers)) {
|
|
507
|
-
pool = pool.concat(request.headers)
|
|
508
|
-
}
|
|
509
|
-
const result = pool.find((i) => i.name === param)
|
|
510
|
-
if (!result) {
|
|
511
|
-
throw new Error(`IAmfParameter ${param} not found.`)
|
|
512
|
-
}
|
|
513
|
-
return result
|
|
514
|
-
}
|
|
515
|
-
|
|
516
|
-
readHeaders(source: IAmfRequest | IAmfResponse): IAmfParameter[] | undefined {
|
|
517
|
-
const key = this._getAmfKey(ns.aml.vocabularies.apiContract.header)
|
|
518
|
-
// @ts-expect-error Used in testing
|
|
519
|
-
let values = source[key]
|
|
520
|
-
if (values && !Array.isArray(values)) {
|
|
521
|
-
values = [values]
|
|
522
|
-
}
|
|
523
|
-
return values
|
|
524
|
-
}
|
|
525
|
-
|
|
526
|
-
/**
|
|
527
|
-
* Computes a list of query parameters
|
|
528
|
-
*/
|
|
529
|
-
readQueryParameters(source: IAmfRequest): IAmfParameter[] | undefined {
|
|
530
|
-
const key = this._getAmfKey(ns.aml.vocabularies.apiContract.parameter)
|
|
531
|
-
// @ts-expect-error Used in testing
|
|
532
|
-
let values = source[key]
|
|
533
|
-
if (values && !Array.isArray(values)) {
|
|
534
|
-
values = [values]
|
|
535
|
-
}
|
|
536
|
-
return values
|
|
537
|
-
}
|
|
538
|
-
}
|