@opra/common 0.33.13 → 1.0.0-alpha.2
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/browser.js +4657 -3899
- package/cjs/document/api-document.js +112 -23
- package/cjs/document/common/api-base.js +27 -0
- package/cjs/document/common/data-type-map.js +66 -0
- package/cjs/document/common/document-element.js +31 -0
- package/cjs/document/common/document-init-context.js +69 -0
- package/cjs/document/common/document-node.js +124 -0
- package/cjs/document/common/opra-document-error.js +15 -0
- package/cjs/document/common/value.js +33 -0
- package/cjs/document/constants.js +13 -7
- package/cjs/document/data-type/api-field.js +64 -0
- package/cjs/document/data-type/complex-type-base.js +183 -0
- package/cjs/document/data-type/complex-type.js +89 -13
- package/cjs/document/data-type/data-type.js +32 -25
- package/cjs/document/data-type/enum-type.js +92 -36
- package/cjs/document/data-type/{builtin → extended-types}/base64.type.js +11 -2
- package/cjs/document/data-type/extended-types/date-string.type.js +44 -0
- package/cjs/document/data-type/extended-types/date-time-string.type.js +47 -0
- package/cjs/document/data-type/extended-types/date-time.type.js +58 -0
- package/cjs/document/data-type/extended-types/date.type.js +55 -0
- package/cjs/document/data-type/extended-types/email.type.js +80 -0
- package/cjs/document/data-type/extended-types/field-path.type.js +53 -0
- package/cjs/document/data-type/extended-types/filter.type.js +74 -0
- package/cjs/document/data-type/extended-types/index.js +16 -0
- package/cjs/document/data-type/{builtin → extended-types}/object-id.type.js +11 -2
- package/cjs/document/data-type/extended-types/operation-result.type.js +56 -0
- package/cjs/document/data-type/extended-types/time.type.js +47 -0
- package/cjs/document/data-type/{builtin → extended-types}/url.type.js +12 -3
- package/cjs/document/data-type/extended-types/uuid.type.js +30 -0
- package/cjs/document/data-type/mapped-type.js +77 -61
- package/cjs/document/data-type/mixin-type.js +78 -23
- package/cjs/document/data-type/omit-type.js +11 -0
- package/cjs/document/data-type/partial-type.js +13 -0
- package/cjs/document/data-type/pick-type.js +11 -0
- package/cjs/document/data-type/primitive-types/any.type.js +25 -0
- package/cjs/document/data-type/primitive-types/bigint.type.js +30 -0
- package/cjs/document/data-type/{builtin → primitive-types}/boolean.type.js +11 -2
- package/cjs/document/data-type/primitive-types/index.js +11 -0
- package/cjs/document/data-type/primitive-types/integer.type.js +30 -0
- package/cjs/document/data-type/{builtin → primitive-types}/null.type.js +11 -2
- package/cjs/document/data-type/primitive-types/number.type.js +40 -0
- package/cjs/document/data-type/{builtin → primitive-types}/object.type.js +7 -1
- package/cjs/document/data-type/primitive-types/string.type.js +58 -0
- package/cjs/document/data-type/required-type.js +13 -0
- package/cjs/document/data-type/simple-type.js +93 -14
- package/cjs/document/data-type/utils/create-mapped-class.js +54 -0
- package/cjs/document/data-type/utils/get-is-inherited-predicate-fn.js +15 -0
- package/cjs/document/{data-type/field-decorator.js → decorators/api-field-decorator.js} +7 -7
- package/cjs/document/{data-type → decorators}/complex-type.decorator.js +11 -1
- package/cjs/document/decorators/http-controller.decorator.js +117 -0
- package/cjs/document/decorators/http-operation-entity.decorator.js +462 -0
- package/cjs/document/decorators/http-operation.decorator.js +183 -0
- package/cjs/document/decorators/simple-type.decorator.js +67 -0
- package/cjs/document/factory/api-document.factory.js +178 -0
- package/cjs/document/factory/data-type.factory.js +498 -0
- package/cjs/document/factory/http-api.factory.js +315 -0
- package/cjs/document/http/http-api.js +40 -0
- package/cjs/document/http/http-controller.js +145 -0
- package/cjs/document/http/http-media-type.js +68 -0
- package/cjs/document/http/http-multipart-field.js +33 -0
- package/cjs/document/http/http-operation-response.js +42 -0
- package/cjs/document/http/http-operation.js +93 -0
- package/cjs/document/http/http-parameter.js +44 -0
- package/cjs/document/http/http-request-body.js +25 -0
- package/cjs/document/http/http-status-range.js +41 -0
- package/cjs/document/index.js +35 -22
- package/cjs/document/utils/inspect.util.js +3 -3
- package/cjs/document/utils/parse-regexp.util.js +22 -0
- package/cjs/exception/http-errors/bad-request.error.js +3 -3
- package/cjs/exception/http-errors/conflict.error.js +3 -3
- package/cjs/exception/http-errors/failed-dependency.error.js +3 -3
- package/cjs/exception/http-errors/forbidden.error.js +3 -3
- package/cjs/exception/http-errors/internal-server.error.js +3 -3
- package/cjs/exception/http-errors/method-not-allowed.error.js +3 -3
- package/cjs/exception/http-errors/not-acceptable.error.js +3 -3
- package/cjs/exception/http-errors/not-found.error.js +3 -3
- package/cjs/exception/{resource-errors → http-errors}/permission.error.js +2 -2
- package/cjs/exception/{resource-errors → http-errors}/resource-conflict.error.js +3 -3
- package/cjs/exception/{resource-errors → http-errors}/resource-not.available.error.js +5 -5
- package/cjs/exception/http-errors/unauthorized.error.js +3 -3
- package/cjs/exception/http-errors/unprocessable-entity.error.js +3 -3
- package/cjs/exception/index.js +4 -4
- package/cjs/exception/issue-severity.enum.js +1 -1
- package/cjs/exception/opra-exception.js +5 -16
- package/cjs/exception/opra-http-error.js +25 -0
- package/cjs/filter/antlr/OpraFilterLexer.js +259 -193
- package/cjs/filter/antlr/OpraFilterParser.js +137 -84
- package/cjs/filter/ast/expressions/arithmetic-expression.js +1 -1
- package/cjs/filter/ast/expressions/logical-expression.js +1 -3
- package/cjs/filter/ast/terms/number-literal.js +1 -3
- package/cjs/filter/ast/terms/time-literal.js +6 -4
- package/cjs/filter/build.js +1 -3
- package/cjs/filter/filter-rules.js +93 -0
- package/cjs/filter/filter-tree-visitor.js +4 -7
- package/cjs/filter/parse.js +2 -2
- package/cjs/filter/utils.js +1 -3
- package/cjs/helpers/function-utils.js +2 -11
- package/cjs/helpers/get-stack-filename.js +28 -4
- package/cjs/helpers/index.js +2 -2
- package/cjs/helpers/mixin-utils.js +5 -8
- package/cjs/helpers/monkey-patches.js +12 -0
- package/cjs/helpers/object-utils.js +4 -5
- package/cjs/helpers/parse-fields-projection.js +67 -0
- package/cjs/helpers/responsive-map.js +93 -117
- package/cjs/helpers/type-guards.js +22 -29
- package/cjs/http/enums/http-status-messages.js +63 -63
- package/cjs/http/enums/mime-types.enum.js +17 -0
- package/cjs/http/index.js +1 -2
- package/cjs/i18n/i18n.js +9 -5
- package/cjs/i18n/translate.js +2 -2
- package/cjs/index.js +1 -1
- package/cjs/schema/http/http-controller.interface.js +11 -0
- package/cjs/schema/http/http-operation.interface.js +7 -0
- package/cjs/schema/index.js +27 -2
- package/cjs/schema/type-guards.js +8 -30
- package/cjs/schema/value.interface.js +2 -0
- package/esm/document/api-document.js +112 -23
- package/esm/document/common/api-base.js +23 -0
- package/esm/document/common/data-type-map.js +62 -0
- package/esm/document/common/document-element.js +28 -0
- package/esm/document/common/document-init-context.js +65 -0
- package/esm/document/common/document-node.js +120 -0
- package/esm/document/common/opra-document-error.js +11 -0
- package/esm/document/common/value.js +30 -0
- package/esm/document/constants.js +12 -6
- package/esm/document/data-type/api-field.js +61 -0
- package/esm/document/data-type/complex-type-base.js +180 -0
- package/esm/document/data-type/complex-type.js +88 -11
- package/esm/document/data-type/data-type.js +32 -24
- package/esm/document/data-type/enum-type.js +93 -36
- package/esm/document/data-type/extended-types/base64.type.js +22 -0
- package/esm/document/data-type/extended-types/date-string.type.js +41 -0
- package/esm/document/data-type/extended-types/date-time-string.type.js +44 -0
- package/esm/document/data-type/extended-types/date-time.type.js +55 -0
- package/esm/document/data-type/extended-types/date.type.js +52 -0
- package/esm/document/data-type/extended-types/email.type.js +77 -0
- package/esm/document/data-type/extended-types/field-path.type.js +50 -0
- package/esm/document/data-type/extended-types/filter.type.js +71 -0
- package/esm/document/data-type/extended-types/index.js +13 -0
- package/esm/document/data-type/extended-types/object-id.type.js +22 -0
- package/esm/document/{resource/types → data-type/extended-types}/operation-result.type.js +25 -14
- package/esm/document/data-type/extended-types/time.type.js +44 -0
- package/esm/document/data-type/extended-types/url.type.js +22 -0
- package/esm/document/data-type/extended-types/uuid.type.js +27 -0
- package/esm/document/data-type/mapped-type.js +76 -56
- package/esm/document/data-type/mixin-type.js +80 -24
- package/esm/document/data-type/omit-type.js +7 -0
- package/esm/document/data-type/partial-type.js +9 -0
- package/esm/document/data-type/pick-type.js +7 -0
- package/esm/document/data-type/primitive-types/any.type.js +22 -0
- package/esm/document/data-type/primitive-types/bigint.type.js +27 -0
- package/esm/document/data-type/primitive-types/boolean.type.js +22 -0
- package/esm/document/data-type/primitive-types/index.js +8 -0
- package/esm/document/data-type/primitive-types/integer.type.js +27 -0
- package/esm/document/data-type/{builtin → primitive-types}/null.type.js +11 -2
- package/esm/document/data-type/primitive-types/number.type.js +37 -0
- package/esm/document/data-type/{builtin → primitive-types}/object.type.js +7 -1
- package/esm/document/data-type/primitive-types/string.type.js +55 -0
- package/esm/document/data-type/required-type.js +9 -0
- package/esm/document/data-type/simple-type.js +92 -12
- package/esm/document/data-type/utils/create-mapped-class.js +50 -0
- package/esm/document/data-type/utils/get-is-inherited-predicate-fn.js +11 -0
- package/esm/document/{data-type/field-decorator.js → decorators/api-field-decorator.js} +5 -5
- package/esm/document/{data-type → decorators}/complex-type.decorator.js +12 -2
- package/esm/document/decorators/http-controller.decorator.js +112 -0
- package/esm/document/decorators/http-operation-entity.decorator.js +460 -0
- package/esm/document/decorators/http-operation.decorator.js +178 -0
- package/esm/document/decorators/simple-type.decorator.js +61 -0
- package/esm/document/factory/api-document.factory.js +174 -0
- package/esm/document/factory/data-type.factory.js +494 -0
- package/esm/document/factory/http-api.factory.js +311 -0
- package/esm/document/http/http-api.js +36 -0
- package/esm/document/http/http-controller.js +142 -0
- package/esm/document/http/http-media-type.js +65 -0
- package/esm/document/http/http-multipart-field.js +29 -0
- package/esm/document/http/http-operation-response.js +38 -0
- package/esm/document/http/http-operation.js +90 -0
- package/esm/document/http/http-parameter.js +41 -0
- package/esm/document/http/http-request-body.js +21 -0
- package/esm/document/http/http-status-range.js +37 -0
- package/esm/document/index.js +34 -22
- package/esm/document/utils/inspect.util.js +3 -3
- package/esm/document/utils/parse-regexp.util.js +18 -0
- package/esm/exception/http-errors/bad-request.error.js +3 -3
- package/esm/exception/http-errors/conflict.error.js +3 -3
- package/esm/exception/http-errors/failed-dependency.error.js +3 -3
- package/esm/exception/http-errors/forbidden.error.js +3 -3
- package/esm/exception/http-errors/internal-server.error.js +3 -3
- package/esm/exception/http-errors/method-not-allowed.error.js +3 -3
- package/esm/exception/http-errors/not-acceptable.error.js +3 -3
- package/esm/exception/http-errors/not-found.error.js +3 -3
- package/esm/exception/{resource-errors → http-errors}/permission.error.js +2 -2
- package/esm/exception/{resource-errors → http-errors}/resource-conflict.error.js +3 -3
- package/esm/exception/{resource-errors → http-errors}/resource-not.available.error.js +5 -5
- package/esm/exception/http-errors/unauthorized.error.js +3 -3
- package/esm/exception/http-errors/unprocessable-entity.error.js +3 -3
- package/esm/exception/index.js +4 -4
- package/esm/exception/issue-severity.enum.js +1 -1
- package/esm/exception/opra-exception.js +5 -16
- package/esm/exception/opra-http-error.js +21 -0
- package/esm/filter/antlr/OpraFilterLexer.js +260 -194
- package/esm/filter/antlr/OpraFilterListener.js +1 -1
- package/esm/filter/antlr/OpraFilterParser.js +138 -85
- package/esm/filter/ast/expressions/arithmetic-expression.js +1 -1
- package/esm/filter/ast/expressions/logical-expression.js +1 -3
- package/esm/filter/ast/terms/number-literal.js +1 -3
- package/esm/filter/ast/terms/time-literal.js +6 -4
- package/esm/filter/build.js +2 -4
- package/esm/filter/filter-rules.js +89 -0
- package/esm/filter/filter-tree-visitor.js +4 -6
- package/esm/filter/parse.js +2 -2
- package/esm/filter/utils.js +1 -3
- package/esm/helpers/function-utils.js +1 -9
- package/esm/helpers/get-stack-filename.js +26 -3
- package/esm/helpers/index.js +2 -2
- package/esm/helpers/mixin-utils.js +5 -8
- package/esm/helpers/monkey-patches.js +12 -0
- package/esm/helpers/object-utils.js +4 -5
- package/esm/helpers/parse-fields-projection.js +61 -0
- package/esm/helpers/responsive-map.js +93 -117
- package/esm/helpers/type-guards.js +22 -29
- package/esm/http/enums/http-status-messages.js +63 -63
- package/esm/http/enums/mime-types.enum.js +14 -0
- package/esm/http/index.js +1 -2
- package/esm/i18n/i18n.js +9 -5
- package/esm/i18n/translate.js +2 -2
- package/esm/index.js +1 -1
- package/esm/schema/http/http-controller.interface.js +8 -0
- package/esm/schema/http/http-operation.interface.js +4 -0
- package/esm/schema/index.js +27 -2
- package/esm/schema/type-guards.js +6 -24
- package/esm/schema/value.interface.js +1 -0
- package/package.json +14 -13
- package/types/document/api-document.d.ts +31 -51
- package/types/document/common/api-base.d.ts +17 -0
- package/types/document/common/data-type-map.d.ts +23 -0
- package/types/document/common/document-element.d.ts +23 -0
- package/types/document/common/document-init-context.d.ts +17 -0
- package/types/document/common/document-node.d.ts +65 -0
- package/types/document/common/opra-document-error.d.ts +12 -0
- package/types/document/common/value.d.ts +48 -0
- package/types/document/constants.d.ts +9 -3
- package/types/document/data-type/api-field.d.ts +65 -0
- package/types/document/data-type/complex-type-base.d.ts +80 -0
- package/types/document/data-type/complex-type.d.ts +61 -35
- package/types/document/data-type/data-type.d.ts +49 -46
- package/types/document/data-type/enum-type.d.ts +59 -23
- package/types/document/data-type/extended-types/base64.type.d.ts +7 -0
- package/types/document/data-type/extended-types/date-string.type.d.ts +9 -0
- package/types/document/data-type/extended-types/date-time-string.type.d.ts +9 -0
- package/types/document/data-type/extended-types/date-time.type.d.ts +9 -0
- package/types/document/data-type/extended-types/date.type.d.ts +9 -0
- package/types/document/data-type/extended-types/email.type.d.ts +16 -0
- package/types/document/data-type/extended-types/field-path.type.d.ts +15 -0
- package/types/document/data-type/extended-types/filter.type.d.ts +16 -0
- package/types/document/data-type/extended-types/index.d.ts +13 -0
- package/types/document/data-type/extended-types/object-id.type.d.ts +7 -0
- package/types/document/{resource/types → data-type/extended-types}/operation-result.type.d.ts +7 -6
- package/types/document/data-type/extended-types/time.type.d.ts +9 -0
- package/types/document/data-type/extended-types/url.type.d.ts +7 -0
- package/types/document/data-type/extended-types/uuid.type.d.ts +8 -0
- package/types/document/data-type/mapped-type.d.ts +55 -44
- package/types/document/data-type/mixin-type.d.ts +65 -26
- package/types/document/data-type/omit-type.d.ts +15 -0
- package/types/document/data-type/partial-type.d.ts +28 -0
- package/types/document/data-type/pick-type.d.ts +16 -0
- package/types/document/data-type/primitive-types/any.type.d.ts +7 -0
- package/types/document/data-type/primitive-types/bigint.type.d.ts +8 -0
- package/types/document/data-type/primitive-types/boolean.type.d.ts +7 -0
- package/types/document/data-type/primitive-types/index.d.ts +8 -0
- package/types/document/data-type/primitive-types/integer.type.d.ts +8 -0
- package/types/document/data-type/primitive-types/null.type.d.ts +7 -0
- package/types/document/data-type/primitive-types/number.type.d.ts +9 -0
- package/types/document/data-type/primitive-types/object.type.d.ts +3 -0
- package/types/document/data-type/primitive-types/string.type.d.ts +11 -0
- package/types/document/data-type/required-type.d.ts +22 -0
- package/types/document/data-type/simple-type.d.ts +63 -24
- package/types/document/data-type/utils/create-mapped-class.d.ts +3 -0
- package/types/document/data-type/utils/get-is-inherited-predicate-fn.d.ts +1 -0
- package/types/document/decorators/api-field-decorator.d.ts +5 -0
- package/types/document/decorators/complex-type.decorator.d.ts +2 -0
- package/types/document/decorators/http-controller.decorator.d.ts +14 -0
- package/types/document/decorators/http-operation-entity.decorator.d.ts +100 -0
- package/types/document/decorators/http-operation.decorator.d.ts +30 -0
- package/types/document/decorators/simple-type.decorator.d.ts +20 -0
- package/types/document/factory/api-document.factory.d.ts +35 -0
- package/types/document/factory/data-type.factory.d.ts +103 -0
- package/types/document/factory/http-api.factory.d.ts +60 -0
- package/types/document/http/http-api.d.ts +23 -0
- package/types/document/http/http-controller.d.ts +92 -0
- package/types/document/http/http-media-type.d.ts +59 -0
- package/types/document/http/http-multipart-field.d.ts +26 -0
- package/types/document/http/http-operation-response.d.ts +36 -0
- package/types/document/http/http-operation.d.ts +84 -0
- package/types/document/http/http-parameter.d.ts +50 -0
- package/types/document/http/http-request-body.d.ts +31 -0
- package/types/document/http/http-status-range.d.ts +14 -0
- package/types/document/index.d.ts +33 -22
- package/types/document/utils/parse-regexp.util.d.ts +4 -0
- package/types/exception/http-errors/bad-request.error.d.ts +2 -2
- package/types/exception/http-errors/conflict.error.d.ts +2 -2
- package/types/exception/http-errors/failed-dependency.error.d.ts +2 -2
- package/types/exception/http-errors/forbidden.error.d.ts +2 -2
- package/types/exception/http-errors/internal-server.error.d.ts +2 -2
- package/types/exception/http-errors/method-not-allowed.error.d.ts +2 -2
- package/types/exception/http-errors/not-acceptable.error.d.ts +2 -2
- package/types/exception/http-errors/not-found.error.d.ts +2 -2
- package/types/exception/{resource-errors → http-errors}/permission.error.d.ts +1 -1
- package/types/exception/http-errors/resource-conflict.error.d.ts +5 -0
- package/types/exception/{resource-errors → http-errors}/resource-not.available.error.d.ts +2 -2
- package/types/exception/http-errors/unauthorized.error.d.ts +2 -2
- package/types/exception/http-errors/unprocessable-entity.error.d.ts +2 -2
- package/types/exception/index.d.ts +4 -4
- package/types/exception/opra-exception.d.ts +1 -5
- package/types/exception/opra-http-error.d.ts +13 -0
- package/types/filter/antlr/OpraFilterLexer.d.ts +1 -1
- package/types/filter/antlr/OpraFilterListener.d.ts +2 -2
- package/types/filter/antlr/OpraFilterParser.d.ts +2 -2
- package/types/filter/antlr/OpraFilterVisitor.d.ts +1 -1
- package/types/filter/ast/terms/qualified-identifier.d.ts +1 -1
- package/types/filter/filter-rules.d.ts +24 -0
- package/types/filter/filter-tree-visitor.d.ts +1 -3
- package/types/helpers/function-utils.d.ts +2 -4
- package/types/helpers/get-stack-filename.d.ts +1 -0
- package/types/helpers/index.d.ts +2 -2
- package/types/helpers/monkey-patches.d.ts +0 -0
- package/types/helpers/parse-fields-projection.d.ts +11 -0
- package/types/helpers/responsive-map.d.ts +8 -4
- package/types/helpers/type-guards.d.ts +2 -2
- package/types/http/enums/http-status-messages.d.ts +63 -63
- package/types/http/enums/mime-types.enum.d.ts +12 -0
- package/types/http/index.d.ts +1 -2
- package/types/i18n/i18n.d.ts +2 -1
- package/types/schema/data-type/complex-type.interface.d.ts +3 -3
- package/types/schema/data-type/data-type.interface.d.ts +6 -0
- package/types/schema/data-type/enum-type.interface.d.ts +3 -4
- package/types/schema/data-type/field.interface.d.ts +2 -10
- package/types/schema/data-type/mapped-type.interface.d.ts +7 -3
- package/types/schema/data-type/mixin-type.interface.d.ts +2 -2
- package/types/schema/data-type/simple-type.interface.d.ts +35 -7
- package/types/schema/data-type-container.interface.d.ts +7 -0
- package/types/schema/document.interface.d.ts +55 -0
- package/types/schema/http/http-controller.interface.d.ts +24 -0
- package/types/schema/http/http-media-type.interface.d.ts +65 -0
- package/types/schema/http/http-multipart-field.interface.d.ts +7 -0
- package/types/schema/http/http-operation-response.interface.d.ts +24 -0
- package/types/schema/http/http-operation.interface.d.ts +23 -0
- package/types/schema/http/http-parameter.interface.d.ts +28 -0
- package/types/schema/http/http-request-body.interface.d.ts +29 -0
- package/types/schema/http/http-status-range.interface.d.ts +4 -0
- package/types/schema/index.d.ts +61 -2
- package/types/schema/type-guards.d.ts +2 -10
- package/types/schema/types.d.ts +3 -0
- package/types/schema/value.interface.d.ts +23 -0
- package/types/types.d.ts +1 -14
- package/cjs/document/data-type/builtin/any.type.js +0 -13
- package/cjs/document/data-type/builtin/approx-date.type.js +0 -21
- package/cjs/document/data-type/builtin/approx-datetime.type.js +0 -24
- package/cjs/document/data-type/builtin/bigint.type.js +0 -16
- package/cjs/document/data-type/builtin/date.type.js +0 -17
- package/cjs/document/data-type/builtin/datetime.type.js +0 -21
- package/cjs/document/data-type/builtin/email.type.js +0 -16
- package/cjs/document/data-type/builtin/index.js +0 -21
- package/cjs/document/data-type/builtin/integer.type.js +0 -16
- package/cjs/document/data-type/builtin/number.type.js +0 -16
- package/cjs/document/data-type/builtin/string.type.js +0 -16
- package/cjs/document/data-type/builtin/time.type.js +0 -23
- package/cjs/document/data-type/builtin/uuid.type.js +0 -16
- package/cjs/document/data-type/complex-type-class.js +0 -274
- package/cjs/document/data-type/enum-type-class.js +0 -39
- package/cjs/document/data-type/field-class.js +0 -67
- package/cjs/document/data-type/field.js +0 -25
- package/cjs/document/data-type/mapped-type-class.js +0 -53
- package/cjs/document/data-type/mixin-type-class.js +0 -38
- package/cjs/document/data-type/simple-type-class.js +0 -37
- package/cjs/document/data-type/simple-type.decorator.js +0 -20
- package/cjs/document/document-base.js +0 -24
- package/cjs/document/factory/api-document-factory.js +0 -262
- package/cjs/document/factory/type-document-factory.js +0 -326
- package/cjs/document/resource/action-decorator.js +0 -33
- package/cjs/document/resource/action.js +0 -34
- package/cjs/document/resource/collection-class.js +0 -257
- package/cjs/document/resource/collection-decorator.js +0 -211
- package/cjs/document/resource/collection.js +0 -25
- package/cjs/document/resource/container-class.js +0 -84
- package/cjs/document/resource/container-decorator.js +0 -24
- package/cjs/document/resource/container.js +0 -29
- package/cjs/document/resource/crud-operation-decorator.js +0 -28
- package/cjs/document/resource/crud-operation.js +0 -49
- package/cjs/document/resource/crud-resource.js +0 -34
- package/cjs/document/resource/endpoint.js +0 -59
- package/cjs/document/resource/enums/metadata-mode.enum.js +0 -19
- package/cjs/document/resource/parameter.js +0 -50
- package/cjs/document/resource/resource-decorator.js +0 -33
- package/cjs/document/resource/resource.js +0 -60
- package/cjs/document/resource/singleton-class.js +0 -83
- package/cjs/document/resource/singleton-decorator.js +0 -57
- package/cjs/document/resource/singleton.js +0 -25
- package/cjs/document/resource/storage-class.js +0 -18
- package/cjs/document/resource/storage-decorator.js +0 -70
- package/cjs/document/resource/storage.js +0 -25
- package/cjs/document/resource/types/operation-result.type.js +0 -45
- package/cjs/document/type-document.js +0 -204
- package/cjs/exception/wrap-exception.js +0 -43
- package/cjs/helpers/is-url-string.js +0 -13
- package/cjs/helpers/path-to-object-tree.js +0 -28
- package/cjs/http/opra-url-path.js +0 -261
- package/cjs/http/opra-url.js +0 -250
- package/cjs/schema/opra-schema.ns.js +0 -22
- package/cjs/schema/resource/collection.interface.js +0 -7
- package/cjs/schema/resource/container.interface.js +0 -7
- package/cjs/schema/resource/singleton.interface.js +0 -7
- package/cjs/schema/resource/storage.interface.js +0 -7
- package/esm/document/data-type/builtin/any.type.js +0 -10
- package/esm/document/data-type/builtin/approx-date.type.js +0 -18
- package/esm/document/data-type/builtin/approx-datetime.type.js +0 -21
- package/esm/document/data-type/builtin/base64.type.js +0 -13
- package/esm/document/data-type/builtin/bigint.type.js +0 -13
- package/esm/document/data-type/builtin/boolean.type.js +0 -13
- package/esm/document/data-type/builtin/date.type.js +0 -14
- package/esm/document/data-type/builtin/datetime.type.js +0 -18
- package/esm/document/data-type/builtin/email.type.js +0 -13
- package/esm/document/data-type/builtin/index.js +0 -18
- package/esm/document/data-type/builtin/integer.type.js +0 -13
- package/esm/document/data-type/builtin/number.type.js +0 -13
- package/esm/document/data-type/builtin/object-id.type.js +0 -13
- package/esm/document/data-type/builtin/string.type.js +0 -13
- package/esm/document/data-type/builtin/time.type.js +0 -20
- package/esm/document/data-type/builtin/url.type.js +0 -13
- package/esm/document/data-type/builtin/uuid.type.js +0 -13
- package/esm/document/data-type/complex-type-class.js +0 -270
- package/esm/document/data-type/enum-type-class.js +0 -35
- package/esm/document/data-type/field-class.js +0 -63
- package/esm/document/data-type/field.js +0 -21
- package/esm/document/data-type/mapped-type-class.js +0 -48
- package/esm/document/data-type/mixin-type-class.js +0 -34
- package/esm/document/data-type/simple-type-class.js +0 -33
- package/esm/document/data-type/simple-type.decorator.js +0 -15
- package/esm/document/document-base.js +0 -20
- package/esm/document/factory/api-document-factory.js +0 -258
- package/esm/document/factory/type-document-factory.js +0 -322
- package/esm/document/resource/action-decorator.js +0 -29
- package/esm/document/resource/action.js +0 -30
- package/esm/document/resource/collection-class.js +0 -253
- package/esm/document/resource/collection-decorator.js +0 -207
- package/esm/document/resource/collection.js +0 -21
- package/esm/document/resource/container-class.js +0 -80
- package/esm/document/resource/container-decorator.js +0 -20
- package/esm/document/resource/container.js +0 -25
- package/esm/document/resource/crud-operation-decorator.js +0 -24
- package/esm/document/resource/crud-operation.js +0 -45
- package/esm/document/resource/crud-resource.js +0 -30
- package/esm/document/resource/endpoint.js +0 -55
- package/esm/document/resource/enums/metadata-mode.enum.js +0 -16
- package/esm/document/resource/parameter.js +0 -46
- package/esm/document/resource/resource-decorator.js +0 -28
- package/esm/document/resource/resource.js +0 -56
- package/esm/document/resource/singleton-class.js +0 -79
- package/esm/document/resource/singleton-decorator.js +0 -53
- package/esm/document/resource/singleton.js +0 -21
- package/esm/document/resource/storage-class.js +0 -14
- package/esm/document/resource/storage-decorator.js +0 -66
- package/esm/document/resource/storage.js +0 -21
- package/esm/document/type-document.js +0 -200
- package/esm/exception/wrap-exception.js +0 -39
- package/esm/helpers/is-url-string.js +0 -8
- package/esm/helpers/path-to-object-tree.js +0 -24
- package/esm/http/opra-url-path.js +0 -255
- package/esm/http/opra-url.js +0 -246
- package/esm/schema/opra-schema.ns.js +0 -19
- package/esm/schema/resource/collection.interface.js +0 -4
- package/esm/schema/resource/container.interface.js +0 -4
- package/esm/schema/resource/singleton.interface.js +0 -4
- package/esm/schema/resource/storage.interface.js +0 -4
- package/types/document/data-type/builtin/any.type.d.ts +0 -2
- package/types/document/data-type/builtin/approx-date.type.d.ts +0 -2
- package/types/document/data-type/builtin/approx-datetime.type.d.ts +0 -2
- package/types/document/data-type/builtin/base64.type.d.ts +0 -2
- package/types/document/data-type/builtin/bigint.type.d.ts +0 -2
- package/types/document/data-type/builtin/boolean.type.d.ts +0 -2
- package/types/document/data-type/builtin/date.type.d.ts +0 -2
- package/types/document/data-type/builtin/datetime.type.d.ts +0 -2
- package/types/document/data-type/builtin/email.type.d.ts +0 -2
- package/types/document/data-type/builtin/index.d.ts +0 -18
- package/types/document/data-type/builtin/integer.type.d.ts +0 -2
- package/types/document/data-type/builtin/null.type.d.ts +0 -2
- package/types/document/data-type/builtin/number.type.d.ts +0 -2
- package/types/document/data-type/builtin/object-id.type.d.ts +0 -2
- package/types/document/data-type/builtin/object.type.d.ts +0 -2
- package/types/document/data-type/builtin/string.type.d.ts +0 -2
- package/types/document/data-type/builtin/time.type.d.ts +0 -2
- package/types/document/data-type/builtin/url.type.d.ts +0 -2
- package/types/document/data-type/builtin/uuid.type.d.ts +0 -2
- package/types/document/data-type/complex-type-class.d.ts +0 -36
- package/types/document/data-type/complex-type.decorator.d.ts +0 -2
- package/types/document/data-type/enum-type-class.d.ts +0 -18
- package/types/document/data-type/field-class.d.ts +0 -31
- package/types/document/data-type/field-decorator.d.ts +0 -5
- package/types/document/data-type/field.d.ts +0 -46
- package/types/document/data-type/mapped-type-class.d.ts +0 -18
- package/types/document/data-type/mixin-type-class.d.ts +0 -12
- package/types/document/data-type/simple-type-class.d.ts +0 -19
- package/types/document/data-type/simple-type.decorator.d.ts +0 -2
- package/types/document/document-base.d.ts +0 -10
- package/types/document/factory/api-document-factory.d.ts +0 -49
- package/types/document/factory/type-document-factory.d.ts +0 -57
- package/types/document/interfaces/collection.interface.d.ts +0 -10
- package/types/document/interfaces/singleton.interface.d.ts +0 -7
- package/types/document/interfaces/storage.interface.d.ts +0 -8
- package/types/document/resource/action-decorator.d.ts +0 -8
- package/types/document/resource/action.d.ts +0 -30
- package/types/document/resource/collection-class.d.ts +0 -20
- package/types/document/resource/collection-decorator.d.ts +0 -204
- package/types/document/resource/collection.d.ts +0 -62
- package/types/document/resource/container-class.d.ts +0 -66
- package/types/document/resource/container-decorator.d.ts +0 -37
- package/types/document/resource/container.d.ts +0 -27
- package/types/document/resource/crud-operation-decorator.d.ts +0 -6
- package/types/document/resource/crud-operation.d.ts +0 -32
- package/types/document/resource/crud-resource.d.ts +0 -16
- package/types/document/resource/endpoint.d.ts +0 -32
- package/types/document/resource/enums/metadata-mode.enum.d.ts +0 -5
- package/types/document/resource/parameter.d.ts +0 -35
- package/types/document/resource/resource-decorator.d.ts +0 -40
- package/types/document/resource/resource.d.ts +0 -35
- package/types/document/resource/singleton-class.d.ts +0 -21
- package/types/document/resource/singleton-decorator.d.ts +0 -131
- package/types/document/resource/singleton.d.ts +0 -49
- package/types/document/resource/storage-class.d.ts +0 -17
- package/types/document/resource/storage-decorator.d.ts +0 -100
- package/types/document/resource/storage.d.ts +0 -39
- package/types/document/type-document.d.ts +0 -79
- package/types/exception/resource-errors/resource-conflict.error.d.ts +0 -5
- package/types/exception/wrap-exception.d.ts +0 -2
- package/types/helpers/is-url-string.d.ts +0 -2
- package/types/helpers/path-to-object-tree.d.ts +0 -4
- package/types/http/opra-url-path.d.ts +0 -55
- package/types/http/opra-url.d.ts +0 -66
- package/types/schema/document/api-document.interface.d.ts +0 -11
- package/types/schema/document/document-base.interface.d.ts +0 -24
- package/types/schema/document/type-document.interface.d.ts +0 -6
- package/types/schema/opra-schema.ns.d.ts +0 -19
- package/types/schema/resource/action.interface.d.ts +0 -6
- package/types/schema/resource/collection.interface.d.ts +0 -55
- package/types/schema/resource/container.interface.d.ts +0 -10
- package/types/schema/resource/endpoint.interface.d.ts +0 -13
- package/types/schema/resource/resource.interface.d.ts +0 -15
- package/types/schema/resource/singleton.interface.d.ts +0 -25
- package/types/schema/resource/storage.interface.d.ts +0 -61
- /package/cjs/{document/interfaces/collection.interface.js → schema/data-type-container.interface.js} +0 -0
- /package/cjs/{document/interfaces/singleton.interface.js → schema/document.interface.js} +0 -0
- /package/cjs/{document/interfaces/storage.interface.js → schema/http/http-media-type.interface.js} +0 -0
- /package/cjs/schema/{document/api-document.interface.js → http/http-multipart-field.interface.js} +0 -0
- /package/cjs/schema/{document/document-base.interface.js → http/http-operation-response.interface.js} +0 -0
- /package/cjs/schema/{document/type-document.interface.js → http/http-parameter.interface.js} +0 -0
- /package/cjs/schema/{resource/action.interface.js → http/http-request-body.interface.js} +0 -0
- /package/cjs/schema/{resource/endpoint.interface.js → http/http-status-range.interface.js} +0 -0
- /package/cjs/schema/{resource/resource.interface.js → types.js} +0 -0
- /package/esm/{document/interfaces/collection.interface.js → schema/data-type-container.interface.js} +0 -0
- /package/esm/{document/interfaces/singleton.interface.js → schema/document.interface.js} +0 -0
- /package/esm/{document/interfaces/storage.interface.js → schema/http/http-media-type.interface.js} +0 -0
- /package/esm/schema/{document/api-document.interface.js → http/http-multipart-field.interface.js} +0 -0
- /package/esm/schema/{document/document-base.interface.js → http/http-operation-response.interface.js} +0 -0
- /package/esm/schema/{document/type-document.interface.js → http/http-parameter.interface.js} +0 -0
- /package/esm/schema/{resource/action.interface.js → http/http-request-body.interface.js} +0 -0
- /package/esm/schema/{resource/endpoint.interface.js → http/http-status-range.interface.js} +0 -0
- /package/esm/schema/{resource/resource.interface.js → types.js} +0 -0
|
@@ -4,7 +4,7 @@ export declare namespace Field {
|
|
|
4
4
|
type QualifiedName = string;
|
|
5
5
|
}
|
|
6
6
|
export type Field = {
|
|
7
|
-
type
|
|
7
|
+
type?: DataType.Name | DataType;
|
|
8
8
|
/**
|
|
9
9
|
* Defines the description of the field
|
|
10
10
|
*/
|
|
@@ -20,7 +20,7 @@ export type Field = {
|
|
|
20
20
|
/**
|
|
21
21
|
* Indicates the fixed value of the field. The value of the field can not be any other value.
|
|
22
22
|
*/
|
|
23
|
-
fixed?:
|
|
23
|
+
fixed?: any;
|
|
24
24
|
/**
|
|
25
25
|
* Indicates if field value required in create operation
|
|
26
26
|
*/
|
|
@@ -50,12 +50,4 @@ export type Field = {
|
|
|
50
50
|
* Indicates if the field is deprecated and can be removed in the next
|
|
51
51
|
*/
|
|
52
52
|
deprecated?: boolean | string;
|
|
53
|
-
/**
|
|
54
|
-
* Defines RegExp pattern for the field. A String type is required for this option
|
|
55
|
-
*/
|
|
56
|
-
pattern?: string;
|
|
57
|
-
/**
|
|
58
|
-
* Indicates if partial update enabled for this field
|
|
59
|
-
*/
|
|
60
|
-
partialUpdate?: boolean;
|
|
61
53
|
};
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { StrictOmit } from 'ts-gems';
|
|
2
|
-
import { ComplexType } from './complex-type.interface
|
|
3
|
-
import {
|
|
4
|
-
|
|
2
|
+
import type { ComplexType } from './complex-type.interface';
|
|
3
|
+
import type { DataType, DataTypeBase } from './data-type.interface';
|
|
4
|
+
import type { Field } from './field.interface.js';
|
|
5
|
+
import type { MixinType } from './mixin-type.interface.js';
|
|
6
|
+
export interface MappedType extends StrictOmit<DataTypeBase, 'kind'> {
|
|
5
7
|
kind: MappedType.Kind;
|
|
8
|
+
base: DataType.Name | ComplexType | MixinType | MappedType;
|
|
6
9
|
omit?: Field.Name[];
|
|
7
10
|
pick?: Field.Name[];
|
|
8
11
|
partial?: Field.Name[] | boolean;
|
|
12
|
+
required?: Field.Name[] | boolean;
|
|
9
13
|
}
|
|
10
14
|
export declare namespace MappedType {
|
|
11
15
|
const Kind = "MappedType";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { StrictOmit } from 'ts-gems';
|
|
2
2
|
import type { ComplexType } from './complex-type.interface.js';
|
|
3
|
-
import type { DataType } from './data-type.interface.js';
|
|
3
|
+
import type { DataType, DataTypeBase } from './data-type.interface.js';
|
|
4
4
|
import type { MappedType } from './mapped-type.interface.js';
|
|
5
|
-
export interface MixinType extends StrictOmit<
|
|
5
|
+
export interface MixinType extends StrictOmit<DataTypeBase, 'kind'> {
|
|
6
6
|
kind: MixinType.Kind;
|
|
7
7
|
types: (DataType.Name | ComplexType | MixinType | MappedType)[];
|
|
8
8
|
}
|
|
@@ -1,14 +1,42 @@
|
|
|
1
|
-
import { StrictOmit } from 'ts-gems';
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import type { StrictOmit } from 'ts-gems';
|
|
2
|
+
import type { DataType, DataTypeBase } from './data-type.interface.js';
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
* @interface SimpleType
|
|
6
|
+
*/
|
|
5
7
|
export interface SimpleType extends StrictOmit<DataTypeBase, 'kind'> {
|
|
6
8
|
kind: SimpleType.Kind;
|
|
7
|
-
base?: DataType.Name
|
|
8
|
-
|
|
9
|
-
|
|
9
|
+
base?: DataType.Name;
|
|
10
|
+
attributes?: Record<string, Attribute>;
|
|
11
|
+
properties?: Record<string, any>;
|
|
10
12
|
}
|
|
11
13
|
export declare namespace SimpleType {
|
|
12
14
|
const Kind = "SimpleType";
|
|
13
15
|
type Kind = 'SimpleType';
|
|
14
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
*
|
|
19
|
+
* @interface Attribute
|
|
20
|
+
*/
|
|
21
|
+
export interface Attribute {
|
|
22
|
+
/**
|
|
23
|
+
* Data format of the attribute
|
|
24
|
+
*/
|
|
25
|
+
format?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Defines the description of the attribute
|
|
28
|
+
*/
|
|
29
|
+
description?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Defines the description of the attribute
|
|
32
|
+
*/
|
|
33
|
+
default?: any;
|
|
34
|
+
/**
|
|
35
|
+
* Indicates if the attribute is sealed or not. A sealed attribute cannot be extended/modified through inheritance.
|
|
36
|
+
*/
|
|
37
|
+
sealed?: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Indicates if the attribute is deprecated and can be removed in the next
|
|
40
|
+
*/
|
|
41
|
+
deprecated?: boolean | string;
|
|
42
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { SpecVersion } from './constants.js';
|
|
2
|
+
import type { DataTypeContainer } from './data-type-container.interface.js';
|
|
3
|
+
import type { HttpController } from './http/http-controller.interface';
|
|
4
|
+
export type Protocol = 'http' | 'ws' | 'rpc';
|
|
5
|
+
/**
|
|
6
|
+
* @interface Document
|
|
7
|
+
*/
|
|
8
|
+
export interface Document extends DataTypeContainer {
|
|
9
|
+
spec: SpecVersion;
|
|
10
|
+
url?: string;
|
|
11
|
+
info?: DocumentInfo;
|
|
12
|
+
references?: Record<string, string | Document>;
|
|
13
|
+
api?: HttpApi;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* @interface DocumentInfo
|
|
17
|
+
*/
|
|
18
|
+
export interface DocumentInfo {
|
|
19
|
+
title?: string;
|
|
20
|
+
version?: string;
|
|
21
|
+
description?: string;
|
|
22
|
+
termsOfService?: string;
|
|
23
|
+
contact?: ContactPerson[];
|
|
24
|
+
license?: LicenseInfo;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* @interface ContactPerson
|
|
28
|
+
*/
|
|
29
|
+
export interface ContactPerson {
|
|
30
|
+
name?: string;
|
|
31
|
+
email?: string;
|
|
32
|
+
url?: string;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* @interface LicenseInfo
|
|
36
|
+
*/
|
|
37
|
+
export interface LicenseInfo {
|
|
38
|
+
name: string;
|
|
39
|
+
url?: string;
|
|
40
|
+
content?: string;
|
|
41
|
+
}
|
|
42
|
+
export interface Api extends DataTypeContainer {
|
|
43
|
+
protocol: Protocol;
|
|
44
|
+
/**
|
|
45
|
+
* Name of the api. Should be a computer friendly name
|
|
46
|
+
*/
|
|
47
|
+
name: string;
|
|
48
|
+
description?: string;
|
|
49
|
+
}
|
|
50
|
+
export interface HttpApi extends Api {
|
|
51
|
+
protocol: 'http';
|
|
52
|
+
description?: string;
|
|
53
|
+
url?: string;
|
|
54
|
+
controllers: Record<string, HttpController>;
|
|
55
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { DataTypeContainer } from '../data-type-container.interface.js';
|
|
2
|
+
import type { HttpOperation } from './http-operation.interface';
|
|
3
|
+
import type { HttpParameter } from './http-parameter.interface';
|
|
4
|
+
/**
|
|
5
|
+
*
|
|
6
|
+
* @interface HttpController
|
|
7
|
+
*/
|
|
8
|
+
export interface HttpController extends DataTypeContainer {
|
|
9
|
+
kind: HttpController.Kind;
|
|
10
|
+
description?: string;
|
|
11
|
+
path?: string;
|
|
12
|
+
operations?: Record<string, HttpOperation>;
|
|
13
|
+
controllers?: Record<string, HttpController>;
|
|
14
|
+
parameters?: HttpParameter[];
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
*
|
|
18
|
+
* @namespace HttpController
|
|
19
|
+
*/
|
|
20
|
+
export declare namespace HttpController {
|
|
21
|
+
type Name = string;
|
|
22
|
+
const Kind = "HttpController";
|
|
23
|
+
type Kind = 'HttpController';
|
|
24
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { DataType } from '../data-type/data-type.interface';
|
|
2
|
+
import type { HttpMultipartField } from './http-multipart-field.interface.js';
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
* @interface HttpMediaType
|
|
6
|
+
*/
|
|
7
|
+
export interface HttpMediaType {
|
|
8
|
+
/**
|
|
9
|
+
* A brief description.
|
|
10
|
+
* [CommonMark](https://commonmark.org/) syntax MAY be used for rich text representation
|
|
11
|
+
*/
|
|
12
|
+
description?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Media type (MIME) or [range of media types](https://datatracker.ietf.org/doc/html/rfc7231#section-5.3.2)
|
|
15
|
+
*/
|
|
16
|
+
contentType?: string | string[];
|
|
17
|
+
/**
|
|
18
|
+
* Determines encoding of the content.
|
|
19
|
+
*/
|
|
20
|
+
contentEncoding?: string;
|
|
21
|
+
/**
|
|
22
|
+
* DataType to be used for decoding.
|
|
23
|
+
*/
|
|
24
|
+
type?: DataType.Name | DataType;
|
|
25
|
+
/**
|
|
26
|
+
* Determines if content is array
|
|
27
|
+
*/
|
|
28
|
+
isArray?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Example of the content data. The `example` field is mutually exclusive of the `examples` field.
|
|
31
|
+
*/
|
|
32
|
+
example?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Examples of the content data. The `examples` field is mutually exclusive of the `example` field.
|
|
35
|
+
*/
|
|
36
|
+
examples?: Record<string, string>;
|
|
37
|
+
/**
|
|
38
|
+
* Content info for each field for multipart contents
|
|
39
|
+
*/
|
|
40
|
+
multipartFields?: HttpMultipartField[];
|
|
41
|
+
/**
|
|
42
|
+
* Determines maximum number of multipart fields
|
|
43
|
+
*/
|
|
44
|
+
maxFields?: number;
|
|
45
|
+
/**
|
|
46
|
+
* Determines maximum size of each multipart field
|
|
47
|
+
*/
|
|
48
|
+
maxFieldsSize?: number;
|
|
49
|
+
/**
|
|
50
|
+
* Determines maximum number of multipart files
|
|
51
|
+
*/
|
|
52
|
+
maxFiles?: number;
|
|
53
|
+
/**
|
|
54
|
+
* Determines maximum size of each multipart file
|
|
55
|
+
*/
|
|
56
|
+
maxFileSize?: number;
|
|
57
|
+
/**
|
|
58
|
+
* Determines maximum size of all multipart files
|
|
59
|
+
*/
|
|
60
|
+
maxTotalFileSize?: number;
|
|
61
|
+
/**
|
|
62
|
+
* Determines minimum size of each multipart file
|
|
63
|
+
*/
|
|
64
|
+
minFileSize?: number;
|
|
65
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { HttpMultipartFieldType } from '../types.js';
|
|
2
|
+
import type { HttpMediaType } from './http-media-type.interface.js';
|
|
3
|
+
export interface HttpMultipartField extends HttpMediaType {
|
|
4
|
+
fieldName: string | RegExp;
|
|
5
|
+
fieldType: HttpMultipartFieldType;
|
|
6
|
+
required?: boolean;
|
|
7
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { HttpMediaType } from './http-media-type.interface.js';
|
|
2
|
+
import type { HttpParameter } from './http-parameter.interface';
|
|
3
|
+
import type { HttpStatusRange } from './http-status-range.interface';
|
|
4
|
+
/**
|
|
5
|
+
*
|
|
6
|
+
* @interface HttpOperationResponse
|
|
7
|
+
*/
|
|
8
|
+
export interface HttpOperationResponse extends HttpMediaType {
|
|
9
|
+
/**
|
|
10
|
+
* Http status code or code range.
|
|
11
|
+
* @example 200
|
|
12
|
+
* @example [401,402,403]
|
|
13
|
+
* @example {start: 400, end: 403}
|
|
14
|
+
*/
|
|
15
|
+
statusCode: number | HttpStatusRange | (number | HttpStatusRange)[];
|
|
16
|
+
/**
|
|
17
|
+
* Returned parameters for this response. etc. headers or cookies
|
|
18
|
+
*/
|
|
19
|
+
parameters?: HttpParameter[];
|
|
20
|
+
/**
|
|
21
|
+
* Determines if the response object is partial
|
|
22
|
+
*/
|
|
23
|
+
partial?: boolean | 'deep';
|
|
24
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { DataTypeContainer } from '../data-type-container.interface';
|
|
2
|
+
import type { HttpMethod } from '../types.js';
|
|
3
|
+
import type { HttpOperationResponse } from './http-operation-response.interface';
|
|
4
|
+
import type { HttpParameter } from './http-parameter.interface';
|
|
5
|
+
import type { HttpRequestBody } from './http-request-body.interface';
|
|
6
|
+
/**
|
|
7
|
+
* @interface HttpOperation
|
|
8
|
+
*/
|
|
9
|
+
export interface HttpOperation extends DataTypeContainer {
|
|
10
|
+
kind: HttpOperation.Kind;
|
|
11
|
+
method: HttpMethod;
|
|
12
|
+
description?: string;
|
|
13
|
+
path?: string;
|
|
14
|
+
parameters?: HttpParameter[];
|
|
15
|
+
responses?: HttpOperationResponse[];
|
|
16
|
+
requestBody?: HttpRequestBody;
|
|
17
|
+
composition?: string;
|
|
18
|
+
compositionOptions?: Record<string, any>;
|
|
19
|
+
}
|
|
20
|
+
export declare namespace HttpOperation {
|
|
21
|
+
const Kind = "HttpOperation";
|
|
22
|
+
type Kind = 'HttpOperation';
|
|
23
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { HttpParameterLocation } from '../types.js';
|
|
2
|
+
import type { Value } from '../value.interface';
|
|
3
|
+
/**
|
|
4
|
+
*
|
|
5
|
+
* @interface HttpParameter
|
|
6
|
+
*/
|
|
7
|
+
export interface HttpParameter extends Value {
|
|
8
|
+
/**
|
|
9
|
+
* Defines the location of the parameter
|
|
10
|
+
*/
|
|
11
|
+
location: HttpParameterLocation;
|
|
12
|
+
/**
|
|
13
|
+
* Name of the parameter. RegExp pattern can be used matching parameter name
|
|
14
|
+
*/
|
|
15
|
+
name: string | RegExp;
|
|
16
|
+
/**
|
|
17
|
+
* Defines array separator
|
|
18
|
+
*/
|
|
19
|
+
arraySeparator?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Indicates if parameter value required
|
|
22
|
+
*/
|
|
23
|
+
required?: boolean;
|
|
24
|
+
/**
|
|
25
|
+
* Indicates if the parameter is deprecated and can be removed in the next
|
|
26
|
+
*/
|
|
27
|
+
deprecated?: boolean | string;
|
|
28
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { HttpMediaType } from './http-media-type.interface.js';
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* @interface HttpRequestBody
|
|
5
|
+
*/
|
|
6
|
+
export interface HttpRequestBody {
|
|
7
|
+
/**
|
|
8
|
+
* A brief description.
|
|
9
|
+
* [CommonMark](https://commonmark.org/) syntax MAY be used for rich text representation
|
|
10
|
+
*/
|
|
11
|
+
description?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Alternatives of media types
|
|
14
|
+
*/
|
|
15
|
+
content: HttpMediaType[];
|
|
16
|
+
/**
|
|
17
|
+
* Determines if the request body is required.
|
|
18
|
+
* Default `true` for POST and PATCH operations, `false` for other methods
|
|
19
|
+
*/
|
|
20
|
+
required?: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Maximum accepted content size in bytes.
|
|
23
|
+
*/
|
|
24
|
+
maxContentSize?: number;
|
|
25
|
+
/**
|
|
26
|
+
* Determines if the request body object is partial
|
|
27
|
+
*/
|
|
28
|
+
partial?: boolean | 'deep';
|
|
29
|
+
}
|
package/types/schema/index.d.ts
CHANGED
|
@@ -1,2 +1,61 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
|
|
1
|
+
import * as constants_ from './constants.js';
|
|
2
|
+
import * as complexType_ from './data-type/complex-type.interface.js';
|
|
3
|
+
import * as dataType_ from './data-type/data-type.interface.js';
|
|
4
|
+
import * as enumType_ from './data-type/enum-type.interface.js';
|
|
5
|
+
import * as field_ from './data-type/field.interface.js';
|
|
6
|
+
import * as mappedType_ from './data-type/mapped-type.interface.js';
|
|
7
|
+
import * as mixinType_ from './data-type/mixin-type.interface.js';
|
|
8
|
+
import * as simpleType_ from './data-type/simple-type.interface.js';
|
|
9
|
+
import * as dataTypeContainer_ from './data-type-container.interface.js';
|
|
10
|
+
import * as apiDocument_ from './document.interface.js';
|
|
11
|
+
import * as controller_ from './http/http-controller.interface.js';
|
|
12
|
+
import * as mediaType_ from './http/http-media-type.interface.js';
|
|
13
|
+
import * as multipartField_ from './http/http-multipart-field.interface.js';
|
|
14
|
+
import * as operation_ from './http/http-operation.interface.js';
|
|
15
|
+
import * as response_ from './http/http-operation-response.interface.js';
|
|
16
|
+
import * as parameter_ from './http/http-parameter.interface.js';
|
|
17
|
+
import * as requestBody_ from './http/http-request-body.interface.js';
|
|
18
|
+
import * as httpStatusRange_ from './http/http-status-range.interface.js';
|
|
19
|
+
import * as typeGuards_ from './type-guards.js';
|
|
20
|
+
import * as types_ from './types.js';
|
|
21
|
+
import * as value_ from './value.interface.js';
|
|
22
|
+
export declare namespace OpraSchema {
|
|
23
|
+
export import SpecVersion = constants_.SpecVersion;
|
|
24
|
+
export import Protocol = apiDocument_.Protocol;
|
|
25
|
+
export import ApiDocument = apiDocument_.Document;
|
|
26
|
+
export import DocumentInfo = apiDocument_.DocumentInfo;
|
|
27
|
+
export import ContactPerson = apiDocument_.ContactPerson;
|
|
28
|
+
export import LicenseInfo = apiDocument_.LicenseInfo;
|
|
29
|
+
export import HttpApi = apiDocument_.HttpApi;
|
|
30
|
+
export import Api = apiDocument_.Api;
|
|
31
|
+
export import HttpMethod = types_.HttpMethod;
|
|
32
|
+
export import HttpParameterLocation = types_.HttpParameterLocation;
|
|
33
|
+
export import HttpMultipartFieldType = types_.HttpMultipartFieldType;
|
|
34
|
+
export import Value = value_.Value;
|
|
35
|
+
export import ComplexType = complexType_.ComplexType;
|
|
36
|
+
export import DataType = dataType_.DataType;
|
|
37
|
+
export import DataTypeBase = dataType_.DataTypeBase;
|
|
38
|
+
export import DataTypeExample = dataType_.DataTypeExample;
|
|
39
|
+
export import EnumType = enumType_.EnumType;
|
|
40
|
+
export import Field = field_.Field;
|
|
41
|
+
export import MappedType = mappedType_.MappedType;
|
|
42
|
+
export import MixinType = mixinType_.MixinType;
|
|
43
|
+
export import SimpleType = simpleType_.SimpleType;
|
|
44
|
+
export import Attribute = simpleType_.Attribute;
|
|
45
|
+
export import DataTypeContainer = dataTypeContainer_.DataTypeContainer;
|
|
46
|
+
export import HttpController = controller_.HttpController;
|
|
47
|
+
export import HttpMediaType = mediaType_.HttpMediaType;
|
|
48
|
+
export import HttpMultipartField = multipartField_.HttpMultipartField;
|
|
49
|
+
export import HttpOperation = operation_.HttpOperation;
|
|
50
|
+
export import HttpParameter = parameter_.HttpParameter;
|
|
51
|
+
export import HttpRequestBody = requestBody_.HttpRequestBody;
|
|
52
|
+
export import HttpStatusRange = httpStatusRange_.HttpStatusRange;
|
|
53
|
+
export import HttpOperationResponse = response_.HttpOperationResponse;
|
|
54
|
+
export import isComplexType = typeGuards_.isComplexType;
|
|
55
|
+
export import isDataType = typeGuards_.isDataType;
|
|
56
|
+
export import isSimpleType = typeGuards_.isSimpleType;
|
|
57
|
+
export import isMixinType = typeGuards_.isMixinType;
|
|
58
|
+
export import isMappedType = typeGuards_.isMappedType;
|
|
59
|
+
export import isEnumType = typeGuards_.isEnumType;
|
|
60
|
+
export import isHttpController = typeGuards_.isHttpController;
|
|
61
|
+
}
|
|
@@ -4,19 +4,11 @@ import { EnumType } from './data-type/enum-type.interface.js';
|
|
|
4
4
|
import { MappedType } from './data-type/mapped-type.interface.js';
|
|
5
5
|
import { MixinType } from './data-type/mixin-type.interface.js';
|
|
6
6
|
import { SimpleType } from './data-type/simple-type.interface.js';
|
|
7
|
-
import {
|
|
8
|
-
import { Container } from './resource/container.interface.js';
|
|
9
|
-
import { Resource } from './resource/resource.interface.js';
|
|
10
|
-
import { Singleton } from './resource/singleton.interface.js';
|
|
11
|
-
import { Storage } from './resource/storage.interface.js';
|
|
7
|
+
import { HttpController } from './http/http-controller.interface.js';
|
|
12
8
|
export declare function isDataType(obj: any): obj is DataType;
|
|
13
9
|
export declare function isComplexType(obj: any): obj is ComplexType;
|
|
14
10
|
export declare function isSimpleType(obj: any): obj is SimpleType;
|
|
15
11
|
export declare function isMixinType(obj: any): obj is MixinType;
|
|
16
12
|
export declare function isMappedType(obj: any): obj is MappedType;
|
|
17
13
|
export declare function isEnumType(obj: any): obj is EnumType;
|
|
18
|
-
export declare function
|
|
19
|
-
export declare function isCollection(obj: any): obj is Collection;
|
|
20
|
-
export declare function isSingleton(obj: any): obj is Singleton;
|
|
21
|
-
export declare function isStorage(obj: any): obj is Storage;
|
|
22
|
-
export declare function isContainer(obj: any): obj is Container;
|
|
14
|
+
export declare function isHttpController(obj: any): obj is HttpController;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { DataType } from './data-type/data-type.interface.js';
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* @interface Value
|
|
5
|
+
*/
|
|
6
|
+
export interface Value {
|
|
7
|
+
/**
|
|
8
|
+
* Data type of the value
|
|
9
|
+
*/
|
|
10
|
+
type?: DataType.Name | DataType;
|
|
11
|
+
/**
|
|
12
|
+
* Indicates if the value is an array
|
|
13
|
+
*/
|
|
14
|
+
isArray?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* Defines the description of the parameter
|
|
17
|
+
*/
|
|
18
|
+
description?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Defines example values for the parameter
|
|
21
|
+
*/
|
|
22
|
+
examples?: any[] | Record<string, any>;
|
|
23
|
+
}
|
package/types/types.d.ts
CHANGED
|
@@ -1,14 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export type Thunk<T> = T | (() => T);
|
|
3
|
-
export type ThunkAsync<T> = Thunk<T> | Thunk<Promise<T>>;
|
|
4
|
-
export type TypeThunk<T = any> = Thunk<Type<T>>;
|
|
5
|
-
export type TypeThunkAsync<T = any> = ThunkAsync<Type<T>>;
|
|
6
|
-
/**
|
|
7
|
-
* Returns given type as a Data Transfer Object (DTO) interface, Removes symbol keys and function properties.
|
|
8
|
-
* @template T - The type of the data being transferred.
|
|
9
|
-
*/
|
|
10
|
-
export type DTO<T> = {
|
|
11
|
-
[K in keyof T as (IfNever<Exclude<T[K], undefined | Function>, never, K>)]: Exclude<T[K], undefined | null> extends (infer U)[] ? DTO<U>[] : IfNoDeepValue<Exclude<T[K], undefined | null>> extends true ? Exclude<T[K], undefined | null> : DTO<Exclude<T[K], undefined | null>>;
|
|
12
|
-
};
|
|
13
|
-
export type PartialDTO<T> = DeeperPartial<DTO<T>>;
|
|
14
|
-
export type PatchDTO<T> = DeeperNullish<DTO<T>>;
|
|
1
|
+
export type URLSearchParamsInit = string[][] | Record<string, string> | string | URLSearchParams;
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AnyType = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const simple_type_js_1 = require("../simple-type.js");
|
|
6
|
-
let AnyType = class AnyType {
|
|
7
|
-
};
|
|
8
|
-
exports.AnyType = AnyType;
|
|
9
|
-
exports.AnyType = AnyType = tslib_1.__decorate([
|
|
10
|
-
(0, simple_type_js_1.SimpleType)({
|
|
11
|
-
description: 'Represents any value'
|
|
12
|
-
})
|
|
13
|
-
], AnyType);
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ApproxDateType = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const valgen_1 = require("valgen");
|
|
6
|
-
const simple_type_js_1 = require("../simple-type.js");
|
|
7
|
-
let ApproxDateType = class ApproxDateType {
|
|
8
|
-
};
|
|
9
|
-
exports.ApproxDateType = ApproxDateType;
|
|
10
|
-
exports.ApproxDateType = ApproxDateType = tslib_1.__decorate([
|
|
11
|
-
(0, simple_type_js_1.SimpleType)({
|
|
12
|
-
description: 'An approximate date value',
|
|
13
|
-
example: [
|
|
14
|
-
'2021-04-18',
|
|
15
|
-
'2021-04',
|
|
16
|
-
'2021',
|
|
17
|
-
],
|
|
18
|
-
decoder: valgen_1.vg.isDateString({ trim: 'date' }),
|
|
19
|
-
encoder: valgen_1.vg.isDateString({ trim: 'date' })
|
|
20
|
-
})
|
|
21
|
-
], ApproxDateType);
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ApproxDatetimeType = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const valgen_1 = require("valgen");
|
|
6
|
-
const simple_type_js_1 = require("../simple-type.js");
|
|
7
|
-
let ApproxDatetimeType = class ApproxDatetimeType {
|
|
8
|
-
};
|
|
9
|
-
exports.ApproxDatetimeType = ApproxDatetimeType;
|
|
10
|
-
exports.ApproxDatetimeType = ApproxDatetimeType = tslib_1.__decorate([
|
|
11
|
-
(0, simple_type_js_1.SimpleType)({
|
|
12
|
-
description: 'An approximate datetime value.',
|
|
13
|
-
example: [
|
|
14
|
-
'2021-04-18T22:30:15+01:00',
|
|
15
|
-
'2021-04-18T22:30:15',
|
|
16
|
-
'2021-04-18 22:30',
|
|
17
|
-
'2021-04-18',
|
|
18
|
-
'2021-04',
|
|
19
|
-
'2021',
|
|
20
|
-
],
|
|
21
|
-
decoder: valgen_1.isDateString,
|
|
22
|
-
encoder: valgen_1.isDateString
|
|
23
|
-
})
|
|
24
|
-
], ApproxDatetimeType);
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.BigintType = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const valgen_1 = require("valgen");
|
|
6
|
-
const simple_type_js_1 = require("../simple-type.js");
|
|
7
|
-
let BigintType = class BigintType {
|
|
8
|
-
};
|
|
9
|
-
exports.BigintType = BigintType;
|
|
10
|
-
exports.BigintType = BigintType = tslib_1.__decorate([
|
|
11
|
-
(0, simple_type_js_1.SimpleType)({
|
|
12
|
-
description: 'BigInt number',
|
|
13
|
-
decoder: valgen_1.isBigint,
|
|
14
|
-
encoder: valgen_1.vg.pipe(valgen_1.isBigint, valgen_1.isString)
|
|
15
|
-
})
|
|
16
|
-
], BigintType);
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DateType = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const valgen_1 = require("valgen");
|
|
6
|
-
const simple_type_js_1 = require("../simple-type.js");
|
|
7
|
-
let DateType = class DateType {
|
|
8
|
-
};
|
|
9
|
-
exports.DateType = DateType;
|
|
10
|
-
exports.DateType = DateType = tslib_1.__decorate([
|
|
11
|
-
(0, simple_type_js_1.SimpleType)({
|
|
12
|
-
description: 'A date without time',
|
|
13
|
-
example: ['2021-04-18'],
|
|
14
|
-
decoder: valgen_1.vg.isDate({ precision: 'date' }),
|
|
15
|
-
encoder: valgen_1.vg.isDateString({ precision: 'date', trim: 'date' })
|
|
16
|
-
})
|
|
17
|
-
], DateType);
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DatetimeType = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const valgen_1 = require("valgen");
|
|
6
|
-
const simple_type_js_1 = require("../simple-type.js");
|
|
7
|
-
let DatetimeType = class DatetimeType {
|
|
8
|
-
};
|
|
9
|
-
exports.DatetimeType = DatetimeType;
|
|
10
|
-
exports.DatetimeType = DatetimeType = tslib_1.__decorate([
|
|
11
|
-
(0, simple_type_js_1.SimpleType)({
|
|
12
|
-
description: 'A full datetime value',
|
|
13
|
-
example: [
|
|
14
|
-
'2021-04-18T22:30:15',
|
|
15
|
-
'2021-04-18 22:30:15',
|
|
16
|
-
'2021-04-18 22:30'
|
|
17
|
-
],
|
|
18
|
-
decoder: valgen_1.vg.isDate({ precision: 'time' }),
|
|
19
|
-
encoder: valgen_1.vg.isDateString({ precision: 'time', trim: 'time' })
|
|
20
|
-
})
|
|
21
|
-
], DatetimeType);
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.EmailType = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const valgen_1 = require("valgen");
|
|
6
|
-
const simple_type_js_1 = require("../simple-type.js");
|
|
7
|
-
let EmailType = class EmailType {
|
|
8
|
-
};
|
|
9
|
-
exports.EmailType = EmailType;
|
|
10
|
-
exports.EmailType = EmailType = tslib_1.__decorate([
|
|
11
|
-
(0, simple_type_js_1.SimpleType)({
|
|
12
|
-
description: 'An email value',
|
|
13
|
-
decoder: valgen_1.vg.isEmail(),
|
|
14
|
-
encoder: valgen_1.vg.isEmail()
|
|
15
|
-
})
|
|
16
|
-
], EmailType);
|