@api-client/core 0.19.10 → 0.19.12
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 +3 -16
- package/build/src/browser.d.ts.map +1 -1
- package/build/src/browser.js +2 -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 +3 -16
- package/build/src/index.d.ts.map +1 -1
- package/build/src/index.js +2 -17
- package/build/src/index.js.map +1 -1
- package/build/src/modeling/ApiValidation.d.ts +26 -0
- package/build/src/modeling/ApiValidation.d.ts.map +1 -0
- package/build/src/modeling/ApiValidation.js +73 -0
- package/build/src/modeling/ApiValidation.js.map +1 -0
- 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/DomainValidation.d.ts +10 -4
- package/build/src/modeling/DomainValidation.d.ts.map +1 -1
- package/build/src/modeling/DomainValidation.js +55 -72
- package/build/src/modeling/DomainValidation.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/modeling/validation/api_model_rules.d.ts +1 -2
- package/build/src/modeling/validation/api_model_rules.d.ts.map +1 -1
- package/build/src/modeling/validation/api_model_rules.js +0 -26
- package/build/src/modeling/validation/api_model_rules.js.map +1 -1
- package/build/src/modeling/validation/association_validation.d.ts +4 -4
- package/build/src/modeling/validation/association_validation.d.ts.map +1 -1
- package/build/src/modeling/validation/association_validation.js.map +1 -1
- package/build/src/modeling/validation/entity_validation.d.ts +6 -6
- package/build/src/modeling/validation/entity_validation.d.ts.map +1 -1
- package/build/src/modeling/validation/entity_validation.js.map +1 -1
- package/build/src/modeling/validation/property_validation.d.ts +3 -3
- package/build/src/modeling/validation/property_validation.d.ts.map +1 -1
- package/build/src/modeling/validation/property_validation.js.map +1 -1
- package/build/src/modeling/validation/rules.d.ts +2 -2
- package/build/src/modeling/validation/rules.d.ts.map +1 -1
- package/build/src/modeling/validation/rules.js.map +1 -1
- package/build/src/modeling/validation/semantic_validation.d.ts +2 -2
- package/build/src/modeling/validation/semantic_validation.d.ts.map +1 -1
- package/build/src/modeling/validation/semantic_validation.js.map +1 -1
- 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/ApiValidation.ts +86 -0
- 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/DomainValidation.ts +57 -74
- 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/modeling/validation/api_model_rules.ts +1 -31
- package/src/modeling/validation/association_validation.ts +6 -6
- package/src/modeling/validation/entity_validation.ts +11 -11
- package/src/modeling/validation/property_validation.ts +4 -4
- package/src/modeling/validation/rules.ts +6 -3
- package/src/modeling/validation/semantic_validation.ts +11 -11
- 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/modeling/domain_validation.spec.ts +7 -13
- package/tests/unit/modeling/validation/api_model_rules.spec.ts +11 -9
- 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
|
@@ -2,31 +2,9 @@ import { type AssociationBindings, type PropertyWebBindings } from '../Bindings.
|
|
|
2
2
|
import type { DomainAssociation } from '../DomainAssociation.js'
|
|
3
3
|
import type { DomainProperty } from '../DomainProperty.js'
|
|
4
4
|
import type { DomainEntity } from '../DomainEntity.js'
|
|
5
|
-
import {
|
|
6
|
-
import { AmfNamespace } from '
|
|
7
|
-
import {
|
|
8
|
-
anyShape,
|
|
9
|
-
arrayShape,
|
|
10
|
-
fileShape,
|
|
11
|
-
IApiAnyShape,
|
|
12
|
-
IApiArrayShape,
|
|
13
|
-
IApiDataExample,
|
|
14
|
-
IApiFileShape,
|
|
15
|
-
IApiNodeShape,
|
|
16
|
-
IApiPropertyShape,
|
|
17
|
-
IApiRecursiveShape,
|
|
18
|
-
IApiScalarShape,
|
|
19
|
-
IApiShape,
|
|
20
|
-
IApiUnionShape,
|
|
21
|
-
IShapeUnion,
|
|
22
|
-
nodeShape,
|
|
23
|
-
propertyShape,
|
|
24
|
-
recursiveShape,
|
|
25
|
-
scalarShape,
|
|
26
|
-
unionShape,
|
|
27
|
-
} from '../../amf/definitions/Shapes.js'
|
|
28
|
-
import { AmfDataNode } from '../../amf/models/AmfDataNode.js'
|
|
29
|
-
import { DataValueGenerator } from '../../amf/DataValueGenerator.js'
|
|
5
|
+
import { modelTypeToAmfDataType } from './core_types.js'
|
|
6
|
+
import { AmfNamespace, type Shapes, AmfDataNode, AmfTypes, ShapeHelpers } from '@api-client/amf-core'
|
|
7
|
+
import { DataValueGenerator } from './DataValueGenerator.js'
|
|
30
8
|
import { nanoid } from '../../nanoid.js'
|
|
31
9
|
import { DomainEntityKind, DomainPropertyKind } from '../../models/kinds.js'
|
|
32
10
|
import type { PropertySchema } from '../types.js'
|
|
@@ -107,13 +85,13 @@ export class ShapeGenerator {
|
|
|
107
85
|
* const amfShape = generator.entity(myDomainEntity);
|
|
108
86
|
* ```
|
|
109
87
|
*/
|
|
110
|
-
entity(input: DomainEntity, visited = new Set<string>()): IApiNodeShape | IApiRecursiveShape {
|
|
88
|
+
entity(input: DomainEntity, visited = new Set<string>()): Shapes.IApiNodeShape | Shapes.IApiRecursiveShape {
|
|
111
89
|
if (visited.has(input.key)) {
|
|
112
90
|
// create a recursive shape.
|
|
113
91
|
return this.createRecursiveShape(input)
|
|
114
92
|
}
|
|
115
93
|
visited.add(input.key)
|
|
116
|
-
const result = nodeShape(input.key)
|
|
94
|
+
const result = ShapeHelpers.nodeShape(input.key)
|
|
117
95
|
result.id = input.key
|
|
118
96
|
this.updateBaseProperties(input, result)
|
|
119
97
|
result.properties = []
|
|
@@ -158,9 +136,9 @@ export class ShapeGenerator {
|
|
|
158
136
|
* const amfShape = generator.property(myDomainProperty);
|
|
159
137
|
* ```
|
|
160
138
|
*/
|
|
161
|
-
property(input: DomainProperty): IApiPropertyShape {
|
|
139
|
+
property(input: DomainProperty): Shapes.IApiPropertyShape {
|
|
162
140
|
const { required, key } = input
|
|
163
|
-
const result = propertyShape(key)
|
|
141
|
+
const result = ShapeHelpers.propertyShape(key)
|
|
164
142
|
result.path = `${AmfNamespace.aml.vocabularies.data.key}${input.info.name}`
|
|
165
143
|
if (required) {
|
|
166
144
|
result.minCount = 1
|
|
@@ -198,9 +176,9 @@ export class ShapeGenerator {
|
|
|
198
176
|
* const amfShape = generator.associationProperty(myDomainAssociation);
|
|
199
177
|
* ```
|
|
200
178
|
*/
|
|
201
|
-
associationProperty(input: DomainAssociation, visited: Set<string> = new Set<string>()): IApiPropertyShape {
|
|
179
|
+
associationProperty(input: DomainAssociation, visited: Set<string> = new Set<string>()): Shapes.IApiPropertyShape {
|
|
202
180
|
const { required, key } = input
|
|
203
|
-
const result = propertyShape(key)
|
|
181
|
+
const result = ShapeHelpers.propertyShape(key)
|
|
204
182
|
result.path = `${AmfNamespace.aml.vocabularies.data.key}${input.info.name}`
|
|
205
183
|
if (required) {
|
|
206
184
|
result.minCount = 1
|
|
@@ -219,7 +197,7 @@ export class ShapeGenerator {
|
|
|
219
197
|
* recursive shape generation and avoids infinite loops. Defaults to a new empty `Set`.
|
|
220
198
|
* @returns The range value for the PropertyShape.
|
|
221
199
|
*/
|
|
222
|
-
associationShape(input: DomainAssociation, visited: Set<string> = new Set<string>()): IShapeUnion | undefined {
|
|
200
|
+
associationShape(input: DomainAssociation, visited: Set<string> = new Set<string>()): Shapes.IShapeUnion | undefined {
|
|
223
201
|
const schema = input.schema
|
|
224
202
|
if (schema && schema.linked) {
|
|
225
203
|
return this.createLinkedShape(input)
|
|
@@ -235,7 +213,7 @@ export class ShapeGenerator {
|
|
|
235
213
|
if (unionType === UNION_TYPE_NOT) {
|
|
236
214
|
// Need to investigate more about "not" union type.
|
|
237
215
|
// AMF supports it, but I am not sure how to handle it.
|
|
238
|
-
const wrapper = anyShape(input.key)
|
|
216
|
+
const wrapper = ShapeHelpers.anyShape(input.key)
|
|
239
217
|
wrapper.id = `not-shape-${input.key}`
|
|
240
218
|
wrapper.not = items
|
|
241
219
|
return wrapper
|
|
@@ -250,17 +228,20 @@ export class ShapeGenerator {
|
|
|
250
228
|
* @param input The data association instance.
|
|
251
229
|
* @returns An AMF API scalar shape with the link to the schema.
|
|
252
230
|
*/
|
|
253
|
-
protected createLinkedShape(input: DomainAssociation): IApiScalarShape {
|
|
231
|
+
protected createLinkedShape(input: DomainAssociation): Shapes.IApiScalarShape {
|
|
254
232
|
// This is a link to the schema. In an API that would be the id
|
|
255
233
|
// of a resource to request the data from.
|
|
256
|
-
const range = scalarShape(input.key)
|
|
234
|
+
const range = ShapeHelpers.scalarShape(input.key)
|
|
257
235
|
range.id = `link-${input.key}`
|
|
258
236
|
range.dataType = modelTypeToAmfDataType(DATA_TYPE_STRING)
|
|
259
237
|
return range
|
|
260
238
|
}
|
|
261
239
|
|
|
262
|
-
protected createUnionShape(
|
|
263
|
-
|
|
240
|
+
protected createUnionShape(
|
|
241
|
+
input: DomainAssociation,
|
|
242
|
+
items: Shapes.IShapeUnion[]
|
|
243
|
+
): Shapes.IApiUnionShape | Shapes.IApiArrayShape {
|
|
244
|
+
const range = ShapeHelpers.unionShape(input.key)
|
|
264
245
|
this.updateBaseProperties(input, range)
|
|
265
246
|
range.anyOf = []
|
|
266
247
|
const unionType = (input.schema && input.schema.unionType) || UNION_TYPE_ANY_OF
|
|
@@ -291,8 +272,8 @@ export class ShapeGenerator {
|
|
|
291
272
|
associationUnion(
|
|
292
273
|
input: DomainAssociation,
|
|
293
274
|
visited: Set<string> = new Set<string>()
|
|
294
|
-
): IShapeUnion | IShapeUnion[] | undefined {
|
|
295
|
-
const result: IShapeUnion[] = []
|
|
275
|
+
): Shapes.IShapeUnion | Shapes.IShapeUnion[] | undefined {
|
|
276
|
+
const result: Shapes.IShapeUnion[] = []
|
|
296
277
|
for (const item of input.listTargets()) {
|
|
297
278
|
result.push(this.entity(item, visited))
|
|
298
279
|
}
|
|
@@ -312,7 +293,7 @@ export class ShapeGenerator {
|
|
|
312
293
|
*
|
|
313
294
|
* @param input
|
|
314
295
|
*/
|
|
315
|
-
protected getRange(input: DomainProperty): IApiArrayShape | IApiFileShape | IApiScalarShape {
|
|
296
|
+
protected getRange(input: DomainProperty): Shapes.IApiArrayShape | Shapes.IApiFileShape | Shapes.IApiScalarShape {
|
|
316
297
|
const bindings = input.readBinding('web') as PropertyWebBindings | undefined
|
|
317
298
|
let schema: PropertySchema | undefined
|
|
318
299
|
if (input.schema) {
|
|
@@ -339,7 +320,7 @@ export class ShapeGenerator {
|
|
|
339
320
|
*/
|
|
340
321
|
protected setShapeSchema(
|
|
341
322
|
input: DomainProperty,
|
|
342
|
-
result: IApiAnyShape,
|
|
323
|
+
result: Shapes.IApiAnyShape,
|
|
343
324
|
schema: PropertySchema,
|
|
344
325
|
type: string,
|
|
345
326
|
isArray?: boolean
|
|
@@ -374,8 +355,8 @@ export class ShapeGenerator {
|
|
|
374
355
|
input: DomainProperty,
|
|
375
356
|
schema?: PropertySchema,
|
|
376
357
|
bindings?: PropertyWebBindings
|
|
377
|
-
): IApiArrayShape {
|
|
378
|
-
const result = arrayShape(input.key)
|
|
358
|
+
): Shapes.IApiArrayShape {
|
|
359
|
+
const result = ShapeHelpers.arrayShape(input.key)
|
|
379
360
|
const { type } = input
|
|
380
361
|
if (type === DATA_TYPE_BINARY) {
|
|
381
362
|
// we do not pass schema to the range generator as we set schema's properties on the array shape.
|
|
@@ -384,7 +365,7 @@ export class ShapeGenerator {
|
|
|
384
365
|
result.items = this.createScalarShape(input, undefined, bindings)
|
|
385
366
|
}
|
|
386
367
|
if (schema) {
|
|
387
|
-
const type = (result.items as IApiScalarShape).dataType as string
|
|
368
|
+
const type = (result.items as Shapes.IApiScalarShape).dataType as string
|
|
388
369
|
this.setShapeSchema(input, result, schema, type, input.multiple)
|
|
389
370
|
}
|
|
390
371
|
return result
|
|
@@ -394,8 +375,8 @@ export class ShapeGenerator {
|
|
|
394
375
|
input: DomainProperty,
|
|
395
376
|
schema?: PropertySchema,
|
|
396
377
|
bindings?: PropertyWebBindings
|
|
397
|
-
): IApiScalarShape {
|
|
398
|
-
const result = scalarShape(input.key)
|
|
378
|
+
): Shapes.IApiScalarShape {
|
|
379
|
+
const result = ShapeHelpers.scalarShape(input.key)
|
|
399
380
|
this.updateBaseProperties(input, result)
|
|
400
381
|
this.setScalarCommonProperties(result, input, bindings)
|
|
401
382
|
if (!result.dataType) {
|
|
@@ -407,14 +388,14 @@ export class ShapeGenerator {
|
|
|
407
388
|
return result
|
|
408
389
|
}
|
|
409
390
|
|
|
410
|
-
protected createExamples(examples: string[], type: string): IApiDataExample[] {
|
|
411
|
-
const result: IApiDataExample[] = []
|
|
391
|
+
protected createExamples(examples: string[], type: string): Shapes.IApiDataExample[] {
|
|
392
|
+
const result: Shapes.IApiDataExample[] = []
|
|
412
393
|
for (const current of examples) {
|
|
413
|
-
const item: IApiDataExample = {
|
|
394
|
+
const item: Shapes.IApiDataExample = {
|
|
414
395
|
id: nanoid(),
|
|
415
396
|
customDomainProperties: [],
|
|
416
397
|
strict: true,
|
|
417
|
-
types: IAmfExampleTypes,
|
|
398
|
+
types: [...AmfTypes.IAmfExampleTypes],
|
|
418
399
|
structuredValue: AmfDataNode.scalar(current, type).toJSON(),
|
|
419
400
|
}
|
|
420
401
|
result.push(item)
|
|
@@ -422,12 +403,12 @@ export class ShapeGenerator {
|
|
|
422
403
|
return result
|
|
423
404
|
}
|
|
424
405
|
|
|
425
|
-
protected createArrayExamples(examples: string[], type: string): IApiDataExample[] {
|
|
426
|
-
const item: IApiDataExample = {
|
|
406
|
+
protected createArrayExamples(examples: string[], type: string): Shapes.IApiDataExample[] {
|
|
407
|
+
const item: Shapes.IApiDataExample = {
|
|
427
408
|
id: nanoid(),
|
|
428
409
|
customDomainProperties: [],
|
|
429
410
|
strict: true,
|
|
430
|
-
types: IAmfExampleTypes,
|
|
411
|
+
types: [...AmfTypes.IAmfExampleTypes],
|
|
431
412
|
}
|
|
432
413
|
const value = new AmfDataNode('array')
|
|
433
414
|
for (const item of examples) {
|
|
@@ -438,8 +419,8 @@ export class ShapeGenerator {
|
|
|
438
419
|
return [item]
|
|
439
420
|
}
|
|
440
421
|
|
|
441
|
-
protected createFileShape(input: DomainProperty, bindings?: PropertyWebBindings): IApiFileShape {
|
|
442
|
-
const result = fileShape(input.key)
|
|
422
|
+
protected createFileShape(input: DomainProperty, bindings?: PropertyWebBindings): Shapes.IApiFileShape {
|
|
423
|
+
const result = ShapeHelpers.fileShape(input.key)
|
|
443
424
|
this.updateBaseProperties(input, result)
|
|
444
425
|
if (bindings) {
|
|
445
426
|
if (Array.isArray(bindings.fileTypes)) {
|
|
@@ -454,7 +435,7 @@ export class ShapeGenerator {
|
|
|
454
435
|
}
|
|
455
436
|
|
|
456
437
|
protected setScalarCommonProperties(
|
|
457
|
-
result: IApiFileShape | IApiScalarShape,
|
|
438
|
+
result: Shapes.IApiFileShape | Shapes.IApiScalarShape,
|
|
458
439
|
input: DomainProperty,
|
|
459
440
|
bindings?: PropertyWebBindings
|
|
460
441
|
): void {
|
|
@@ -521,7 +502,10 @@ export class ShapeGenerator {
|
|
|
521
502
|
}
|
|
522
503
|
}
|
|
523
504
|
|
|
524
|
-
protected updateBaseProperties(
|
|
505
|
+
protected updateBaseProperties(
|
|
506
|
+
input: DomainProperty | DomainAssociation | DomainEntity,
|
|
507
|
+
target: Shapes.IApiShape
|
|
508
|
+
): void {
|
|
525
509
|
target.name = input.info.name
|
|
526
510
|
target.displayName = input.info.displayName
|
|
527
511
|
target.description = input.info.description
|
|
@@ -532,8 +516,8 @@ export class ShapeGenerator {
|
|
|
532
516
|
}
|
|
533
517
|
}
|
|
534
518
|
|
|
535
|
-
protected createRecursiveShape(input: DomainEntity): IApiRecursiveShape {
|
|
536
|
-
return recursiveShape(input.key, input.key)
|
|
519
|
+
protected createRecursiveShape(input: DomainEntity): Shapes.IApiRecursiveShape {
|
|
520
|
+
return ShapeHelpers.recursiveShape(input.key, input.key)
|
|
537
521
|
}
|
|
538
522
|
|
|
539
523
|
/**
|
|
@@ -544,8 +528,8 @@ export class ShapeGenerator {
|
|
|
544
528
|
* @param shape The shape to wrap as an array.
|
|
545
529
|
* @returns Array shape.
|
|
546
530
|
*/
|
|
547
|
-
protected refactorShapeToArray(id: string, shape: IShapeUnion): IApiArrayShape {
|
|
548
|
-
const result = arrayShape(id)
|
|
531
|
+
protected refactorShapeToArray(id: string, shape: Shapes.IShapeUnion): Shapes.IApiArrayShape {
|
|
532
|
+
const result = ShapeHelpers.arrayShape(id)
|
|
549
533
|
result.items = shape
|
|
550
534
|
return result
|
|
551
535
|
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { PropertyWebBindings } from '../Bindings.js'
|
|
2
|
+
import { DomainPropertyType } from '../DataFormat.js'
|
|
3
|
+
import { AmfNamespace } from '@api-client/amf-core'
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Translates the DomainProperty type to an AMF data type.
|
|
7
|
+
* @param type The property data type
|
|
8
|
+
* @returns AMF shape dataType
|
|
9
|
+
*/
|
|
10
|
+
export function modelTypeToAmfDataType(type: DomainPropertyType, bindings?: PropertyWebBindings): string {
|
|
11
|
+
if (type === 'number') {
|
|
12
|
+
if (bindings?.format === 'int32' || bindings?.format === 'int64') {
|
|
13
|
+
return AmfNamespace.w3.xmlSchema.integer
|
|
14
|
+
}
|
|
15
|
+
return AmfNamespace.w3.xmlSchema.number
|
|
16
|
+
}
|
|
17
|
+
if (type === 'boolean') {
|
|
18
|
+
return AmfNamespace.aml.vocabularies.shapes.boolean
|
|
19
|
+
}
|
|
20
|
+
if (type === 'date') {
|
|
21
|
+
return AmfNamespace.w3.xmlSchema.date
|
|
22
|
+
}
|
|
23
|
+
if (type === 'datetime') {
|
|
24
|
+
return AmfNamespace.w3.xmlSchema.dateTime
|
|
25
|
+
}
|
|
26
|
+
if (type === 'time') {
|
|
27
|
+
return AmfNamespace.aml.vocabularies.shapes.dateTimeOnly
|
|
28
|
+
}
|
|
29
|
+
if (type === 'binary' && bindings && bindings.format === 'base64') {
|
|
30
|
+
return AmfNamespace.w3.xmlSchema.base64Binary
|
|
31
|
+
}
|
|
32
|
+
return AmfNamespace.w3.xmlSchema.string
|
|
33
|
+
// switch (type) {
|
|
34
|
+
// // case 'nil':
|
|
35
|
+
// // return AmfNamespace.aml.vocabularies.shapes.nil
|
|
36
|
+
// // case 'any':
|
|
37
|
+
// // return AmfNamespace.aml.vocabularies.shapes.AnyShape
|
|
38
|
+
// default:
|
|
39
|
+
// if (type === 'binary' && bindings && bindings.format === 'base64') {
|
|
40
|
+
// return AmfNamespace.w3.xmlSchema.base64Binary
|
|
41
|
+
// }
|
|
42
|
+
// // if (bindings && bindings.format === 'binary') {
|
|
43
|
+
// // return AmfNamespace.w3.xmlSchema.base64Binary
|
|
44
|
+
// // }
|
|
45
|
+
// return AmfNamespace.w3.xmlSchema.string
|
|
46
|
+
// }
|
|
47
|
+
}
|
|
@@ -6,7 +6,7 @@ import { DeleteAction } from '../actions/DeleteAction.js'
|
|
|
6
6
|
import { UpdateAction } from '../actions/UpdateAction.js'
|
|
7
7
|
import { SearchAction } from '../actions/SearchAction.js'
|
|
8
8
|
import type { RolesBasedAccessControl, UsernamePasswordConfiguration } from '../types.js'
|
|
9
|
-
import type { ApiModelValidationItem,
|
|
9
|
+
import type { ApiModelValidationItem, ApiModelValidationContext } from '../types.js'
|
|
10
10
|
import { ApiModelKind, ExposedEntityKind } from '../../models/kinds.js'
|
|
11
11
|
import { SemanticType } from '../Semantics.js'
|
|
12
12
|
|
|
@@ -608,33 +608,3 @@ export function validateExposedEntity(entity: ExposedEntity, apiModel: ApiModel)
|
|
|
608
608
|
|
|
609
609
|
return issues
|
|
610
610
|
}
|
|
611
|
-
|
|
612
|
-
export function validateApiModel(model: ApiModel): ApiModelValidationResult {
|
|
613
|
-
const issues: ApiModelValidationItem[] = []
|
|
614
|
-
|
|
615
|
-
issues.push(...validateApiModelInfo(model))
|
|
616
|
-
issues.push(...validateApiModelDependency(model))
|
|
617
|
-
issues.push(...validateApiModelSecurity(model))
|
|
618
|
-
issues.push(...validateApiModelMetadata(model))
|
|
619
|
-
|
|
620
|
-
if (!model.exposes || model.exposes.size === 0) {
|
|
621
|
-
issues.push({
|
|
622
|
-
code: createCode('API', 'NO_EXPOSURES'),
|
|
623
|
-
message: 'Your API currently has no exposed data for external clients to request.',
|
|
624
|
-
suggestion: 'Expose a data model so apps can communicate with it.',
|
|
625
|
-
severity: 'warning',
|
|
626
|
-
context: { apiModelKey: model.key, kind: ApiModelKind, key: model.key, property: 'exposes' },
|
|
627
|
-
})
|
|
628
|
-
} else {
|
|
629
|
-
for (const exposure of model.exposes.values()) {
|
|
630
|
-
issues.push(...validateExposedEntity(exposure, model))
|
|
631
|
-
}
|
|
632
|
-
}
|
|
633
|
-
|
|
634
|
-
const hasErrors = issues.some((i) => i.severity === 'error')
|
|
635
|
-
|
|
636
|
-
return {
|
|
637
|
-
isValid: !hasErrors,
|
|
638
|
-
issues,
|
|
639
|
-
}
|
|
640
|
-
}
|
|
@@ -2,7 +2,7 @@ import { DomainAssociationKind } from '../../models/kinds.js'
|
|
|
2
2
|
import type { DataDomain } from '../DataDomain.js'
|
|
3
3
|
import type { DomainAssociation } from '../DomainAssociation.js'
|
|
4
4
|
import type { DomainEntity } from '../DomainEntity.js'
|
|
5
|
-
import { type
|
|
5
|
+
import { type DomainValidationSchema, validatePropertyName } from './rules.js'
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* AssociationValidation is a class that performs validation on associations in a data domain.
|
|
@@ -16,8 +16,8 @@ export class AssociationValidation {
|
|
|
16
16
|
* @param target The target association to validate. Can be a string with
|
|
17
17
|
* the association key or a DomainAssociation object.
|
|
18
18
|
*/
|
|
19
|
-
validate(target: string | DomainAssociation):
|
|
20
|
-
const results:
|
|
19
|
+
validate(target: string | DomainAssociation): DomainValidationSchema[] {
|
|
20
|
+
const results: DomainValidationSchema[] = []
|
|
21
21
|
let association: DomainAssociation | undefined
|
|
22
22
|
if (typeof target === 'string') {
|
|
23
23
|
association = this.domain.findAssociation(target)
|
|
@@ -58,7 +58,7 @@ export class AssociationValidation {
|
|
|
58
58
|
* - (recommendation) Column names should be in lower case.
|
|
59
59
|
* @param association The association to validate
|
|
60
60
|
*/
|
|
61
|
-
validateName(association: DomainAssociation):
|
|
61
|
+
validateName(association: DomainAssociation): DomainValidationSchema[] {
|
|
62
62
|
return validatePropertyName(association)
|
|
63
63
|
}
|
|
64
64
|
|
|
@@ -66,8 +66,8 @@ export class AssociationValidation {
|
|
|
66
66
|
* Validates the association targets.
|
|
67
67
|
* @param association The association to validate
|
|
68
68
|
*/
|
|
69
|
-
validateTargets(association: DomainAssociation):
|
|
70
|
-
const results:
|
|
69
|
+
validateTargets(association: DomainAssociation): DomainValidationSchema[] {
|
|
70
|
+
const results: DomainValidationSchema[] = []
|
|
71
71
|
const label = association.info.getLabel()
|
|
72
72
|
const parentEntity = association.getParentInstance() as DomainEntity
|
|
73
73
|
if (!association.targets.length) {
|
|
@@ -2,7 +2,7 @@ import { DomainEntityKind } from '../../models/kinds.js'
|
|
|
2
2
|
import type { DataDomain } from '../DataDomain.js'
|
|
3
3
|
import type { DomainEntity } from '../DomainEntity.js'
|
|
4
4
|
import { ReservedKeywords } from './postgresql.js'
|
|
5
|
-
import type {
|
|
5
|
+
import type { DomainValidationSchema } from './rules.js'
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* EntityValidation is a class that performs validation on entities in a data domain.
|
|
@@ -20,8 +20,8 @@ export class EntityValidation {
|
|
|
20
20
|
* @param target The target entity to validate. Can be a string with
|
|
21
21
|
* the entity key or a DomainEntity object.
|
|
22
22
|
*/
|
|
23
|
-
validate(target: string | DomainEntity):
|
|
24
|
-
const results:
|
|
23
|
+
validate(target: string | DomainEntity): DomainValidationSchema[] {
|
|
24
|
+
const results: DomainValidationSchema[] = []
|
|
25
25
|
let entity: DomainEntity | undefined
|
|
26
26
|
if (typeof target === 'string') {
|
|
27
27
|
entity = this.domain.findEntity(target)
|
|
@@ -57,8 +57,8 @@ export class EntityValidation {
|
|
|
57
57
|
* Validates the entity primary key.
|
|
58
58
|
* @param entity The entity to validate
|
|
59
59
|
*/
|
|
60
|
-
validatePrimaryKey(entity: DomainEntity):
|
|
61
|
-
const results:
|
|
60
|
+
validatePrimaryKey(entity: DomainEntity): DomainValidationSchema[] {
|
|
61
|
+
const results: DomainValidationSchema[] = []
|
|
62
62
|
const primary = entity.primaryKey()
|
|
63
63
|
if (!primary) {
|
|
64
64
|
const message = `The "${entity.info.getLabel()}" entity has no identifier.`
|
|
@@ -124,8 +124,8 @@ export class EntityValidation {
|
|
|
124
124
|
* Checks if the entity has the minimum required properties.
|
|
125
125
|
* @param entity The entity to validate
|
|
126
126
|
*/
|
|
127
|
-
minimumRequiredProperties(entity: DomainEntity):
|
|
128
|
-
const results:
|
|
127
|
+
minimumRequiredProperties(entity: DomainEntity): DomainValidationSchema[] {
|
|
128
|
+
const results: DomainValidationSchema[] = []
|
|
129
129
|
|
|
130
130
|
// Check if entity has properties or associations through entire inheritance chain
|
|
131
131
|
const hasProperties = this.hasPropertiesInherited(entity)
|
|
@@ -161,8 +161,8 @@ export class EntityValidation {
|
|
|
161
161
|
* - Should not be a reserved word (for example: "IN", "SELECT", "FROM", etc.).
|
|
162
162
|
* @param entity The entity to validate
|
|
163
163
|
*/
|
|
164
|
-
validateName(entity: DomainEntity):
|
|
165
|
-
const results:
|
|
164
|
+
validateName(entity: DomainEntity): DomainValidationSchema[] {
|
|
165
|
+
const results: DomainValidationSchema[] = []
|
|
166
166
|
const label = entity.info.getLabel()
|
|
167
167
|
if (!entity.info.name) {
|
|
168
168
|
const message = `The "${label}" entity has no name.`
|
|
@@ -252,8 +252,8 @@ export class EntityValidation {
|
|
|
252
252
|
* Checks if the entity name is unique in the data domain.
|
|
253
253
|
* @param entity The entity to validate
|
|
254
254
|
*/
|
|
255
|
-
uniqueName(entity: DomainEntity):
|
|
256
|
-
const results:
|
|
255
|
+
uniqueName(entity: DomainEntity): DomainValidationSchema[] {
|
|
256
|
+
const results: DomainValidationSchema[] = []
|
|
257
257
|
const name = entity.info.name?.toLowerCase()
|
|
258
258
|
if (!name) {
|
|
259
259
|
return results
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DomainPropertyKind } from '../../models/kinds.js'
|
|
2
2
|
import type { DataDomain } from '../DataDomain.js'
|
|
3
3
|
import type { DomainProperty } from '../DomainProperty.js'
|
|
4
|
-
import { type
|
|
4
|
+
import { type DomainValidationSchema, validatePropertyName } from './rules.js'
|
|
5
5
|
|
|
6
6
|
export class PropertyValidation {
|
|
7
7
|
constructor(protected domain: DataDomain) {}
|
|
@@ -12,8 +12,8 @@ export class PropertyValidation {
|
|
|
12
12
|
* @param target The target property to validate. Can be a string with
|
|
13
13
|
* the property key or a DomainProperty object.
|
|
14
14
|
*/
|
|
15
|
-
validate(target: string | DomainProperty):
|
|
16
|
-
const results:
|
|
15
|
+
validate(target: string | DomainProperty): DomainValidationSchema[] {
|
|
16
|
+
const results: DomainValidationSchema[] = []
|
|
17
17
|
let property: DomainProperty | undefined
|
|
18
18
|
if (typeof target === 'string') {
|
|
19
19
|
property = this.domain.findProperty(target)
|
|
@@ -52,7 +52,7 @@ export class PropertyValidation {
|
|
|
52
52
|
* - (recommendation) Column names should be in lower case.
|
|
53
53
|
* @param property The property to validate
|
|
54
54
|
*/
|
|
55
|
-
validateName(property: DomainProperty):
|
|
55
|
+
validateName(property: DomainProperty): DomainValidationSchema[] {
|
|
56
56
|
return validatePropertyName(property)
|
|
57
57
|
}
|
|
58
58
|
}
|
|
@@ -12,7 +12,10 @@ import { DomainPropertyKind } from '../../models/kinds.js'
|
|
|
12
12
|
* - `type` -> unused
|
|
13
13
|
* - `relationship` -> unused
|
|
14
14
|
*/
|
|
15
|
-
export interface
|
|
15
|
+
export interface DomainValidationSchema extends Omit<
|
|
16
|
+
DomainImpactItem,
|
|
17
|
+
'type' | 'impact' | 'relationship' | 'resolution'
|
|
18
|
+
> {
|
|
16
19
|
/**
|
|
17
20
|
* The field that did not pass validation.
|
|
18
21
|
*/
|
|
@@ -55,8 +58,8 @@ export interface DomainValidation extends Omit<DomainImpactItem, 'type' | 'impac
|
|
|
55
58
|
*
|
|
56
59
|
* @param property The property to validate
|
|
57
60
|
*/
|
|
58
|
-
export function validatePropertyName(property: DomainProperty | DomainAssociation):
|
|
59
|
-
const results:
|
|
61
|
+
export function validatePropertyName(property: DomainProperty | DomainAssociation): DomainValidationSchema[] {
|
|
62
|
+
const results: DomainValidationSchema[] = []
|
|
60
63
|
const label = property.info.getLabel()
|
|
61
64
|
const parentEntity = property.getParentInstance() as DomainEntity
|
|
62
65
|
const type = property.kind === DomainPropertyKind ? 'property' : 'association'
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DomainEntityKind } from '../../models/kinds.js'
|
|
2
2
|
import type { DataDomain } from '../DataDomain.js'
|
|
3
3
|
import { DataSemantics, isPropertySemantic, SemanticType } from '../Semantics.js'
|
|
4
|
-
import type {
|
|
4
|
+
import type { DomainValidationSchema } from './rules.js'
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* SemanticValidation is a class that performs validation on semantics in a data domain.
|
|
@@ -14,8 +14,8 @@ export class SemanticValidation {
|
|
|
14
14
|
* Performs all the semantic validation rules on the domain.
|
|
15
15
|
* @returns The list of validation messages.
|
|
16
16
|
*/
|
|
17
|
-
validate():
|
|
18
|
-
const results:
|
|
17
|
+
validate(): DomainValidationSchema[] {
|
|
18
|
+
const results: DomainValidationSchema[] = []
|
|
19
19
|
|
|
20
20
|
// Check for User entity semantic
|
|
21
21
|
const hasUserEntity = this.validateUserEntity()
|
|
@@ -40,8 +40,8 @@ export class SemanticValidation {
|
|
|
40
40
|
* Validates if there is at least one entity with the User semantic.
|
|
41
41
|
* This is a recommended semantic for authentication purposes.
|
|
42
42
|
*/
|
|
43
|
-
private validateUserEntity():
|
|
44
|
-
const results:
|
|
43
|
+
private validateUserEntity(): DomainValidationSchema[] {
|
|
44
|
+
const results: DomainValidationSchema[] = []
|
|
45
45
|
let hasUserEntity = false
|
|
46
46
|
|
|
47
47
|
for (const entity of this.domain.listEntities()) {
|
|
@@ -70,8 +70,8 @@ export class SemanticValidation {
|
|
|
70
70
|
* Validates if entities have the recommended timestamp semantics.
|
|
71
71
|
* This includes CreatedTimestamp and UpdatedTimestamp.
|
|
72
72
|
*/
|
|
73
|
-
private validateTimestampSemantics():
|
|
74
|
-
const results:
|
|
73
|
+
private validateTimestampSemantics(): DomainValidationSchema[] {
|
|
74
|
+
const results: DomainValidationSchema[] = []
|
|
75
75
|
|
|
76
76
|
for (const entity of this.domain.listEntities()) {
|
|
77
77
|
let hasCreatedTimestamp = false
|
|
@@ -118,8 +118,8 @@ export class SemanticValidation {
|
|
|
118
118
|
* Validates if entities have the recommended soft delete semantics.
|
|
119
119
|
* This includes either DeletedTimestamp or DeletedFlag.
|
|
120
120
|
*/
|
|
121
|
-
private validateSoftDeleteSemantics():
|
|
122
|
-
const results:
|
|
121
|
+
private validateSoftDeleteSemantics(): DomainValidationSchema[] {
|
|
122
|
+
const results: DomainValidationSchema[] = []
|
|
123
123
|
|
|
124
124
|
for (const entity of this.domain.listEntities()) {
|
|
125
125
|
let hasSoftDelete = false
|
|
@@ -150,8 +150,8 @@ export class SemanticValidation {
|
|
|
150
150
|
/**
|
|
151
151
|
* Validates if property semantics are applied to properties with compatible data types.
|
|
152
152
|
*/
|
|
153
|
-
private validatePropertySemanticsDataTypes():
|
|
154
|
-
const results:
|
|
153
|
+
private validatePropertySemanticsDataTypes(): DomainValidationSchema[] {
|
|
154
|
+
const results: DomainValidationSchema[] = []
|
|
155
155
|
|
|
156
156
|
for (const entity of this.domain.listEntities()) {
|
|
157
157
|
for (const property of entity.listProperties()) {
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
DataSourceConfiguration,
|
|
11
11
|
} from '../../models/legacy/actions/Actions.js'
|
|
12
12
|
import { IHttpFlow, IHttpAction, FlowSourceEnum, FlowRequestDataEnum, FlowResponseDataEnum } from './HttpFlows.js'
|
|
13
|
-
import { AmfNamespace } from '
|
|
13
|
+
import { AmfNamespace } from '@api-client/amf-core'
|
|
14
14
|
import { IHttpStep } from './HttpStep.js'
|
|
15
15
|
import { IReadDataStep, ReadDataStep, ReadDataStepKind } from './steps/data/ReadDataStep.js'
|
|
16
16
|
import { ISetDataStep, SetDataStepKind } from './steps/data/SetDataStep.js'
|
|
@@ -27,7 +27,7 @@ import { ISubstringStep, SubstringStepKind } from '../../models/http-flows/steps
|
|
|
27
27
|
import { TrimStepKind } from '../../models/http-flows/steps/transformation/TrimStep.js'
|
|
28
28
|
import { EqualAssertionKind, IEqualAssertion } from '../../models/http-flows/steps/assertion/EqualAssertion.js'
|
|
29
29
|
import { INotEqualAssertion, NotEqualAssertionKind } from '../../models/http-flows/steps/assertion/NotEqualAssertion.js'
|
|
30
|
-
import { ApiSchemaValues } from '
|
|
30
|
+
import { ApiSchemaValues } from '@api-client/amf-core'
|
|
31
31
|
import {
|
|
32
32
|
GreaterThanAssertionKind,
|
|
33
33
|
IGreaterThanAssertion,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { test } from '@japa/runner'
|
|
2
|
-
import { DataValueGenerator, noValue } from '
|
|
3
|
-
import type { DomainPropertyType } from '
|
|
2
|
+
import { DataValueGenerator, noValue } from '../../../../src/modeling/amf/DataValueGenerator.js'
|
|
3
|
+
import type { DomainPropertyType } from '../../../../src/modeling/DataFormat.js'
|
|
4
4
|
|
|
5
5
|
test.group('DataValueGenerator', (group) => {
|
|
6
6
|
let generator: DataValueGenerator
|