@ptc-org/nestjs-query-graphql 0.30.1 → 1.0.0-alpha.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/CHANGELOG.md +149 -149
- package/README.md +4 -4
- package/package.json +7 -6
- package/src/auth/authorizer.d.ts +26 -0
- package/src/auth/authorizer.js +12 -0
- package/src/auth/authorizer.js.map +1 -0
- package/src/auth/default-crud.authorizer.d.ts +6 -0
- package/src/auth/default-crud.authorizer.js +74 -0
- package/src/auth/default-crud.authorizer.js.map +1 -0
- package/src/auth/index.d.ts +3 -0
- package/src/auth/index.js +7 -0
- package/src/auth/index.js.map +1 -0
- package/src/auth/tokens.d.ts +3 -0
- package/src/auth/tokens.js +8 -0
- package/src/auth/tokens.js.map +1 -0
- package/src/common/dto.utils.d.ts +15 -0
- package/src/common/dto.utils.js +32 -0
- package/src/common/dto.utils.js.map +1 -0
- package/src/common/external.utils.d.ts +10 -0
- package/src/common/external.utils.js +33 -0
- package/src/common/external.utils.js.map +1 -0
- package/src/common/index.d.ts +4 -0
- package/src/common/index.js +11 -0
- package/src/common/index.js.map +1 -0
- package/src/common/object.utils.d.ts +1 -0
- package/src/common/object.utils.js +14 -0
- package/src/common/object.utils.js.map +1 -0
- package/src/common/resolver.utils.d.ts +2 -0
- package/src/common/resolver.utils.js +19 -0
- package/src/common/resolver.utils.js.map +1 -0
- package/src/decorators/aggregate-query-param.decorator.d.ts +1 -0
- package/src/decorators/aggregate-query-param.decorator.js +21 -0
- package/src/decorators/aggregate-query-param.decorator.js.map +1 -0
- package/src/decorators/authorize-filter.decorator.d.ts +6 -0
- package/src/decorators/authorize-filter.decorator.js +67 -0
- package/src/decorators/authorize-filter.decorator.js.map +1 -0
- package/src/decorators/authorizer.decorator.d.ts +5 -0
- package/src/decorators/authorizer.decorator.js +24 -0
- package/src/decorators/authorizer.decorator.js.map +1 -0
- package/src/decorators/constants.d.ts +8 -0
- package/src/decorators/constants.js +12 -0
- package/src/decorators/constants.js.map +1 -0
- package/src/decorators/decorator.utils.d.ts +3 -0
- package/src/decorators/decorator.utils.js +21 -0
- package/src/decorators/decorator.utils.js.map +1 -0
- package/src/decorators/filterable-field.decorator.d.ts +47 -0
- package/src/decorators/filterable-field.decorator.js +53 -0
- package/src/decorators/filterable-field.decorator.js.map +1 -0
- package/src/decorators/hook-args.decorator.d.ts +3 -0
- package/src/decorators/hook-args.decorator.js +43 -0
- package/src/decorators/hook-args.decorator.js.map +1 -0
- package/src/decorators/hook.decorator.d.ts +13 -0
- package/src/decorators/hook.decorator.js +31 -0
- package/src/decorators/hook.decorator.js.map +1 -0
- package/src/decorators/id-field.decorator.d.ts +32 -0
- package/src/decorators/id-field.decorator.js +48 -0
- package/src/decorators/id-field.decorator.js.map +1 -0
- package/src/decorators/index.d.ts +21 -0
- package/src/decorators/index.js +39 -0
- package/src/decorators/index.js.map +1 -0
- package/src/decorators/inject-authorizer.decorator.d.ts +2 -0
- package/src/decorators/inject-authorizer.decorator.js +8 -0
- package/src/decorators/inject-authorizer.decorator.js.map +1 -0
- package/src/decorators/inject-custom-authorizer.decorator.d.ts +2 -0
- package/src/decorators/inject-custom-authorizer.decorator.js +8 -0
- package/src/decorators/inject-custom-authorizer.decorator.js.map +1 -0
- package/src/decorators/inject-pub-sub.decorator.d.ts +1 -0
- package/src/decorators/inject-pub-sub.decorator.js +8 -0
- package/src/decorators/inject-pub-sub.decorator.js.map +1 -0
- package/src/decorators/key-set.decorator.d.ts +3 -0
- package/src/decorators/key-set.decorator.js +13 -0
- package/src/decorators/key-set.decorator.js.map +1 -0
- package/src/decorators/query-options.decorator.d.ts +5 -0
- package/src/decorators/query-options.decorator.js +16 -0
- package/src/decorators/query-options.decorator.js.map +1 -0
- package/src/decorators/reference.decorator.d.ts +8 -0
- package/src/decorators/reference.decorator.js +36 -0
- package/src/decorators/reference.decorator.js.map +1 -0
- package/src/decorators/relation.decorator.d.ts +16 -0
- package/src/decorators/relation.decorator.js +53 -0
- package/src/decorators/relation.decorator.js.map +1 -0
- package/src/decorators/resolver-field.decorator.d.ts +11 -0
- package/src/decorators/resolver-field.decorator.js +22 -0
- package/src/decorators/resolver-field.decorator.js.map +1 -0
- package/src/decorators/resolver-method.decorator.d.ts +34 -0
- package/src/decorators/resolver-method.decorator.js +35 -0
- package/src/decorators/resolver-method.decorator.js.map +1 -0
- package/src/decorators/resolver-mutation.decorator.d.ts +10 -0
- package/src/decorators/resolver-mutation.decorator.js +21 -0
- package/src/decorators/resolver-mutation.decorator.js.map +1 -0
- package/src/decorators/resolver-query.decorator.d.ts +13 -0
- package/src/decorators/resolver-query.decorator.js +21 -0
- package/src/decorators/resolver-query.decorator.js.map +1 -0
- package/src/decorators/resolver-subscription.decorator.d.ts +7 -0
- package/src/decorators/resolver-subscription.decorator.js +18 -0
- package/src/decorators/resolver-subscription.decorator.js.map +1 -0
- package/src/decorators/skip-if.decorator.d.ts +8 -0
- package/src/decorators/skip-if.decorator.js +18 -0
- package/src/decorators/skip-if.decorator.js.map +1 -0
- package/src/federation/index.d.ts +1 -0
- package/src/federation/index.js +3 -0
- package/src/federation/index.js.map +1 -0
- package/src/federation/representation.type.d.ts +3 -0
- package/src/federation/representation.type.js +3 -0
- package/src/federation/representation.type.js.map +1 -0
- package/src/hooks/default.hook.d.ts +3 -0
- package/src/hooks/default.hook.js +13 -0
- package/src/hooks/default.hook.js.map +1 -0
- package/src/hooks/hooks.d.ts +14 -0
- package/src/hooks/hooks.js +8 -0
- package/src/hooks/hooks.js.map +1 -0
- package/src/hooks/index.d.ts +4 -0
- package/src/hooks/index.js +10 -0
- package/src/hooks/index.js.map +1 -0
- package/src/hooks/tokens.d.ts +3 -0
- package/src/hooks/tokens.js +6 -0
- package/src/hooks/tokens.js.map +1 -0
- package/src/hooks/types.d.ts +10 -0
- package/src/hooks/types.js +15 -0
- package/src/hooks/types.js.map +1 -0
- package/src/index.d.ts +11 -0
- package/src/index.js.map +1 -0
- package/src/interceptors/authorizer.interceptor.d.ts +7 -0
- package/src/interceptors/authorizer.interceptor.js +33 -0
- package/src/interceptors/authorizer.interceptor.js.map +1 -0
- package/src/interceptors/hook.interceptor.d.ts +7 -0
- package/src/interceptors/hook.interceptor.js +44 -0
- package/src/interceptors/hook.interceptor.js.map +1 -0
- package/src/interceptors/index.d.ts +2 -0
- package/src/interceptors/index.js +6 -0
- package/src/interceptors/index.js.map +1 -0
- package/src/loader/aggregate-relations.loader.d.ts +16 -0
- package/src/loader/aggregate-relations.loader.js +43 -0
- package/src/loader/aggregate-relations.loader.js.map +1 -0
- package/src/loader/count-relations.loader.d.ts +15 -0
- package/src/loader/count-relations.loader.js +42 -0
- package/src/loader/count-relations.loader.js.map +1 -0
- package/src/loader/dataloader.factory.d.ts +9 -0
- package/src/loader/dataloader.factory.js +27 -0
- package/src/loader/dataloader.factory.js.map +1 -0
- package/src/loader/find-relations.loader.d.ts +14 -0
- package/src/loader/find-relations.loader.js +42 -0
- package/src/loader/find-relations.loader.js.map +1 -0
- package/src/loader/index.d.ts +5 -0
- package/src/loader/index.js +9 -0
- package/src/loader/index.js.map +1 -0
- package/src/loader/query-relations.loader.d.ts +15 -0
- package/src/loader/query-relations.loader.js +43 -0
- package/src/loader/query-relations.loader.js.map +1 -0
- package/src/loader/relations.loader.d.ts +4 -0
- package/src/loader/relations.loader.js +3 -0
- package/src/loader/relations.loader.js.map +1 -0
- package/src/module.d.ts +31 -0
- package/src/module.js +55 -0
- package/src/module.js.map +1 -0
- package/src/providers/authorizer.provider.d.ts +3 -0
- package/src/providers/authorizer.provider.js +31 -0
- package/src/providers/authorizer.provider.js.map +1 -0
- package/src/providers/hook.provider.d.ts +5 -0
- package/src/providers/hook.provider.js +33 -0
- package/src/providers/hook.provider.js.map +1 -0
- package/src/providers/index.d.ts +3 -0
- package/src/providers/index.js +7 -0
- package/src/providers/index.js.map +1 -0
- package/src/providers/resolver.provider.d.ts +26 -0
- package/src/providers/resolver.provider.js +112 -0
- package/src/providers/resolver.provider.js.map +1 -0
- package/src/resolvers/aggregate.resolver.d.ts +16 -0
- package/src/resolvers/aggregate.resolver.js +56 -0
- package/src/resolvers/aggregate.resolver.js.map +1 -0
- package/src/resolvers/create.resolver.d.ts +57 -0
- package/src/resolvers/create.resolver.js +190 -0
- package/src/resolvers/create.resolver.js.map +1 -0
- package/src/resolvers/crud.resolver.d.ts +52 -0
- package/src/resolvers/crud.resolver.js +68 -0
- package/src/resolvers/crud.resolver.js.map +1 -0
- package/src/resolvers/delete.resolver.d.ts +32 -0
- package/src/resolvers/delete.resolver.js +186 -0
- package/src/resolvers/delete.resolver.js.map +1 -0
- package/src/resolvers/federation/federation.resolver.d.ts +4 -0
- package/src/resolvers/federation/federation.resolver.js +8 -0
- package/src/resolvers/federation/federation.resolver.js.map +1 -0
- package/src/resolvers/federation/index.d.ts +1 -0
- package/src/resolvers/federation/index.js +6 -0
- package/src/resolvers/federation/index.js.map +1 -0
- package/src/resolvers/helpers.d.ts +6 -0
- package/src/resolvers/helpers.js +38 -0
- package/src/resolvers/helpers.js.map +1 -0
- package/src/resolvers/index.d.ts +9 -0
- package/src/resolvers/index.js +20 -0
- package/src/resolvers/index.js.map +1 -0
- package/src/resolvers/read.resolver.d.ts +18 -0
- package/src/resolvers/read.resolver.js +75 -0
- package/src/resolvers/read.resolver.js.map +1 -0
- package/src/resolvers/reference.resolver.d.ts +11 -0
- package/src/resolvers/reference.resolver.js +41 -0
- package/src/resolvers/reference.resolver.js.map +1 -0
- package/src/resolvers/relations/aggregate-relations.resolver.d.ts +11 -0
- package/src/resolvers/relations/aggregate-relations.resolver.js +76 -0
- package/src/resolvers/relations/aggregate-relations.resolver.js.map +1 -0
- package/src/resolvers/relations/helpers.d.ts +4 -0
- package/src/resolvers/relations/helpers.js +10 -0
- package/src/resolvers/relations/helpers.js.map +1 -0
- package/src/resolvers/relations/index.d.ts +7 -0
- package/src/resolvers/relations/index.js +16 -0
- package/src/resolvers/relations/index.js.map +1 -0
- package/src/resolvers/relations/read-relations.resolver.d.ts +8 -0
- package/src/resolvers/relations/read-relations.resolver.js +114 -0
- package/src/resolvers/relations/read-relations.resolver.js.map +1 -0
- package/src/resolvers/relations/references-relation.resolver.d.ts +5 -0
- package/src/resolvers/relations/references-relation.resolver.js +55 -0
- package/src/resolvers/relations/references-relation.resolver.js.map +1 -0
- package/src/resolvers/relations/relations.interface.d.ts +78 -0
- package/src/resolvers/relations/relations.interface.js +3 -0
- package/src/resolvers/relations/relations.interface.js.map +1 -0
- package/src/resolvers/relations/relations.resolver.d.ts +8 -0
- package/src/resolvers/relations/relations.resolver.js +22 -0
- package/src/resolvers/relations/relations.resolver.js.map +1 -0
- package/src/resolvers/relations/remove-relations.resolver.d.ts +5 -0
- package/src/resolvers/relations/remove-relations.resolver.js +107 -0
- package/src/resolvers/relations/remove-relations.resolver.js.map +1 -0
- package/src/resolvers/relations/update-relations.resolver.d.ts +5 -0
- package/src/resolvers/relations/update-relations.resolver.js +138 -0
- package/src/resolvers/relations/update-relations.resolver.js.map +1 -0
- package/src/resolvers/resolver.interface.d.ts +47 -0
- package/src/resolvers/resolver.interface.js +14 -0
- package/src/resolvers/resolver.interface.js.map +1 -0
- package/src/resolvers/update.resolver.d.ts +23 -0
- package/src/resolvers/update.resolver.js +198 -0
- package/src/resolvers/update.resolver.js.map +1 -0
- package/src/subscription/index.d.ts +14 -0
- package/src/subscription/index.js +32 -0
- package/src/subscription/index.js.map +1 -0
- package/src/subscription/pub-sub.interface.d.ts +6 -0
- package/src/subscription/pub-sub.interface.js +3 -0
- package/src/subscription/pub-sub.interface.js.map +1 -0
- package/src/types/aggregate/aggregate-args.type.d.ts +9 -0
- package/src/types/aggregate/aggregate-args.type.js +30 -0
- package/src/types/aggregate/aggregate-args.type.js.map +1 -0
- package/src/types/aggregate/aggregate-response.type.d.ts +5 -0
- package/src/types/aggregate/aggregate-response.type.js +96 -0
- package/src/types/aggregate/aggregate-response.type.js.map +1 -0
- package/src/types/aggregate/index.d.ts +2 -0
- package/src/types/aggregate/index.js +8 -0
- package/src/types/aggregate/index.js.map +1 -0
- package/src/types/connection/array-connection.type.d.ts +4 -0
- package/src/types/connection/array-connection.type.js +20 -0
- package/src/types/connection/array-connection.type.js.map +1 -0
- package/src/types/connection/cursor/cursor-connection.type.d.ts +4 -0
- package/src/types/connection/cursor/cursor-connection.type.js +72 -0
- package/src/types/connection/cursor/cursor-connection.type.js.map +1 -0
- package/src/types/connection/cursor/edge.type.d.ts +7 -0
- package/src/types/connection/cursor/edge.type.js +36 -0
- package/src/types/connection/cursor/edge.type.js.map +1 -0
- package/src/types/connection/cursor/index.d.ts +1 -0
- package/src/types/connection/cursor/index.js +5 -0
- package/src/types/connection/cursor/index.js.map +1 -0
- package/src/types/connection/cursor/page-info.type.d.ts +6 -0
- package/src/types/connection/cursor/page-info.type.js +49 -0
- package/src/types/connection/cursor/page-info.type.js.map +1 -0
- package/src/types/connection/cursor/pager/index.d.ts +7 -0
- package/src/types/connection/cursor/pager/index.js +16 -0
- package/src/types/connection/cursor/pager/index.js.map +1 -0
- package/src/types/connection/cursor/pager/interfaces.d.ts +12 -0
- package/src/types/connection/cursor/pager/interfaces.js +3 -0
- package/src/types/connection/cursor/pager/interfaces.js.map +1 -0
- package/src/types/connection/cursor/pager/pager.d.ts +15 -0
- package/src/types/connection/cursor/pager/pager.js +83 -0
- package/src/types/connection/cursor/pager/pager.js.map +1 -0
- package/src/types/connection/cursor/pager/strategies/helpers.d.ts +6 -0
- package/src/types/connection/cursor/pager/strategies/helpers.js +24 -0
- package/src/types/connection/cursor/pager/strategies/helpers.js.map +1 -0
- package/src/types/connection/cursor/pager/strategies/index.d.ts +4 -0
- package/src/types/connection/cursor/pager/strategies/index.js +8 -0
- package/src/types/connection/cursor/pager/strategies/index.js.map +1 -0
- package/src/types/connection/cursor/pager/strategies/keyset.pager-strategy.d.ts +19 -0
- package/src/types/connection/cursor/pager/strategies/keyset.pager-strategy.js +123 -0
- package/src/types/connection/cursor/pager/strategies/keyset.pager-strategy.js.map +1 -0
- package/src/types/connection/cursor/pager/strategies/limit-offset.pager-strategy.d.ts +15 -0
- package/src/types/connection/cursor/pager/strategies/limit-offset.pager-strategy.js +88 -0
- package/src/types/connection/cursor/pager/strategies/limit-offset.pager-strategy.js.map +1 -0
- package/src/types/connection/cursor/pager/strategies/pager-strategy.d.ts +33 -0
- package/src/types/connection/cursor/pager/strategies/pager-strategy.js +3 -0
- package/src/types/connection/cursor/pager/strategies/pager-strategy.js.map +1 -0
- package/src/types/connection/index.d.ts +4 -0
- package/src/types/connection/index.js +10 -0
- package/src/types/connection/index.js.map +1 -0
- package/src/types/connection/interfaces.d.ts +60 -0
- package/src/types/connection/interfaces.js +3 -0
- package/src/types/connection/interfaces.js.map +1 -0
- package/src/types/connection/offset/index.d.ts +2 -0
- package/src/types/connection/offset/index.js +6 -0
- package/src/types/connection/offset/index.js.map +1 -0
- package/src/types/connection/offset/offset-connection.type.d.ts +4 -0
- package/src/types/connection/offset/offset-connection.type.js +68 -0
- package/src/types/connection/offset/offset-connection.type.js.map +1 -0
- package/src/types/connection/offset/offset-page-info.type.d.ts +5 -0
- package/src/types/connection/offset/offset-page-info.type.js +35 -0
- package/src/types/connection/offset/offset-page-info.type.js.map +1 -0
- package/src/types/connection/offset/pager/index.d.ts +4 -0
- package/src/types/connection/offset/pager/index.js +8 -0
- package/src/types/connection/offset/pager/index.js.map +1 -0
- package/src/types/connection/offset/pager/interfaces.d.ts +12 -0
- package/src/types/connection/offset/pager/interfaces.js +3 -0
- package/src/types/connection/offset/pager/interfaces.js.map +1 -0
- package/src/types/connection/offset/pager/pager.d.ts +12 -0
- package/src/types/connection/offset/pager/pager.js +62 -0
- package/src/types/connection/offset/pager/pager.js.map +1 -0
- package/src/types/create-many-input.type.d.ts +10 -0
- package/src/types/create-many-input.type.js +42 -0
- package/src/types/create-many-input.type.js.map +1 -0
- package/src/types/create-one-input.type.d.ts +11 -0
- package/src/types/create-one-input.type.js +42 -0
- package/src/types/create-one-input.type.js.map +1 -0
- package/src/types/cursor.scalar.d.ts +3 -0
- package/src/types/cursor.scalar.js +21 -0
- package/src/types/cursor.scalar.js.map +1 -0
- package/src/types/delete-many-input.type.d.ts +9 -0
- package/src/types/delete-many-input.type.js +31 -0
- package/src/types/delete-many-input.type.js.map +1 -0
- package/src/types/delete-many-reponse.type.d.ts +2 -0
- package/src/types/delete-many-reponse.type.js +25 -0
- package/src/types/delete-many-reponse.type.js.map +1 -0
- package/src/types/delete-one-input.type.d.ts +8 -0
- package/src/types/delete-one-input.type.js +27 -0
- package/src/types/delete-one-input.type.js.map +1 -0
- package/src/types/find-one-args.type.d.ts +8 -0
- package/src/types/find-one-args.type.js +27 -0
- package/src/types/find-one-args.type.js.map +1 -0
- package/src/types/index.d.ts +18 -0
- package/src/types/index.js +44 -0
- package/src/types/index.js.map +1 -0
- package/src/types/mutation-args.type.d.ts +5 -0
- package/src/types/mutation-args.type.js +24 -0
- package/src/types/mutation-args.type.js.map +1 -0
- package/src/types/query/field-comparison/boolean-field-comparison.type.d.ts +3 -0
- package/src/types/query/field-comparison/boolean-field-comparison.type.js +35 -0
- package/src/types/query/field-comparison/boolean-field-comparison.type.js.map +1 -0
- package/src/types/query/field-comparison/date-field-comparison.type.d.ts +3 -0
- package/src/types/query/field-comparison/date-field-comparison.type.js +112 -0
- package/src/types/query/field-comparison/date-field-comparison.type.js.map +1 -0
- package/src/types/query/field-comparison/field-comparison.factory.d.ts +11 -0
- package/src/types/query/field-comparison/field-comparison.factory.js +166 -0
- package/src/types/query/field-comparison/field-comparison.factory.js.map +1 -0
- package/src/types/query/field-comparison/float-field-comparison.type.d.ts +3 -0
- package/src/types/query/field-comparison/float-field-comparison.type.js +112 -0
- package/src/types/query/field-comparison/float-field-comparison.type.js.map +1 -0
- package/src/types/query/field-comparison/index.d.ts +8 -0
- package/src/types/query/field-comparison/index.js +12 -0
- package/src/types/query/field-comparison/index.js.map +1 -0
- package/src/types/query/field-comparison/int-field-comparison.type.d.ts +3 -0
- package/src/types/query/field-comparison/int-field-comparison.type.js +112 -0
- package/src/types/query/field-comparison/int-field-comparison.type.js.map +1 -0
- package/src/types/query/field-comparison/number-field-comparison.type.d.ts +3 -0
- package/src/types/query/field-comparison/number-field-comparison.type.js +112 -0
- package/src/types/query/field-comparison/number-field-comparison.type.js.map +1 -0
- package/src/types/query/field-comparison/string-field-comparison.type.d.ts +3 -0
- package/src/types/query/field-comparison/string-field-comparison.type.js +108 -0
- package/src/types/query/field-comparison/string-field-comparison.type.js.map +1 -0
- package/src/types/query/field-comparison/timestamp-field-comparison.type.d.ts +3 -0
- package/src/types/query/field-comparison/timestamp-field-comparison.type.js +112 -0
- package/src/types/query/field-comparison/timestamp-field-comparison.type.js.map +1 -0
- package/src/types/query/filter.type.d.ts +14 -0
- package/src/types/query/filter.type.js +103 -0
- package/src/types/query/filter.type.js.map +1 -0
- package/src/types/query/helpers.d.ts +1 -0
- package/src/types/query/helpers.js +6 -0
- package/src/types/query/helpers.js.map +1 -0
- package/src/types/query/index.d.ts +4 -0
- package/src/types/query/index.js +14 -0
- package/src/types/query/index.js.map +1 -0
- package/src/types/query/paging/constants.d.ts +5 -0
- package/src/types/query/paging/constants.js +10 -0
- package/src/types/query/paging/constants.js.map +1 -0
- package/src/types/query/paging/cursor-paging.type.d.ts +3 -0
- package/src/types/query/paging/cursor-paging.type.js +69 -0
- package/src/types/query/paging/cursor-paging.type.js.map +1 -0
- package/src/types/query/paging/index.d.ts +5 -0
- package/src/types/query/paging/index.js +12 -0
- package/src/types/query/paging/index.js.map +1 -0
- package/src/types/query/paging/interfaces.d.ts +13 -0
- package/src/types/query/paging/interfaces.js +3 -0
- package/src/types/query/paging/interfaces.js.map +1 -0
- package/src/types/query/paging/none-paging.type.d.ts +3 -0
- package/src/types/query/paging/none-paging.type.js +18 -0
- package/src/types/query/paging/none-paging.type.js.map +1 -0
- package/src/types/query/paging/offset-paging.type.d.ts +3 -0
- package/src/types/query/paging/offset-paging.type.js +43 -0
- package/src/types/query/paging/offset-paging.type.js.map +1 -0
- package/src/types/query/query-args/constants.d.ts +6 -0
- package/src/types/query/query-args/constants.js +10 -0
- package/src/types/query/query-args/constants.js.map +1 -0
- package/src/types/query/query-args/cursor-query-args.type.d.ts +5 -0
- package/src/types/query/query-args/cursor-query-args.type.js +61 -0
- package/src/types/query/query-args/cursor-query-args.type.js.map +1 -0
- package/src/types/query/query-args/index.d.ts +5 -0
- package/src/types/query/query-args/index.js +9 -0
- package/src/types/query/query-args/index.js.map +1 -0
- package/src/types/query/query-args/interfaces.d.ts +45 -0
- package/src/types/query/query-args/interfaces.js +3 -0
- package/src/types/query/query-args/interfaces.js.map +1 -0
- package/src/types/query/query-args/none-paging-query-args.type.d.ts +5 -0
- package/src/types/query/query-args/none-paging-query-args.type.js +49 -0
- package/src/types/query/query-args/none-paging-query-args.type.js.map +1 -0
- package/src/types/query/query-args/offset-query-args.type.d.ts +5 -0
- package/src/types/query/query-args/offset-query-args.type.js +60 -0
- package/src/types/query/query-args/offset-query-args.type.js.map +1 -0
- package/src/types/query/query-args.type.d.ts +8 -0
- package/src/types/query/query-args.type.js +33 -0
- package/src/types/query/query-args.type.js.map +1 -0
- package/src/types/query/sorting.type.d.ts +2 -0
- package/src/types/query/sorting.type.js +55 -0
- package/src/types/query/sorting.type.js.map +1 -0
- package/src/types/relation-input.type.d.ts +6 -0
- package/src/types/relation-input.type.js +30 -0
- package/src/types/relation-input.type.js.map +1 -0
- package/src/types/relations-input.type.d.ts +6 -0
- package/src/types/relations-input.type.js +31 -0
- package/src/types/relations-input.type.js.map +1 -0
- package/src/types/subscription-args.type.d.ts +5 -0
- package/src/types/subscription-args.type.js +24 -0
- package/src/types/subscription-args.type.js.map +1 -0
- package/src/types/subscription-filter-input.type.d.ts +9 -0
- package/src/types/subscription-filter-input.type.js +32 -0
- package/src/types/subscription-filter-input.type.js.map +1 -0
- package/src/types/type.errors.d.ts +5 -0
- package/src/types/type.errors.js +11 -0
- package/src/types/type.errors.js.map +1 -0
- package/src/types/update-many-input.type.d.ts +11 -0
- package/src/types/update-many-input.type.js +38 -0
- package/src/types/update-many-input.type.js.map +1 -0
- package/src/types/update-many-response.type.d.ts +2 -0
- package/src/types/update-many-response.type.js +25 -0
- package/src/types/update-many-response.type.js.map +1 -0
- package/src/types/update-one-input.type.d.ts +11 -0
- package/src/types/update-one-input.type.js +36 -0
- package/src/types/update-one-input.type.js.map +1 -0
- package/src/types/validators/cannot-use-with.validator.d.ts +6 -0
- package/src/types/validators/cannot-use-with.validator.js +21 -0
- package/src/types/validators/cannot-use-with.validator.js.map +1 -0
- package/src/types/validators/cannot-use-without.validator.d.ts +6 -0
- package/src/types/validators/cannot-use-without.validator.js +22 -0
- package/src/types/validators/cannot-use-without.validator.js.map +1 -0
- package/src/types/validators/index.d.ts +3 -0
- package/src/types/validators/index.js +7 -0
- package/src/types/validators/index.js.map +1 -0
- package/src/types/validators/is-undefined.validator.d.ts +3 -0
- package/src/types/validators/is-undefined.validator.js +11 -0
- package/src/types/validators/is-undefined.validator.js.map +1 -0
- package/src/types/validators/property-max.validator.d.ts +6 -0
- package/src/types/validators/property-max.validator.js +30 -0
- package/src/types/validators/property-max.validator.js.map +1 -0
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DeleteResolver = exports.Deletable = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
// eslint-disable-next-line max-classes-per-file
|
|
6
|
+
const nestjs_query_core_1 = require("@ptc-org/nestjs-query-core");
|
|
7
|
+
const lodash_omit_1 = (0, tslib_1.__importDefault)(require("lodash.omit"));
|
|
8
|
+
const graphql_1 = require("@nestjs/graphql");
|
|
9
|
+
const hooks_1 = require("../hooks");
|
|
10
|
+
const common_1 = require("../common");
|
|
11
|
+
const subscription_1 = require("../subscription");
|
|
12
|
+
const resolver_interface_1 = require("./resolver.interface");
|
|
13
|
+
const types_1 = require("../types");
|
|
14
|
+
const decorators_1 = require("../decorators");
|
|
15
|
+
const helpers_1 = require("./helpers");
|
|
16
|
+
const interceptors_1 = require("../interceptors");
|
|
17
|
+
const auth_1 = require("../auth");
|
|
18
|
+
/** @internal */
|
|
19
|
+
const defaultDeleteManyInput = (dtoNames, DTOClass) => {
|
|
20
|
+
const { pluralBaseName } = dtoNames;
|
|
21
|
+
let DM = class DM extends (0, types_1.DeleteManyInputType)(DTOClass) {
|
|
22
|
+
};
|
|
23
|
+
DM = (0, tslib_1.__decorate)([
|
|
24
|
+
(0, graphql_1.InputType)(`DeleteMany${pluralBaseName}Input`)
|
|
25
|
+
], DM);
|
|
26
|
+
return DM;
|
|
27
|
+
};
|
|
28
|
+
/** @internal */
|
|
29
|
+
const defaultDeleteOneInput = (dtoNames, DTOClass) => {
|
|
30
|
+
const { baseName } = dtoNames;
|
|
31
|
+
let DM = class DM extends (0, types_1.DeleteOneInputType)(DTOClass) {
|
|
32
|
+
};
|
|
33
|
+
DM = (0, tslib_1.__decorate)([
|
|
34
|
+
(0, graphql_1.InputType)(`DeleteOne${baseName}Input`)
|
|
35
|
+
], DM);
|
|
36
|
+
return DM;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* @internal
|
|
40
|
+
* Mixin to add `delete` graphql endpoints.
|
|
41
|
+
*/
|
|
42
|
+
const Deletable = (DTOClass, opts) => (BaseClass) => {
|
|
43
|
+
const dtoNames = (0, common_1.getDTONames)(DTOClass, opts);
|
|
44
|
+
const { baseName, pluralBaseName } = dtoNames;
|
|
45
|
+
const enableSubscriptions = opts.enableSubscriptions === true;
|
|
46
|
+
const enableOneSubscriptions = opts.one?.enableSubscriptions ?? enableSubscriptions;
|
|
47
|
+
const enableManySubscriptions = opts.many?.enableSubscriptions ?? enableSubscriptions;
|
|
48
|
+
const deletedOneEvent = (0, subscription_1.getDTOEventName)(subscription_1.EventType.DELETED_ONE, DTOClass);
|
|
49
|
+
const deletedManyEvent = (0, subscription_1.getDTOEventName)(subscription_1.EventType.DELETED_MANY, DTOClass);
|
|
50
|
+
const { DeleteOneInput = defaultDeleteOneInput(dtoNames, DTOClass), DeleteManyInput = defaultDeleteManyInput(dtoNames, DTOClass) } = opts;
|
|
51
|
+
const deleteOneMutationName = opts.one?.name ?? `deleteOne${baseName}`;
|
|
52
|
+
const deleteManyMutationName = opts.many?.name ?? `deleteMany${pluralBaseName}`;
|
|
53
|
+
const DMR = (0, types_1.DeleteManyResponseType)();
|
|
54
|
+
const commonResolverOpts = (0, lodash_omit_1.default)(opts, 'dtoName', 'one', 'many', 'DeleteOneInput', 'DeleteManyInput', 'useSoftDelete');
|
|
55
|
+
let DeleteOneResponse =
|
|
56
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
57
|
+
// @ts-ignore
|
|
58
|
+
class DeleteOneResponse extends (0, graphql_1.PartialType)(DTOClass, graphql_1.ObjectType) {
|
|
59
|
+
};
|
|
60
|
+
DeleteOneResponse = (0, tslib_1.__decorate)([
|
|
61
|
+
(0, graphql_1.ObjectType)(`${baseName}DeleteResponse`)
|
|
62
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
63
|
+
// @ts-ignore
|
|
64
|
+
], DeleteOneResponse);
|
|
65
|
+
let DO = class DO extends (0, types_1.MutationArgsType)(DeleteOneInput) {
|
|
66
|
+
};
|
|
67
|
+
DO = (0, tslib_1.__decorate)([
|
|
68
|
+
(0, graphql_1.ArgsType)()
|
|
69
|
+
], DO);
|
|
70
|
+
let DM = class DM extends (0, types_1.MutationArgsType)(DeleteManyInput) {
|
|
71
|
+
};
|
|
72
|
+
DM = (0, tslib_1.__decorate)([
|
|
73
|
+
(0, graphql_1.ArgsType)()
|
|
74
|
+
], DM);
|
|
75
|
+
let SI = class SI extends (0, types_1.SubscriptionFilterInputType)(DTOClass) {
|
|
76
|
+
};
|
|
77
|
+
SI = (0, tslib_1.__decorate)([
|
|
78
|
+
(0, graphql_1.InputType)(`DeleteOne${baseName}SubscriptionFilterInput`)
|
|
79
|
+
], SI);
|
|
80
|
+
let DOSA = class DOSA extends (0, types_1.SubscriptionArgsType)(SI) {
|
|
81
|
+
};
|
|
82
|
+
DOSA = (0, tslib_1.__decorate)([
|
|
83
|
+
(0, graphql_1.ArgsType)()
|
|
84
|
+
], DOSA);
|
|
85
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
86
|
+
const deleteOneSubscriptionFilter = (0, helpers_1.createSubscriptionFilter)(SI, deletedOneEvent);
|
|
87
|
+
let DeleteResolverBase = class DeleteResolverBase extends BaseClass {
|
|
88
|
+
async deleteOne(input, authorizeFilter) {
|
|
89
|
+
const deletedResponse = await this.service.deleteOne(input.input.id, {
|
|
90
|
+
filter: authorizeFilter ?? {},
|
|
91
|
+
useSoftDelete: opts?.useSoftDelete ?? false
|
|
92
|
+
});
|
|
93
|
+
if (enableOneSubscriptions) {
|
|
94
|
+
await this.publishDeletedOneEvent(deletedResponse, authorizeFilter);
|
|
95
|
+
}
|
|
96
|
+
return deletedResponse;
|
|
97
|
+
}
|
|
98
|
+
async deleteMany(input, authorizeFilter) {
|
|
99
|
+
const deleteManyResponse = await this.service.deleteMany((0, nestjs_query_core_1.mergeFilter)(input.input.filter, authorizeFilter ?? {}), {
|
|
100
|
+
useSoftDelete: opts?.useSoftDelete ?? false
|
|
101
|
+
});
|
|
102
|
+
if (enableManySubscriptions) {
|
|
103
|
+
await this.publishDeletedManyEvent(deleteManyResponse, authorizeFilter);
|
|
104
|
+
}
|
|
105
|
+
return deleteManyResponse;
|
|
106
|
+
}
|
|
107
|
+
async publishDeletedOneEvent(dto, authorizeFilter) {
|
|
108
|
+
if (this.pubSub) {
|
|
109
|
+
const eventName = (0, helpers_1.getSubscriptionEventName)(deletedOneEvent, authorizeFilter);
|
|
110
|
+
await this.pubSub.publish(eventName, { [deletedOneEvent]: dto });
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
async publishDeletedManyEvent(dmr, authorizeFilter) {
|
|
114
|
+
if (this.pubSub) {
|
|
115
|
+
const eventName = (0, helpers_1.getSubscriptionEventName)(deletedManyEvent, authorizeFilter);
|
|
116
|
+
await this.pubSub.publish(eventName, { [deletedManyEvent]: dmr });
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
// input required so graphql subscription filtering will work.
|
|
120
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
121
|
+
deletedOneSubscription(input, authorizeFilter) {
|
|
122
|
+
if (!enableOneSubscriptions || !this.pubSub) {
|
|
123
|
+
throw new Error(`Unable to subscribe to ${deletedOneEvent}`);
|
|
124
|
+
}
|
|
125
|
+
const eventName = (0, helpers_1.getSubscriptionEventName)(deletedOneEvent, authorizeFilter);
|
|
126
|
+
return this.pubSub.asyncIterator(eventName);
|
|
127
|
+
}
|
|
128
|
+
deletedManySubscription(authorizeFilter) {
|
|
129
|
+
if (!enableManySubscriptions || !this.pubSub) {
|
|
130
|
+
throw new Error(`Unable to subscribe to ${deletedManyEvent}`);
|
|
131
|
+
}
|
|
132
|
+
const eventName = (0, helpers_1.getSubscriptionEventName)(deletedManyEvent, authorizeFilter);
|
|
133
|
+
return this.pubSub.asyncIterator(eventName);
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
(0, tslib_1.__decorate)([
|
|
137
|
+
(0, decorators_1.ResolverMutation)(() => DeleteOneResponse, { name: deleteOneMutationName, description: opts?.one?.description }, commonResolverOpts, { interceptors: [(0, interceptors_1.HookInterceptor)(hooks_1.HookTypes.BEFORE_DELETE_ONE, DTOClass), (0, interceptors_1.AuthorizerInterceptor)(DTOClass)] }, opts.one ?? {}),
|
|
138
|
+
(0, tslib_1.__param)(0, (0, decorators_1.MutationHookArgs)()),
|
|
139
|
+
(0, tslib_1.__param)(1, (0, decorators_1.AuthorizerFilter)({
|
|
140
|
+
operationGroup: auth_1.OperationGroup.DELETE,
|
|
141
|
+
many: false
|
|
142
|
+
})),
|
|
143
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
|
144
|
+
(0, tslib_1.__metadata)("design:paramtypes", [DO, Object]),
|
|
145
|
+
(0, tslib_1.__metadata)("design:returntype", Promise)
|
|
146
|
+
], DeleteResolverBase.prototype, "deleteOne", null);
|
|
147
|
+
(0, tslib_1.__decorate)([
|
|
148
|
+
(0, decorators_1.ResolverMutation)(() => DMR, { name: deleteManyMutationName, description: opts?.many?.description }, commonResolverOpts, { interceptors: [(0, interceptors_1.HookInterceptor)(hooks_1.HookTypes.BEFORE_DELETE_MANY, DTOClass), (0, interceptors_1.AuthorizerInterceptor)(DTOClass)] }, opts.many ?? {}),
|
|
149
|
+
(0, tslib_1.__param)(0, (0, decorators_1.MutationHookArgs)()),
|
|
150
|
+
(0, tslib_1.__param)(1, (0, decorators_1.AuthorizerFilter)({
|
|
151
|
+
operationGroup: auth_1.OperationGroup.DELETE,
|
|
152
|
+
many: true
|
|
153
|
+
})),
|
|
154
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
|
155
|
+
(0, tslib_1.__metadata)("design:paramtypes", [DM, Object]),
|
|
156
|
+
(0, tslib_1.__metadata)("design:returntype", Promise)
|
|
157
|
+
], DeleteResolverBase.prototype, "deleteMany", null);
|
|
158
|
+
(0, tslib_1.__decorate)([
|
|
159
|
+
(0, decorators_1.ResolverSubscription)(() => DeleteOneResponse, { name: deletedOneEvent, filter: deleteOneSubscriptionFilter }, commonResolverOpts, {
|
|
160
|
+
enableSubscriptions: enableOneSubscriptions
|
|
161
|
+
}),
|
|
162
|
+
(0, tslib_1.__param)(0, (0, graphql_1.Args)()),
|
|
163
|
+
(0, tslib_1.__param)(1, (0, decorators_1.AuthorizerFilter)({ operationGroup: auth_1.OperationGroup.DELETE, many: false })),
|
|
164
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
|
165
|
+
(0, tslib_1.__metadata)("design:paramtypes", [DOSA, Object]),
|
|
166
|
+
(0, tslib_1.__metadata)("design:returntype", Object)
|
|
167
|
+
], DeleteResolverBase.prototype, "deletedOneSubscription", null);
|
|
168
|
+
(0, tslib_1.__decorate)([
|
|
169
|
+
(0, decorators_1.ResolverSubscription)(() => DMR, { name: deletedManyEvent }, commonResolverOpts, {
|
|
170
|
+
enableSubscriptions: enableManySubscriptions
|
|
171
|
+
}),
|
|
172
|
+
(0, tslib_1.__param)(0, (0, decorators_1.AuthorizerFilter)({ operationGroup: auth_1.OperationGroup.DELETE, many: true })),
|
|
173
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
|
174
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Object]),
|
|
175
|
+
(0, tslib_1.__metadata)("design:returntype", Object)
|
|
176
|
+
], DeleteResolverBase.prototype, "deletedManySubscription", null);
|
|
177
|
+
DeleteResolverBase = (0, tslib_1.__decorate)([
|
|
178
|
+
(0, graphql_1.Resolver)(() => DTOClass, { isAbstract: true })
|
|
179
|
+
], DeleteResolverBase);
|
|
180
|
+
return DeleteResolverBase;
|
|
181
|
+
};
|
|
182
|
+
exports.Deletable = Deletable;
|
|
183
|
+
// eslint-disable-next-line @typescript-eslint/no-redeclare -- intentional
|
|
184
|
+
const DeleteResolver = (DTOClass, opts = {}) => (0, exports.Deletable)(DTOClass, opts)(resolver_interface_1.BaseServiceResolver);
|
|
185
|
+
exports.DeleteResolver = DeleteResolver;
|
|
186
|
+
//# sourceMappingURL=delete.resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"delete.resolver.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/resolvers/delete.resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Class, QueryService } from '@ptc-org/nestjs-query-core';
|
|
2
|
+
import { ServiceResolver } from '../resolver.interface';
|
|
3
|
+
import { BaseResolverOptions } from '../../decorators/resolver-method.decorator';
|
|
4
|
+
export declare const FederationResolver: <DTO, QS extends QueryService<DTO, unknown, unknown> = QueryService<DTO, unknown, unknown>>(DTOClass: Class<DTO>, opts?: BaseResolverOptions) => Class<ServiceResolver<DTO, QS>>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FederationResolver = void 0;
|
|
4
|
+
const relations_1 = require("../relations");
|
|
5
|
+
const decorators_1 = require("../../decorators");
|
|
6
|
+
const FederationResolver = (DTOClass, opts = {}) => (0, relations_1.ReadRelationsResolver)(DTOClass, (0, decorators_1.getRelations)(DTOClass, opts));
|
|
7
|
+
exports.FederationResolver = FederationResolver;
|
|
8
|
+
//# sourceMappingURL=federation.resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"federation.resolver.js","sourceRoot":"","sources":["../../../../../../packages/query-graphql/src/resolvers/federation/federation.resolver.ts"],"names":[],"mappings":";;;AACA,4CAAqD;AAErD,iDAAgD;AAGzC,MAAM,kBAAkB,GAAG,CAIhC,QAAoB,EACpB,OAA4B,EAAE,EACG,EAAE,CAAC,IAAA,iCAAqB,EAAC,QAAQ,EAAE,IAAA,yBAAY,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;AANvF,QAAA,kBAAkB,sBAMqE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { FederationResolver } from './federation.resolver';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FederationResolver = void 0;
|
|
4
|
+
var federation_resolver_1 = require("./federation.resolver");
|
|
5
|
+
Object.defineProperty(exports, "FederationResolver", { enumerable: true, get: function () { return federation_resolver_1.FederationResolver; } });
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/query-graphql/src/resolvers/federation/index.ts"],"names":[],"mappings":";;;AAAA,6DAA2D;AAAlD,yHAAA,kBAAkB,OAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Class, Filter } from '@ptc-org/nestjs-query-core';
|
|
2
|
+
import { SubscriptionArgsType, SubscriptionFilterInputType } from '../types';
|
|
3
|
+
/** @internal */
|
|
4
|
+
export declare const transformAndValidate: <T>(TClass: Class<T>, partial: T) => Promise<T>;
|
|
5
|
+
export declare const createSubscriptionFilter: <DTO, Input extends SubscriptionFilterInputType<DTO>>(InputClass: Class<Input>, payloadKey: string) => (payload: any, variables: SubscriptionArgsType<Input>, context: any) => boolean | Promise<boolean>;
|
|
6
|
+
export declare function getSubscriptionEventName<T>(eventName: string, authorizeFilter?: Filter<T>): string;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getSubscriptionEventName = exports.createSubscriptionFilter = exports.transformAndValidate = void 0;
|
|
4
|
+
const nestjs_query_core_1 = require("@ptc-org/nestjs-query-core");
|
|
5
|
+
const class_transformer_1 = require("class-transformer");
|
|
6
|
+
const class_validator_1 = require("class-validator");
|
|
7
|
+
const common_1 = require("@nestjs/common");
|
|
8
|
+
/** @internal */
|
|
9
|
+
const transformAndValidate = async (TClass, partial) => {
|
|
10
|
+
if (partial instanceof TClass) {
|
|
11
|
+
return partial;
|
|
12
|
+
}
|
|
13
|
+
const transformed = (0, class_transformer_1.plainToClass)(TClass, partial);
|
|
14
|
+
const validationErrors = await (0, class_validator_1.validate)(transformed);
|
|
15
|
+
if (validationErrors.length) {
|
|
16
|
+
throw new common_1.BadRequestException(validationErrors);
|
|
17
|
+
}
|
|
18
|
+
return transformed;
|
|
19
|
+
};
|
|
20
|
+
exports.transformAndValidate = transformAndValidate;
|
|
21
|
+
const createSubscriptionFilter = (InputClass, payloadKey) =>
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
23
|
+
async (payload, variables) => {
|
|
24
|
+
const { input } = variables;
|
|
25
|
+
if (input) {
|
|
26
|
+
const args = await (0, exports.transformAndValidate)(InputClass, input);
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
28
|
+
const dto = payload[payloadKey];
|
|
29
|
+
return (0, nestjs_query_core_1.applyFilter)(dto, args.filter || {});
|
|
30
|
+
}
|
|
31
|
+
return true;
|
|
32
|
+
};
|
|
33
|
+
exports.createSubscriptionFilter = createSubscriptionFilter;
|
|
34
|
+
function getSubscriptionEventName(eventName, authorizeFilter) {
|
|
35
|
+
return authorizeFilter ? `${eventName}-${JSON.stringify(authorizeFilter)}` : eventName;
|
|
36
|
+
}
|
|
37
|
+
exports.getSubscriptionEventName = getSubscriptionEventName;
|
|
38
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/resolvers/helpers.ts"],"names":[],"mappings":";;;AAAA,kEAAwE;AACxE,yDAAiD;AACjD,qDAA2C;AAC3C,2CAAqD;AAGrD,gBAAgB;AACT,MAAM,oBAAoB,GAAG,KAAK,EAAK,MAAgB,EAAE,OAAU,EAAc,EAAE;IACxF,IAAI,OAAO,YAAY,MAAM,EAAE;QAC7B,OAAO,OAAO,CAAC;KAChB;IACD,MAAM,WAAW,GAAG,IAAA,gCAAY,EAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClD,MAAM,gBAAgB,GAAG,MAAM,IAAA,0BAAQ,EAAC,WAAsD,CAAC,CAAC;IAChG,IAAI,gBAAgB,CAAC,MAAM,EAAE;QAC3B,MAAM,IAAI,4BAAmB,CAAC,gBAAgB,CAAC,CAAC;KACjD;IACD,OAAO,WAAW,CAAC;AACrB,CAAC,CAAC;AAVW,QAAA,oBAAoB,wBAU/B;AAEK,MAAM,wBAAwB,GACnC,CACE,UAAwB,EACxB,UAAkB,EAEoF,EAAE;AAC1G,8DAA8D;AAC9D,KAAK,EAAE,OAAY,EAAE,SAAsC,EAAoB,EAAE;IAC/E,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAC;IAC5B,IAAI,KAAK,EAAE;QACT,MAAM,IAAI,GAAG,MAAM,IAAA,4BAAoB,EAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QAC3D,sEAAsE;QACtE,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAQ,CAAC;QACvC,OAAO,IAAA,+BAAW,EAAC,GAAG,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;KAC5C;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAhBS,QAAA,wBAAwB,4BAgBjC;AAEJ,SAAgB,wBAAwB,CAAI,SAAiB,EAAE,eAA2B;IACxF,OAAO,eAAe,CAAC,CAAC,CAAC,GAAG,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AACzF,CAAC;AAFD,4DAEC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { CRUDResolverOpts, CRUDResolver } from './crud.resolver';
|
|
2
|
+
export { CreateResolver, CreateResolverOpts } from './create.resolver';
|
|
3
|
+
export { ReadResolver, ReadResolverOpts } from './read.resolver';
|
|
4
|
+
export { UpdateResolver, UpdateResolverOpts } from './update.resolver';
|
|
5
|
+
export { DeleteResolver, DeleteResolverOpts } from './delete.resolver';
|
|
6
|
+
export { ReferenceResolver, ReferenceResolverOpts } from './reference.resolver';
|
|
7
|
+
export { Relatable, ResolverRelation, ResolverRelationReference } from './relations';
|
|
8
|
+
export { ResolverOpts } from './resolver.interface';
|
|
9
|
+
export { FederationResolver } from './federation';
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FederationResolver = exports.Relatable = exports.ReferenceResolver = exports.DeleteResolver = exports.UpdateResolver = exports.ReadResolver = exports.CreateResolver = exports.CRUDResolver = void 0;
|
|
4
|
+
var crud_resolver_1 = require("./crud.resolver");
|
|
5
|
+
Object.defineProperty(exports, "CRUDResolver", { enumerable: true, get: function () { return crud_resolver_1.CRUDResolver; } });
|
|
6
|
+
var create_resolver_1 = require("./create.resolver");
|
|
7
|
+
Object.defineProperty(exports, "CreateResolver", { enumerable: true, get: function () { return create_resolver_1.CreateResolver; } });
|
|
8
|
+
var read_resolver_1 = require("./read.resolver");
|
|
9
|
+
Object.defineProperty(exports, "ReadResolver", { enumerable: true, get: function () { return read_resolver_1.ReadResolver; } });
|
|
10
|
+
var update_resolver_1 = require("./update.resolver");
|
|
11
|
+
Object.defineProperty(exports, "UpdateResolver", { enumerable: true, get: function () { return update_resolver_1.UpdateResolver; } });
|
|
12
|
+
var delete_resolver_1 = require("./delete.resolver");
|
|
13
|
+
Object.defineProperty(exports, "DeleteResolver", { enumerable: true, get: function () { return delete_resolver_1.DeleteResolver; } });
|
|
14
|
+
var reference_resolver_1 = require("./reference.resolver");
|
|
15
|
+
Object.defineProperty(exports, "ReferenceResolver", { enumerable: true, get: function () { return reference_resolver_1.ReferenceResolver; } });
|
|
16
|
+
var relations_1 = require("./relations");
|
|
17
|
+
Object.defineProperty(exports, "Relatable", { enumerable: true, get: function () { return relations_1.Relatable; } });
|
|
18
|
+
var federation_1 = require("./federation");
|
|
19
|
+
Object.defineProperty(exports, "FederationResolver", { enumerable: true, get: function () { return federation_1.FederationResolver; } });
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/resolvers/index.ts"],"names":[],"mappings":";;;AAAA,iDAAiE;AAAtC,6GAAA,YAAY,OAAA;AACvC,qDAAuE;AAA9D,iHAAA,cAAc,OAAA;AACvB,iDAAiE;AAAxD,6GAAA,YAAY,OAAA;AACrB,qDAAuE;AAA9D,iHAAA,cAAc,OAAA;AACvB,qDAAuE;AAA9D,iHAAA,cAAc,OAAA;AACvB,2DAAgF;AAAvE,uHAAA,iBAAiB,OAAA;AAC1B,yCAAqF;AAA5E,sGAAA,SAAS,OAAA;AAElB,2CAAkD;AAAzC,gHAAA,kBAAkB,OAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Class, Filter, QueryService } from '@ptc-org/nestjs-query-core';
|
|
2
|
+
import { FindOneArgsType, PagingStrategies, QueryArgsTypeOpts, ConnectionOptions, InferConnectionTypeFromStrategy } from '../types';
|
|
3
|
+
import { CursorQueryArgsTypeOpts, QueryType, StaticQueryType } from '../types/query';
|
|
4
|
+
import { ExtractPagingStrategy, ResolverClass, ResolverOpts, ServiceResolver } from './resolver.interface';
|
|
5
|
+
export declare type ReadResolverFromOpts<DTO, Opts extends ReadResolverOpts<DTO>, QS extends QueryService<DTO, unknown, unknown>> = ReadResolver<DTO, ExtractPagingStrategy<DTO, Opts>, QS>;
|
|
6
|
+
export declare type ReadResolverOpts<DTO> = {
|
|
7
|
+
QueryArgs?: StaticQueryType<DTO, PagingStrategies>;
|
|
8
|
+
} & ResolverOpts & QueryArgsTypeOpts<DTO> & Pick<ConnectionOptions, 'enableTotalCount'>;
|
|
9
|
+
export interface ReadResolver<DTO, PS extends PagingStrategies, QS extends QueryService<DTO, unknown, unknown>> extends ServiceResolver<DTO, QS> {
|
|
10
|
+
queryMany(query: QueryType<DTO, PagingStrategies>, authorizeFilter?: Filter<DTO>): Promise<InferConnectionTypeFromStrategy<DTO, PS>>;
|
|
11
|
+
findById(id: FindOneArgsType, authorizeFilter?: Filter<DTO>): Promise<DTO | undefined>;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* @internal
|
|
15
|
+
* Mixin to add `read` graphql endpoints.
|
|
16
|
+
*/
|
|
17
|
+
export declare const Readable: <DTO, ReadOpts extends ReadResolverOpts<DTO>, QS extends QueryService<DTO, unknown, unknown>>(DTOClass: Class<DTO>, opts: ReadOpts) => <B extends Class<ServiceResolver<DTO, QS>>>(BaseClass: B) => Class<ReadResolverFromOpts<DTO, ReadOpts, QS>> & B;
|
|
18
|
+
export declare const ReadResolver: <DTO, ReadOpts extends ReadResolverOpts<DTO> = CursorQueryArgsTypeOpts<DTO>, QS extends QueryService<DTO, unknown, unknown> = QueryService<DTO, unknown, unknown>>(DTOClass: Class<DTO>, opts?: ReadOpts) => ResolverClass<DTO, QS, ReadResolverFromOpts<DTO, ReadOpts, QS>>;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ReadResolver = exports.Readable = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const nestjs_query_core_1 = require("@ptc-org/nestjs-query-core");
|
|
6
|
+
const graphql_1 = require("@nestjs/graphql");
|
|
7
|
+
const lodash_omit_1 = (0, tslib_1.__importDefault)(require("lodash.omit"));
|
|
8
|
+
const common_1 = require("../common");
|
|
9
|
+
const decorators_1 = require("../decorators");
|
|
10
|
+
const types_1 = require("../types");
|
|
11
|
+
const resolver_interface_1 = require("./resolver.interface");
|
|
12
|
+
const interceptors_1 = require("../interceptors");
|
|
13
|
+
const hooks_1 = require("../hooks");
|
|
14
|
+
const auth_1 = require("../auth");
|
|
15
|
+
/**
|
|
16
|
+
* @internal
|
|
17
|
+
* Mixin to add `read` graphql endpoints.
|
|
18
|
+
*/
|
|
19
|
+
const Readable = (DTOClass, opts) => (BaseClass) => {
|
|
20
|
+
const { baseNameLower, pluralBaseNameLower, baseName } = (0, common_1.getDTONames)(DTOClass, opts);
|
|
21
|
+
const readOneQueryName = opts.one?.name ?? baseNameLower;
|
|
22
|
+
const readManyQueryName = opts.many?.name ?? pluralBaseNameLower;
|
|
23
|
+
const { QueryArgs = (0, types_1.QueryArgsType)(DTOClass, { ...opts, connectionName: `${baseName}Connection` }) } = opts;
|
|
24
|
+
const { ConnectionType } = QueryArgs;
|
|
25
|
+
const commonResolverOpts = (0, lodash_omit_1.default)(opts, 'dtoName', 'one', 'many', 'QueryArgs', 'Connection', 'withDeleted');
|
|
26
|
+
let QA = class QA extends QueryArgs {
|
|
27
|
+
};
|
|
28
|
+
QA = (0, tslib_1.__decorate)([
|
|
29
|
+
(0, graphql_1.ArgsType)()
|
|
30
|
+
], QA);
|
|
31
|
+
let FO = class FO extends (0, types_1.FindOneArgsType)(DTOClass) {
|
|
32
|
+
};
|
|
33
|
+
FO = (0, tslib_1.__decorate)([
|
|
34
|
+
(0, graphql_1.ArgsType)()
|
|
35
|
+
], FO);
|
|
36
|
+
let ReadResolverBase = class ReadResolverBase extends BaseClass {
|
|
37
|
+
async findById(input, authorizeFilter) {
|
|
38
|
+
return this.service.getById(input.id, { filter: authorizeFilter, withDeleted: opts?.one?.withDeleted });
|
|
39
|
+
}
|
|
40
|
+
async queryMany(query, authorizeFilter) {
|
|
41
|
+
return ConnectionType.createFromPromise((q) => this.service.query(q), (0, nestjs_query_core_1.mergeQuery)(query, { filter: authorizeFilter }), (filter) => this.service.count(filter));
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
(0, tslib_1.__decorate)([
|
|
45
|
+
(0, decorators_1.ResolverQuery)(() => DTOClass, { name: readOneQueryName, description: opts?.one?.description }, commonResolverOpts, { interceptors: [(0, interceptors_1.HookInterceptor)(hooks_1.HookTypes.BEFORE_FIND_ONE, DTOClass), (0, interceptors_1.AuthorizerInterceptor)(DTOClass)] }, opts.one ?? {}),
|
|
46
|
+
(0, tslib_1.__param)(0, (0, decorators_1.HookArgs)()),
|
|
47
|
+
(0, tslib_1.__param)(1, (0, decorators_1.AuthorizerFilter)({
|
|
48
|
+
operationGroup: auth_1.OperationGroup.READ,
|
|
49
|
+
many: false
|
|
50
|
+
})),
|
|
51
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
|
52
|
+
(0, tslib_1.__metadata)("design:paramtypes", [FO, Object]),
|
|
53
|
+
(0, tslib_1.__metadata)("design:returntype", Promise)
|
|
54
|
+
], ReadResolverBase.prototype, "findById", null);
|
|
55
|
+
(0, tslib_1.__decorate)([
|
|
56
|
+
(0, decorators_1.ResolverQuery)(() => QueryArgs.ConnectionType.resolveType, { name: readManyQueryName, description: opts?.many?.description }, commonResolverOpts, { interceptors: [(0, interceptors_1.HookInterceptor)(hooks_1.HookTypes.BEFORE_QUERY_MANY, DTOClass), (0, interceptors_1.AuthorizerInterceptor)(DTOClass)] }, opts.many ?? {}),
|
|
57
|
+
(0, tslib_1.__param)(0, (0, decorators_1.HookArgs)()),
|
|
58
|
+
(0, tslib_1.__param)(1, (0, decorators_1.AuthorizerFilter)({
|
|
59
|
+
operationGroup: auth_1.OperationGroup.READ,
|
|
60
|
+
many: true
|
|
61
|
+
})),
|
|
62
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
|
63
|
+
(0, tslib_1.__metadata)("design:paramtypes", [QA, Object]),
|
|
64
|
+
(0, tslib_1.__metadata)("design:returntype", Promise)
|
|
65
|
+
], ReadResolverBase.prototype, "queryMany", null);
|
|
66
|
+
ReadResolverBase = (0, tslib_1.__decorate)([
|
|
67
|
+
(0, graphql_1.Resolver)(() => DTOClass, { isAbstract: true })
|
|
68
|
+
], ReadResolverBase);
|
|
69
|
+
return ReadResolverBase;
|
|
70
|
+
};
|
|
71
|
+
exports.Readable = Readable;
|
|
72
|
+
// eslint-disable-next-line @typescript-eslint/no-redeclare -- intentional
|
|
73
|
+
const ReadResolver = (DTOClass, opts = {}) => (0, exports.Readable)(DTOClass, opts)(resolver_interface_1.BaseServiceResolver);
|
|
74
|
+
exports.ReadResolver = ReadResolver;
|
|
75
|
+
//# sourceMappingURL=read.resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read.resolver.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/resolvers/read.resolver.ts"],"names":[],"mappings":";;;;AAAA,kEAAqF;AACrF,6CAAqD;AACrD,2EAA+B;AAC/B,sCAAwC;AACxC,8CAA0E;AAC1E,oCAOkB;AAElB,6DAM8B;AAC9B,kDAAyE;AACzE,oCAAqC;AACrC,kCAAyC;AAkBzC;;;GAGG;AACI,MAAM,QAAQ,GACnB,CACE,QAAoB,EACpB,IAAc,EACd,EAAE,CACF,CAA4C,SAAY,EAAsD,EAAE;IAC9G,MAAM,EAAE,aAAa,EAAE,mBAAmB,EAAE,QAAQ,EAAE,GAAG,IAAA,oBAAW,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACrF,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,aAAa,CAAC;IACzD,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,mBAAmB,CAAC;IACjE,MAAM,EAAE,SAAS,GAAG,IAAA,qBAAa,EAAC,QAAQ,EAAE,EAAE,GAAG,IAAI,EAAE,cAAc,EAAE,GAAG,QAAQ,YAAY,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC;IAC3G,MAAM,EAAE,cAAc,EAAE,GAAG,SAAS,CAAC;IAErC,MAAM,kBAAkB,GAAG,IAAA,qBAAI,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;IAG1G,IAAM,EAAE,GAAR,MAAM,EAAG,SAAQ,SAAS;KACzB,CAAA;IADK,EAAE;QADP,IAAA,kBAAQ,GAAE;OACL,EAAE,CACP;IAGD,IAAM,EAAE,GAAR,MAAM,EAAG,SAAQ,IAAA,uBAAe,EAAC,QAAQ,CAAC;KACzC,CAAA;IADK,EAAE;QADP,IAAA,kBAAQ,GAAE;OACL,EAAE,CACP;IAGD,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,SAAS;QAQtC,KAAK,CAAC,QAAQ,CACA,KAAS,EAKnB,eAA6B;YAE/B,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;QAC1G,CAAC;QASD,KAAK,CAAC,SAAS,CACD,KAAS,EAKnB,eAA6B;YAE/B,OAAO,cAAc,CAAC,iBAAiB,CACrC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAC5B,IAAA,8BAAU,EAAC,KAAK,EAAE,EAAE,MAAM,EAAE,eAAe,EAAE,CAAC,EAC9C,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CACvC,CAAC;QACJ,CAAC;KACF,CAAA;IAhCC;QAPC,IAAA,0BAAa,EACZ,GAAG,EAAE,CAAC,QAAQ,EACd,EAAE,IAAI,EAAE,gBAAgB,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,EAC/D,kBAAkB,EAClB,EAAE,YAAY,EAAE,CAAC,IAAA,8BAAe,EAAC,iBAAS,CAAC,eAAe,EAAE,QAAQ,CAAC,EAAE,IAAA,oCAAqB,EAAC,QAAQ,CAAC,CAAC,EAAE,EACzG,IAAI,CAAC,GAAG,IAAI,EAAE,CACf;QAEE,wBAAA,IAAA,qBAAQ,GAAE,CAAA;QACV,wBAAA,IAAA,6BAAgB,EAAC;YAChB,cAAc,EAAE,qBAAc,CAAC,IAAI;YACnC,IAAI,EAAE,KAAK;SACZ,CAAC,CAAA;;sDAJiB,EAAE;;oDAQtB;IASD;QAPC,IAAA,0BAAa,EACZ,GAAG,EAAE,CAAC,SAAS,CAAC,cAAc,CAAC,WAAW,EAC1C,EAAE,IAAI,EAAE,iBAAiB,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,EACjE,kBAAkB,EAClB,EAAE,YAAY,EAAE,CAAC,IAAA,8BAAe,EAAC,iBAAS,CAAC,iBAAiB,EAAE,QAAQ,CAAC,EAAE,IAAA,oCAAqB,EAAC,QAAQ,CAAC,CAAC,EAAE,EAC3G,IAAI,CAAC,IAAI,IAAI,EAAE,CAChB;QAEE,wBAAA,IAAA,qBAAQ,GAAE,CAAA;QACV,wBAAA,IAAA,6BAAgB,EAAC;YAChB,cAAc,EAAE,qBAAc,CAAC,IAAI;YACnC,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;;sDAJiB,EAAE;;qDAYtB;IAvCG,gBAAgB;QADrB,IAAA,kBAAQ,EAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;OACzC,gBAAgB,CAwCrB;IAED,OAAO,gBAAsE,CAAC;AAChF,CAAC,CAAC;AAlEO,QAAA,QAAQ,YAkEf;AACN,0EAA0E;AACnE,MAAM,YAAY,GAAG,CAI1B,QAAoB,EACpB,OAAiB,EAAc,EACkC,EAAE,CAAC,IAAA,gBAAQ,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,wCAAmB,CAAC,CAAC;AANvG,QAAA,YAAY,gBAM2F"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Class, QueryService } from '@ptc-org/nestjs-query-core';
|
|
2
|
+
import { ResolverClass, ServiceResolver } from './resolver.interface';
|
|
3
|
+
export interface ReferenceResolverOpts {
|
|
4
|
+
key?: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* @internal
|
|
8
|
+
* Mixin to expose `resolveReference` for a DTO on the resolver.
|
|
9
|
+
*/
|
|
10
|
+
export declare const Referenceable: <DTO, QS extends QueryService<DTO, unknown, unknown>>(DTOClass: Class<DTO>, opts: ReferenceResolverOpts) => <B extends Class<ServiceResolver<DTO, QS>>>(BaseClass: B) => B;
|
|
11
|
+
export declare const ReferenceResolver: <DTO, QS extends QueryService<DTO, unknown, unknown> = QueryService<DTO, unknown, unknown>>(DTOClass: Class<DTO>, opts?: ReferenceResolverOpts) => ResolverClass<DTO, QS, ServiceResolver<DTO, QS>>;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ReferenceResolver = exports.Referenceable = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const graphql_1 = require("@nestjs/graphql");
|
|
6
|
+
const common_1 = require("@nestjs/common");
|
|
7
|
+
const common_2 = require("../common");
|
|
8
|
+
const resolver_interface_1 = require("./resolver.interface");
|
|
9
|
+
/**
|
|
10
|
+
* @internal
|
|
11
|
+
* Mixin to expose `resolveReference` for a DTO on the resolver.
|
|
12
|
+
*/
|
|
13
|
+
const Referenceable = (DTOClass, opts) => (BaseClass) => {
|
|
14
|
+
if (!('key' in opts) || opts.key === undefined) {
|
|
15
|
+
return BaseClass;
|
|
16
|
+
}
|
|
17
|
+
const { key } = opts;
|
|
18
|
+
let ResolveReferenceResolverBase = class ResolveReferenceResolverBase extends BaseClass {
|
|
19
|
+
async resolveReference(representation) {
|
|
20
|
+
const id = representation[key];
|
|
21
|
+
if (id === undefined) {
|
|
22
|
+
throw new common_1.BadRequestException(`Unable to resolve reference, missing required key ${key} for ${(0, common_2.getDTONames)(DTOClass).baseName}`);
|
|
23
|
+
}
|
|
24
|
+
return this.service.getById(representation[key]);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
(0, tslib_1.__decorate)([
|
|
28
|
+
(0, graphql_1.ResolveReference)(),
|
|
29
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
|
30
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Object]),
|
|
31
|
+
(0, tslib_1.__metadata)("design:returntype", Promise)
|
|
32
|
+
], ResolveReferenceResolverBase.prototype, "resolveReference", null);
|
|
33
|
+
ResolveReferenceResolverBase = (0, tslib_1.__decorate)([
|
|
34
|
+
(0, graphql_1.Resolver)(() => DTOClass, { isAbstract: true })
|
|
35
|
+
], ResolveReferenceResolverBase);
|
|
36
|
+
return ResolveReferenceResolverBase;
|
|
37
|
+
};
|
|
38
|
+
exports.Referenceable = Referenceable;
|
|
39
|
+
const ReferenceResolver = (DTOClass, opts = {}) => (0, exports.Referenceable)(DTOClass, opts)(resolver_interface_1.BaseServiceResolver);
|
|
40
|
+
exports.ReferenceResolver = ReferenceResolver;
|
|
41
|
+
//# sourceMappingURL=reference.resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reference.resolver.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/resolvers/reference.resolver.ts"],"names":[],"mappings":";;;;AACA,6CAA6D;AAC7D,2CAAqD;AACrD,sCAAwC;AAExC,6DAA2F;AAM3F;;;GAGG;AACI,MAAM,aAAa,GACxB,CAAsD,QAAoB,EAAE,IAA2B,EAAE,EAAE,CAC3G,CAA4C,SAAY,EAAK,EAAE;IAC7D,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE;QAC9C,OAAO,SAAS,CAAC;KAClB;IACD,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IAErB,IAAM,4BAA4B,GAAlC,MAAM,4BAA6B,SAAQ,SAAS;QAElD,KAAK,CAAC,gBAAgB,CAAC,cAAkC;YACvD,MAAM,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,EAAE,KAAK,SAAS,EAAE;gBACpB,MAAM,IAAI,4BAAmB,CAC3B,qDAAqD,GAAG,QAAQ,IAAA,oBAAW,EAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE,CACjG,CAAC;aACH;YACD,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,GAAG,CAAoB,CAAC,CAAC;QACtE,CAAC;KACF,CAAA;IATC;QADC,IAAA,0BAAgB,GAAE;;;;wEASlB;IAVG,4BAA4B;QADjC,IAAA,kBAAQ,EAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;OACzC,4BAA4B,CAWjC;IACD,OAAO,4BAA4B,CAAC;AACtC,CAAC,CAAC;AArBS,QAAA,aAAa,iBAqBtB;AAEG,MAAM,iBAAiB,GAAG,CAI/B,QAAoB,EACpB,OAA8B,EAAE,EACkB,EAAE,CAAC,IAAA,qBAAa,EAAU,QAAQ,EAAE,IAAI,CAAC,CAAC,wCAAmB,CAAC,CAAC;AANtG,QAAA,iBAAiB,qBAMqF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Class, QueryService } from '@ptc-org/nestjs-query-core';
|
|
2
|
+
import { ServiceResolver } from '../resolver.interface';
|
|
3
|
+
import { RelationsOpts } from './relations.interface';
|
|
4
|
+
export interface AggregateRelationsResolverOpts extends RelationsOpts {
|
|
5
|
+
/**
|
|
6
|
+
* Enable relation aggregation queries on relation
|
|
7
|
+
*/
|
|
8
|
+
enableAggregate?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare const AggregateRelationsMixin: <DTO>(DTOClass: Class<DTO>, relations: AggregateRelationsResolverOpts) => <B extends Class<ServiceResolver<DTO, QueryService<DTO, unknown, unknown>>>>(Base: B) => B;
|
|
11
|
+
export declare const AggregateRelationsResolver: <DTO>(DTOClass: Class<DTO>, relations: AggregateRelationsResolverOpts) => Class<ServiceResolver<DTO, QueryService<DTO, unknown, unknown>>>;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AggregateRelationsResolver = exports.AggregateRelationsMixin = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const nestjs_query_core_1 = require("@ptc-org/nestjs-query-core");
|
|
6
|
+
const graphql_1 = require("@nestjs/graphql");
|
|
7
|
+
const auth_1 = require("../../auth");
|
|
8
|
+
const common_1 = require("../../common");
|
|
9
|
+
const decorators_1 = require("../../decorators");
|
|
10
|
+
const interceptors_1 = require("../../interceptors");
|
|
11
|
+
const loader_1 = require("../../loader");
|
|
12
|
+
const types_1 = require("../../types");
|
|
13
|
+
const helpers_1 = require("../helpers");
|
|
14
|
+
const resolver_interface_1 = require("../resolver.interface");
|
|
15
|
+
const helpers_2 = require("./helpers");
|
|
16
|
+
const AggregateRelationMixin = (DTOClass, relation) => (Base) => {
|
|
17
|
+
var _a;
|
|
18
|
+
if (!relation.enableAggregate) {
|
|
19
|
+
return Base;
|
|
20
|
+
}
|
|
21
|
+
const commonResolverOpts = (0, helpers_2.removeRelationOpts)(relation);
|
|
22
|
+
const relationDTO = relation.DTO;
|
|
23
|
+
const dtoName = (0, common_1.getDTONames)(DTOClass).baseName;
|
|
24
|
+
const { baseNameLower, pluralBaseNameLower, pluralBaseName } = (0, common_1.getDTONames)(relationDTO, {
|
|
25
|
+
dtoName: relation.dtoName,
|
|
26
|
+
});
|
|
27
|
+
const relationName = relation.relationName ?? pluralBaseNameLower;
|
|
28
|
+
const aggregateRelationLoaderName = `aggregate${pluralBaseName}For${dtoName}`;
|
|
29
|
+
const aggregateLoader = new loader_1.AggregateRelationsLoader(relationDTO, relationName);
|
|
30
|
+
let RelationQA = class RelationQA extends (0, types_1.AggregateArgsType)(relationDTO) {
|
|
31
|
+
};
|
|
32
|
+
RelationQA = (0, tslib_1.__decorate)([
|
|
33
|
+
(0, graphql_1.ArgsType)()
|
|
34
|
+
], RelationQA);
|
|
35
|
+
const AR = (0, types_1.AggregateResponseType)(relationDTO, { prefix: `${dtoName}${pluralBaseName}` });
|
|
36
|
+
let AggregateMixin = class AggregateMixin extends Base {
|
|
37
|
+
async [_a = `aggregate${pluralBaseName}`](dto, q, aggregateQuery, context, relationFilter) {
|
|
38
|
+
const qa = await (0, helpers_1.transformAndValidate)(RelationQA, q);
|
|
39
|
+
const loader = loader_1.DataLoaderFactory.getOrCreateLoader(context, aggregateRelationLoaderName, aggregateLoader.createLoader(this.service));
|
|
40
|
+
return loader.load({
|
|
41
|
+
dto,
|
|
42
|
+
filter: (0, nestjs_query_core_1.mergeFilter)(qa.filter ?? {}, relationFilter ?? {}),
|
|
43
|
+
aggregate: aggregateQuery,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
(0, tslib_1.__decorate)([
|
|
48
|
+
(0, decorators_1.ResolverField)(`${pluralBaseNameLower}Aggregate`, () => [AR], {}, commonResolverOpts, {
|
|
49
|
+
interceptors: [(0, interceptors_1.AuthorizerInterceptor)(DTOClass)],
|
|
50
|
+
}),
|
|
51
|
+
(0, tslib_1.__param)(0, (0, graphql_1.Parent)()),
|
|
52
|
+
(0, tslib_1.__param)(1, (0, graphql_1.Args)()),
|
|
53
|
+
(0, tslib_1.__param)(2, (0, decorators_1.AggregateQueryParam)()),
|
|
54
|
+
(0, tslib_1.__param)(3, (0, graphql_1.Context)()),
|
|
55
|
+
(0, tslib_1.__param)(4, (0, decorators_1.RelationAuthorizerFilter)(baseNameLower, {
|
|
56
|
+
operationGroup: auth_1.OperationGroup.AGGREGATE,
|
|
57
|
+
many: true,
|
|
58
|
+
})),
|
|
59
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
|
60
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Object, RelationQA, Object, Object, Object]),
|
|
61
|
+
(0, tslib_1.__metadata)("design:returntype", Promise)
|
|
62
|
+
], AggregateMixin.prototype, _a, null);
|
|
63
|
+
AggregateMixin = (0, tslib_1.__decorate)([
|
|
64
|
+
(0, graphql_1.Resolver)(() => DTOClass, { isAbstract: true })
|
|
65
|
+
], AggregateMixin);
|
|
66
|
+
return AggregateMixin;
|
|
67
|
+
};
|
|
68
|
+
const AggregateRelationsMixin = (DTOClass, relations) => (Base) => {
|
|
69
|
+
const { many, enableAggregate } = relations;
|
|
70
|
+
const manyRelations = (0, helpers_2.flattenRelations)(many ?? {});
|
|
71
|
+
return manyRelations.reduce((RB, a) => AggregateRelationMixin(DTOClass, { enableAggregate, ...a })(RB), Base);
|
|
72
|
+
};
|
|
73
|
+
exports.AggregateRelationsMixin = AggregateRelationsMixin;
|
|
74
|
+
const AggregateRelationsResolver = (DTOClass, relations) => (0, exports.AggregateRelationsMixin)(DTOClass, relations)(resolver_interface_1.BaseServiceResolver);
|
|
75
|
+
exports.AggregateRelationsResolver = AggregateRelationsResolver;
|
|
76
|
+
//# sourceMappingURL=aggregate-relations.resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregate-relations.resolver.js","sourceRoot":"","sources":["../../../../../../packages/query-graphql/src/resolvers/relations/aggregate-relations.resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ResolverMethodOpts } from '../../decorators';
|
|
2
|
+
import { RelationTypeMap, ResolverRelation, ResolverRelationReference } from './relations.interface';
|
|
3
|
+
export declare const flattenRelations: <RT extends ResolverRelation<unknown> | ResolverRelationReference<unknown, unknown>>(relationOptions: RelationTypeMap<RT>) => RT[];
|
|
4
|
+
export declare const removeRelationOpts: <Relation>(opts: ResolverRelation<Relation> | ResolverRelationReference<unknown, Relation>) => ResolverMethodOpts;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.removeRelationOpts = exports.flattenRelations = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const lodash_omit_1 = (0, tslib_1.__importDefault)(require("lodash.omit"));
|
|
6
|
+
const flattenRelations = (relationOptions) => Object.keys(relationOptions).map((name) => ({ dtoName: name, ...relationOptions[name] }));
|
|
7
|
+
exports.flattenRelations = flattenRelations;
|
|
8
|
+
const removeRelationOpts = (opts) => (0, lodash_omit_1.default)(opts, 'DTO', 'keys', 'nullable', 'dtoName', 'relationName', 'disableRead', 'disableUpdate', 'disableRemove', 'description');
|
|
9
|
+
exports.removeRelationOpts = removeRelationOpts;
|
|
10
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../../../../../packages/query-graphql/src/resolvers/relations/helpers.ts"],"names":[],"mappings":";;;;AAAA,2EAA+B;AAIxB,MAAM,gBAAgB,GAAG,CAC9B,eAAoC,EAC9B,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAFxF,QAAA,gBAAgB,oBAEwE;AAE9F,MAAM,kBAAkB,GAAG,CAChC,IAA+E,EAC3D,EAAE,CACtB,IAAA,qBAAI,EAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,EAAE,aAAa,CAAC,CAAC;AAHtH,QAAA,kBAAkB,sBAGoG"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { Relatable } from './relations.resolver';
|
|
2
|
+
export { ReadRelationsResolver } from './read-relations.resolver';
|
|
3
|
+
export { UpdateRelationsResolver } from './update-relations.resolver';
|
|
4
|
+
export { RemoveRelationsResolver } from './remove-relations.resolver';
|
|
5
|
+
export { ReferencesRelationsResolver } from './references-relation.resolver';
|
|
6
|
+
export { AggregateRelationsResolver } from './aggregate-relations.resolver';
|
|
7
|
+
export { RelationTypeMap, ReferencesOpts, ResolverRelationReference, RelationsOpts, ResolverRelation, } from './relations.interface';
|