├── .eslintrc.js ├── .github ├── renovate.json └── workflows │ └── ci.yml ├── .gitignore ├── .prettierrc ├── LICENSE ├── README.md ├── e2e ├── fastify-app │ ├── app.module.ts │ └── users │ │ ├── dto │ │ └── update-user.dto.ts │ │ ├── user.controller.ts │ │ ├── user.module.ts │ │ └── user.service.ts ├── fastify.e2e-spec.ts └── jest-e2e.json ├── nest-cli.json ├── package.json ├── pnpm-lock.yaml ├── src ├── async-api-module.ts ├── constants.ts ├── core │ ├── __tests__ │ │ ├── async-api-explorer.spec.ts │ │ ├── async-api-scanner.spec.ts │ │ └── contract-builder.spec.ts │ ├── async-api-explorer.ts │ ├── async-api-scanner.ts │ ├── async-api-transformer.ts │ ├── document-builder.ts │ ├── exploreAsyncApiOperationMetadata.ts │ └── operation-object-factory.ts ├── decorators │ ├── async-channel.decorator.ts │ ├── async-consumer.decorator.ts │ ├── async-property.decorator.ts │ ├── async-publisher.decorator.ts │ └── helpers.ts ├── enums │ └── async-api-security-type.enum.ts ├── fixtures │ └── contract-fixture.ts ├── interfaces │ ├── api-server-options.interface.ts │ ├── async-api-bindings.interface.ts │ ├── async-api-channel.interface.ts │ ├── async-api-channels.interface.ts │ ├── async-api-components.interface.ts │ ├── async-api-contract.interface.ts │ ├── async-api-discriminator.interface.ts │ ├── async-api-examples.interface.ts │ ├── async-api-external-docs.interface.ts │ ├── async-api-message-metadata.interface.ts │ ├── async-api-oauth2-flow.interface.ts │ ├── async-api-operation.interface.ts │ ├── async-api-param-object.interface.ts │ ├── async-api-reference-object.interface.ts │ ├── async-api-scanning-options.interface.ts │ ├── async-api-schema-object.interface.ts │ ├── async-api-security-schemes.interface.ts │ ├── async-api-servers.interface.ts │ ├── async-api-tags.interface.ts │ ├── async-api-template-options.interface.ts │ ├── async-api-traits.interface.ts │ ├── async-operation-options.interface.ts │ ├── doc │ │ ├── denormalized-doc-resolvers.interface.ts │ │ └── denormalized-doc.interface.ts │ ├── index.ts │ ├── oauth2-flow.interface.ts │ ├── security-scheme.interface.ts │ └── server-variables.interface.ts ├── services │ ├── __tests__ │ │ ├── async-api-generator.spec.ts │ │ └── contract-parser.spec.ts │ ├── async-api-generator.ts │ ├── consumer-object-factory.ts │ └── contract-parser.ts ├── types │ ├── api-server-security.type.ts │ ├── async-api-channel-params.type.ts │ ├── oauth2-scope-key.type.ts │ └── security-scheme-in.type.ts └── utils │ ├── getSchemaPath.util.ts │ ├── strip-last-slash.ts │ └── validate-path.ts ├── test └── jest-e2e.json ├── tsconfig.build.json └── tsconfig.json /.eslintrc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/.eslintrc.js -------------------------------------------------------------------------------- /.github/renovate.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/.github/renovate.json -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/.github/workflows/ci.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/.gitignore -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/.prettierrc -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/README.md -------------------------------------------------------------------------------- /e2e/fastify-app/app.module.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/e2e/fastify-app/app.module.ts -------------------------------------------------------------------------------- /e2e/fastify-app/users/dto/update-user.dto.ts: -------------------------------------------------------------------------------- 1 | export class UpdateUserDto {} 2 | -------------------------------------------------------------------------------- /e2e/fastify-app/users/user.controller.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/e2e/fastify-app/users/user.controller.ts -------------------------------------------------------------------------------- /e2e/fastify-app/users/user.module.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/e2e/fastify-app/users/user.module.ts -------------------------------------------------------------------------------- /e2e/fastify-app/users/user.service.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/e2e/fastify-app/users/user.service.ts -------------------------------------------------------------------------------- /e2e/fastify.e2e-spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/e2e/fastify.e2e-spec.ts -------------------------------------------------------------------------------- /e2e/jest-e2e.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/e2e/jest-e2e.json -------------------------------------------------------------------------------- /nest-cli.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/nest-cli.json -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/package.json -------------------------------------------------------------------------------- /pnpm-lock.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/pnpm-lock.yaml -------------------------------------------------------------------------------- /src/async-api-module.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/async-api-module.ts -------------------------------------------------------------------------------- /src/constants.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/constants.ts -------------------------------------------------------------------------------- /src/core/__tests__/async-api-explorer.spec.ts: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/core/__tests__/async-api-scanner.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/core/__tests__/async-api-scanner.spec.ts -------------------------------------------------------------------------------- /src/core/__tests__/contract-builder.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/core/__tests__/contract-builder.spec.ts -------------------------------------------------------------------------------- /src/core/async-api-explorer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/core/async-api-explorer.ts -------------------------------------------------------------------------------- /src/core/async-api-scanner.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/core/async-api-scanner.ts -------------------------------------------------------------------------------- /src/core/async-api-transformer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/core/async-api-transformer.ts -------------------------------------------------------------------------------- /src/core/document-builder.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/core/document-builder.ts -------------------------------------------------------------------------------- /src/core/exploreAsyncApiOperationMetadata.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/core/exploreAsyncApiOperationMetadata.ts -------------------------------------------------------------------------------- /src/core/operation-object-factory.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/core/operation-object-factory.ts -------------------------------------------------------------------------------- /src/decorators/async-channel.decorator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/decorators/async-channel.decorator.ts -------------------------------------------------------------------------------- /src/decorators/async-consumer.decorator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/decorators/async-consumer.decorator.ts -------------------------------------------------------------------------------- /src/decorators/async-property.decorator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/decorators/async-property.decorator.ts -------------------------------------------------------------------------------- /src/decorators/async-publisher.decorator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/decorators/async-publisher.decorator.ts -------------------------------------------------------------------------------- /src/decorators/helpers.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/decorators/helpers.ts -------------------------------------------------------------------------------- /src/enums/async-api-security-type.enum.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/enums/async-api-security-type.enum.ts -------------------------------------------------------------------------------- /src/fixtures/contract-fixture.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/fixtures/contract-fixture.ts -------------------------------------------------------------------------------- /src/interfaces/api-server-options.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/interfaces/api-server-options.interface.ts -------------------------------------------------------------------------------- /src/interfaces/async-api-bindings.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/interfaces/async-api-bindings.interface.ts -------------------------------------------------------------------------------- /src/interfaces/async-api-channel.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/interfaces/async-api-channel.interface.ts -------------------------------------------------------------------------------- /src/interfaces/async-api-channels.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/interfaces/async-api-channels.interface.ts -------------------------------------------------------------------------------- /src/interfaces/async-api-components.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/interfaces/async-api-components.interface.ts -------------------------------------------------------------------------------- /src/interfaces/async-api-contract.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/interfaces/async-api-contract.interface.ts -------------------------------------------------------------------------------- /src/interfaces/async-api-discriminator.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/interfaces/async-api-discriminator.interface.ts -------------------------------------------------------------------------------- /src/interfaces/async-api-examples.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/interfaces/async-api-examples.interface.ts -------------------------------------------------------------------------------- /src/interfaces/async-api-external-docs.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/interfaces/async-api-external-docs.interface.ts -------------------------------------------------------------------------------- /src/interfaces/async-api-message-metadata.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/interfaces/async-api-message-metadata.interface.ts -------------------------------------------------------------------------------- /src/interfaces/async-api-oauth2-flow.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/interfaces/async-api-oauth2-flow.interface.ts -------------------------------------------------------------------------------- /src/interfaces/async-api-operation.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/interfaces/async-api-operation.interface.ts -------------------------------------------------------------------------------- /src/interfaces/async-api-param-object.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/interfaces/async-api-param-object.interface.ts -------------------------------------------------------------------------------- /src/interfaces/async-api-reference-object.interface.ts: -------------------------------------------------------------------------------- 1 | export interface AsyncApiReferenceObject { 2 | $ref: string 3 | } 4 | -------------------------------------------------------------------------------- /src/interfaces/async-api-scanning-options.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/interfaces/async-api-scanning-options.interface.ts -------------------------------------------------------------------------------- /src/interfaces/async-api-schema-object.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/interfaces/async-api-schema-object.interface.ts -------------------------------------------------------------------------------- /src/interfaces/async-api-security-schemes.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/interfaces/async-api-security-schemes.interface.ts -------------------------------------------------------------------------------- /src/interfaces/async-api-servers.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/interfaces/async-api-servers.interface.ts -------------------------------------------------------------------------------- /src/interfaces/async-api-tags.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/interfaces/async-api-tags.interface.ts -------------------------------------------------------------------------------- /src/interfaces/async-api-template-options.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/interfaces/async-api-template-options.interface.ts -------------------------------------------------------------------------------- /src/interfaces/async-api-traits.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/interfaces/async-api-traits.interface.ts -------------------------------------------------------------------------------- /src/interfaces/async-operation-options.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/interfaces/async-operation-options.interface.ts -------------------------------------------------------------------------------- /src/interfaces/doc/denormalized-doc-resolvers.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/interfaces/doc/denormalized-doc-resolvers.interface.ts -------------------------------------------------------------------------------- /src/interfaces/doc/denormalized-doc.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/interfaces/doc/denormalized-doc.interface.ts -------------------------------------------------------------------------------- /src/interfaces/index.ts: -------------------------------------------------------------------------------- 1 | /** @todo Export all interfaces **/ 2 | -------------------------------------------------------------------------------- /src/interfaces/oauth2-flow.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/interfaces/oauth2-flow.interface.ts -------------------------------------------------------------------------------- /src/interfaces/security-scheme.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/interfaces/security-scheme.interface.ts -------------------------------------------------------------------------------- /src/interfaces/server-variables.interface.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/interfaces/server-variables.interface.ts -------------------------------------------------------------------------------- /src/services/__tests__/async-api-generator.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/services/__tests__/async-api-generator.spec.ts -------------------------------------------------------------------------------- /src/services/__tests__/contract-parser.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/services/__tests__/contract-parser.spec.ts -------------------------------------------------------------------------------- /src/services/async-api-generator.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/services/async-api-generator.ts -------------------------------------------------------------------------------- /src/services/consumer-object-factory.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/services/consumer-object-factory.ts -------------------------------------------------------------------------------- /src/services/contract-parser.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/services/contract-parser.ts -------------------------------------------------------------------------------- /src/types/api-server-security.type.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/types/api-server-security.type.ts -------------------------------------------------------------------------------- /src/types/async-api-channel-params.type.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/types/async-api-channel-params.type.ts -------------------------------------------------------------------------------- /src/types/oauth2-scope-key.type.ts: -------------------------------------------------------------------------------- 1 | export type OAuth2ScopeKeyType = string 2 | -------------------------------------------------------------------------------- /src/types/security-scheme-in.type.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/types/security-scheme-in.type.ts -------------------------------------------------------------------------------- /src/utils/getSchemaPath.util.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/utils/getSchemaPath.util.ts -------------------------------------------------------------------------------- /src/utils/strip-last-slash.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/utils/strip-last-slash.ts -------------------------------------------------------------------------------- /src/utils/validate-path.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/src/utils/validate-path.ts -------------------------------------------------------------------------------- /test/jest-e2e.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/test/jest-e2e.json -------------------------------------------------------------------------------- /tsconfig.build.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/tsconfig.build.json -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/underfisk/nestjs-asyncapi/HEAD/tsconfig.json --------------------------------------------------------------------------------