@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
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-extraneous-class */
|
|
2
|
-
import { IApiParseResult, IAmfServiceProcessingOptions } from '../../amf/Parsing.js'
|
|
3
|
-
import { ContextEvent } from '../BaseEvents.js'
|
|
4
|
-
import { AmfEventTypes } from './AmfEventTypes.js'
|
|
5
|
-
|
|
6
|
-
export class AmfEvents {
|
|
7
|
-
/**
|
|
8
|
-
* Downloads the file and processes it as a zipped API project.
|
|
9
|
-
*
|
|
10
|
-
* @param url API remote location.
|
|
11
|
-
* @param mainFile API main file. If not set the program will try to find the best match.
|
|
12
|
-
* @param md5 When set it will test data integrity with the MD5 hash
|
|
13
|
-
* @param packaging Default to `zip`.
|
|
14
|
-
* @returns Promise resolved to the AMF json-ld model.
|
|
15
|
-
*/
|
|
16
|
-
static async processApiLink(
|
|
17
|
-
url: string,
|
|
18
|
-
mainFile?: string,
|
|
19
|
-
md5?: string,
|
|
20
|
-
packaging?: string,
|
|
21
|
-
target: EventTarget = globalThis
|
|
22
|
-
): Promise<IApiParseResult> {
|
|
23
|
-
const e = new ContextEvent(AmfEventTypes.processApiLink, {
|
|
24
|
-
url,
|
|
25
|
-
mainFile,
|
|
26
|
-
md5,
|
|
27
|
-
packaging,
|
|
28
|
-
})
|
|
29
|
-
target.dispatchEvent(e)
|
|
30
|
-
return e.detail.result as unknown as Promise<IApiParseResult>
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Parses API data to AMF model.
|
|
35
|
-
* @param buffer Buffer created from API file.
|
|
36
|
-
* @param opts Processing options
|
|
37
|
-
* @returns Promise resolved to the AMF json-ld model
|
|
38
|
-
*/
|
|
39
|
-
static async processBuffer(
|
|
40
|
-
buffer: Buffer,
|
|
41
|
-
opts?: IAmfServiceProcessingOptions,
|
|
42
|
-
target: EventTarget = globalThis
|
|
43
|
-
): Promise<IApiParseResult> {
|
|
44
|
-
const e = new ContextEvent(AmfEventTypes.processBuffer, {
|
|
45
|
-
buffer,
|
|
46
|
-
opts,
|
|
47
|
-
})
|
|
48
|
-
target.dispatchEvent(e)
|
|
49
|
-
return e.detail.result as unknown as Promise<IApiParseResult>
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Processes file data.
|
|
54
|
-
* If the blob is a type of `application/zip` it processes the file as a
|
|
55
|
-
* zip file. Otherwise it processes it as a file.
|
|
56
|
-
*
|
|
57
|
-
* @param file File to process.
|
|
58
|
-
* @returns Promise resolved to the AMF json-ld model
|
|
59
|
-
*/
|
|
60
|
-
static async processApiFile(file: File | Blob, target: EventTarget = globalThis): Promise<IApiParseResult> {
|
|
61
|
-
const e = new ContextEvent(AmfEventTypes.processApiFile, {
|
|
62
|
-
file,
|
|
63
|
-
})
|
|
64
|
-
target.dispatchEvent(e)
|
|
65
|
-
return e.detail.result as unknown as Promise<IApiParseResult>
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Informs the UI to select a single file from the list of API entry point candidates.
|
|
70
|
-
*/
|
|
71
|
-
static async selectApiMainFile(candidates: string[], target: EventTarget = globalThis): Promise<string | undefined> {
|
|
72
|
-
const e = new ContextEvent(AmfEventTypes.selectApiMainFile, {
|
|
73
|
-
candidates,
|
|
74
|
-
})
|
|
75
|
-
target.dispatchEvent(e)
|
|
76
|
-
return e.detail.result as Promise<string | undefined>
|
|
77
|
-
}
|
|
78
|
-
}
|
package/src/mocking/RandExp.ts
DELETED
|
@@ -1,335 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
-
/**
|
|
3
|
-
* randexp v0.4.6
|
|
4
|
-
* Create random strings that match a given regular expression.
|
|
5
|
-
*
|
|
6
|
-
* Copyright (C) 2017 by fent (https://github.com/fent)
|
|
7
|
-
* MIT License
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import { ret, Token, types } from './lib/ret.js'
|
|
11
|
-
|
|
12
|
-
class DRange {
|
|
13
|
-
low: number
|
|
14
|
-
high: number
|
|
15
|
-
length: number
|
|
16
|
-
|
|
17
|
-
constructor(low: number, high: number) {
|
|
18
|
-
this.low = low
|
|
19
|
-
this.high = high
|
|
20
|
-
this.length = 1 + high - low
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
overlaps(range: DRange): boolean {
|
|
24
|
-
return !(this.high < range.low || this.low > range.high)
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
touches(range: DRange): boolean {
|
|
28
|
-
return !(this.high + 1 < range.low || this.low - 1 > range.high)
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
add(range: DRange): DRange | null {
|
|
32
|
-
if (this.touches(range)) {
|
|
33
|
-
return new DRange(Math.min(this.low, range.low), Math.max(this.high, range.high))
|
|
34
|
-
}
|
|
35
|
-
return null
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
subtract(range: DRange): DRange[] {
|
|
39
|
-
if (!this.overlaps(range)) {
|
|
40
|
-
return [this.clone()]
|
|
41
|
-
}
|
|
42
|
-
if (range.low <= this.low && range.high >= this.high) {
|
|
43
|
-
return []
|
|
44
|
-
}
|
|
45
|
-
if (range.low > this.low && range.high < this.high) {
|
|
46
|
-
return [new DRange(this.low, range.low - 1), new DRange(range.high + 1, this.high)]
|
|
47
|
-
}
|
|
48
|
-
if (range.low <= this.low) {
|
|
49
|
-
return [new DRange(range.high + 1, this.high)]
|
|
50
|
-
}
|
|
51
|
-
// if (range.high >= this.high)
|
|
52
|
-
return [new DRange(this.low, range.low - 1)]
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
toString(): string {
|
|
56
|
-
return this.low === this.high ? String(this.low) : `${this.low}-${this.high}`
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
clone(): DRange {
|
|
60
|
-
return new DRange(this.low, this.high)
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
class DiscontinuousRange {
|
|
65
|
-
ranges: DRange[] = []
|
|
66
|
-
length = 0
|
|
67
|
-
|
|
68
|
-
constructor(low?: number | DiscontinuousRange, high?: number) {
|
|
69
|
-
if (low !== undefined) {
|
|
70
|
-
this.add(low, high)
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
private _setLength(): void {
|
|
75
|
-
this.length = this.ranges.reduce((sum, range) => sum + range.length, 0)
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
add(low: number | DiscontinuousRange | DRange, high?: number): this {
|
|
79
|
-
const addRange = (range: DRange) => {
|
|
80
|
-
const newRanges: DRange[] = []
|
|
81
|
-
let i = 0
|
|
82
|
-
while (i < this.ranges.length && !range.touches(this.ranges[i])) {
|
|
83
|
-
newRanges.push(this.ranges[i].clone())
|
|
84
|
-
i++
|
|
85
|
-
}
|
|
86
|
-
while (i < this.ranges.length && range.touches(this.ranges[i])) {
|
|
87
|
-
range = range.add(this.ranges[i]) as DRange
|
|
88
|
-
i++
|
|
89
|
-
}
|
|
90
|
-
newRanges.push(range)
|
|
91
|
-
while (i < this.ranges.length) {
|
|
92
|
-
newRanges.push(this.ranges[i].clone())
|
|
93
|
-
i++
|
|
94
|
-
}
|
|
95
|
-
this.ranges = newRanges
|
|
96
|
-
this._setLength()
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
if (low instanceof DiscontinuousRange) {
|
|
100
|
-
low.ranges.forEach(addRange)
|
|
101
|
-
} else if (low instanceof DRange) {
|
|
102
|
-
addRange(low)
|
|
103
|
-
} else {
|
|
104
|
-
if (high === undefined) high = low
|
|
105
|
-
addRange(new DRange(low, high))
|
|
106
|
-
}
|
|
107
|
-
return this
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
subtract(low: number | DiscontinuousRange | DRange, high?: number): this {
|
|
111
|
-
const subtractRange = (range: DRange) => {
|
|
112
|
-
const newRanges: DRange[] = []
|
|
113
|
-
let i = 0
|
|
114
|
-
while (i < this.ranges.length && !range.overlaps(this.ranges[i])) {
|
|
115
|
-
newRanges.push(this.ranges[i].clone())
|
|
116
|
-
i++
|
|
117
|
-
}
|
|
118
|
-
while (i < this.ranges.length && range.overlaps(this.ranges[i])) {
|
|
119
|
-
newRanges.push(...this.ranges[i].subtract(range))
|
|
120
|
-
i++
|
|
121
|
-
}
|
|
122
|
-
while (i < this.ranges.length) {
|
|
123
|
-
newRanges.push(this.ranges[i].clone())
|
|
124
|
-
i++
|
|
125
|
-
}
|
|
126
|
-
this.ranges = newRanges
|
|
127
|
-
this._setLength()
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
if (low instanceof DiscontinuousRange) {
|
|
131
|
-
low.ranges.forEach(subtractRange)
|
|
132
|
-
} else if (low instanceof DRange) {
|
|
133
|
-
subtractRange(low)
|
|
134
|
-
} else {
|
|
135
|
-
if (high === undefined) high = low
|
|
136
|
-
subtractRange(new DRange(low, high))
|
|
137
|
-
}
|
|
138
|
-
return this
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
index(i: number): number | null {
|
|
142
|
-
let j = 0
|
|
143
|
-
while (j < this.ranges.length && this.ranges[j].length <= i) {
|
|
144
|
-
i -= this.ranges[j].length
|
|
145
|
-
j++
|
|
146
|
-
}
|
|
147
|
-
if (j >= this.ranges.length) {
|
|
148
|
-
return null
|
|
149
|
-
}
|
|
150
|
-
return this.ranges[j].low + i
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
toString(): string {
|
|
154
|
-
return `[ ${this.ranges.join(', ')} ]`
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
clone(): DiscontinuousRange {
|
|
158
|
-
return new DiscontinuousRange(this)
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
export interface RandExpOptions {
|
|
163
|
-
max?: number
|
|
164
|
-
defaultRange?: DiscontinuousRange
|
|
165
|
-
randInt?: (min: number, max: number) => number
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
export class RandExp {
|
|
169
|
-
max = 10 // Reduced from 100 to 10 for more reasonable string lengths
|
|
170
|
-
defaultRange: DiscontinuousRange = new DiscontinuousRange(32, 126)
|
|
171
|
-
randInt: (min: number, max: number) => number = (min, max) => {
|
|
172
|
-
return min + Math.floor(Math.random() * (max - min + 1))
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
private tokens: Token
|
|
176
|
-
private ignoreCase: boolean
|
|
177
|
-
private multiline: boolean
|
|
178
|
-
|
|
179
|
-
constructor(regexp: RegExp | string, flags?: string, options?: RandExpOptions) {
|
|
180
|
-
this.defaultRange = this.defaultRange.clone()
|
|
181
|
-
|
|
182
|
-
// Apply options if provided
|
|
183
|
-
if (options) {
|
|
184
|
-
if (typeof options.max === 'number') {
|
|
185
|
-
this.max = options.max
|
|
186
|
-
}
|
|
187
|
-
if (options.defaultRange instanceof DiscontinuousRange) {
|
|
188
|
-
this.defaultRange = options.defaultRange
|
|
189
|
-
}
|
|
190
|
-
if (typeof options.randInt === 'function') {
|
|
191
|
-
this.randInt = options.randInt
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
if (regexp instanceof RegExp) {
|
|
196
|
-
this.ignoreCase = regexp.ignoreCase
|
|
197
|
-
this.multiline = regexp.multiline
|
|
198
|
-
this._setDefaults(regexp)
|
|
199
|
-
regexp = regexp.source
|
|
200
|
-
} else if (typeof regexp === 'string') {
|
|
201
|
-
this.ignoreCase = flags?.includes('i') ?? false
|
|
202
|
-
this.multiline = flags?.includes('m') ?? false
|
|
203
|
-
} else {
|
|
204
|
-
throw new Error('Expected a regexp or string')
|
|
205
|
-
}
|
|
206
|
-
this.tokens = ret(regexp)
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
private _setDefaults(regexp: any): void {
|
|
210
|
-
if (typeof regexp.max === 'number') {
|
|
211
|
-
this.max = regexp.max
|
|
212
|
-
}
|
|
213
|
-
if (regexp.defaultRange instanceof DiscontinuousRange) {
|
|
214
|
-
this.defaultRange = regexp.defaultRange
|
|
215
|
-
}
|
|
216
|
-
if (typeof regexp.randInt === 'function') {
|
|
217
|
-
this.randInt = regexp.randInt
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
gen(): string {
|
|
222
|
-
return this._gen(this.tokens, [])
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
private _gen(token: Token, groups: (string | null)[]): string {
|
|
226
|
-
let stack, str, i, l
|
|
227
|
-
|
|
228
|
-
switch (token.type) {
|
|
229
|
-
case types.ROOT:
|
|
230
|
-
case types.GROUP:
|
|
231
|
-
if (token.followedBy || token.notFollowedBy) return ''
|
|
232
|
-
|
|
233
|
-
if (token.remember && token.groupNumber === undefined) {
|
|
234
|
-
token.groupNumber = groups.push(null) - 1
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
stack = token.options ? this._choice(token.options) : token.stack
|
|
238
|
-
str = ''
|
|
239
|
-
for (i = 0, l = stack.length; i < l; i++) {
|
|
240
|
-
str += this._gen(stack[i], groups)
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
if (token.remember) {
|
|
244
|
-
groups[token.groupNumber] = str
|
|
245
|
-
}
|
|
246
|
-
return str
|
|
247
|
-
|
|
248
|
-
case types.POSITION:
|
|
249
|
-
return ''
|
|
250
|
-
|
|
251
|
-
case types.SET: {
|
|
252
|
-
const set = this._processSet(token)
|
|
253
|
-
if (!set.length) return ''
|
|
254
|
-
return String.fromCharCode(this._choice(set) as number)
|
|
255
|
-
}
|
|
256
|
-
case types.REPETITION: {
|
|
257
|
-
const n = this.randInt(token.min, token.max === Infinity ? token.min + this.max : token.max)
|
|
258
|
-
str = ''
|
|
259
|
-
for (i = 0; i < n; i++) {
|
|
260
|
-
str += this._gen(token.value, groups)
|
|
261
|
-
}
|
|
262
|
-
return str
|
|
263
|
-
}
|
|
264
|
-
case types.REFERENCE:
|
|
265
|
-
return groups[token.value - 1] || ''
|
|
266
|
-
|
|
267
|
-
case types.CHAR: {
|
|
268
|
-
const code = this.ignoreCase && this._coin() ? RandExp._toCaseInverse(token.value) : token.value
|
|
269
|
-
return String.fromCharCode(code)
|
|
270
|
-
}
|
|
271
|
-
}
|
|
272
|
-
return ''
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
private _processSet(token: Token): DiscontinuousRange {
|
|
276
|
-
if (token.type === types.CHAR) {
|
|
277
|
-
return new DiscontinuousRange(token.value)
|
|
278
|
-
}
|
|
279
|
-
if (token.type === types.RANGE) {
|
|
280
|
-
return new DiscontinuousRange(token.from, token.to)
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
const dr = new DiscontinuousRange()
|
|
284
|
-
for (const char of token.set) {
|
|
285
|
-
const sub = this._processSet(char)
|
|
286
|
-
dr.add(sub)
|
|
287
|
-
if (this.ignoreCase) {
|
|
288
|
-
for (let j = 0; j < sub.length; j++) {
|
|
289
|
-
const charCode = sub.index(j) as number
|
|
290
|
-
const otherCase = RandExp._toCaseInverse(charCode)
|
|
291
|
-
if (charCode !== otherCase) {
|
|
292
|
-
dr.add(otherCase)
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
return token.not ? this.defaultRange.clone().subtract(dr) : dr
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
private static _toCaseInverse(code: number): number {
|
|
302
|
-
if (code >= 97 && code <= 122) return code - 32
|
|
303
|
-
if (code >= 65 && code <= 90) return code + 32
|
|
304
|
-
return code
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
private _coin(): boolean {
|
|
308
|
-
return this.randInt(0, 1) === 0
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
private _choice(choices: any[] | DiscontinuousRange): any {
|
|
312
|
-
if (choices instanceof DiscontinuousRange) {
|
|
313
|
-
return choices.index(this.randInt(0, choices.length - 1))
|
|
314
|
-
}
|
|
315
|
-
return choices[this.randInt(0, choices.length - 1)]
|
|
316
|
-
}
|
|
317
|
-
|
|
318
|
-
static randexp(regexp: RegExp | string, flags?: string, options?: RandExpOptions): string {
|
|
319
|
-
let randexpInstance
|
|
320
|
-
if ((regexp as any)._randexp === undefined) {
|
|
321
|
-
randexpInstance = new RandExp(regexp, flags, options)
|
|
322
|
-
;(regexp as any)._randexp = randexpInstance
|
|
323
|
-
} else {
|
|
324
|
-
randexpInstance = (regexp as any)._randexp
|
|
325
|
-
}
|
|
326
|
-
randexpInstance._setDefaults(regexp)
|
|
327
|
-
return randexpInstance.gen()
|
|
328
|
-
}
|
|
329
|
-
|
|
330
|
-
static sugar(): void {
|
|
331
|
-
;(RegExp.prototype as any).gen = function () {
|
|
332
|
-
return RandExp.randexp(this)
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
}
|
package/src/mocking/lib/ret.ts
DELETED
|
@@ -1,279 +0,0 @@
|
|
|
1
|
-
// Regular Expression Tokenizer
|
|
2
|
-
// https://github.com/fent/ret.js
|
|
3
|
-
|
|
4
|
-
export enum types {
|
|
5
|
-
ROOT = 0,
|
|
6
|
-
GROUP = 1,
|
|
7
|
-
POSITION = 2,
|
|
8
|
-
SET = 3,
|
|
9
|
-
RANGE = 4,
|
|
10
|
-
REPETITION = 5,
|
|
11
|
-
REFERENCE = 6,
|
|
12
|
-
CHAR = 7,
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export interface Token {
|
|
16
|
-
type: types
|
|
17
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
18
|
-
[key: string]: any
|
|
19
|
-
}
|
|
20
|
-
const wordBoundary = (): Token => ({ type: types.POSITION, value: 'b' })
|
|
21
|
-
const nonWordBoundary = (): Token => ({ type: types.POSITION, value: 'B' })
|
|
22
|
-
const begin = (): Token => ({ type: types.POSITION, value: '^' })
|
|
23
|
-
const end = (): Token => ({ type: types.POSITION, value: '$' })
|
|
24
|
-
|
|
25
|
-
const ints = (): Token[] => [{ type: types.RANGE, from: 48, to: 57 }]
|
|
26
|
-
const words = (): Token[] => [
|
|
27
|
-
{ type: types.CHAR, value: 95 },
|
|
28
|
-
{ type: types.RANGE, from: 97, to: 122 },
|
|
29
|
-
{ type: types.RANGE, from: 65, to: 90 },
|
|
30
|
-
...ints(),
|
|
31
|
-
]
|
|
32
|
-
const whitespace = (): Token[] => [
|
|
33
|
-
{ type: types.CHAR, value: 9 },
|
|
34
|
-
{ type: types.CHAR, value: 10 },
|
|
35
|
-
{ type: types.CHAR, value: 11 },
|
|
36
|
-
{ type: types.CHAR, value: 12 },
|
|
37
|
-
{ type: types.CHAR, value: 13 },
|
|
38
|
-
{ type: types.CHAR, value: 32 },
|
|
39
|
-
{ type: types.CHAR, value: 160 },
|
|
40
|
-
{ type: types.CHAR, value: 5760 },
|
|
41
|
-
{ type: types.CHAR, value: 6158 },
|
|
42
|
-
{ type: types.CHAR, value: 8192 },
|
|
43
|
-
{ type: types.CHAR, value: 8193 },
|
|
44
|
-
{ type: types.CHAR, value: 8194 },
|
|
45
|
-
{ type: types.CHAR, value: 8195 },
|
|
46
|
-
{ type: types.CHAR, value: 8196 },
|
|
47
|
-
{ type: types.CHAR, value: 8197 },
|
|
48
|
-
{ type: types.CHAR, value: 8198 },
|
|
49
|
-
{ type: types.CHAR, value: 8199 },
|
|
50
|
-
{ type: types.CHAR, value: 8200 },
|
|
51
|
-
{ type: types.CHAR, value: 8201 },
|
|
52
|
-
{ type: types.CHAR, value: 8202 },
|
|
53
|
-
{ type: types.CHAR, value: 8232 },
|
|
54
|
-
{ type: types.CHAR, value: 8233 },
|
|
55
|
-
{ type: types.CHAR, value: 8239 },
|
|
56
|
-
{ type: types.CHAR, value: 8287 },
|
|
57
|
-
{ type: types.CHAR, value: 12288 },
|
|
58
|
-
{ type: types.CHAR, value: 65279 },
|
|
59
|
-
]
|
|
60
|
-
const notanychar = (): Token[] => [
|
|
61
|
-
{ type: types.CHAR, value: 10 },
|
|
62
|
-
{ type: types.CHAR, value: 13 },
|
|
63
|
-
{ type: types.CHAR, value: 8232 },
|
|
64
|
-
{ type: types.CHAR, value: 8233 },
|
|
65
|
-
]
|
|
66
|
-
|
|
67
|
-
const words_ = (): Token => ({ type: types.SET, set: words(), not: false })
|
|
68
|
-
const notWords = (): Token => ({ type: types.SET, set: words(), not: true })
|
|
69
|
-
const ints_ = (): Token => ({ type: types.SET, set: ints(), not: false })
|
|
70
|
-
const notInts = (): Token => ({ type: types.SET, set: ints(), not: true })
|
|
71
|
-
const whitespace_ = (): Token => ({ type: types.SET, set: whitespace(), not: false })
|
|
72
|
-
const notWhitespace = (): Token => ({ type: types.SET, set: whitespace(), not: true })
|
|
73
|
-
const anyChar = (): Token => ({ type: types.SET, set: notanychar(), not: true })
|
|
74
|
-
|
|
75
|
-
const specialChars: Record<string, number> = {
|
|
76
|
-
'0': 0,
|
|
77
|
-
't': 9,
|
|
78
|
-
'n': 10,
|
|
79
|
-
'v': 11,
|
|
80
|
-
'f': 12,
|
|
81
|
-
'r': 13,
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
const strToChars = (str: string): string => {
|
|
85
|
-
const chars = /(\[\\b\])|(\\)?\\(?:u([A-F0-9]{4})|x([A-F0-9]{2})|(0?[0-7]{2})|c([@A-Z[\\\]^?])|([0tnvfr]))/g
|
|
86
|
-
return str.replace(chars, (match, b, s, uh, xh, o, c, sp) => {
|
|
87
|
-
if (s) return match
|
|
88
|
-
const code = b
|
|
89
|
-
? 8
|
|
90
|
-
: uh
|
|
91
|
-
? parseInt(uh, 16)
|
|
92
|
-
: xh
|
|
93
|
-
? parseInt(xh, 16)
|
|
94
|
-
: o
|
|
95
|
-
? parseInt(o, 8)
|
|
96
|
-
: c
|
|
97
|
-
? '@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^ ?'.indexOf(c)
|
|
98
|
-
: specialChars[sp]
|
|
99
|
-
let ch = String.fromCharCode(code)
|
|
100
|
-
if (/[[{}^$.|?*+()]/.test(ch)) {
|
|
101
|
-
ch = `\\${ch}`
|
|
102
|
-
}
|
|
103
|
-
return ch
|
|
104
|
-
})
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
const tokenizeClass = (str: string, regexpStr: string): [Token[], number] => {
|
|
108
|
-
const tokens: Token[] = []
|
|
109
|
-
const classTokens = /\\(?:(w)|(d)|(s)|(W)|(D)|(S))|((?:(?:\\)(.)|([^\]\\]))-(?:\\)?([^\]]))|(\])|(?:\\)?(.)/g
|
|
110
|
-
let match
|
|
111
|
-
let char
|
|
112
|
-
while ((match = classTokens.exec(str)) !== null) {
|
|
113
|
-
if (match[1]) {
|
|
114
|
-
tokens.push(words_())
|
|
115
|
-
} else if (match[2]) {
|
|
116
|
-
tokens.push(ints_())
|
|
117
|
-
} else if (match[3]) {
|
|
118
|
-
tokens.push(whitespace_())
|
|
119
|
-
} else if (match[4]) {
|
|
120
|
-
tokens.push(notWords())
|
|
121
|
-
} else if (match[5]) {
|
|
122
|
-
tokens.push(notInts())
|
|
123
|
-
} else if (match[6]) {
|
|
124
|
-
tokens.push(notWhitespace())
|
|
125
|
-
} else if (match[7]) {
|
|
126
|
-
tokens.push({
|
|
127
|
-
type: types.RANGE,
|
|
128
|
-
from: (match[8] || match[9]).charCodeAt(0),
|
|
129
|
-
to: match[10].charCodeAt(0),
|
|
130
|
-
})
|
|
131
|
-
} else if ((char = match[12])) {
|
|
132
|
-
tokens.push({ type: types.CHAR, value: char.charCodeAt(0) })
|
|
133
|
-
} else {
|
|
134
|
-
return [tokens, classTokens.lastIndex]
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
throw new SyntaxError(`Invalid regular expression: /${regexpStr}/: Unterminated character class`)
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
const error = (regexpStr: string, msg: string): never => {
|
|
141
|
-
throw new SyntaxError(`Invalid regular expression: /${regexpStr}/: ${msg}`)
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
export const ret = (regexpStr: string): Token => {
|
|
145
|
-
let i = 0
|
|
146
|
-
const root: Token = { type: types.ROOT, stack: [] }
|
|
147
|
-
let p: Token = root
|
|
148
|
-
let stack: Token[] = root.stack
|
|
149
|
-
const groupStack: Token[] = []
|
|
150
|
-
|
|
151
|
-
const repeatErr = (i: number) => error(regexpStr, `Nothing to repeat at column ${i - 1}`)
|
|
152
|
-
const chars = strToChars(regexpStr)
|
|
153
|
-
|
|
154
|
-
while (i < chars.length) {
|
|
155
|
-
let c = chars[i++]
|
|
156
|
-
switch (c) {
|
|
157
|
-
case '\\':
|
|
158
|
-
c = chars[i++]
|
|
159
|
-
switch (c) {
|
|
160
|
-
case 'b':
|
|
161
|
-
stack.push(wordBoundary())
|
|
162
|
-
break
|
|
163
|
-
case 'B':
|
|
164
|
-
stack.push(nonWordBoundary())
|
|
165
|
-
break
|
|
166
|
-
case 'w':
|
|
167
|
-
stack.push(words_())
|
|
168
|
-
break
|
|
169
|
-
case 'W':
|
|
170
|
-
stack.push(notWords())
|
|
171
|
-
break
|
|
172
|
-
case 'd':
|
|
173
|
-
stack.push(ints_())
|
|
174
|
-
break
|
|
175
|
-
case 'D':
|
|
176
|
-
stack.push(notInts())
|
|
177
|
-
break
|
|
178
|
-
case 's':
|
|
179
|
-
stack.push(whitespace_())
|
|
180
|
-
break
|
|
181
|
-
case 'S':
|
|
182
|
-
stack.push(notWhitespace())
|
|
183
|
-
break
|
|
184
|
-
default:
|
|
185
|
-
if (/\d/.test(c)) {
|
|
186
|
-
stack.push({ type: types.REFERENCE, value: parseInt(c, 10) })
|
|
187
|
-
} else {
|
|
188
|
-
stack.push({ type: types.CHAR, value: c.charCodeAt(0) })
|
|
189
|
-
}
|
|
190
|
-
}
|
|
191
|
-
break
|
|
192
|
-
case '^':
|
|
193
|
-
stack.push(begin())
|
|
194
|
-
break
|
|
195
|
-
case '$':
|
|
196
|
-
stack.push(end())
|
|
197
|
-
break
|
|
198
|
-
case '[': {
|
|
199
|
-
let not = false
|
|
200
|
-
if (chars[i] === '^') {
|
|
201
|
-
not = true
|
|
202
|
-
i++
|
|
203
|
-
}
|
|
204
|
-
const [set, lastIndex] = tokenizeClass(chars.slice(i), regexpStr)
|
|
205
|
-
i += lastIndex
|
|
206
|
-
stack.push({ type: types.SET, set, not })
|
|
207
|
-
break
|
|
208
|
-
}
|
|
209
|
-
case '.':
|
|
210
|
-
stack.push(anyChar())
|
|
211
|
-
break
|
|
212
|
-
case '(': {
|
|
213
|
-
const group: Token = { type: types.GROUP, stack: [], remember: true }
|
|
214
|
-
if (chars[i] === '?') {
|
|
215
|
-
c = chars[i + 1]
|
|
216
|
-
i += 2
|
|
217
|
-
if (c === '=') {
|
|
218
|
-
group.followedBy = true
|
|
219
|
-
} else if (c === '!') {
|
|
220
|
-
group.notFollowedBy = true
|
|
221
|
-
} else if (c !== ':') {
|
|
222
|
-
error(regexpStr, `Invalid group, character '${c}' after '?' at column ${i - 1}`)
|
|
223
|
-
}
|
|
224
|
-
group.remember = false
|
|
225
|
-
}
|
|
226
|
-
stack.push(group)
|
|
227
|
-
groupStack.push(p)
|
|
228
|
-
p = group
|
|
229
|
-
stack = group.stack
|
|
230
|
-
break
|
|
231
|
-
}
|
|
232
|
-
case ')':
|
|
233
|
-
if (groupStack.length === 0) error(regexpStr, `Unmatched ) at column ${i - 1}`)
|
|
234
|
-
p = groupStack.pop() as Token
|
|
235
|
-
stack = p.options ? p.options[p.options.length - 1] : p.stack
|
|
236
|
-
break
|
|
237
|
-
case '|':
|
|
238
|
-
if (!p.options) {
|
|
239
|
-
p.options = [p.stack]
|
|
240
|
-
delete p.stack
|
|
241
|
-
}
|
|
242
|
-
{
|
|
243
|
-
const newStack: Token[] = []
|
|
244
|
-
p.options.push(newStack)
|
|
245
|
-
stack = newStack
|
|
246
|
-
}
|
|
247
|
-
break
|
|
248
|
-
case '{': {
|
|
249
|
-
const repetition = /^(\d+)(,(\d+)?)?\}/.exec(chars.slice(i))
|
|
250
|
-
if (repetition) {
|
|
251
|
-
if (stack.length === 0) repeatErr(i)
|
|
252
|
-
const min = parseInt(repetition[1], 10)
|
|
253
|
-
const max = repetition[2] ? (repetition[3] ? parseInt(repetition[3], 10) : Infinity) : min
|
|
254
|
-
i += repetition[0].length
|
|
255
|
-
stack.push({ type: types.REPETITION, min, max, value: stack.pop() })
|
|
256
|
-
} else {
|
|
257
|
-
stack.push({ type: types.CHAR, value: 123 })
|
|
258
|
-
}
|
|
259
|
-
break
|
|
260
|
-
}
|
|
261
|
-
case '?':
|
|
262
|
-
if (stack.length === 0) repeatErr(i)
|
|
263
|
-
stack.push({ type: types.REPETITION, min: 0, max: 1, value: stack.pop() })
|
|
264
|
-
break
|
|
265
|
-
case '+':
|
|
266
|
-
if (stack.length === 0) repeatErr(i)
|
|
267
|
-
stack.push({ type: types.REPETITION, min: 1, max: Infinity, value: stack.pop() })
|
|
268
|
-
break
|
|
269
|
-
case '*':
|
|
270
|
-
if (stack.length === 0) repeatErr(i)
|
|
271
|
-
stack.push({ type: types.REPETITION, min: 0, max: Infinity, value: stack.pop() })
|
|
272
|
-
break
|
|
273
|
-
default:
|
|
274
|
-
stack.push({ type: types.CHAR, value: c.charCodeAt(0) })
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
if (groupStack.length !== 0) error(regexpStr, 'Unterminated group')
|
|
278
|
-
return root
|
|
279
|
-
}
|