@klerick/json-api-nestjs 10.0.0-beta.1
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/package.json +58 -0
- package/src/index.d.ts +9 -0
- package/src/index.js +32 -0
- package/src/index.js.map +1 -0
- package/src/lib/constants/constants.d.ts +9 -0
- package/src/lib/constants/constants.js +13 -0
- package/src/lib/constants/constants.js.map +1 -0
- package/src/lib/constants/default.d.ts +2 -0
- package/src/lib/constants/default.js +6 -0
- package/src/lib/constants/default.js.map +1 -0
- package/src/lib/constants/di.d.ts +14 -0
- package/src/lib/constants/di.js +18 -0
- package/src/lib/constants/di.js.map +1 -0
- package/src/lib/constants/index.d.ts +4 -0
- package/src/lib/constants/index.js +8 -0
- package/src/lib/constants/index.js.map +1 -0
- package/src/lib/constants/reflection.d.ts +2 -0
- package/src/lib/constants/reflection.js +6 -0
- package/src/lib/constants/reflection.js.map +1 -0
- package/src/lib/json-api.module.d.ts +5 -0
- package/src/lib/json-api.module.js +40 -0
- package/src/lib/json-api.module.js.map +1 -0
- package/src/lib/modules/atomic-operation/atomic-operation.module.d.ts +8 -0
- package/src/lib/modules/atomic-operation/atomic-operation.module.js +71 -0
- package/src/lib/modules/atomic-operation/atomic-operation.module.js.map +1 -0
- package/src/lib/modules/atomic-operation/constants/index.d.ts +5 -0
- package/src/lib/modules/atomic-operation/constants/index.js +9 -0
- package/src/lib/modules/atomic-operation/constants/index.js.map +1 -0
- package/src/lib/modules/atomic-operation/controllers/index.d.ts +1 -0
- package/src/lib/modules/atomic-operation/controllers/index.js +5 -0
- package/src/lib/modules/atomic-operation/controllers/index.js.map +1 -0
- package/src/lib/modules/atomic-operation/controllers/operation.controller.d.ts +13 -0
- package/src/lib/modules/atomic-operation/controllers/operation.controller.js +98 -0
- package/src/lib/modules/atomic-operation/controllers/operation.controller.js.map +1 -0
- package/src/lib/modules/atomic-operation/factory/async-iterator.d.ts +18 -0
- package/src/lib/modules/atomic-operation/factory/async-iterator.js +44 -0
- package/src/lib/modules/atomic-operation/factory/async-iterator.js.map +1 -0
- package/src/lib/modules/atomic-operation/factory/index.d.ts +4 -0
- package/src/lib/modules/atomic-operation/factory/index.js +8 -0
- package/src/lib/modules/atomic-operation/factory/index.js.map +1 -0
- package/src/lib/modules/atomic-operation/factory/map-controller-entity.d.ts +4 -0
- package/src/lib/modules/atomic-operation/factory/map-controller-entity.js +20 -0
- package/src/lib/modules/atomic-operation/factory/map-controller-entity.js.map +1 -0
- package/src/lib/modules/atomic-operation/factory/map-entity-name-to-entity.d.ts +4 -0
- package/src/lib/modules/atomic-operation/factory/map-entity-name-to-entity.js +13 -0
- package/src/lib/modules/atomic-operation/factory/map-entity-name-to-entity.js.map +1 -0
- package/src/lib/modules/atomic-operation/factory/zod-input-operation.d.ts +3 -0
- package/src/lib/modules/atomic-operation/factory/zod-input-operation.js +16 -0
- package/src/lib/modules/atomic-operation/factory/zod-input-operation.js.map +1 -0
- package/src/lib/modules/atomic-operation/pipes/input-operation.pipe.d.ts +7 -0
- package/src/lib/modules/atomic-operation/pipes/input-operation.pipe.js +31 -0
- package/src/lib/modules/atomic-operation/pipes/input-operation.pipe.js.map +1 -0
- package/src/lib/modules/atomic-operation/service/execute.service.d.ts +26 -0
- package/src/lib/modules/atomic-operation/service/execute.service.js +233 -0
- package/src/lib/modules/atomic-operation/service/execute.service.js.map +1 -0
- package/src/lib/modules/atomic-operation/service/explorer.service.d.ts +16 -0
- package/src/lib/modules/atomic-operation/service/explorer.service.js +94 -0
- package/src/lib/modules/atomic-operation/service/explorer.service.js.map +1 -0
- package/src/lib/modules/atomic-operation/service/index.d.ts +3 -0
- package/src/lib/modules/atomic-operation/service/index.js +7 -0
- package/src/lib/modules/atomic-operation/service/index.js.map +1 -0
- package/src/lib/modules/atomic-operation/service/swagger.service.d.ts +7 -0
- package/src/lib/modules/atomic-operation/service/swagger.service.js +99 -0
- package/src/lib/modules/atomic-operation/service/swagger.service.js.map +1 -0
- package/src/lib/modules/atomic-operation/types/index.d.ts +17 -0
- package/src/lib/modules/atomic-operation/types/index.js +3 -0
- package/src/lib/modules/atomic-operation/types/index.js.map +1 -0
- package/src/lib/modules/atomic-operation/utils/index.d.ts +1 -0
- package/src/lib/modules/atomic-operation/utils/index.js +5 -0
- package/src/lib/modules/atomic-operation/utils/index.js.map +1 -0
- package/src/lib/modules/atomic-operation/utils/zod/zod-helper.d.ts +751 -0
- package/src/lib/modules/atomic-operation/utils/zod/zod-helper.js +100 -0
- package/src/lib/modules/atomic-operation/utils/zod/zod-helper.js.map +1 -0
- package/src/lib/modules/index.d.ts +2 -0
- package/src/lib/modules/index.js +6 -0
- package/src/lib/modules/index.js.map +1 -0
- package/src/lib/modules/mixin/config/bindings.d.ts +3 -0
- package/src/lib/modules/mixin/config/bindings.js +176 -0
- package/src/lib/modules/mixin/config/bindings.js.map +1 -0
- package/src/lib/modules/mixin/controllers/index.d.ts +1 -0
- package/src/lib/modules/mixin/controllers/index.js +5 -0
- package/src/lib/modules/mixin/controllers/index.js.map +1 -0
- package/src/lib/modules/mixin/controllers/json-base.controller.d.ts +20 -0
- package/src/lib/modules/mixin/controllers/json-base.controller.js +36 -0
- package/src/lib/modules/mixin/controllers/json-base.controller.js.map +1 -0
- package/src/lib/modules/mixin/decorators/index.d.ts +2 -0
- package/src/lib/modules/mixin/decorators/index.js +6 -0
- package/src/lib/modules/mixin/decorators/index.js.map +1 -0
- package/src/lib/modules/mixin/decorators/inject-service/inject-service.decorator.d.ts +1 -0
- package/src/lib/modules/mixin/decorators/inject-service/inject-service.decorator.js +9 -0
- package/src/lib/modules/mixin/decorators/inject-service/inject-service.decorator.js.map +1 -0
- package/src/lib/modules/mixin/decorators/json-api/json-api.decorator.d.ts +3 -0
- package/src/lib/modules/mixin/decorators/json-api/json-api.decorator.js +14 -0
- package/src/lib/modules/mixin/decorators/json-api/json-api.decorator.js.map +1 -0
- package/src/lib/modules/mixin/factory/index.d.ts +1 -0
- package/src/lib/modules/mixin/factory/index.js +5 -0
- package/src/lib/modules/mixin/factory/index.js.map +1 -0
- package/src/lib/modules/mixin/factory/zod-validate.factory.d.ts +8 -0
- package/src/lib/modules/mixin/factory/zod-validate.factory.js +55 -0
- package/src/lib/modules/mixin/factory/zod-validate.factory.js.map +1 -0
- package/src/lib/modules/mixin/helpers/bind-controller.d.ts +3 -0
- package/src/lib/modules/mixin/helpers/bind-controller.js +81 -0
- package/src/lib/modules/mixin/helpers/bind-controller.js.map +1 -0
- package/src/lib/modules/mixin/helpers/create-controller.d.ts +2 -0
- package/src/lib/modules/mixin/helpers/create-controller.js +28 -0
- package/src/lib/modules/mixin/helpers/create-controller.js.map +1 -0
- package/src/lib/modules/mixin/helpers/index.d.ts +2 -0
- package/src/lib/modules/mixin/helpers/index.js +6 -0
- package/src/lib/modules/mixin/helpers/index.js.map +1 -0
- package/src/lib/modules/mixin/helpers/utils.d.ts +9 -0
- package/src/lib/modules/mixin/helpers/utils.js +30 -0
- package/src/lib/modules/mixin/helpers/utils.js.map +1 -0
- package/src/lib/modules/mixin/interceptors/error.interceptors.d.ts +9 -0
- package/src/lib/modules/mixin/interceptors/error.interceptors.js +34 -0
- package/src/lib/modules/mixin/interceptors/error.interceptors.js.map +1 -0
- package/src/lib/modules/mixin/interceptors/index.d.ts +2 -0
- package/src/lib/modules/mixin/interceptors/index.js +6 -0
- package/src/lib/modules/mixin/interceptors/index.js.map +1 -0
- package/src/lib/modules/mixin/interceptors/log-time.interceptors.d.ts +8 -0
- package/src/lib/modules/mixin/interceptors/log-time.interceptors.js +35 -0
- package/src/lib/modules/mixin/interceptors/log-time.interceptors.js.map +1 -0
- package/src/lib/modules/mixin/mixin.module.d.ts +5 -0
- package/src/lib/modules/mixin/mixin.module.js +51 -0
- package/src/lib/modules/mixin/mixin.module.js.map +1 -0
- package/src/lib/modules/mixin/pipe/check-item-entity/check-item-entity.pipe.d.ts +6 -0
- package/src/lib/modules/mixin/pipe/check-item-entity/check-item-entity.pipe.js +35 -0
- package/src/lib/modules/mixin/pipe/check-item-entity/check-item-entity.pipe.js.map +1 -0
- package/src/lib/modules/mixin/pipe/check-item-entity/index.d.ts +1 -0
- package/src/lib/modules/mixin/pipe/check-item-entity/index.js +5 -0
- package/src/lib/modules/mixin/pipe/check-item-entity/index.js.map +1 -0
- package/src/lib/modules/mixin/pipe/index.d.ts +14 -0
- package/src/lib/modules/mixin/pipe/index.js +67 -0
- package/src/lib/modules/mixin/pipe/index.js.map +1 -0
- package/src/lib/modules/mixin/pipe/parse-relationship-name/index.d.ts +1 -0
- package/src/lib/modules/mixin/pipe/parse-relationship-name/index.js +5 -0
- package/src/lib/modules/mixin/pipe/parse-relationship-name/index.js.map +1 -0
- package/src/lib/modules/mixin/pipe/parse-relationship-name/parse-relationship-name.pipe.d.ts +7 -0
- package/src/lib/modules/mixin/pipe/parse-relationship-name/parse-relationship-name.pipe.js +35 -0
- package/src/lib/modules/mixin/pipe/parse-relationship-name/parse-relationship-name.pipe.js.map +1 -0
- package/src/lib/modules/mixin/pipe/patch-input/index.d.ts +1 -0
- package/src/lib/modules/mixin/pipe/patch-input/index.js +5 -0
- package/src/lib/modules/mixin/pipe/patch-input/index.js.map +1 -0
- package/src/lib/modules/mixin/pipe/patch-input/patch-input.pipe.d.ts +7 -0
- package/src/lib/modules/mixin/pipe/patch-input/patch-input.pipe.js +30 -0
- package/src/lib/modules/mixin/pipe/patch-input/patch-input.pipe.js.map +1 -0
- package/src/lib/modules/mixin/pipe/patch-relationship/index.d.ts +1 -0
- package/src/lib/modules/mixin/pipe/patch-relationship/index.js +5 -0
- package/src/lib/modules/mixin/pipe/patch-relationship/index.js.map +1 -0
- package/src/lib/modules/mixin/pipe/patch-relationship/patch-relationship.pipe.d.ts +7 -0
- package/src/lib/modules/mixin/pipe/patch-relationship/patch-relationship.pipe.js +30 -0
- package/src/lib/modules/mixin/pipe/patch-relationship/patch-relationship.pipe.js.map +1 -0
- package/src/lib/modules/mixin/pipe/post-input/index.d.ts +1 -0
- package/src/lib/modules/mixin/pipe/post-input/index.js +5 -0
- package/src/lib/modules/mixin/pipe/post-input/index.js.map +1 -0
- package/src/lib/modules/mixin/pipe/post-input/post-input.pipe.d.ts +7 -0
- package/src/lib/modules/mixin/pipe/post-input/post-input.pipe.js +30 -0
- package/src/lib/modules/mixin/pipe/post-input/post-input.pipe.js.map +1 -0
- package/src/lib/modules/mixin/pipe/post-relationship/index.d.ts +1 -0
- package/src/lib/modules/mixin/pipe/post-relationship/index.js +5 -0
- package/src/lib/modules/mixin/pipe/post-relationship/index.js.map +1 -0
- package/src/lib/modules/mixin/pipe/post-relationship/post-relationship.pipe.d.ts +7 -0
- package/src/lib/modules/mixin/pipe/post-relationship/post-relationship.pipe.js +30 -0
- package/src/lib/modules/mixin/pipe/post-relationship/post-relationship.pipe.js.map +1 -0
- package/src/lib/modules/mixin/pipe/query/index.d.ts +1 -0
- package/src/lib/modules/mixin/pipe/query/index.js +5 -0
- package/src/lib/modules/mixin/pipe/query/index.js.map +1 -0
- package/src/lib/modules/mixin/pipe/query/query.pipe.d.ts +6 -0
- package/src/lib/modules/mixin/pipe/query/query.pipe.js +27 -0
- package/src/lib/modules/mixin/pipe/query/query.pipe.js.map +1 -0
- package/src/lib/modules/mixin/pipe/query-check-select-field/index.d.ts +1 -0
- package/src/lib/modules/mixin/pipe/query-check-select-field/index.js +5 -0
- package/src/lib/modules/mixin/pipe/query-check-select-field/index.js.map +1 -0
- package/src/lib/modules/mixin/pipe/query-check-select-field/query-check-select-field.d.ts +6 -0
- package/src/lib/modules/mixin/pipe/query-check-select-field/query-check-select-field.js +26 -0
- package/src/lib/modules/mixin/pipe/query-check-select-field/query-check-select-field.js.map +1 -0
- package/src/lib/modules/mixin/pipe/query-filed-on-include/index.d.ts +1 -0
- package/src/lib/modules/mixin/pipe/query-filed-on-include/index.js +5 -0
- package/src/lib/modules/mixin/pipe/query-filed-on-include/index.js.map +1 -0
- package/src/lib/modules/mixin/pipe/query-filed-on-include/query-filed-in-include.pipe.d.ts +5 -0
- package/src/lib/modules/mixin/pipe/query-filed-on-include/query-filed-in-include.pipe.js +59 -0
- package/src/lib/modules/mixin/pipe/query-filed-on-include/query-filed-in-include.pipe.js.map +1 -0
- package/src/lib/modules/mixin/pipe/query-input/index.d.ts +1 -0
- package/src/lib/modules/mixin/pipe/query-input/index.js +5 -0
- package/src/lib/modules/mixin/pipe/query-input/index.js.map +1 -0
- package/src/lib/modules/mixin/pipe/query-input/query-input.pipe.d.ts +7 -0
- package/src/lib/modules/mixin/pipe/query-input/query-input.pipe.js +30 -0
- package/src/lib/modules/mixin/pipe/query-input/query-input.pipe.js.map +1 -0
- package/src/lib/modules/mixin/service/entity-param-map.service.d.ts +9 -0
- package/src/lib/modules/mixin/service/entity-param-map.service.js +36 -0
- package/src/lib/modules/mixin/service/entity-param-map.service.js.map +1 -0
- package/src/lib/modules/mixin/service/error-format.service.d.ts +6 -0
- package/src/lib/modules/mixin/service/error-format.service.js +43 -0
- package/src/lib/modules/mixin/service/error-format.service.js.map +1 -0
- package/src/lib/modules/mixin/service/index.d.ts +3 -0
- package/src/lib/modules/mixin/service/index.js +7 -0
- package/src/lib/modules/mixin/service/index.js.map +1 -0
- package/src/lib/modules/mixin/service/json-api-transformer.service.d.ts +18 -0
- package/src/lib/modules/mixin/service/json-api-transformer.service.js +228 -0
- package/src/lib/modules/mixin/service/json-api-transformer.service.js.map +1 -0
- package/src/lib/modules/mixin/swagger/filter-operand-model.d.ts +26 -0
- package/src/lib/modules/mixin/swagger/filter-operand-model.js +113 -0
- package/src/lib/modules/mixin/swagger/filter-operand-model.js.map +1 -0
- package/src/lib/modules/mixin/swagger/index.d.ts +1 -0
- package/src/lib/modules/mixin/swagger/index.js +5 -0
- package/src/lib/modules/mixin/swagger/index.js.map +1 -0
- package/src/lib/modules/mixin/swagger/method/delete-one.d.ts +4 -0
- package/src/lib/modules/mixin/swagger/method/delete-one.js +35 -0
- package/src/lib/modules/mixin/swagger/method/delete-one.js.map +1 -0
- package/src/lib/modules/mixin/swagger/method/delete-relationship.d.ts +4 -0
- package/src/lib/modules/mixin/swagger/method/delete-relationship.js +54 -0
- package/src/lib/modules/mixin/swagger/method/delete-relationship.js.map +1 -0
- package/src/lib/modules/mixin/swagger/method/get-all.d.ts +4 -0
- package/src/lib/modules/mixin/swagger/method/get-all.js +241 -0
- package/src/lib/modules/mixin/swagger/method/get-all.js.map +1 -0
- package/src/lib/modules/mixin/swagger/method/get-one.d.ts +4 -0
- package/src/lib/modules/mixin/swagger/method/get-one.js +93 -0
- package/src/lib/modules/mixin/swagger/method/get-one.js.map +1 -0
- package/src/lib/modules/mixin/swagger/method/get-relationship.d.ts +4 -0
- package/src/lib/modules/mixin/swagger/method/get-relationship.js +48 -0
- package/src/lib/modules/mixin/swagger/method/get-relationship.js.map +1 -0
- package/src/lib/modules/mixin/swagger/method/index.d.ts +24 -0
- package/src/lib/modules/mixin/swagger/method/index.js +24 -0
- package/src/lib/modules/mixin/swagger/method/index.js.map +1 -0
- package/src/lib/modules/mixin/swagger/method/patch-one.d.ts +4 -0
- package/src/lib/modules/mixin/swagger/method/patch-one.js +43 -0
- package/src/lib/modules/mixin/swagger/method/patch-one.js.map +1 -0
- package/src/lib/modules/mixin/swagger/method/patch-relationship.d.ts +4 -0
- package/src/lib/modules/mixin/swagger/method/patch-relationship.js +55 -0
- package/src/lib/modules/mixin/swagger/method/patch-relationship.js.map +1 -0
- package/src/lib/modules/mixin/swagger/method/post-one.d.ts +4 -0
- package/src/lib/modules/mixin/swagger/method/post-one.js +35 -0
- package/src/lib/modules/mixin/swagger/method/post-one.js.map +1 -0
- package/src/lib/modules/mixin/swagger/method/post-relationship.d.ts +4 -0
- package/src/lib/modules/mixin/swagger/method/post-relationship.js +55 -0
- package/src/lib/modules/mixin/swagger/method/post-relationship.js.map +1 -0
- package/src/lib/modules/mixin/swagger/swagger-bind.service.d.ts +9 -0
- package/src/lib/modules/mixin/swagger/swagger-bind.service.js +81 -0
- package/src/lib/modules/mixin/swagger/swagger-bind.service.js.map +1 -0
- package/src/lib/modules/mixin/swagger/utils.d.ts +196 -0
- package/src/lib/modules/mixin/swagger/utils.js +305 -0
- package/src/lib/modules/mixin/swagger/utils.js.map +1 -0
- package/src/lib/modules/mixin/types/binding.type.d.ts +34 -0
- package/src/lib/modules/mixin/types/binding.type.js +3 -0
- package/src/lib/modules/mixin/types/binding.type.js.map +1 -0
- package/src/lib/modules/mixin/types/decorator-options.type.d.ts +9 -0
- package/src/lib/modules/mixin/types/decorator-options.type.js +3 -0
- package/src/lib/modules/mixin/types/decorator-options.type.js.map +1 -0
- package/src/lib/modules/mixin/types/index.d.ts +7 -0
- package/src/lib/modules/mixin/types/index.js +8 -0
- package/src/lib/modules/mixin/types/index.js.map +1 -0
- package/src/lib/modules/mixin/types/module.type.d.ts +6 -0
- package/src/lib/modules/mixin/types/module.type.js +3 -0
- package/src/lib/modules/mixin/types/module.type.js.map +1 -0
- package/src/lib/modules/mixin/types/orm-service.type.d.ts +13 -0
- package/src/lib/modules/mixin/types/orm-service.type.js +3 -0
- package/src/lib/modules/mixin/types/orm-service.type.js.map +1 -0
- package/src/lib/modules/mixin/zod/index.d.ts +7 -0
- package/src/lib/modules/mixin/zod/index.js +10 -0
- package/src/lib/modules/mixin/zod/index.js.map +1 -0
- package/src/lib/modules/mixin/zod/zod-input-patch-relationship-schema/index.d.ts +53 -0
- package/src/lib/modules/mixin/zod/zod-input-patch-relationship-schema/index.js +11 -0
- package/src/lib/modules/mixin/zod/zod-input-patch-relationship-schema/index.js.map +1 -0
- package/src/lib/modules/mixin/zod/zod-input-patch-schema/index.d.ts +17 -0
- package/src/lib/modules/mixin/zod/zod-input-patch-schema/index.js +23 -0
- package/src/lib/modules/mixin/zod/zod-input-patch-schema/index.js.map +1 -0
- package/src/lib/modules/mixin/zod/zod-input-post-relationship-schema/index.d.ts +59 -0
- package/src/lib/modules/mixin/zod/zod-input-post-relationship-schema/index.js +11 -0
- package/src/lib/modules/mixin/zod/zod-input-post-relationship-schema/index.js.map +1 -0
- package/src/lib/modules/mixin/zod/zod-input-post-schema/index.d.ts +18 -0
- package/src/lib/modules/mixin/zod/zod-input-post-schema/index.js +26 -0
- package/src/lib/modules/mixin/zod/zod-input-post-schema/index.js.map +1 -0
- package/src/lib/modules/mixin/zod/zod-input-query-schema/fields.d.ts +30 -0
- package/src/lib/modules/mixin/zod/zod-input-query-schema/fields.js +45 -0
- package/src/lib/modules/mixin/zod/zod-input-query-schema/fields.js.map +1 -0
- package/src/lib/modules/mixin/zod/zod-input-query-schema/filter.d.ts +1005 -0
- package/src/lib/modules/mixin/zod/zod-input-query-schema/filter.js +118 -0
- package/src/lib/modules/mixin/zod/zod-input-query-schema/filter.js.map +1 -0
- package/src/lib/modules/mixin/zod/zod-input-query-schema/include.d.ts +3 -0
- package/src/lib/modules/mixin/zod/zod-input-query-schema/include.js +19 -0
- package/src/lib/modules/mixin/zod/zod-input-query-schema/include.js.map +1 -0
- package/src/lib/modules/mixin/zod/zod-input-query-schema/index.d.ts +4965 -0
- package/src/lib/modules/mixin/zod/zod-input-query-schema/index.js +22 -0
- package/src/lib/modules/mixin/zod/zod-input-query-schema/index.js.map +1 -0
- package/src/lib/modules/mixin/zod/zod-input-query-schema/sort.d.ts +3 -0
- package/src/lib/modules/mixin/zod/zod-input-query-schema/sort.js +34 -0
- package/src/lib/modules/mixin/zod/zod-input-query-schema/sort.js.map +1 -0
- package/src/lib/modules/mixin/zod/zod-query-schema/fields.d.ts +15 -0
- package/src/lib/modules/mixin/zod/zod-query-schema/fields.js +35 -0
- package/src/lib/modules/mixin/zod/zod-query-schema/fields.js.map +1 -0
- package/src/lib/modules/mixin/zod/zod-query-schema/filter.d.ts +127 -0
- package/src/lib/modules/mixin/zod/zod-query-schema/filter.js +110 -0
- package/src/lib/modules/mixin/zod/zod-query-schema/filter.js.map +1 -0
- package/src/lib/modules/mixin/zod/zod-query-schema/include.d.ts +6 -0
- package/src/lib/modules/mixin/zod/zod-query-schema/include.js +17 -0
- package/src/lib/modules/mixin/zod/zod-query-schema/include.js.map +1 -0
- package/src/lib/modules/mixin/zod/zod-query-schema/index.d.ts +22 -0
- package/src/lib/modules/mixin/zod/zod-query-schema/index.js +34 -0
- package/src/lib/modules/mixin/zod/zod-query-schema/index.js.map +1 -0
- package/src/lib/modules/mixin/zod/zod-query-schema/sort.d.ts +19 -0
- package/src/lib/modules/mixin/zod/zod-query-schema/sort.js +35 -0
- package/src/lib/modules/mixin/zod/zod-query-schema/sort.js.map +1 -0
- package/src/lib/modules/mixin/zod/zod-share/attributes.d.ts +31 -0
- package/src/lib/modules/mixin/zod/zod-share/attributes.js +85 -0
- package/src/lib/modules/mixin/zod/zod-share/attributes.js.map +1 -0
- package/src/lib/modules/mixin/zod/zod-share/id.d.ts +5 -0
- package/src/lib/modules/mixin/zod/zod-share/id.js +14 -0
- package/src/lib/modules/mixin/zod/zod-share/id.js.map +1 -0
- package/src/lib/modules/mixin/zod/zod-share/index.d.ts +6 -0
- package/src/lib/modules/mixin/zod/zod-share/index.js +10 -0
- package/src/lib/modules/mixin/zod/zod-share/index.js.map +1 -0
- package/src/lib/modules/mixin/zod/zod-share/page.d.ts +12 -0
- package/src/lib/modules/mixin/zod/zod-share/page.js +22 -0
- package/src/lib/modules/mixin/zod/zod-share/page.js.map +1 -0
- package/src/lib/modules/mixin/zod/zod-share/rel-data.d.ts +50 -0
- package/src/lib/modules/mixin/zod/zod-share/rel-data.js +26 -0
- package/src/lib/modules/mixin/zod/zod-share/rel-data.js.map +1 -0
- package/src/lib/modules/mixin/zod/zod-share/relationships.d.ts +325 -0
- package/src/lib/modules/mixin/zod/zod-share/relationships.js +34 -0
- package/src/lib/modules/mixin/zod/zod-share/relationships.js.map +1 -0
- package/src/lib/modules/mixin/zod/zod-share/type.d.ts +8 -0
- package/src/lib/modules/mixin/zod/zod-share/type.js +8 -0
- package/src/lib/modules/mixin/zod/zod-share/type.js.map +1 -0
- package/src/lib/modules/mixin/zod/zod-utils.d.ts +15 -0
- package/src/lib/modules/mixin/zod/zod-utils.js +72 -0
- package/src/lib/modules/mixin/zod/zod-utils.js.map +1 -0
- package/src/lib/types/common-type.d.ts +5 -0
- package/src/lib/types/common-type.js +3 -0
- package/src/lib/types/common-type.js.map +1 -0
- package/src/lib/types/entity-param.type.d.ts +49 -0
- package/src/lib/types/entity-param.type.js +14 -0
- package/src/lib/types/entity-param.type.js.map +1 -0
- package/src/lib/types/error.types.d.ts +10 -0
- package/src/lib/types/error.types.js +3 -0
- package/src/lib/types/error.types.js.map +1 -0
- package/src/lib/types/index.d.ts +5 -0
- package/src/lib/types/index.js +9 -0
- package/src/lib/types/index.js.map +1 -0
- package/src/lib/types/module-options.types.d.ts +47 -0
- package/src/lib/types/module-options.types.js +3 -0
- package/src/lib/types/module-options.types.js.map +1 -0
- package/src/lib/types/utils-type.d.ts +12 -0
- package/src/lib/types/utils-type.js +3 -0
- package/src/lib/types/utils-type.js.map +1 -0
- package/src/lib/utils/index.d.ts +1 -0
- package/src/lib/utils/index.js +5 -0
- package/src/lib/utils/index.js.map +1 -0
- package/src/lib/utils/module-helper.d.ts +4 -0
- package/src/lib/utils/module-helper.js +27 -0
- package/src/lib/utils/module-helper.js.map +1 -0
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Type } from '@nestjs/common';
|
|
2
|
+
import { EntityClass } from '@klerick/json-api-nestjs-shared';
|
|
3
|
+
import { EntityParamMapService } from '../../service';
|
|
4
|
+
export declare function postRelationship<E extends object, IdKey extends string = 'id'>(controller: Type<any>, descriptor: PropertyDescriptor, entity: EntityClass<E>, mapEntity: EntityParamMapService<E, IdKey>, methodName: string): void;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.postRelationship = postRelationship;
|
|
4
|
+
const zod_openapi_1 = require("@anatine/zod-openapi");
|
|
5
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
6
|
+
const utils_1 = require("../utils");
|
|
7
|
+
const zod_1 = require("../../zod");
|
|
8
|
+
const types_1 = require("../../../../types");
|
|
9
|
+
function postRelationship(controller, descriptor, entity, mapEntity, methodName) {
|
|
10
|
+
const entityName = entity.name;
|
|
11
|
+
const { relations, primaryColumnType } = mapEntity.getParamMap(entity);
|
|
12
|
+
(0, swagger_1.ApiParam)({
|
|
13
|
+
name: 'id',
|
|
14
|
+
required: true,
|
|
15
|
+
type: primaryColumnType === types_1.TypeField.number ? 'integer' : 'string',
|
|
16
|
+
description: `ID of resource "${entityName}"`,
|
|
17
|
+
})(controller, methodName, descriptor);
|
|
18
|
+
(0, swagger_1.ApiParam)({
|
|
19
|
+
name: 'relName',
|
|
20
|
+
required: true,
|
|
21
|
+
type: 'string',
|
|
22
|
+
enum: relations,
|
|
23
|
+
description: `Relation name of resource "${entityName}"`,
|
|
24
|
+
})(controller, methodName, descriptor);
|
|
25
|
+
(0, swagger_1.ApiBody)({
|
|
26
|
+
description: `Json api schema for update "${entityName}" item`,
|
|
27
|
+
schema: (0, zod_openapi_1.generateSchema)(zod_1.zodPatchRelationship),
|
|
28
|
+
required: true,
|
|
29
|
+
})(controller, methodName, descriptor);
|
|
30
|
+
(0, swagger_1.ApiOperation)({
|
|
31
|
+
summary: `Create list of relation for resource "${entityName}"`,
|
|
32
|
+
operationId: `${controller.constructor.name}_${methodName}`,
|
|
33
|
+
})(controller, methodName, descriptor);
|
|
34
|
+
(0, swagger_1.ApiResponse)({
|
|
35
|
+
status: 200,
|
|
36
|
+
schema: utils_1.schemaTypeForRelation,
|
|
37
|
+
description: `Item/s of relation for "${entityName}" has been created`,
|
|
38
|
+
})(controller, methodName, descriptor);
|
|
39
|
+
(0, swagger_1.ApiResponse)({
|
|
40
|
+
status: 400,
|
|
41
|
+
description: 'Wrong url parameters',
|
|
42
|
+
schema: utils_1.errorSchema,
|
|
43
|
+
})(controller, methodName, descriptor);
|
|
44
|
+
(0, swagger_1.ApiResponse)({
|
|
45
|
+
status: 422,
|
|
46
|
+
description: 'Incorrect type for relation',
|
|
47
|
+
schema: utils_1.errorSchema,
|
|
48
|
+
})(controller, methodName, descriptor);
|
|
49
|
+
(0, swagger_1.ApiResponse)({
|
|
50
|
+
status: 404,
|
|
51
|
+
description: 'Resource not found ',
|
|
52
|
+
schema: utils_1.errorSchema,
|
|
53
|
+
})(controller, methodName, descriptor);
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=post-relationship.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"post-relationship.js","sourceRoot":"","sources":["../../../../../../../../../../libs/json-api/json-api-nestjs/src/lib/modules/mixin/swagger/method/post-relationship.ts"],"names":[],"mappings":";;AAcA,4CA8DC;AA3ED,sDAAsD;AAKtD,6CAA+E;AAG/E,oCAA8D;AAC9D,mCAAiD;AACjD,6CAA8C;AAG9C,SAAgB,gBAAgB,CAC9B,UAAqB,EACrB,UAA8B,EAC9B,MAAsB,EACtB,SAA0C,EAC1C,UAAkB;IAElB,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;IAE/B,MAAM,EAAE,SAAS,EAAE,iBAAiB,EAAE,GAAG,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAEvE,IAAA,kBAAQ,EAAC;QACP,IAAI,EAAE,IAAI;QACV,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,iBAAiB,KAAK,iBAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;QACnE,WAAW,EAAE,mBAAmB,UAAU,GAAG;KAC9C,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAEvC,IAAA,kBAAQ,EAAC;QACP,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,QAAQ;QACd,IAAI,EAAE,SAAgB;QACtB,WAAW,EAAE,8BAA8B,UAAU,GAAG;KACzD,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAEvC,IAAA,iBAAO,EAAC;QACN,WAAW,EAAE,+BAA+B,UAAU,QAAQ;QAC9D,MAAM,EAAE,IAAA,4BAAc,EAAC,0BAAoB,CAExB;QACnB,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAEvC,IAAA,sBAAY,EAAC;QACX,OAAO,EAAE,yCAAyC,UAAU,GAAG;QAC/D,WAAW,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,IAAI,IAAI,UAAU,EAAE;KAC5D,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAEvC,IAAA,qBAAW,EAAC;QACV,MAAM,EAAE,GAAG;QACX,MAAM,EAAE,6BAAqB;QAC7B,WAAW,EAAE,2BAA2B,UAAU,oBAAoB;KACvE,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAEvC,IAAA,qBAAW,EAAC;QACV,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,sBAAsB;QACnC,MAAM,EAAE,mBAAW;KACpB,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAEvC,IAAA,qBAAW,EAAC;QACV,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,6BAA6B;QAC1C,MAAM,EAAE,mBAAW;KACpB,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAEvC,IAAA,qBAAW,EAAC;QACV,MAAM,EAAE,GAAG;QACX,WAAW,EAAE,qBAAqB;QAClC,MAAM,EAAE,mBAAW;KACpB,CAAC,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { OnModuleInit } from '@nestjs/common';
|
|
2
|
+
export declare class SwaggerBindService<E extends object, IdKey extends string = 'id'> implements OnModuleInit {
|
|
3
|
+
private entity;
|
|
4
|
+
private discoveryService;
|
|
5
|
+
private config;
|
|
6
|
+
private mapEntity;
|
|
7
|
+
onModuleInit(): void;
|
|
8
|
+
initSwagger(): void;
|
|
9
|
+
}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SwaggerBindService = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@nestjs/common");
|
|
6
|
+
const constants_1 = require("@nestjs/swagger/dist/constants");
|
|
7
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
8
|
+
const core_1 = require("@nestjs/core");
|
|
9
|
+
const json_api_nestjs_shared_1 = require("@klerick/json-api-nestjs-shared");
|
|
10
|
+
const constants_2 = require("@nestjs/common/constants");
|
|
11
|
+
const constants_3 = require("../../../constants");
|
|
12
|
+
const helpers_1 = require("../helpers");
|
|
13
|
+
const controllers_1 = require("../controllers");
|
|
14
|
+
const filter_operand_model_1 = require("./filter-operand-model");
|
|
15
|
+
const utils_1 = require("./utils");
|
|
16
|
+
const bindings_1 = require("../config/bindings");
|
|
17
|
+
const method_1 = require("./method");
|
|
18
|
+
const service_1 = require("../service");
|
|
19
|
+
let SwaggerBindService = class SwaggerBindService {
|
|
20
|
+
entity;
|
|
21
|
+
discoveryService;
|
|
22
|
+
config;
|
|
23
|
+
mapEntity;
|
|
24
|
+
onModuleInit() {
|
|
25
|
+
this.initSwagger();
|
|
26
|
+
}
|
|
27
|
+
initSwagger() {
|
|
28
|
+
const controllerName = (0, helpers_1.nameIt)((0, helpers_1.getProviderName)(this.entity, constants_3.JSON_API_CONTROLLER_POSTFIX), controllers_1.JsonBaseController).name;
|
|
29
|
+
const controllerInst = this.discoveryService
|
|
30
|
+
.getControllers()
|
|
31
|
+
.find((i) => i.name === controllerName ||
|
|
32
|
+
this.entity ===
|
|
33
|
+
Reflect.getMetadata(constants_3.JSON_API_DECORATOR_ENTITY, i.instance.constructor));
|
|
34
|
+
if (!controllerInst)
|
|
35
|
+
throw new Error(`Controller for ${this.entity.name} is empty`);
|
|
36
|
+
const mapProps = this.mapEntity.getParamMap(this.entity);
|
|
37
|
+
if (!mapProps)
|
|
38
|
+
throw new Error(`ZodEntityProps for ${this.entity.name} is empty`);
|
|
39
|
+
const controller = controllerInst.instance.constructor;
|
|
40
|
+
const apiTag = Reflect.getMetadata(constants_1.DECORATORS.API_TAGS, controller);
|
|
41
|
+
if (!apiTag) {
|
|
42
|
+
(0, swagger_1.ApiTags)(this.config['overrideRoute'] || this.entity.name)(controller);
|
|
43
|
+
}
|
|
44
|
+
(0, swagger_1.ApiTags)(this.entity.name)(controller);
|
|
45
|
+
(0, swagger_1.ApiExtraModels)(filter_operand_model_1.FilterOperand)(controller);
|
|
46
|
+
(0, swagger_1.ApiExtraModels)((0, utils_1.createApiModels)(this.entity, mapProps))(controller);
|
|
47
|
+
const { allowMethod = json_api_nestjs_shared_1.ObjectTyped.keys(bindings_1.Bindings) } = this.config;
|
|
48
|
+
for (const method of json_api_nestjs_shared_1.ObjectTyped.keys(bindings_1.Bindings)) {
|
|
49
|
+
if (!allowMethod.includes(method))
|
|
50
|
+
continue;
|
|
51
|
+
if (!(method in method_1.swaggerMethod))
|
|
52
|
+
continue;
|
|
53
|
+
const descriptor = Reflect.getOwnPropertyDescriptor(controller.prototype, method);
|
|
54
|
+
if (!descriptor)
|
|
55
|
+
throw new Error(`Descriptor for entity controller ${this.entity.name} is empty`);
|
|
56
|
+
method_1.swaggerMethod[method](controller.prototype, descriptor, this.entity, this.mapEntity, method);
|
|
57
|
+
Reflect.defineMetadata(constants_2.PARAMTYPES_METADATA, [Object], controller.prototype, method);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
exports.SwaggerBindService = SwaggerBindService;
|
|
62
|
+
tslib_1.__decorate([
|
|
63
|
+
(0, common_1.Inject)(constants_3.CURRENT_ENTITY),
|
|
64
|
+
tslib_1.__metadata("design:type", Object)
|
|
65
|
+
], SwaggerBindService.prototype, "entity", void 0);
|
|
66
|
+
tslib_1.__decorate([
|
|
67
|
+
(0, common_1.Inject)(core_1.DiscoveryService),
|
|
68
|
+
tslib_1.__metadata("design:type", core_1.DiscoveryService)
|
|
69
|
+
], SwaggerBindService.prototype, "discoveryService", void 0);
|
|
70
|
+
tslib_1.__decorate([
|
|
71
|
+
(0, common_1.Inject)(constants_3.CONTROLLER_OPTIONS_TOKEN),
|
|
72
|
+
tslib_1.__metadata("design:type", Object)
|
|
73
|
+
], SwaggerBindService.prototype, "config", void 0);
|
|
74
|
+
tslib_1.__decorate([
|
|
75
|
+
(0, common_1.Inject)(service_1.EntityParamMapService),
|
|
76
|
+
tslib_1.__metadata("design:type", service_1.EntityParamMapService)
|
|
77
|
+
], SwaggerBindService.prototype, "mapEntity", void 0);
|
|
78
|
+
exports.SwaggerBindService = SwaggerBindService = tslib_1.__decorate([
|
|
79
|
+
(0, common_1.Injectable)()
|
|
80
|
+
], SwaggerBindService);
|
|
81
|
+
//# sourceMappingURL=swagger-bind.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swagger-bind.service.js","sourceRoot":"","sources":["../../../../../../../../../libs/json-api/json-api-nestjs/src/lib/modules/mixin/swagger/swagger-bind.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { SchemaObject } from '@nestjs/swagger/dist/interfaces/open-api-spec.interface';
|
|
2
|
+
import { AnyEntity, EntityClass, PropertyKeys } from '@klerick/json-api-nestjs-shared';
|
|
3
|
+
import { EntityParam } from '../../../types';
|
|
4
|
+
import { EntityParamMap } from '../types';
|
|
5
|
+
import { EntityParamMapService } from '../service';
|
|
6
|
+
export declare function assertIsKeysOfObject<E extends object>(object: EntityClass<E>, element: any): asserts element is readonly [keyof E];
|
|
7
|
+
export declare function assertIsKeyOfObject<E extends object>(object: EntityClass<E>, element: unknown): asserts element is PropertyKeys<E>;
|
|
8
|
+
export declare const errorSchema: {
|
|
9
|
+
type: string;
|
|
10
|
+
properties: {
|
|
11
|
+
statusCode: {
|
|
12
|
+
type: string;
|
|
13
|
+
};
|
|
14
|
+
error: {
|
|
15
|
+
type: string;
|
|
16
|
+
};
|
|
17
|
+
message: {
|
|
18
|
+
type: string;
|
|
19
|
+
items: {
|
|
20
|
+
type: string;
|
|
21
|
+
properties: {
|
|
22
|
+
code: {
|
|
23
|
+
type: string;
|
|
24
|
+
};
|
|
25
|
+
message: {
|
|
26
|
+
type: string;
|
|
27
|
+
};
|
|
28
|
+
path: {
|
|
29
|
+
type: string;
|
|
30
|
+
items: {
|
|
31
|
+
type: string;
|
|
32
|
+
};
|
|
33
|
+
};
|
|
34
|
+
keys: {
|
|
35
|
+
type: string;
|
|
36
|
+
items: {
|
|
37
|
+
type: string;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
required: string[];
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
export declare function jsonSchemaResponse<E extends object, IdKey extends string = 'id'>(entity: EntityClass<E>, mapEntity: EntityParamMapService<E, IdKey>, array?: boolean): {
|
|
47
|
+
type: string;
|
|
48
|
+
properties: {
|
|
49
|
+
meta: {
|
|
50
|
+
type: string;
|
|
51
|
+
};
|
|
52
|
+
data: {
|
|
53
|
+
type: string;
|
|
54
|
+
properties: {
|
|
55
|
+
type: {
|
|
56
|
+
type: string;
|
|
57
|
+
const: string;
|
|
58
|
+
};
|
|
59
|
+
id: {
|
|
60
|
+
type: string;
|
|
61
|
+
};
|
|
62
|
+
attributes: {
|
|
63
|
+
type: string;
|
|
64
|
+
properties: Record<string, SchemaObject>;
|
|
65
|
+
};
|
|
66
|
+
relationships: {
|
|
67
|
+
type: string;
|
|
68
|
+
properties: Record<string, SchemaObject>;
|
|
69
|
+
};
|
|
70
|
+
links: {
|
|
71
|
+
type: string;
|
|
72
|
+
properties: {
|
|
73
|
+
self: {
|
|
74
|
+
type: string;
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
required: string[];
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
} | {
|
|
81
|
+
type: string;
|
|
82
|
+
items: {
|
|
83
|
+
type: string;
|
|
84
|
+
properties: {
|
|
85
|
+
type: {
|
|
86
|
+
type: string;
|
|
87
|
+
const: string;
|
|
88
|
+
};
|
|
89
|
+
id: {
|
|
90
|
+
type: string;
|
|
91
|
+
};
|
|
92
|
+
attributes: {
|
|
93
|
+
type: string;
|
|
94
|
+
properties: Record<string, SchemaObject>;
|
|
95
|
+
};
|
|
96
|
+
relationships: {
|
|
97
|
+
type: string;
|
|
98
|
+
properties: Record<string, SchemaObject>;
|
|
99
|
+
};
|
|
100
|
+
links: {
|
|
101
|
+
type: string;
|
|
102
|
+
properties: {
|
|
103
|
+
self: {
|
|
104
|
+
type: string;
|
|
105
|
+
};
|
|
106
|
+
};
|
|
107
|
+
required: string[];
|
|
108
|
+
};
|
|
109
|
+
};
|
|
110
|
+
};
|
|
111
|
+
};
|
|
112
|
+
includes: {
|
|
113
|
+
type: string;
|
|
114
|
+
items: {
|
|
115
|
+
type: string;
|
|
116
|
+
properties: {
|
|
117
|
+
type: {
|
|
118
|
+
type: string;
|
|
119
|
+
};
|
|
120
|
+
id: {
|
|
121
|
+
type: string;
|
|
122
|
+
};
|
|
123
|
+
attributes: {
|
|
124
|
+
type: string;
|
|
125
|
+
};
|
|
126
|
+
relationships: {
|
|
127
|
+
type: string;
|
|
128
|
+
properties: {
|
|
129
|
+
relationName: {
|
|
130
|
+
properties: {
|
|
131
|
+
links: {
|
|
132
|
+
type: string;
|
|
133
|
+
properties: {
|
|
134
|
+
self: {
|
|
135
|
+
type: string;
|
|
136
|
+
};
|
|
137
|
+
};
|
|
138
|
+
required: string[];
|
|
139
|
+
};
|
|
140
|
+
};
|
|
141
|
+
required: string[];
|
|
142
|
+
};
|
|
143
|
+
};
|
|
144
|
+
};
|
|
145
|
+
links: {
|
|
146
|
+
type: string;
|
|
147
|
+
properties: {
|
|
148
|
+
self: {
|
|
149
|
+
type: string;
|
|
150
|
+
};
|
|
151
|
+
};
|
|
152
|
+
required: string[];
|
|
153
|
+
};
|
|
154
|
+
};
|
|
155
|
+
required: string[];
|
|
156
|
+
};
|
|
157
|
+
};
|
|
158
|
+
};
|
|
159
|
+
required: string[];
|
|
160
|
+
};
|
|
161
|
+
export declare function createApiModels<E extends object>(entity: EntityClass<E>, mapEntity: EntityParam<E>): EntityClass<E>;
|
|
162
|
+
export declare const schemaTypeForRelation: {
|
|
163
|
+
type: string;
|
|
164
|
+
properties: {
|
|
165
|
+
data: {
|
|
166
|
+
oneOf: ({
|
|
167
|
+
type: string;
|
|
168
|
+
properties: {
|
|
169
|
+
type: {
|
|
170
|
+
type: string;
|
|
171
|
+
};
|
|
172
|
+
id: {
|
|
173
|
+
type: string;
|
|
174
|
+
};
|
|
175
|
+
};
|
|
176
|
+
} | {
|
|
177
|
+
type: string;
|
|
178
|
+
items?: undefined;
|
|
179
|
+
} | {
|
|
180
|
+
type: string;
|
|
181
|
+
items: {
|
|
182
|
+
type: string;
|
|
183
|
+
properties: {
|
|
184
|
+
type: {
|
|
185
|
+
type: string;
|
|
186
|
+
};
|
|
187
|
+
id: {
|
|
188
|
+
type: string;
|
|
189
|
+
};
|
|
190
|
+
};
|
|
191
|
+
};
|
|
192
|
+
})[];
|
|
193
|
+
};
|
|
194
|
+
};
|
|
195
|
+
};
|
|
196
|
+
export declare function getEntityMapProps<E extends object>(mapEntity: EntityParamMap<EntityClass<AnyEntity>>, entity: EntityClass<E>): EntityParam<EntityClass<object>>;
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.schemaTypeForRelation = exports.errorSchema = void 0;
|
|
4
|
+
exports.assertIsKeysOfObject = assertIsKeysOfObject;
|
|
5
|
+
exports.assertIsKeyOfObject = assertIsKeyOfObject;
|
|
6
|
+
exports.jsonSchemaResponse = jsonSchemaResponse;
|
|
7
|
+
exports.createApiModels = createApiModels;
|
|
8
|
+
exports.getEntityMapProps = getEntityMapProps;
|
|
9
|
+
const swagger_1 = require("@nestjs/swagger");
|
|
10
|
+
const json_api_nestjs_shared_1 = require("@klerick/json-api-nestjs-shared");
|
|
11
|
+
const change_case_commonjs_1 = require("change-case-commonjs");
|
|
12
|
+
const types_1 = require("../../../types");
|
|
13
|
+
function assertIsKeysOfObject(object, element) {
|
|
14
|
+
if (!Array.isArray(element)) {
|
|
15
|
+
throw new Error(element + ' is not keys of ' + object.name);
|
|
16
|
+
}
|
|
17
|
+
if (false)
|
|
18
|
+
throw new Error(element + ' not exist in ' + object.name);
|
|
19
|
+
}
|
|
20
|
+
function assertIsKeyOfObject(object, element) {
|
|
21
|
+
if (false)
|
|
22
|
+
throw new Error(element + 'not exist in ' + object.name);
|
|
23
|
+
}
|
|
24
|
+
exports.errorSchema = {
|
|
25
|
+
type: 'object',
|
|
26
|
+
properties: {
|
|
27
|
+
statusCode: {
|
|
28
|
+
type: 'number',
|
|
29
|
+
},
|
|
30
|
+
error: {
|
|
31
|
+
type: 'string',
|
|
32
|
+
},
|
|
33
|
+
message: {
|
|
34
|
+
type: 'array',
|
|
35
|
+
items: {
|
|
36
|
+
type: 'object',
|
|
37
|
+
properties: {
|
|
38
|
+
code: {
|
|
39
|
+
type: 'string',
|
|
40
|
+
},
|
|
41
|
+
message: {
|
|
42
|
+
type: 'string',
|
|
43
|
+
},
|
|
44
|
+
path: {
|
|
45
|
+
type: 'array',
|
|
46
|
+
items: {
|
|
47
|
+
type: 'string',
|
|
48
|
+
},
|
|
49
|
+
},
|
|
50
|
+
keys: {
|
|
51
|
+
type: 'array',
|
|
52
|
+
items: {
|
|
53
|
+
type: 'string',
|
|
54
|
+
},
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
required: ['code', 'message', 'path'],
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
};
|
|
62
|
+
function jsonSchemaResponse(entity, mapEntity, array = false) {
|
|
63
|
+
const { propsType, relations, relationProperty, primaryColumnName } = mapEntity.getParamMap(entity);
|
|
64
|
+
assertIsKeysOfObject(entity, relations);
|
|
65
|
+
const dataType = {
|
|
66
|
+
type: 'object',
|
|
67
|
+
properties: {
|
|
68
|
+
type: {
|
|
69
|
+
type: 'string',
|
|
70
|
+
const: (0, change_case_commonjs_1.kebabCase)(entity.name),
|
|
71
|
+
},
|
|
72
|
+
id: {
|
|
73
|
+
type: 'string',
|
|
74
|
+
},
|
|
75
|
+
attributes: {
|
|
76
|
+
type: 'object',
|
|
77
|
+
properties: json_api_nestjs_shared_1.ObjectTyped.entries(propsType)
|
|
78
|
+
.filter(([name]) => name !== primaryColumnName)
|
|
79
|
+
.reduce((acum, [name, type]) => {
|
|
80
|
+
assertIsKeyOfObject(entity, name);
|
|
81
|
+
switch (type) {
|
|
82
|
+
case types_1.TypeField.array:
|
|
83
|
+
acum[name.toString()] = {
|
|
84
|
+
type: 'array',
|
|
85
|
+
items: {
|
|
86
|
+
type: 'string',
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
break;
|
|
90
|
+
case types_1.TypeField.date:
|
|
91
|
+
acum[name.toString()] = {
|
|
92
|
+
format: 'date-time',
|
|
93
|
+
type: 'string',
|
|
94
|
+
};
|
|
95
|
+
break;
|
|
96
|
+
case types_1.TypeField.number:
|
|
97
|
+
acum[name.toString()] = {
|
|
98
|
+
type: 'integer',
|
|
99
|
+
};
|
|
100
|
+
break;
|
|
101
|
+
case types_1.TypeField.boolean:
|
|
102
|
+
acum[name.toString()] = {
|
|
103
|
+
type: 'boolean',
|
|
104
|
+
};
|
|
105
|
+
break;
|
|
106
|
+
default:
|
|
107
|
+
acum[name.toString()] = {
|
|
108
|
+
type: 'string',
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
return acum;
|
|
112
|
+
}, {}),
|
|
113
|
+
},
|
|
114
|
+
relationships: {
|
|
115
|
+
type: 'object',
|
|
116
|
+
properties: json_api_nestjs_shared_1.ObjectTyped.keys(relationProperty).reduce((acum, name) => {
|
|
117
|
+
const dataItem = {
|
|
118
|
+
type: 'object',
|
|
119
|
+
properties: {
|
|
120
|
+
type: {
|
|
121
|
+
type: 'string',
|
|
122
|
+
const: mapEntity.getParamMap(Reflect.get(relationProperty, name).entityClass).typeName,
|
|
123
|
+
},
|
|
124
|
+
id: {
|
|
125
|
+
type: 'string',
|
|
126
|
+
},
|
|
127
|
+
},
|
|
128
|
+
required: ['type', 'id'],
|
|
129
|
+
};
|
|
130
|
+
const dataArray = {
|
|
131
|
+
type: 'array',
|
|
132
|
+
items: dataItem,
|
|
133
|
+
};
|
|
134
|
+
acum[name] = {
|
|
135
|
+
type: 'object',
|
|
136
|
+
properties: {
|
|
137
|
+
links: {
|
|
138
|
+
type: 'object',
|
|
139
|
+
properties: {
|
|
140
|
+
self: {
|
|
141
|
+
type: 'string',
|
|
142
|
+
},
|
|
143
|
+
},
|
|
144
|
+
required: ['self'],
|
|
145
|
+
},
|
|
146
|
+
data: Reflect.get(relationProperty, name).isArray
|
|
147
|
+
? dataArray
|
|
148
|
+
: dataItem,
|
|
149
|
+
},
|
|
150
|
+
required: ['links'],
|
|
151
|
+
};
|
|
152
|
+
return acum;
|
|
153
|
+
}, {}),
|
|
154
|
+
},
|
|
155
|
+
links: {
|
|
156
|
+
type: 'object',
|
|
157
|
+
properties: {
|
|
158
|
+
self: {
|
|
159
|
+
type: 'string',
|
|
160
|
+
},
|
|
161
|
+
},
|
|
162
|
+
required: ['self'],
|
|
163
|
+
},
|
|
164
|
+
},
|
|
165
|
+
};
|
|
166
|
+
const dataTypeArra = {
|
|
167
|
+
type: 'array',
|
|
168
|
+
items: dataType,
|
|
169
|
+
};
|
|
170
|
+
return {
|
|
171
|
+
type: 'object',
|
|
172
|
+
properties: {
|
|
173
|
+
meta: {
|
|
174
|
+
type: 'object',
|
|
175
|
+
},
|
|
176
|
+
data: array ? dataTypeArra : dataType,
|
|
177
|
+
includes: {
|
|
178
|
+
type: 'array',
|
|
179
|
+
items: {
|
|
180
|
+
type: 'object',
|
|
181
|
+
properties: {
|
|
182
|
+
type: {
|
|
183
|
+
type: 'string',
|
|
184
|
+
},
|
|
185
|
+
id: {
|
|
186
|
+
type: 'string',
|
|
187
|
+
},
|
|
188
|
+
attributes: {
|
|
189
|
+
type: 'object',
|
|
190
|
+
},
|
|
191
|
+
relationships: {
|
|
192
|
+
type: 'object',
|
|
193
|
+
properties: {
|
|
194
|
+
relationName: {
|
|
195
|
+
properties: {
|
|
196
|
+
links: {
|
|
197
|
+
type: 'object',
|
|
198
|
+
properties: {
|
|
199
|
+
self: {
|
|
200
|
+
type: 'string',
|
|
201
|
+
},
|
|
202
|
+
},
|
|
203
|
+
required: ['self'],
|
|
204
|
+
},
|
|
205
|
+
},
|
|
206
|
+
required: ['links'],
|
|
207
|
+
},
|
|
208
|
+
},
|
|
209
|
+
},
|
|
210
|
+
links: {
|
|
211
|
+
type: 'object',
|
|
212
|
+
properties: {
|
|
213
|
+
self: {
|
|
214
|
+
type: 'string',
|
|
215
|
+
},
|
|
216
|
+
},
|
|
217
|
+
required: ['self'],
|
|
218
|
+
},
|
|
219
|
+
},
|
|
220
|
+
required: ['type', 'id', 'attributes'],
|
|
221
|
+
},
|
|
222
|
+
},
|
|
223
|
+
},
|
|
224
|
+
required: ['meta', 'data'],
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
function createApiModels(entity, mapEntity) {
|
|
228
|
+
const { propsType, props, relations, propsNullable, relationProperty } = mapEntity;
|
|
229
|
+
assertIsKeysOfObject(entity, propsNullable);
|
|
230
|
+
assertIsKeysOfObject(entity, relations);
|
|
231
|
+
for (const name of props) {
|
|
232
|
+
let currentType;
|
|
233
|
+
let required = false;
|
|
234
|
+
let isArray = false;
|
|
235
|
+
assertIsKeyOfObject(entity, name);
|
|
236
|
+
required = !propsNullable.includes(name);
|
|
237
|
+
const type = propsType[name];
|
|
238
|
+
isArray = type === 'array';
|
|
239
|
+
switch (type) {
|
|
240
|
+
case types_1.TypeField.date:
|
|
241
|
+
currentType = Date;
|
|
242
|
+
break;
|
|
243
|
+
case types_1.TypeField.number:
|
|
244
|
+
currentType = Number;
|
|
245
|
+
break;
|
|
246
|
+
case types_1.TypeField.boolean:
|
|
247
|
+
currentType = Boolean;
|
|
248
|
+
break;
|
|
249
|
+
default:
|
|
250
|
+
currentType = String;
|
|
251
|
+
}
|
|
252
|
+
if (relations.includes(name)) {
|
|
253
|
+
const propsRel = Reflect.get(relationProperty, name);
|
|
254
|
+
currentType = propsRel.entityClass;
|
|
255
|
+
isArray = propsRel.isArray;
|
|
256
|
+
}
|
|
257
|
+
(0, swagger_1.ApiProperty)({
|
|
258
|
+
required,
|
|
259
|
+
isArray,
|
|
260
|
+
type: () => currentType,
|
|
261
|
+
})(entity.prototype, name.toString());
|
|
262
|
+
}
|
|
263
|
+
for (const name of relations) {
|
|
264
|
+
const propsRel = Reflect.get(relationProperty, name);
|
|
265
|
+
(0, swagger_1.ApiProperty)({
|
|
266
|
+
required: !propsRel.nullable,
|
|
267
|
+
isArray: propsRel.isArray,
|
|
268
|
+
type: propsRel.entityClass,
|
|
269
|
+
})(entity.prototype, name.toString());
|
|
270
|
+
}
|
|
271
|
+
return entity;
|
|
272
|
+
}
|
|
273
|
+
const dataType = {
|
|
274
|
+
type: 'object',
|
|
275
|
+
properties: {
|
|
276
|
+
type: {
|
|
277
|
+
type: 'string',
|
|
278
|
+
},
|
|
279
|
+
id: {
|
|
280
|
+
type: 'string',
|
|
281
|
+
},
|
|
282
|
+
},
|
|
283
|
+
};
|
|
284
|
+
exports.schemaTypeForRelation = {
|
|
285
|
+
type: 'object',
|
|
286
|
+
properties: {
|
|
287
|
+
data: {
|
|
288
|
+
oneOf: [
|
|
289
|
+
dataType,
|
|
290
|
+
{ type: 'null' },
|
|
291
|
+
{
|
|
292
|
+
type: 'array',
|
|
293
|
+
items: dataType,
|
|
294
|
+
},
|
|
295
|
+
],
|
|
296
|
+
},
|
|
297
|
+
},
|
|
298
|
+
};
|
|
299
|
+
function getEntityMapProps(mapEntity, entity) {
|
|
300
|
+
const entityMap = mapEntity.get(entity);
|
|
301
|
+
if (!entityMap)
|
|
302
|
+
throw new Error('Entity not found in map');
|
|
303
|
+
return entityMap;
|
|
304
|
+
}
|
|
305
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../../../../../../libs/json-api/json-api-nestjs/src/lib/modules/mixin/swagger/utils.ts"],"names":[],"mappings":"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"}
|