@api-client/core 0.19.9 → 0.19.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +9 -63
- package/Testing.md +1 -1
- package/bin/test.ts +1 -12
- package/build/src/browser.d.ts +0 -15
- package/build/src/browser.d.ts.map +1 -1
- package/build/src/browser.js +0 -17
- package/build/src/browser.js.map +1 -1
- package/build/src/decorators/observed.d.ts.map +1 -1
- package/build/src/decorators/observed.js +91 -0
- package/build/src/decorators/observed.js.map +1 -1
- package/build/src/events/EventTypes.d.ts +0 -6
- package/build/src/events/EventTypes.d.ts.map +1 -1
- package/build/src/events/EventTypes.js +0 -2
- package/build/src/events/EventTypes.js.map +1 -1
- package/build/src/events/Events.d.ts +0 -2
- package/build/src/events/Events.d.ts.map +1 -1
- package/build/src/events/Events.js +0 -2
- package/build/src/events/Events.js.map +1 -1
- package/build/src/index.d.ts +0 -15
- package/build/src/index.d.ts.map +1 -1
- package/build/src/index.js +0 -17
- package/build/src/index.js.map +1 -1
- package/build/src/modeling/ApiModel.d.ts +21 -7
- package/build/src/modeling/ApiModel.d.ts.map +1 -1
- package/build/src/modeling/ApiModel.js +70 -29
- package/build/src/modeling/ApiModel.js.map +1 -1
- package/build/src/modeling/Bindings.d.ts +3 -3
- package/build/src/modeling/Bindings.d.ts.map +1 -1
- package/build/src/modeling/Bindings.js.map +1 -1
- package/build/src/modeling/DomainAssociation.d.ts +5 -5
- package/build/src/modeling/DomainAssociation.d.ts.map +1 -1
- package/build/src/modeling/DomainAssociation.js.map +1 -1
- package/build/src/modeling/DomainEntity.d.ts +2 -3
- package/build/src/modeling/DomainEntity.d.ts.map +1 -1
- package/build/src/modeling/DomainEntity.js +1 -1
- package/build/src/modeling/DomainEntity.js.map +1 -1
- package/build/src/modeling/DomainProperty.d.ts +2 -3
- package/build/src/modeling/DomainProperty.d.ts.map +1 -1
- package/build/src/modeling/DomainProperty.js +1 -1
- package/build/src/modeling/DomainProperty.js.map +1 -1
- package/build/src/modeling/DomainValidation.d.ts +1 -1
- package/build/src/modeling/DomainValidation.d.ts.map +1 -1
- package/build/src/modeling/DomainValidation.js.map +1 -1
- package/build/src/modeling/ExposedEntity.d.ts +14 -0
- package/build/src/modeling/ExposedEntity.d.ts.map +1 -1
- package/build/src/modeling/ExposedEntity.js +59 -6
- package/build/src/modeling/ExposedEntity.js.map +1 -1
- package/build/src/modeling/actions/Action.d.ts +11 -1
- package/build/src/modeling/actions/Action.d.ts.map +1 -1
- package/build/src/modeling/actions/Action.js +21 -3
- package/build/src/modeling/actions/Action.js.map +1 -1
- package/build/src/modeling/actions/CreateAction.d.ts +2 -1
- package/build/src/modeling/actions/CreateAction.d.ts.map +1 -1
- package/build/src/modeling/actions/CreateAction.js +2 -2
- package/build/src/modeling/actions/CreateAction.js.map +1 -1
- package/build/src/modeling/actions/DeleteAction.d.ts +2 -1
- package/build/src/modeling/actions/DeleteAction.d.ts.map +1 -1
- package/build/src/modeling/actions/DeleteAction.js +2 -2
- package/build/src/modeling/actions/DeleteAction.js.map +1 -1
- package/build/src/modeling/actions/ListAction.d.ts +2 -1
- package/build/src/modeling/actions/ListAction.d.ts.map +1 -1
- package/build/src/modeling/actions/ListAction.js +2 -2
- package/build/src/modeling/actions/ListAction.js.map +1 -1
- package/build/src/modeling/actions/ReadAction.d.ts +2 -1
- package/build/src/modeling/actions/ReadAction.d.ts.map +1 -1
- package/build/src/modeling/actions/ReadAction.js +2 -2
- package/build/src/modeling/actions/ReadAction.js.map +1 -1
- package/build/src/modeling/actions/SearchAction.d.ts +2 -1
- package/build/src/modeling/actions/SearchAction.d.ts.map +1 -1
- package/build/src/modeling/actions/SearchAction.js +2 -2
- package/build/src/modeling/actions/SearchAction.js.map +1 -1
- package/build/src/modeling/actions/UpdateAction.d.ts +2 -1
- package/build/src/modeling/actions/UpdateAction.d.ts.map +1 -1
- package/build/src/modeling/actions/UpdateAction.js +2 -2
- package/build/src/modeling/actions/UpdateAction.js.map +1 -1
- package/build/src/modeling/actions/index.d.ts +2 -1
- package/build/src/modeling/actions/index.d.ts.map +1 -1
- package/build/src/modeling/actions/index.js +7 -7
- package/build/src/modeling/actions/index.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/index.d.ts +1 -0
- package/build/src/modeling/index.d.ts.map +1 -1
- package/build/src/modeling/index.js +1 -0
- package/build/src/modeling/index.js.map +1 -1
- package/build/src/modeling/types.d.ts +67 -0
- package/build/src/modeling/types.d.ts.map +1 -1
- package/build/src/modeling/types.js.map +1 -1
- package/build/src/modeling/validation/api_model_rules.d.ts +15 -0
- package/build/src/modeling/validation/api_model_rules.d.ts.map +1 -0
- package/build/src/modeling/validation/api_model_rules.js +599 -0
- package/build/src/modeling/validation/api_model_rules.js.map +1 -0
- package/build/src/modeling/validation/association_validation.d.ts.map +1 -1
- package/build/src/modeling/validation/association_validation.js +1 -3
- package/build/src/modeling/validation/association_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 -2
- package/package.json +27 -135
- package/src/decorators/observed.ts +91 -0
- package/src/events/EventTypes.ts +0 -2
- package/src/events/Events.ts +0 -2
- package/src/modeling/ApiModel.ts +73 -33
- 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 +1 -1
- package/src/modeling/ExposedEntity.ts +63 -9
- package/src/modeling/actions/Action.ts +25 -2
- package/src/modeling/actions/CreateAction.ts +3 -2
- package/src/modeling/actions/DeleteAction.ts +3 -2
- package/src/modeling/actions/ListAction.ts +3 -2
- package/src/modeling/actions/ReadAction.ts +3 -2
- package/src/modeling/actions/SearchAction.ts +3 -2
- package/src/modeling/actions/UpdateAction.ts +3 -2
- 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/types.ts +70 -0
- package/src/modeling/validation/api_model_rules.ts +640 -0
- package/src/modeling/validation/api_model_validation_rules.md +58 -0
- package/src/modeling/validation/association_validation.ts +1 -3
- package/src/models/http-flows/LegacyTranslator.ts +1 -1
- package/src/runtime/http-runner/HttpFlows.ts +1 -1
- package/tests/unit/modeling/actions/Action.spec.ts +40 -8
- package/tests/unit/modeling/actions/CreateAction.spec.ts +5 -5
- package/tests/unit/modeling/actions/DeleteAction.spec.ts +6 -6
- package/tests/unit/modeling/actions/ListAction.spec.ts +7 -7
- package/tests/unit/modeling/actions/ReadAction.spec.ts +6 -6
- package/tests/unit/modeling/actions/SearchAction.spec.ts +6 -6
- package/tests/unit/modeling/actions/UpdateAction.spec.ts +6 -6
- 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/api_model.spec.ts +190 -13
- package/tests/unit/modeling/api_model_expose_entity.spec.ts +43 -19
- package/tests/unit/modeling/api_model_remove_entity.spec.ts +6 -6
- package/tests/unit/modeling/domain_asociation.spec.ts +13 -13
- package/tests/unit/modeling/exposed_entity.spec.ts +123 -3
- package/tests/unit/modeling/exposed_entity_actions.spec.ts +41 -18
- package/tests/unit/modeling/exposed_entity_setter_validation.spec.ts +1 -1
- package/tests/unit/modeling/rules/restoring_rules.spec.ts +9 -5
- package/tests/unit/modeling/validation/api_model_rules.spec.ts +324 -0
- 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/tsconfig.browser.json +1 -1
- package/tsconfig.node.json +1 -1
- package/bin/test-web.ts +0 -6
- 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
|
@@ -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,6 +1,6 @@
|
|
|
1
1
|
import { DataDomainKind } from '../models/kinds.js'
|
|
2
2
|
import { DataDomain } from './DataDomain.js'
|
|
3
|
-
import { DomainImpactReport } from './types.js'
|
|
3
|
+
import type { DomainImpactReport } from './types.js'
|
|
4
4
|
import { AssociationValidation } from './validation/association_validation.js'
|
|
5
5
|
import { EntityValidation } from './validation/entity_validation.js'
|
|
6
6
|
import { PropertyValidation } from './validation/property_validation.js'
|
|
@@ -6,7 +6,7 @@ import { restoreAction } from './actions/index.js'
|
|
|
6
6
|
import type { ApiModel } from './ApiModel.js'
|
|
7
7
|
import { ensureLeadingSlash, joinPaths } from './helpers/endpointHelpers.js'
|
|
8
8
|
import { AccessRule } from './rules/AccessRule.js'
|
|
9
|
-
import { restoreAccessRule } from './rules/index.js'
|
|
9
|
+
import { type RateLimitRule, restoreAccessRule } from './rules/index.js'
|
|
10
10
|
import { RateLimitingConfiguration } from './rules/RateLimitingConfiguration.js'
|
|
11
11
|
import type { AssociationTarget, ExposeOptions, ExposeParentRef, ExposedEntitySchema } from './types.js'
|
|
12
12
|
|
|
@@ -98,7 +98,7 @@ export class ExposedEntity extends EventTarget {
|
|
|
98
98
|
/**
|
|
99
99
|
* Optional configuration for rate limiting for this exposure.
|
|
100
100
|
*/
|
|
101
|
-
@observed(
|
|
101
|
+
@observed() accessor rateLimiting: RateLimitingConfiguration | undefined
|
|
102
102
|
|
|
103
103
|
/**
|
|
104
104
|
* When true, generation for this exposure hit configured limits
|
|
@@ -184,7 +184,7 @@ export class ExposedEntity extends EventTarget {
|
|
|
184
184
|
this.isRoot = init.isRoot
|
|
185
185
|
this.parent = init.parent
|
|
186
186
|
this.exposeOptions = init.exposeOptions
|
|
187
|
-
this.actions = init.actions ? init.actions.map((a) => restoreAction(a)) : []
|
|
187
|
+
this.actions = init.actions ? init.actions.map((a) => restoreAction(this, a)) : []
|
|
188
188
|
this.accessRule = init.accessRule ? init.accessRule.map((ar) => restoreAccessRule(ar)) : []
|
|
189
189
|
this.rateLimiting = init.rateLimiting ? new RateLimitingConfiguration(init.rateLimiting) : undefined
|
|
190
190
|
this.truncated = init.truncated
|
|
@@ -259,9 +259,7 @@ export class ExposedEntity extends EventTarget {
|
|
|
259
259
|
|
|
260
260
|
// Check for collision if this is a root entity
|
|
261
261
|
if (this.isRoot) {
|
|
262
|
-
const collision = this.api.
|
|
263
|
-
(e) => e.isRoot && e.key !== this.key && e.collectionPath === normalizedCollection
|
|
264
|
-
)
|
|
262
|
+
const collision = this.api.findCollectionPathCollision(normalizedCollection, this.key)
|
|
265
263
|
if (collision) {
|
|
266
264
|
throw new Error(`Collection path "${normalizedCollection}" is already in use by another root entity.`)
|
|
267
265
|
}
|
|
@@ -328,7 +326,7 @@ export class ExposedEntity extends EventTarget {
|
|
|
328
326
|
}
|
|
329
327
|
// Check for collision if this is a root entity (singleton case)
|
|
330
328
|
if (this.isRoot) {
|
|
331
|
-
const collision = this.api.
|
|
329
|
+
const collision = this.api.findResourcePathCollision(cleaned, this.key)
|
|
332
330
|
if (collision) {
|
|
333
331
|
throw new Error(`Resource path "${cleaned}" is already in use by another root entity.`)
|
|
334
332
|
}
|
|
@@ -350,7 +348,7 @@ export class ExposedEntity extends EventTarget {
|
|
|
350
348
|
// Traverse parents, always joining with the parent's resource path
|
|
351
349
|
let parentKey = this.parent?.key
|
|
352
350
|
while (parentKey) {
|
|
353
|
-
const parent = this.api.exposes.
|
|
351
|
+
const parent = this.api.exposes.get(parentKey)
|
|
354
352
|
if (!parent) break
|
|
355
353
|
const parentResource = ensureLeadingSlash(parent.resourcePath)
|
|
356
354
|
absolute = joinPaths(parentResource, absolute)
|
|
@@ -372,7 +370,7 @@ export class ExposedEntity extends EventTarget {
|
|
|
372
370
|
// Traverse parents, always joining with the parent's resource path
|
|
373
371
|
let parentKey = this.parent?.key
|
|
374
372
|
while (parentKey) {
|
|
375
|
-
const parent = this.api.exposes.
|
|
373
|
+
const parent = this.api.exposes.get(parentKey)
|
|
376
374
|
if (!parent) break
|
|
377
375
|
const parentResource = ensureLeadingSlash(parent.resourcePath)
|
|
378
376
|
absolute = joinPaths(parentResource, absolute)
|
|
@@ -380,4 +378,60 @@ export class ExposedEntity extends EventTarget {
|
|
|
380
378
|
}
|
|
381
379
|
return absolute
|
|
382
380
|
}
|
|
381
|
+
|
|
382
|
+
/**
|
|
383
|
+
* Returns all access rules for this exposure, including the ones from all the parents up to the API.
|
|
384
|
+
*/
|
|
385
|
+
getAllRules(): AccessRule[] {
|
|
386
|
+
const rules: AccessRule[] = []
|
|
387
|
+
this.api.accessRule.forEach((rule) => rules.push(rule))
|
|
388
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
389
|
+
let current: ExposedEntity | undefined = this
|
|
390
|
+
while (current) {
|
|
391
|
+
if (current.accessRule) {
|
|
392
|
+
rules.push(...current.accessRule)
|
|
393
|
+
}
|
|
394
|
+
current = current.parent ? this.api.exposes.get(current.parent.key) : undefined
|
|
395
|
+
}
|
|
396
|
+
return rules
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
/**
|
|
400
|
+
* Returns all rate limiters for this exposure, including the ones from all the parents up to the API.
|
|
401
|
+
*/
|
|
402
|
+
getAllRateLimiters(): RateLimitingConfiguration[] {
|
|
403
|
+
const rateLimiters: RateLimitingConfiguration[] = []
|
|
404
|
+
if (this.api.rateLimiting) {
|
|
405
|
+
rateLimiters.push(this.api.rateLimiting)
|
|
406
|
+
}
|
|
407
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
408
|
+
let current: ExposedEntity | undefined = this
|
|
409
|
+
while (current) {
|
|
410
|
+
if (current.rateLimiting) {
|
|
411
|
+
rateLimiters.push(current.rateLimiting)
|
|
412
|
+
}
|
|
413
|
+
current = current.parent ? this.api.exposes.get(current.parent.key) : undefined
|
|
414
|
+
}
|
|
415
|
+
return rateLimiters
|
|
416
|
+
}
|
|
417
|
+
|
|
418
|
+
/**
|
|
419
|
+
* Returns all rate limiter rules for this exposure, including the ones from all the parents up to the API.
|
|
420
|
+
* Similar to the getAllRules() method, but it flattens the rate limiters into a single list of rules.
|
|
421
|
+
*/
|
|
422
|
+
getAllRateLimiterRules(): RateLimitRule[] {
|
|
423
|
+
const rules: RateLimitRule[] = []
|
|
424
|
+
if (this.api.rateLimiting) {
|
|
425
|
+
rules.push(...this.api.rateLimiting.rules)
|
|
426
|
+
}
|
|
427
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
428
|
+
let current: ExposedEntity | undefined = this
|
|
429
|
+
while (current) {
|
|
430
|
+
if (current.rateLimiting) {
|
|
431
|
+
rules.push(...current.rateLimiting.rules)
|
|
432
|
+
}
|
|
433
|
+
current = current.parent ? this.api.exposes.get(current.parent.key) : undefined
|
|
434
|
+
}
|
|
435
|
+
return rules
|
|
436
|
+
}
|
|
383
437
|
}
|
|
@@ -2,6 +2,7 @@ import { AccessRule, AccessRuleSchema } from '../rules/AccessRule.js'
|
|
|
2
2
|
import { RateLimitingConfiguration, RateLimitingConfigurationSchema } from '../rules/RateLimitingConfiguration.js'
|
|
3
3
|
import { observed } from '../../decorators/observed.js'
|
|
4
4
|
import { restoreAccessRule } from '../rules/index.js'
|
|
5
|
+
import type { ExposedEntity } from '../ExposedEntity.js'
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* A base interface for common properties across all actions.
|
|
@@ -37,10 +38,13 @@ export interface ActionSchema {
|
|
|
37
38
|
export class Action extends EventTarget implements ActionSchema {
|
|
38
39
|
@observed() accessor kind: string
|
|
39
40
|
@observed({ deep: true }) accessor accessRule: AccessRule[]
|
|
40
|
-
@observed(
|
|
41
|
+
@observed() accessor rateLimiting: RateLimitingConfiguration | undefined
|
|
41
42
|
|
|
42
|
-
|
|
43
|
+
protected parent: ExposedEntity
|
|
44
|
+
|
|
45
|
+
constructor(parent: ExposedEntity, state: Partial<ActionSchema> = {}) {
|
|
43
46
|
super()
|
|
47
|
+
this.parent = parent
|
|
44
48
|
this.kind = state.kind || ''
|
|
45
49
|
this.accessRule = state.accessRule ? state.accessRule.map((rule) => restoreAccessRule(rule)) : []
|
|
46
50
|
this.rateLimiting = state.rateLimiting ? new RateLimitingConfiguration(state.rateLimiting) : undefined
|
|
@@ -62,4 +66,23 @@ export class Action extends EventTarget implements ActionSchema {
|
|
|
62
66
|
}
|
|
63
67
|
return result
|
|
64
68
|
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Returns all access rules for this action, including the ones from all the parents up to the API.
|
|
72
|
+
*/
|
|
73
|
+
getAllRules(): AccessRule[] {
|
|
74
|
+
const rules: AccessRule[] = [...this.parent.getAllRules(), ...this.accessRule]
|
|
75
|
+
return rules
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Returns all rate limiters for this action, including the ones from all the parents up to the API.
|
|
80
|
+
*/
|
|
81
|
+
getAllRateLimiters(): RateLimitingConfiguration[] {
|
|
82
|
+
const rateLimiters = this.parent.getAllRateLimiters()
|
|
83
|
+
if (this.rateLimiting) {
|
|
84
|
+
rateLimiters.push(this.rateLimiting)
|
|
85
|
+
}
|
|
86
|
+
return rateLimiters
|
|
87
|
+
}
|
|
65
88
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Action, type ActionSchema } from './Action.js'
|
|
2
2
|
import { observed } from '../../decorators/observed.js'
|
|
3
|
+
import type { ExposedEntity } from '../ExposedEntity.js'
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* Enables adding a new resource to a collection.
|
|
@@ -16,8 +17,8 @@ export interface CreateActionSchema extends ActionSchema {
|
|
|
16
17
|
export class CreateAction extends Action implements CreateActionSchema {
|
|
17
18
|
@observed() override accessor kind: 'create'
|
|
18
19
|
|
|
19
|
-
constructor(state: Partial<CreateActionSchema> = {}) {
|
|
20
|
-
super(state)
|
|
20
|
+
constructor(parent: ExposedEntity, state: Partial<CreateActionSchema> = {}) {
|
|
21
|
+
super(parent, state)
|
|
21
22
|
this.kind = 'create'
|
|
22
23
|
}
|
|
23
24
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Action, type ActionSchema } from './Action.js'
|
|
2
2
|
import { observed } from '../../decorators/observed.js'
|
|
3
|
+
import type { ExposedEntity } from '../ExposedEntity.js'
|
|
3
4
|
|
|
4
5
|
export type DeleteStrategy = 'soft' | 'hard'
|
|
5
6
|
|
|
@@ -33,8 +34,8 @@ export class DeleteAction extends Action implements DeleteActionSchema {
|
|
|
33
34
|
@observed() accessor strategy: DeleteStrategy
|
|
34
35
|
@observed() accessor retentionPeriod: number
|
|
35
36
|
|
|
36
|
-
constructor(state: Partial<DeleteActionSchema> = {}) {
|
|
37
|
-
super(state)
|
|
37
|
+
constructor(parent: ExposedEntity, state: Partial<DeleteActionSchema> = {}) {
|
|
38
|
+
super(parent, state)
|
|
38
39
|
this.kind = 'delete'
|
|
39
40
|
this.strategy = state.strategy || 'soft'
|
|
40
41
|
this.retentionPeriod = state.retentionPeriod ?? 30
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { PaginationStrategy } from '../types.js'
|
|
2
2
|
import { Action, type ActionSchema } from './Action.js'
|
|
3
3
|
import { observed, toRaw } from '../../decorators/observed.js'
|
|
4
|
+
import type { ExposedEntity } from '../ExposedEntity.js'
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* Enables retrieving a collection of resources.
|
|
@@ -35,8 +36,8 @@ export class ListAction extends Action implements ListActionSchema {
|
|
|
35
36
|
@observed({ deep: true }) accessor filterableFields: string[] = []
|
|
36
37
|
@observed({ deep: true }) accessor sortableFields: string[] = []
|
|
37
38
|
|
|
38
|
-
constructor(state: Partial<ListActionSchema> = {}) {
|
|
39
|
-
super(state)
|
|
39
|
+
constructor(parent: ExposedEntity, state: Partial<ListActionSchema> = {}) {
|
|
40
|
+
super(parent, state)
|
|
40
41
|
this.kind = state.kind || 'list'
|
|
41
42
|
this.pagination = state.pagination
|
|
42
43
|
? { ...state.pagination }
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Action, type ActionSchema } from './Action.js'
|
|
2
2
|
import { observed } from '../../decorators/observed.js'
|
|
3
|
+
import type { ExposedEntity } from '../ExposedEntity.js'
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* Enables retrieving a single resource by its ID.
|
|
@@ -18,8 +19,8 @@ export interface ReadActionSchema extends ActionSchema {
|
|
|
18
19
|
export class ReadAction extends Action implements ReadActionSchema {
|
|
19
20
|
@observed() override accessor kind: 'read'
|
|
20
21
|
|
|
21
|
-
constructor(state: Partial<ReadActionSchema> = {}) {
|
|
22
|
-
super(state)
|
|
22
|
+
constructor(parent: ExposedEntity, state: Partial<ReadActionSchema> = {}) {
|
|
23
|
+
super(parent, state)
|
|
23
24
|
this.kind = 'read'
|
|
24
25
|
}
|
|
25
26
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Action, type ActionSchema } from './Action.js'
|
|
2
2
|
import { observed, toRaw } from '../../decorators/observed.js'
|
|
3
|
+
import type { ExposedEntity } from '../ExposedEntity.js'
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* Enables keyword-based search across specified fields.
|
|
@@ -22,8 +23,8 @@ export class SearchAction extends Action implements SearchActionSchema {
|
|
|
22
23
|
@observed() override accessor kind: 'search'
|
|
23
24
|
@observed({ deep: true }) accessor fields: string[]
|
|
24
25
|
|
|
25
|
-
constructor(state: Partial<SearchActionSchema> = {}) {
|
|
26
|
-
super(state)
|
|
26
|
+
constructor(parent: ExposedEntity, state: Partial<SearchActionSchema> = {}) {
|
|
27
|
+
super(parent, state)
|
|
27
28
|
this.kind = 'search'
|
|
28
29
|
this.fields = state.fields ? [...state.fields] : []
|
|
29
30
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Action, type ActionSchema } from './Action.js'
|
|
2
2
|
import { observed, toRaw } from '../../decorators/observed.js'
|
|
3
|
+
import type { ExposedEntity } from '../ExposedEntity.js'
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* Enables modifying an existing resource.
|
|
@@ -25,8 +26,8 @@ export class UpdateAction extends Action implements UpdateActionSchema {
|
|
|
25
26
|
@observed() override accessor kind: 'update'
|
|
26
27
|
@observed({ deep: true }) accessor allowedMethods: ('PUT' | 'PATCH')[]
|
|
27
28
|
|
|
28
|
-
constructor(state: Partial<UpdateActionSchema> = {}) {
|
|
29
|
-
super(state)
|
|
29
|
+
constructor(parent: ExposedEntity, state: Partial<UpdateActionSchema> = {}) {
|
|
30
|
+
super(parent, state)
|
|
30
31
|
this.kind = 'update'
|
|
31
32
|
this.allowedMethods = state.allowedMethods ? [...state.allowedMethods] : ['PATCH']
|
|
32
33
|
}
|
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
|
}
|
|
@@ -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
|
}
|