@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
package/eslint.config.js
CHANGED
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@api-client/core",
|
|
3
3
|
"description": "The API Client's core client library. Works in NodeJS and in a ES enabled browser.",
|
|
4
|
-
"version": "0.19.
|
|
5
|
-
"license": "
|
|
4
|
+
"version": "0.19.12",
|
|
5
|
+
"license": "UNLICENSED",
|
|
6
6
|
"exports": {
|
|
7
7
|
"./browser.js": {
|
|
8
8
|
"default": "./build/src/browser.js",
|
|
@@ -19,8 +19,6 @@
|
|
|
19
19
|
},
|
|
20
20
|
"./package.json": "./package.json",
|
|
21
21
|
"./nanoid.js": "./build/src/nanoid.js",
|
|
22
|
-
"./amf/*.js": "./build/src/amf/*.js",
|
|
23
|
-
"./amf/*": "./build/src/amf/*",
|
|
24
22
|
"./authorization/*.js": "./build/src/authorization/*.js",
|
|
25
23
|
"./authorization/*": "./build/src/authorization/*",
|
|
26
24
|
"./config/*.js": "./build/src/config/*.js",
|
|
@@ -53,7 +51,6 @@
|
|
|
53
51
|
"./testing/*": "./build/src/testing/*"
|
|
54
52
|
},
|
|
55
53
|
"imports": {
|
|
56
|
-
"#amf/*": "./src/amf/*",
|
|
57
54
|
"#authorization/*": "./src/authorization/*",
|
|
58
55
|
"#cookies/*": "./src/cookies/*",
|
|
59
56
|
"#data/*": "./src/data/*",
|
|
@@ -84,6 +81,7 @@
|
|
|
84
81
|
"url": "https://github.com/api-client/core/issues"
|
|
85
82
|
},
|
|
86
83
|
"dependencies": {
|
|
84
|
+
"@api-client/amf-core": "^0.1.2",
|
|
87
85
|
"@api-client/graph": "^0.3.5",
|
|
88
86
|
"@api-client/json": "^0.2.0",
|
|
89
87
|
"@esm-bundle/chai": "^4.3.4-fix.0",
|
|
@@ -95,7 +93,6 @@
|
|
|
95
93
|
"@pawel-up/data-mock": "^0.4.0",
|
|
96
94
|
"@pawel-up/jexl": "^4.0.1",
|
|
97
95
|
"@xmldom/xmldom": "^0.8.11",
|
|
98
|
-
"amf-json-ld-lib": "^0.0.15",
|
|
99
96
|
"chalk": "^5.4.1",
|
|
100
97
|
"console-table-printer": "^2.11.2",
|
|
101
98
|
"dompurify": "^3.2.6",
|
|
@@ -109,10 +106,7 @@
|
|
|
109
106
|
"@commitlint/cli": "^20.1.0",
|
|
110
107
|
"@commitlint/config-conventional": "^20.0.0",
|
|
111
108
|
"@eslint/js": "^10.0.1",
|
|
112
|
-
"@japa/api-client": "^3.0.3",
|
|
113
109
|
"@japa/assert": "^4.0.1",
|
|
114
|
-
"@japa/browser-client": "^2.1.1",
|
|
115
|
-
"@japa/expect-type": "^2.0.3",
|
|
116
110
|
"@japa/runner": "^5.3.0",
|
|
117
111
|
"@pawel-up/semver": "^0.1.4",
|
|
118
112
|
"@types/chai-as-promised": "^8.0.2",
|
|
@@ -128,7 +122,6 @@
|
|
|
128
122
|
"@web/dev-server-rollup": "^0.6.4",
|
|
129
123
|
"@web/test-runner": "^0.20.0",
|
|
130
124
|
"@web/test-runner-playwright": "^0.11.0",
|
|
131
|
-
"amf-client-js": "^5.10.0-0",
|
|
132
125
|
"c8": "^11.0.0",
|
|
133
126
|
"chai-as-promised": "^8.0.2",
|
|
134
127
|
"conventional-changelog": "^7.1.0",
|
|
@@ -148,7 +141,6 @@
|
|
|
148
141
|
"prettier": "^3.5.1",
|
|
149
142
|
"schema-org-json-schemas": "^2.1.4",
|
|
150
143
|
"sinon": "^21.0.0",
|
|
151
|
-
"ts-lit-plugin": "^2.0.2",
|
|
152
144
|
"ts-node-maintained": "^10.9.5",
|
|
153
145
|
"typescript": "^5.5.2",
|
|
154
146
|
"typescript-eslint": "^8.24.1"
|
|
@@ -158,7 +150,7 @@
|
|
|
158
150
|
"build:ts": "tsc --project tsconfig.json",
|
|
159
151
|
"build:node": "tsc --project tsconfig.node.json",
|
|
160
152
|
"build": "npm run build:ts && npm run copy:assets",
|
|
161
|
-
"prepare": "husky && npm run fixes && npm run build:ts
|
|
153
|
+
"prepare": "husky && npm run fixes && npm run build:ts",
|
|
162
154
|
"fixes": "node scripts/fix-rollup-plugin.js",
|
|
163
155
|
"tsc": "tsc",
|
|
164
156
|
"tsc:tests": "tsc --project tsconfig.browser.json",
|
|
@@ -169,7 +161,6 @@
|
|
|
169
161
|
"test:coverage": "npm run test:node:coverage && npm run test:browser",
|
|
170
162
|
"test:node": "node --import ts-node-maintained/register/esm --enable-source-maps bin/test.ts",
|
|
171
163
|
"test:node:coverage": "c8 --reporter lcov --reporter text node --import ts-node-maintained/register/esm --enable-source-maps bin/test.ts",
|
|
172
|
-
"build:api-models": "node data/model.js",
|
|
173
164
|
"copy:assets": "cp -f ./oauth-popup.html ./build/oauth-popup.html",
|
|
174
165
|
"start": "echo \"Use the npm run dev instead\"",
|
|
175
166
|
"lint": "npm run lint:prettier && npm run lint:eslint",
|
|
@@ -184,8 +175,14 @@
|
|
|
184
175
|
"release:major": "node scripts/release.js major"
|
|
185
176
|
},
|
|
186
177
|
"lint-staged": {
|
|
178
|
+
"*.js": [
|
|
179
|
+
"eslint --fix"
|
|
180
|
+
],
|
|
187
181
|
"*.ts": [
|
|
188
|
-
"
|
|
182
|
+
"eslint --fix"
|
|
183
|
+
],
|
|
184
|
+
"*.json": [
|
|
185
|
+
"prettier --write"
|
|
189
186
|
]
|
|
190
187
|
},
|
|
191
188
|
"engines": {
|
package/src/events/EventTypes.ts
CHANGED
|
@@ -6,10 +6,8 @@ import { ReportingEventTypes } from './reporting/ReportingEventTypes.js'
|
|
|
6
6
|
import { TelemetryEventTypes } from './telemetry/TelemetryEventTypes.js'
|
|
7
7
|
import { EnvironmentEventTypes } from './environment/EnvironmentEventTypes.js'
|
|
8
8
|
import { TransportEventTypes } from './transport/TransportEventTypes.js'
|
|
9
|
-
import { AmfEventTypes } from './amf/AmfEventTypes.js'
|
|
10
9
|
|
|
11
10
|
export const EventTypes = Object.freeze({
|
|
12
|
-
Amf: AmfEventTypes,
|
|
13
11
|
Authorization: AuthorizationEventTypes,
|
|
14
12
|
Cookie: CookieEventTypes,
|
|
15
13
|
Encryption: EncryptionEventTypes,
|
package/src/events/Events.ts
CHANGED
|
@@ -6,10 +6,8 @@ import { ReportingEvents } from './reporting/ReportingEvents.js'
|
|
|
6
6
|
import { TelemetryEvents } from './telemetry/TelemetryEvents.js'
|
|
7
7
|
import { TransportEvent } from './transport/TransportEvents.js'
|
|
8
8
|
import { EnvironmentEvents } from './environment/EnvironmentEvents.js'
|
|
9
|
-
import { AmfEvents } from './amf/AmfEvents.js'
|
|
10
9
|
|
|
11
10
|
export const Events = Object.freeze({
|
|
12
|
-
Amf: AmfEvents,
|
|
13
11
|
Authorization: AuthorizationEvents,
|
|
14
12
|
Cookie: CookieEvents,
|
|
15
13
|
Encryption: EncryptionEvents,
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { ApiModel } from './ApiModel.js'
|
|
2
|
+
import { ApiModelValidationItem } from './types.js'
|
|
3
|
+
import { ApiModelKind } from '../models/kinds.js'
|
|
4
|
+
import {
|
|
5
|
+
validateApiModelInfo,
|
|
6
|
+
validateApiModelDependency,
|
|
7
|
+
validateApiModelSecurity,
|
|
8
|
+
validateApiModelMetadata,
|
|
9
|
+
validateExposedEntity,
|
|
10
|
+
} from './validation/api_model_rules.js'
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* ApiValidation performs comprehensive validation on an API model.
|
|
14
|
+
*
|
|
15
|
+
* This class orchestrates validation across all API model elements including
|
|
16
|
+
* info, security, exposures, and actions. It ensures that the API model is
|
|
17
|
+
* well-formed and follows established conventions before it can be published.
|
|
18
|
+
*/
|
|
19
|
+
export class ApiValidation {
|
|
20
|
+
report: ApiModelValidationItem[] = []
|
|
21
|
+
#infoCount = 0
|
|
22
|
+
#warningCount = 0
|
|
23
|
+
#errorCount = 0
|
|
24
|
+
#counted = false
|
|
25
|
+
|
|
26
|
+
get infoCount(): number {
|
|
27
|
+
if (!this.#counted) {
|
|
28
|
+
this.computeIssueCounters()
|
|
29
|
+
}
|
|
30
|
+
return this.#infoCount
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
get warningCount(): number {
|
|
34
|
+
if (!this.#counted) {
|
|
35
|
+
this.computeIssueCounters()
|
|
36
|
+
}
|
|
37
|
+
return this.#warningCount
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
get errorCount(): number {
|
|
41
|
+
if (!this.#counted) {
|
|
42
|
+
this.computeIssueCounters()
|
|
43
|
+
}
|
|
44
|
+
return this.#errorCount
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
constructor(protected model: ApiModel) {}
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Performs comprehensive validation on the entire API model.
|
|
51
|
+
*
|
|
52
|
+
* @returns A comprehensive validation report with all issues found
|
|
53
|
+
*/
|
|
54
|
+
validate(): ApiModelValidationItem[] {
|
|
55
|
+
this.#counted = false
|
|
56
|
+
this.report = []
|
|
57
|
+
|
|
58
|
+
this.report.push(...validateApiModelInfo(this.model))
|
|
59
|
+
this.report.push(...validateApiModelDependency(this.model))
|
|
60
|
+
this.report.push(...validateApiModelSecurity(this.model))
|
|
61
|
+
this.report.push(...validateApiModelMetadata(this.model))
|
|
62
|
+
|
|
63
|
+
if (!this.model.exposes || this.model.exposes.size === 0) {
|
|
64
|
+
this.report.push({
|
|
65
|
+
code: 'API_NO_EXPOSURES',
|
|
66
|
+
message: 'Your API currently has no exposed data for external clients to request.',
|
|
67
|
+
suggestion: 'Expose a data model so apps can communicate with it.',
|
|
68
|
+
severity: 'warning',
|
|
69
|
+
context: { apiModelKey: this.model.key, kind: ApiModelKind, key: this.model.key, property: 'exposes' },
|
|
70
|
+
})
|
|
71
|
+
} else {
|
|
72
|
+
for (const exposure of this.model.exposes.values()) {
|
|
73
|
+
this.report.push(...validateExposedEntity(exposure, this.model))
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
return this.report
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
computeIssueCounters(): void {
|
|
81
|
+
this.#infoCount = this.report.filter((validation) => validation.severity === 'info').length
|
|
82
|
+
this.#warningCount = this.report.filter((validation) => validation.severity === 'warning').length
|
|
83
|
+
this.#errorCount = this.report.filter((validation) => validation.severity === 'error').length
|
|
84
|
+
this.#counted = true
|
|
85
|
+
}
|
|
86
|
+
}
|
package/src/modeling/Bindings.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { DomainPropertyFormat } from './DataFormat.js'
|
|
1
|
+
import type { Shapes } from '@api-client/amf-core'
|
|
2
|
+
import type { DomainPropertyFormat } from './DataFormat.js'
|
|
3
3
|
|
|
4
4
|
interface Binding {
|
|
5
5
|
/**
|
|
@@ -69,7 +69,7 @@ export interface PropertyWebBindings {
|
|
|
69
69
|
/**
|
|
70
70
|
* The XML encoding instructions.
|
|
71
71
|
*/
|
|
72
|
-
xml?: IApiXmlSerializer
|
|
72
|
+
xml?: Shapes.IApiXmlSerializer
|
|
73
73
|
/**
|
|
74
74
|
* Only valid for the `file` property type.
|
|
75
75
|
* The list of file mime types.
|
|
@@ -5,7 +5,7 @@ import { nanoid } from '../nanoid.js'
|
|
|
5
5
|
import { type IThing, Thing } from '../models/Thing.js'
|
|
6
6
|
import { observed, retargetChange, toRaw } from '../decorators/observed.js'
|
|
7
7
|
import type { DomainEntity } from './DomainEntity.js'
|
|
8
|
-
import type {
|
|
8
|
+
import type { Shapes } from '@api-client/amf-core'
|
|
9
9
|
import type { AssociationBinding, AssociationBindings, AssociationWebBindings } from './Bindings.js'
|
|
10
10
|
import { DomainAttributeAttribute, DomainAttributeAttributes } from './DataFormat.js'
|
|
11
11
|
import type { AssociationTarget, DomainGraphEdge } from './types.js'
|
|
@@ -53,7 +53,7 @@ export interface DomainAssociationSchema extends DomainElementSchema {
|
|
|
53
53
|
* referenced entities schemas. Note, changes in the referenced entities may not be propagated
|
|
54
54
|
* to schemas altered by the user.
|
|
55
55
|
*/
|
|
56
|
-
schema?: IApiAssociationShape
|
|
56
|
+
schema?: Shapes.IApiAssociationShape
|
|
57
57
|
/**
|
|
58
58
|
* The list of bindings for this property.
|
|
59
59
|
*
|
|
@@ -153,7 +153,7 @@ export class DomainAssociation extends DomainElement {
|
|
|
153
153
|
* The schema allowing to translate the model into a
|
|
154
154
|
* specific format (like JSON, RAML, XML, etc.)
|
|
155
155
|
*/
|
|
156
|
-
@observed({ deep: true }) accessor schema: IApiAssociationShape | undefined
|
|
156
|
+
@observed({ deep: true }) accessor schema: Shapes.IApiAssociationShape | undefined
|
|
157
157
|
|
|
158
158
|
/**
|
|
159
159
|
* The list of bindings for this property.
|
|
@@ -351,7 +351,7 @@ export class DomainAssociation extends DomainElement {
|
|
|
351
351
|
* const schema = association.ensureSchema();
|
|
352
352
|
* ```
|
|
353
353
|
*/
|
|
354
|
-
ensureSchema(): IApiAssociationShape {
|
|
354
|
+
ensureSchema(): Shapes.IApiAssociationShape {
|
|
355
355
|
if (!this.schema) {
|
|
356
356
|
this.schema = {}
|
|
357
357
|
}
|
|
@@ -547,7 +547,7 @@ export class DomainAssociation extends DomainElement {
|
|
|
547
547
|
*
|
|
548
548
|
* @returns AMF property shape definition.
|
|
549
549
|
*/
|
|
550
|
-
toApiShape(): IApiPropertyShape {
|
|
550
|
+
toApiShape(): Shapes.IApiPropertyShape {
|
|
551
551
|
const serializer = new ShapeGenerator()
|
|
552
552
|
return serializer.associationProperty(this)
|
|
553
553
|
}
|
|
@@ -4,7 +4,8 @@ import { DomainElement, type DomainElementSchema } from './DomainElement.js'
|
|
|
4
4
|
import { nanoid } from '../nanoid.js'
|
|
5
5
|
import { type IThing, Thing } from '../models/Thing.js'
|
|
6
6
|
import { observed, retargetChange, toRaw } from '../decorators/observed.js'
|
|
7
|
-
import type {
|
|
7
|
+
import type { Shapes, IShapeRenderOptions } from '@api-client/amf-core'
|
|
8
|
+
import { ApiSchemaGenerator } from '@api-client/amf-core'
|
|
8
9
|
import { DomainProperty, type DomainPropertySchema } from './DomainProperty.js'
|
|
9
10
|
import { RemovePropertyException } from '../exceptions/remove_property_exception.js'
|
|
10
11
|
import { DomainAssociation, DomainAssociationSchema } from './DomainAssociation.js'
|
|
@@ -13,8 +14,6 @@ import type { DomainModel } from './DomainModel.js'
|
|
|
13
14
|
import type { DomainNamespace } from './DomainNamespace.js'
|
|
14
15
|
import { ValidationError } from '../exceptions/validation_error.js'
|
|
15
16
|
import { ShapeGenerator } from './amf/ShapeGenerator.js'
|
|
16
|
-
import type { IShapeRenderOptions } from '../amf/shape/ShapeBase.js'
|
|
17
|
-
import { ApiSchemaGenerator } from '../amf/ApiSchemaGenerator.js'
|
|
18
17
|
import { removeGraphNode } from './GraphUtils.js'
|
|
19
18
|
import { DataSemantics, isEntitySemantic, type SemanticType, type AppliedDataSemantic } from './Semantics.js'
|
|
20
19
|
|
|
@@ -806,7 +805,7 @@ export class DomainEntity extends DomainElement {
|
|
|
806
805
|
*
|
|
807
806
|
* @returns AMF property shape definition.
|
|
808
807
|
*/
|
|
809
|
-
toApiShape(): IShapeUnion {
|
|
808
|
+
toApiShape(): Shapes.IShapeUnion {
|
|
810
809
|
const serializer = new ShapeGenerator()
|
|
811
810
|
return serializer.entity(this)
|
|
812
811
|
}
|
|
@@ -20,11 +20,10 @@ import { ShapeGenerator } from './amf/ShapeGenerator.js'
|
|
|
20
20
|
import type { PropertyBinding, PropertyBindings, PropertyWebBindings } from './Bindings.js'
|
|
21
21
|
import type { ModelValidationOptions } from '../models/types.js'
|
|
22
22
|
import type { DomainEntity } from './DomainEntity.js'
|
|
23
|
-
import type {
|
|
23
|
+
import type { Shapes, IShapeRenderOptions } from '@api-client/amf-core'
|
|
24
|
+
import { ApiSchemaGenerator } from '@api-client/amf-core'
|
|
24
25
|
import type { PropertySchema } from './types.js'
|
|
25
26
|
import { DataSemantics, isPropertySemantic, type SemanticType, type AppliedDataSemantic } from './Semantics.js'
|
|
26
|
-
import { ApiSchemaGenerator } from '../amf/ApiSchemaGenerator.js'
|
|
27
|
-
import type { IShapeRenderOptions } from '../amf/shape/ShapeBase.js'
|
|
28
27
|
|
|
29
28
|
export interface DomainPropertySchema extends DomainElementSchema {
|
|
30
29
|
kind: typeof DomainPropertyKind
|
|
@@ -576,7 +575,7 @@ export class DomainProperty extends DomainElement {
|
|
|
576
575
|
*
|
|
577
576
|
* @returns AMF property shape definition.
|
|
578
577
|
*/
|
|
579
|
-
toApiShape(): IApiPropertyShape {
|
|
578
|
+
toApiShape(): Shapes.IApiPropertyShape {
|
|
580
579
|
const serializer = new ShapeGenerator()
|
|
581
580
|
return serializer.property(this)
|
|
582
581
|
}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { DataDomainKind } from '../models/kinds.js'
|
|
2
1
|
import { DataDomain } from './DataDomain.js'
|
|
3
|
-
import type { DomainImpactReport } from './types.js'
|
|
4
2
|
import { AssociationValidation } from './validation/association_validation.js'
|
|
5
3
|
import { EntityValidation } from './validation/entity_validation.js'
|
|
6
4
|
import { PropertyValidation } from './validation/property_validation.js'
|
|
5
|
+
import { DomainValidationSchema } from './validation/rules.js'
|
|
7
6
|
import { SemanticValidation } from './validation/semantic_validation.js'
|
|
8
7
|
|
|
9
8
|
/**
|
|
@@ -76,12 +75,35 @@ import { SemanticValidation } from './validation/semantic_validation.js'
|
|
|
76
75
|
* @see {@link SemanticValidation} for detailed semantic validation rules
|
|
77
76
|
*/
|
|
78
77
|
export class DomainValidation {
|
|
79
|
-
|
|
78
|
+
report: DomainValidationSchema[] = []
|
|
79
|
+
#infoCount = 0
|
|
80
|
+
#warningCount = 0
|
|
81
|
+
#errorCount = 0
|
|
82
|
+
#counted = false
|
|
80
83
|
|
|
81
|
-
|
|
82
|
-
this
|
|
84
|
+
get infoCount(): number {
|
|
85
|
+
if (!this.#counted) {
|
|
86
|
+
this.computeIssueCounters()
|
|
87
|
+
}
|
|
88
|
+
return this.#infoCount
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
get warningCount(): number {
|
|
92
|
+
if (!this.#counted) {
|
|
93
|
+
this.computeIssueCounters()
|
|
94
|
+
}
|
|
95
|
+
return this.#warningCount
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
get errorCount(): number {
|
|
99
|
+
if (!this.#counted) {
|
|
100
|
+
this.computeIssueCounters()
|
|
101
|
+
}
|
|
102
|
+
return this.#errorCount
|
|
83
103
|
}
|
|
84
104
|
|
|
105
|
+
constructor(protected domain: DataDomain) {}
|
|
106
|
+
|
|
85
107
|
/**
|
|
86
108
|
* Performs comprehensive validation on the entire data domain.
|
|
87
109
|
*
|
|
@@ -91,93 +113,54 @@ export class DomainValidation {
|
|
|
91
113
|
*
|
|
92
114
|
* @returns A comprehensive validation report with all issues found
|
|
93
115
|
*/
|
|
94
|
-
validate():
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
const entityValidator = new EntityValidation(this.root)
|
|
102
|
-
const propertyValidator = new PropertyValidation(this.root)
|
|
103
|
-
const associationValidator = new AssociationValidation(this.root)
|
|
104
|
-
const semanticValidator = new SemanticValidation(this.root)
|
|
116
|
+
validate(): DomainValidationSchema[] {
|
|
117
|
+
this.#counted = false
|
|
118
|
+
this.report = []
|
|
119
|
+
const entityValidator = new EntityValidation(this.domain)
|
|
120
|
+
const propertyValidator = new PropertyValidation(this.domain)
|
|
121
|
+
const associationValidator = new AssociationValidation(this.domain)
|
|
122
|
+
const semanticValidator = new SemanticValidation(this.domain)
|
|
105
123
|
|
|
106
124
|
let hasEntities = false
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
if (entity.domain.key !== this.root.key) {
|
|
125
|
+
for (const entity of this.domain.listEntities()) {
|
|
126
|
+
if (entity.domain.key !== this.domain.key) {
|
|
110
127
|
// we don't need to validate foreign entities
|
|
111
128
|
continue
|
|
112
129
|
}
|
|
113
130
|
hasEntities = true
|
|
114
|
-
const
|
|
115
|
-
|
|
116
|
-
const blocking = item.severity === 'error'
|
|
117
|
-
result.canProceed = result.canProceed && !blocking
|
|
118
|
-
result.impact.push({
|
|
119
|
-
key: item.key,
|
|
120
|
-
kind: item.kind,
|
|
121
|
-
type: 'publish',
|
|
122
|
-
impact: item.message,
|
|
123
|
-
resolution: item.help,
|
|
124
|
-
severity: item.severity,
|
|
125
|
-
parent: item.parent,
|
|
126
|
-
})
|
|
127
|
-
}
|
|
131
|
+
const entities = entityValidator.validate(entity)
|
|
132
|
+
this.report.push(...entities)
|
|
128
133
|
for (const property of entity.properties) {
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
result.canProceed = result.canProceed && !blocking
|
|
133
|
-
result.impact.push({
|
|
134
|
-
key: item.key,
|
|
135
|
-
kind: item.kind,
|
|
136
|
-
type: 'publish',
|
|
137
|
-
impact: item.message,
|
|
138
|
-
resolution: item.help,
|
|
139
|
-
severity: item.severity,
|
|
140
|
-
parent: item.parent,
|
|
141
|
-
})
|
|
134
|
+
if (property.domain.key !== this.domain.key) {
|
|
135
|
+
// we don't need to validate foreign properties
|
|
136
|
+
continue
|
|
142
137
|
}
|
|
138
|
+
const properties = propertyValidator.validate(property)
|
|
139
|
+
this.report.push(...properties)
|
|
143
140
|
}
|
|
144
141
|
for (const association of entity.associations) {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
result.canProceed = result.canProceed && !blocking
|
|
149
|
-
result.impact.push({
|
|
150
|
-
key: item.key,
|
|
151
|
-
kind: item.kind,
|
|
152
|
-
type: 'publish',
|
|
153
|
-
impact: item.message,
|
|
154
|
-
resolution: item.help,
|
|
155
|
-
severity: item.severity,
|
|
156
|
-
parent: item.parent,
|
|
157
|
-
})
|
|
142
|
+
if (association.domain.key !== this.domain.key) {
|
|
143
|
+
// we don't need to validate foreign properties
|
|
144
|
+
continue
|
|
158
145
|
}
|
|
146
|
+
const associations = associationValidator.validate(association)
|
|
147
|
+
this.report.push(...associations)
|
|
159
148
|
}
|
|
160
149
|
}
|
|
161
150
|
if (!hasEntities) {
|
|
162
151
|
// no entities, no need to validate anything else
|
|
163
|
-
return
|
|
152
|
+
return this.report
|
|
164
153
|
}
|
|
165
154
|
// Validate semantics
|
|
166
155
|
const semanticReport = semanticValidator.validate()
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
result.impact.push({
|
|
171
|
-
key: item.key,
|
|
172
|
-
kind: item.kind,
|
|
173
|
-
type: 'publish',
|
|
174
|
-
impact: item.message,
|
|
175
|
-
resolution: item.help,
|
|
176
|
-
severity: item.severity,
|
|
177
|
-
parent: item.parent,
|
|
178
|
-
})
|
|
179
|
-
}
|
|
156
|
+
this.report.push(...semanticReport)
|
|
157
|
+
return this.report
|
|
158
|
+
}
|
|
180
159
|
|
|
181
|
-
|
|
160
|
+
computeIssueCounters(): void {
|
|
161
|
+
this.#infoCount = this.report.filter((validation) => validation.severity === 'info').length
|
|
162
|
+
this.#warningCount = this.report.filter((validation) => validation.severity === 'warning').length
|
|
163
|
+
this.#errorCount = this.report.filter((validation) => validation.severity === 'error').length
|
|
164
|
+
this.#counted = true
|
|
182
165
|
}
|
|
183
166
|
}
|
package/src/modeling/ai/types.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Shapes } from '@api-client/amf-core'
|
|
2
2
|
import type { Exception } from '../../exceptions/exception.js'
|
|
3
3
|
import type { AiSessionSchema } from '../../models/AiSession.js'
|
|
4
4
|
import type { DomainPropertyType } from '../DataFormat.js'
|
|
@@ -150,7 +150,7 @@ export interface AiDomainAssociation {
|
|
|
150
150
|
multiple?: boolean
|
|
151
151
|
onDelete?: OnDeleteRule
|
|
152
152
|
semantics?: AiDomainSemantic[]
|
|
153
|
-
schema?: IApiAssociationShape
|
|
153
|
+
schema?: Shapes.IApiAssociationShape
|
|
154
154
|
}
|
|
155
155
|
|
|
156
156
|
/**
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { nanoid } from '
|
|
2
|
-
import
|
|
3
|
-
import { DomainPropertyType } from '../modeling/DataFormat.js'
|
|
1
|
+
import { nanoid } from '../../nanoid.js'
|
|
2
|
+
import { DomainPropertyType } from '../DataFormat.js'
|
|
4
3
|
|
|
5
4
|
export const noValue = Symbol('noValue')
|
|
6
5
|
|
|
@@ -56,7 +55,7 @@ export class DataValueGenerator {
|
|
|
56
55
|
// TODO: we need more settings controlling the random string generation.
|
|
57
56
|
return nanoid(8)
|
|
58
57
|
case 'uuid-v4':
|
|
59
|
-
return
|
|
58
|
+
return crypto.randomUUID()
|
|
60
59
|
default:
|
|
61
60
|
return noValue
|
|
62
61
|
}
|