@amqp-contract/asyncapi 2.4.0 → 3.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -0
- package/dist/index.d.cts +3 -4
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +2 -3
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -0
- package/dist/index.mjs.map +1 -1
- package/docs/index.md +9 -9
- package/package.json +16 -16
package/dist/index.cjs
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
let _amqp_contract_contract = require("@amqp-contract/contract");
|
|
3
|
+
require("@orpc/openapi");
|
|
3
4
|
//#region src/index.ts
|
|
4
5
|
/**
|
|
5
6
|
* Generator for creating AsyncAPI 3.0 documentation from AMQP contracts.
|
package/dist/index.d.cts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { ConditionalSchemaConverter } from "@orpc/openapi";
|
|
2
1
|
import { ContractDefinition } from "@amqp-contract/contract";
|
|
3
|
-
|
|
2
|
+
import { ConditionalSchemaConverter } from "@orpc/openapi";
|
|
4
3
|
//#region ../../node_modules/.pnpm/@types+json-schema@7.0.15/node_modules/@types/json-schema/index.d.ts
|
|
5
4
|
// ==================================================================================================
|
|
6
5
|
// JSON Schema Draft 07
|
|
@@ -12,13 +11,13 @@ import { ContractDefinition } from "@amqp-contract/contract";
|
|
|
12
11
|
* @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.1.1
|
|
13
12
|
*/
|
|
14
13
|
type JSONSchema7TypeName = "string" //
|
|
15
|
-
| "number" | "integer" | "boolean" | "object" | "array" | "null";
|
|
14
|
+
| "number" | "integer" | "boolean" | "object" | "array" | "null";
|
|
16
15
|
/**
|
|
17
16
|
* Primitive type
|
|
18
17
|
* @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.1.1
|
|
19
18
|
*/
|
|
20
19
|
type JSONSchema7Type = string //
|
|
21
|
-
| number | boolean | JSONSchema7Object | JSONSchema7Array | null;
|
|
20
|
+
| number | boolean | JSONSchema7Object | JSONSchema7Array | null;
|
|
22
21
|
// Workaround for infinite type recursion
|
|
23
22
|
interface JSONSchema7Object {
|
|
24
23
|
[key: string]: JSONSchema7Type;
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":["JSONSchema4Object","JSONSchema4Array","key","JSONSchema4Type","Array","id","$ref","$schema","JSONSchema4Version","title","description","default","multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","JSONSchema4","items","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","definitions","k","properties","patternProperties","dependencies","enum","type","JSONSchema4TypeName","allOf","anyOf","oneOf","not","extends","format","JSONSchema6Object","JSONSchema6Array","JSONSchema6Type","JSONSchema6","$id","JSONSchema6Version","JSONSchema6Definition","contains","propertyNames","const","JSONSchema6TypeName","examples","JSONSchema7Object","JSONSchema7Array","JSONSchema7Type","JSONSchema7","JSONSchema7Version","$comment","$defs","JSONSchema7Definition","JSONSchema7TypeName","if","then","else","contentMediaType","contentEncoding","readOnly","writeOnly","valid","errors","ValidationError","property","message","instance","schema","ValidationResult","value","result","SpecificationExtensions","asyncapi","AsyncAPIVersion","id","Identifier","defaultContentType","DefaultContentType","info","InfoObject","servers","ServersObject","channels","ChannelsObject","operations","OperationsObject","components","ComponentsObject","title","version","description","termsOfService","contact","ContactObject","license","LicenseObject","tags","TagsObject","externalDocs","ExternalDocumentationObject","ReferenceObject","name","url","email","Record","ServerObject","host","protocol","pathname","protocolVersion","variables","ServerVariableObject","security","Array","SecuritySchemeObject","bindings","ServerBindingsObject","enum","default","examples","http","Binding","ws","kafka","anypointmq","amqp","amqp1","mqtt","mqtt5","nats","jms","sns","sqs","stomp","redis","mercure","ibmmq","googlepubsub","ChannelObject","address","messages","MessagesObject","summary","parameters","ParametersObject","ChannelBindingsObject","OperationObject","action","channel","MessageObject","reply","OperationReplyObject","OperationBindingsObject","traits","OperationTraitObject","OperationReplyAddressObject","location","MessageTraitObject","payload","headers","MultiFormatSchemaObject","correlationId","CorrelationIDObject","contentType","MessageBindingsObject","MessageExampleObject","ParameterObject","TagObject","schemas","SchemaObject","securitySchemes","serverVariables","replies","replyAddresses","correlationIds","operationTraits","messageTraits","serverBindings","channelBindings","operationBindings","messageBindings","type","SecuritySchemeType","in","scheme","bearerFormat","flows","OAuthFlowsObject","openIdConnectUrl","scopes","SecuritySchemeObjectBase","implicit","OAuthFlowObjectImplicit","password","OAuthFlowObjectPassword","clientCredentials","OAuthFlowObjectClientCredentials","authorizationCode","OAuthFlowObjectAuthorizationCode","refreshUrl","availableScopes","OAuthFlowObjectBase","authorizationUrl","tokenUrl","AsyncAPISchemaObject","AsyncAPISchemaDefinition","schema","schemaFormat","MultiFormatObject","$id","$schema","JSONSchema7Version","$comment","JSONSchema7TypeName","JSONSchema7Type","const","multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","items","additionalItems","maxItems","minItems","uniqueItems","contains","maxProperties","minProperties","required","properties","key","patternProperties","additionalProperties","dependencies","propertyNames","if","then","else","allOf","anyOf","oneOf","not","format","contentMediaType","contentEncoding","definitions","readOnly","writeOnly","discriminator","deprecated","keyword","bindingVersion","extension","SpecificationExtension","T","$ref"],"sources":["../../../node_modules/.pnpm/@types+json-schema@7.0.15/node_modules/@types/json-schema/index.d.ts","../../../node_modules/.pnpm/@asyncapi+parser@3.6.0/node_modules/@asyncapi/parser/esm/spec-types/v3.d.ts","../src/index.ts"],"x_google_ignoreList":[0,1],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.cts","names":[],"sources":["../../../node_modules/.pnpm/@types+json-schema@7.0.15/node_modules/@types/json-schema/index.d.ts","../../../node_modules/.pnpm/@asyncapi+parser@3.6.0/node_modules/@asyncapi/parser/esm/spec-types/v3.d.ts","../src/index.ts"],"x_google_ignoreList":[0,1],"mappings":"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"}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { ContractDefinition } from "@amqp-contract/contract";
|
|
2
2
|
import { ConditionalSchemaConverter } from "@orpc/openapi";
|
|
3
|
-
|
|
4
3
|
//#region ../../node_modules/.pnpm/@types+json-schema@7.0.15/node_modules/@types/json-schema/index.d.ts
|
|
5
4
|
// ==================================================================================================
|
|
6
5
|
// JSON Schema Draft 07
|
|
@@ -12,13 +11,13 @@ import { ConditionalSchemaConverter } from "@orpc/openapi";
|
|
|
12
11
|
* @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.1.1
|
|
13
12
|
*/
|
|
14
13
|
type JSONSchema7TypeName = "string" //
|
|
15
|
-
| "number" | "integer" | "boolean" | "object" | "array" | "null";
|
|
14
|
+
| "number" | "integer" | "boolean" | "object" | "array" | "null";
|
|
16
15
|
/**
|
|
17
16
|
* Primitive type
|
|
18
17
|
* @see https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.1.1
|
|
19
18
|
*/
|
|
20
19
|
type JSONSchema7Type = string //
|
|
21
|
-
| number | boolean | JSONSchema7Object | JSONSchema7Array | null;
|
|
20
|
+
| number | boolean | JSONSchema7Object | JSONSchema7Array | null;
|
|
22
21
|
// Workaround for infinite type recursion
|
|
23
22
|
interface JSONSchema7Object {
|
|
24
23
|
[key: string]: JSONSchema7Type;
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":["JSONSchema4Object","JSONSchema4Array","key","JSONSchema4Type","Array","id","$ref","$schema","JSONSchema4Version","title","description","default","multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","JSONSchema4","items","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","definitions","k","properties","patternProperties","dependencies","enum","type","JSONSchema4TypeName","allOf","anyOf","oneOf","not","extends","format","JSONSchema6Object","JSONSchema6Array","JSONSchema6Type","JSONSchema6","$id","JSONSchema6Version","JSONSchema6Definition","contains","propertyNames","const","JSONSchema6TypeName","examples","JSONSchema7Object","JSONSchema7Array","JSONSchema7Type","JSONSchema7","JSONSchema7Version","$comment","$defs","JSONSchema7Definition","JSONSchema7TypeName","if","then","else","contentMediaType","contentEncoding","readOnly","writeOnly","valid","errors","ValidationError","property","message","instance","schema","ValidationResult","value","result","SpecificationExtensions","asyncapi","AsyncAPIVersion","id","Identifier","defaultContentType","DefaultContentType","info","InfoObject","servers","ServersObject","channels","ChannelsObject","operations","OperationsObject","components","ComponentsObject","title","version","description","termsOfService","contact","ContactObject","license","LicenseObject","tags","TagsObject","externalDocs","ExternalDocumentationObject","ReferenceObject","name","url","email","Record","ServerObject","host","protocol","pathname","protocolVersion","variables","ServerVariableObject","security","Array","SecuritySchemeObject","bindings","ServerBindingsObject","enum","default","examples","http","Binding","ws","kafka","anypointmq","amqp","amqp1","mqtt","mqtt5","nats","jms","sns","sqs","stomp","redis","mercure","ibmmq","googlepubsub","ChannelObject","address","messages","MessagesObject","summary","parameters","ParametersObject","ChannelBindingsObject","OperationObject","action","channel","MessageObject","reply","OperationReplyObject","OperationBindingsObject","traits","OperationTraitObject","OperationReplyAddressObject","location","MessageTraitObject","payload","headers","MultiFormatSchemaObject","correlationId","CorrelationIDObject","contentType","MessageBindingsObject","MessageExampleObject","ParameterObject","TagObject","schemas","SchemaObject","securitySchemes","serverVariables","replies","replyAddresses","correlationIds","operationTraits","messageTraits","serverBindings","channelBindings","operationBindings","messageBindings","type","SecuritySchemeType","in","scheme","bearerFormat","flows","OAuthFlowsObject","openIdConnectUrl","scopes","SecuritySchemeObjectBase","implicit","OAuthFlowObjectImplicit","password","OAuthFlowObjectPassword","clientCredentials","OAuthFlowObjectClientCredentials","authorizationCode","OAuthFlowObjectAuthorizationCode","refreshUrl","availableScopes","OAuthFlowObjectBase","authorizationUrl","tokenUrl","AsyncAPISchemaObject","AsyncAPISchemaDefinition","schema","schemaFormat","MultiFormatObject","$id","$schema","JSONSchema7Version","$comment","JSONSchema7TypeName","JSONSchema7Type","const","multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","items","additionalItems","maxItems","minItems","uniqueItems","contains","maxProperties","minProperties","required","properties","key","patternProperties","additionalProperties","dependencies","propertyNames","if","then","else","allOf","anyOf","oneOf","not","format","contentMediaType","contentEncoding","definitions","readOnly","writeOnly","discriminator","deprecated","keyword","bindingVersion","extension","SpecificationExtension","T","$ref"],"sources":["../../../node_modules/.pnpm/@types+json-schema@7.0.15/node_modules/@types/json-schema/index.d.ts","../../../node_modules/.pnpm/@asyncapi+parser@3.6.0/node_modules/@asyncapi/parser/esm/spec-types/v3.d.ts","../src/index.ts"],"x_google_ignoreList":[0,1],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../node_modules/.pnpm/@types+json-schema@7.0.15/node_modules/@types/json-schema/index.d.ts","../../../node_modules/.pnpm/@asyncapi+parser@3.6.0/node_modules/@asyncapi/parser/esm/spec-types/v3.d.ts","../src/index.ts"],"x_google_ignoreList":[0,1],"mappings":"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"}
|
package/dist/index.mjs
CHANGED
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":[],"sources":["../src/index.ts"],"sourcesContent":["import {\n AsyncAPIObject,\n ChannelObject,\n ChannelsObject,\n MessageObject,\n MessagesObject,\n OperationsObject,\n} from \"@asyncapi/parser/esm/spec-types/v3.js\";\nimport { ConditionalSchemaConverter, JSONSchema } from \"@orpc/openapi\";\nimport type {\n BindingDefinition,\n ContractDefinition,\n ExchangeBindingDefinition,\n ExchangeDefinition,\n MessageDefinition,\n QueueBindingDefinition,\n QueueDefinition,\n} from \"@amqp-contract/contract\";\nimport { extractConsumer, extractQueue } from \"@amqp-contract/contract\";\nimport type { StandardSchemaV1 } from \"@standard-schema/spec\";\n\n/**\n * Options for configuring the AsyncAPI generator.\n *\n * @example\n * ```typescript\n * import { AsyncAPIGenerator } from '@amqp-contract/asyncapi';\n * import { zodToJsonSchema } from '@orpc/zod';\n *\n * const generator = new AsyncAPIGenerator({\n * schemaConverters: [zodToJsonSchema]\n * });\n * ```\n */\nexport type AsyncAPIGeneratorOptions = {\n /**\n * Schema converters for transforming validation schemas to JSON Schema.\n * Supports Zod, Valibot, ArkType, and other Standard Schema v1 compatible libraries.\n */\n schemaConverters?: ConditionalSchemaConverter[];\n /**\n * Optional logger for warnings during generation (e.g. unmatched schema converters).\n */\n logger?: { warn: (message: string) => void };\n /**\n * If true, the generator throws when a payload schema cannot be converted by\n * any of the configured `schemaConverters` instead of falling back to a\n * generic `{ type: \"object\" }` placeholder. Recommended for CI pipelines\n * that depend on the generated spec being faithful (e.g. for codegen).\n *\n * Defaults to `false` for backwards compatibility.\n */\n failOnMissingConverter?: boolean;\n};\n\n/**\n * Options for generating an AsyncAPI document.\n * These correspond to the top-level AsyncAPI document fields.\n */\nexport type AsyncAPIGeneratorGenerateOptions = Pick<AsyncAPIObject, \"info\"> &\n Partial<Pick<AsyncAPIObject, \"id\" | \"servers\">>;\n\n/**\n * Generator for creating AsyncAPI 3.0 documentation from AMQP contracts.\n *\n * This class converts contract definitions into AsyncAPI 3.0 specification documents,\n * which can be used for API documentation, code generation, and tooling integration.\n *\n * @example\n * ```typescript\n * import { AsyncAPIGenerator } from '@amqp-contract/asyncapi';\n * import { defineExchange, defineMessage, defineContract, definePublisher } from '@amqp-contract/contract';\n * import { zodToJsonSchema } from '@orpc/zod';\n * import { z } from 'zod';\n *\n * const ordersExchange = defineExchange('orders');\n * const orderMessage = defineMessage(z.object({\n * orderId: z.string(),\n * amount: z.number()\n * }));\n *\n * const contract = defineContract({\n * publishers: {\n * orderCreated: definePublisher(ordersExchange, orderMessage, {\n * routingKey: 'order.created'\n * })\n * }\n * });\n *\n * const generator = new AsyncAPIGenerator({\n * schemaConverters: [zodToJsonSchema]\n * });\n *\n * const asyncapi = await generator.generate(contract, {\n * id: 'urn:com:example:order-service',\n * info: {\n * title: 'Order Service API',\n * version: '1.0.0',\n * description: 'Async API for order processing'\n * },\n * servers: {\n * production: {\n * host: 'rabbitmq.example.com',\n * protocol: 'amqp',\n * protocolVersion: '0.9.1'\n * }\n * }\n * });\n * ```\n */\nexport class AsyncAPIGenerator {\n private readonly converters: ConditionalSchemaConverter[];\n private readonly logger?: { warn: (message: string) => void } | undefined;\n private readonly failOnMissingConverter: boolean;\n\n /**\n * Create a new AsyncAPI generator instance.\n *\n * @param options - Configuration options including schema converters\n */\n constructor(options: AsyncAPIGeneratorOptions = {}) {\n this.converters = options.schemaConverters ?? [];\n this.logger = options.logger;\n this.failOnMissingConverter = options.failOnMissingConverter ?? false;\n }\n\n /**\n * Generate an AsyncAPI 3.0 document from a contract definition.\n *\n * Converts AMQP exchanges, queues, publishers, and consumers into\n * AsyncAPI channels, operations, and messages with proper JSON Schema\n * validation definitions.\n *\n * @param contract - The AMQP contract definition to convert\n * @param options - AsyncAPI document metadata (id, info, servers)\n * @returns Promise resolving to a complete AsyncAPI 3.0 document\n *\n * @example\n * ```typescript\n * const asyncapi = await generator.generate(contract, {\n * id: 'urn:com:example:api',\n * info: {\n * title: 'My API',\n * version: '1.0.0'\n * },\n * servers: {\n * dev: {\n * host: 'localhost:5672',\n * protocol: 'amqp'\n * }\n * }\n * });\n * ```\n */\n async generate(\n contract: ContractDefinition,\n options: AsyncAPIGeneratorGenerateOptions,\n ): Promise<AsyncAPIObject> {\n const convertedChannels: ChannelsObject = {};\n const convertedOperations: OperationsObject = {};\n const convertedMessages: MessagesObject = {};\n\n // First, collect all messages from publishers and consumers\n const publisherMessages = new Map<string, { message: MessageDefinition; channelKey: string }>();\n const consumerMessages = new Map<string, { message: MessageDefinition; channelKey: string }>();\n\n // Collect messages from publishers\n if (contract.publishers) {\n for (const [publisherName, publisher] of Object.entries(contract.publishers)) {\n const channelKey = this.getExchangeName(publisher.exchange, contract);\n publisherMessages.set(publisherName, { message: publisher.message, channelKey });\n }\n }\n\n // Collect messages from consumers\n if (contract.consumers) {\n for (const [consumerName, consumerEntry] of Object.entries(contract.consumers)) {\n const consumer = extractConsumer(consumerEntry);\n const queue = extractQueue(consumer.queue);\n const channelKey = this.getQueueName(queue, contract);\n consumerMessages.set(consumerName, { message: consumer.message, channelKey });\n }\n }\n\n // Generate channels from queues with their messages\n if (contract.queues) {\n for (const [queueName, queueEntry] of Object.entries(contract.queues)) {\n const queue = extractQueue(queueEntry);\n const channelMessages: MessagesObject = {};\n\n // Add messages from consumers that reference this queue\n for (const [consumerName, { message, channelKey }] of consumerMessages) {\n if (channelKey === queueName) {\n const messageName = `${consumerName}Message`;\n channelMessages[messageName] = await this.convertMessage(message);\n convertedMessages[messageName] = await this.convertMessage(message);\n }\n }\n\n // Find bindings for this queue\n const queueBindings = this.getQueueBindings(queue, contract);\n const channel: ChannelObject = {\n ...this.queueToChannel(queue, queueBindings),\n };\n\n if (Object.keys(channelMessages).length > 0) {\n channel.messages = channelMessages;\n }\n\n convertedChannels[queueName] = channel;\n }\n }\n\n // Generate channels from exchanges with their messages\n if (contract.exchanges) {\n for (const [exchangeName, exchange] of Object.entries(contract.exchanges)) {\n const channelMessages: MessagesObject = {};\n\n // Add messages from publishers that reference this exchange\n for (const [publisherName, { message, channelKey }] of publisherMessages) {\n if (channelKey === exchangeName) {\n const messageName = `${publisherName}Message`;\n channelMessages[messageName] = await this.convertMessage(message);\n convertedMessages[messageName] = await this.convertMessage(message);\n }\n }\n\n const channel: ChannelObject = {\n ...this.exchangeToChannel(exchange, contract),\n };\n\n if (Object.keys(channelMessages).length > 0) {\n channel.messages = channelMessages;\n }\n\n convertedChannels[exchangeName] = channel;\n }\n }\n\n // Generate publish operations from publishers\n if (contract.publishers) {\n for (const [publisherName, publisher] of Object.entries(contract.publishers)) {\n const exchangeName = this.getExchangeName(publisher.exchange, contract);\n const messageName = `${publisherName}Message`;\n\n // Build operation without type assertion\n if (publisher.routingKey) {\n convertedOperations[publisherName] = {\n action: \"send\",\n channel: { $ref: `#/channels/${exchangeName}` },\n messages: [{ $ref: `#/channels/${exchangeName}/messages/${messageName}` }],\n summary: `Publish to ${publisher.exchange.name}`,\n description: `Routing key: ${publisher.routingKey}`,\n bindings: {\n amqp: {\n cc: [publisher.routingKey],\n deliveryMode: 2, // Persistent by default\n bindingVersion: \"0.3.0\",\n } as Record<string, unknown>,\n },\n };\n } else {\n convertedOperations[publisherName] = {\n action: \"send\",\n channel: { $ref: `#/channels/${exchangeName}` },\n messages: [{ $ref: `#/channels/${exchangeName}/messages/${messageName}` }],\n summary: `Publish to ${publisher.exchange.name}`,\n };\n }\n }\n }\n\n // Generate receive operations from consumers\n if (contract.consumers) {\n for (const [consumerName, consumerEntry] of Object.entries(contract.consumers)) {\n const consumer = extractConsumer(consumerEntry);\n const queue = extractQueue(consumer.queue);\n const queueName = this.getQueueName(queue, contract);\n const messageName = `${consumerName}Message`;\n\n convertedOperations[consumerName] = {\n action: \"receive\",\n channel: { $ref: `#/channels/${queueName}` },\n messages: [{ $ref: `#/channels/${queueName}/messages/${messageName}` }],\n summary: `Consume from ${queue.name}`,\n bindings: {\n amqp: {\n bindingVersion: \"0.3.0\",\n } as Record<string, unknown>,\n },\n };\n }\n }\n\n return {\n ...options,\n asyncapi: \"3.1.0\",\n channels: convertedChannels,\n operations: convertedOperations,\n components: {\n messages: convertedMessages,\n },\n };\n }\n\n /**\n * Convert a message definition to AsyncAPI MessageObject\n */\n private async convertMessage(message: MessageDefinition): Promise<MessageObject> {\n const payload = message.payload;\n\n // Convert payload schema\n const payloadJsonSchema = await this.convertSchema(payload, \"input\");\n\n // Build result with required properties\n const result: Record<string, unknown> = {\n payload: payloadJsonSchema,\n contentType: \"application/json\",\n };\n\n // Add optional properties only if they exist\n if (message.headers) {\n const headersJsonSchema = await this.convertSchema(message.headers, \"input\");\n if (headersJsonSchema) {\n result[\"headers\"] = headersJsonSchema;\n }\n }\n\n if (message.summary) {\n result[\"summary\"] = message.summary;\n }\n\n if (message.description) {\n result[\"description\"] = message.description;\n }\n\n return result as MessageObject;\n }\n\n /**\n * Convert a queue definition to AsyncAPI ChannelObject.\n *\n * The AMQP binding spec doesn't have first-class fields for dead-lettering\n * or retry policy, so we surface them in two places:\n *\n * 1. The `arguments` map carries the canonical RabbitMQ keys\n * (`x-dead-letter-exchange`, `x-dead-letter-routing-key`) — these are\n * what a consumer of the spec would actually use to recreate the queue.\n * 2. The channel description summarises DLX + retry policy in human-readable\n * form so the topology is visible without reading the binding details.\n */\n private queueToChannel(\n queue: QueueDefinition,\n bindings: QueueBindingDefinition[] = [],\n ): ChannelObject {\n // Merge user-provided arguments with derived RabbitMQ args. User\n // arguments win on collision so consumers can override the derived ones\n // if they really need to. The DLX description below is then built from the\n // merged result so the human-readable summary cannot drift from the\n // structured `arguments` if the user overrode them.\n const derivedArgs: Record<string, unknown> = {};\n if (queue.deadLetter?.exchange) {\n derivedArgs[\"x-dead-letter-exchange\"] = queue.deadLetter.exchange.name;\n if (queue.deadLetter.routingKey) {\n derivedArgs[\"x-dead-letter-routing-key\"] = queue.deadLetter.routingKey;\n }\n }\n const mergedArgs = { ...derivedArgs, ...queue.arguments };\n\n let description = `AMQP Queue: ${queue.name}`;\n if (bindings.length > 0) {\n const bindingDescriptions = bindings\n .map((binding) => {\n const exchangeName = binding.exchange.name;\n const routingKey = \"routingKey\" in binding ? binding.routingKey : undefined;\n return routingKey\n ? `bound to exchange '${exchangeName}' with routing key '${routingKey}'`\n : `bound to exchange '${exchangeName}'`;\n })\n .join(\", \");\n description += ` (${bindingDescriptions})`;\n }\n\n const effectiveDlx = mergedArgs[\"x-dead-letter-exchange\"];\n if (typeof effectiveDlx === \"string\" && effectiveDlx.length > 0) {\n description += `. Dead-letters to '${effectiveDlx}'`;\n const effectiveDlxRoutingKey = mergedArgs[\"x-dead-letter-routing-key\"];\n if (typeof effectiveDlxRoutingKey === \"string\" && effectiveDlxRoutingKey.length > 0) {\n description += ` (routing key '${effectiveDlxRoutingKey}')`;\n }\n description += \".\";\n }\n\n if (queue.retry && queue.retry.mode !== \"none\") {\n const retry = queue.retry;\n if (retry.mode === \"immediate-requeue\") {\n description += ` Retry: immediate-requeue, max ${retry.maxRetries} attempts.`;\n } else if (retry.mode === \"ttl-backoff\") {\n const initial = retry.initialDelayMs;\n description += ` Retry: ttl-backoff, max ${retry.maxRetries} attempts`;\n if (initial !== undefined) {\n description += `, initial delay ${initial}ms`;\n }\n description += \".\";\n }\n }\n\n const result: Record<string, unknown> = {\n address: queue.name,\n title: queue.name,\n description,\n bindings: {\n amqp: {\n is: \"queue\",\n queue: {\n name: queue.name,\n type: queue.type,\n durable: queue.durable,\n ...(queue.exclusive !== undefined && { exclusive: queue.exclusive }),\n ...(queue.autoDelete !== undefined && { autoDelete: queue.autoDelete }),\n ...(queue.maxPriority !== undefined && { maxPriority: queue.maxPriority }),\n ...(Object.keys(mergedArgs).length > 0 ? { arguments: mergedArgs } : {}),\n vhost: \"/\",\n },\n bindingVersion: \"0.3.0\",\n },\n },\n };\n\n if (queue.retry && queue.retry.mode !== \"none\") {\n // Spec extension: retry policy is non-standard but useful for tooling\n // that wants to inspect it programmatically. Prefixing with `x-` keeps\n // the spec valid for strict parsers.\n (result as Record<string, unknown>)[\"x-amqp-retry\"] = {\n mode: queue.retry.mode,\n ...(\"maxRetries\" in queue.retry && queue.retry.maxRetries !== undefined\n ? { maxRetries: queue.retry.maxRetries }\n : {}),\n ...(queue.retry.mode === \"ttl-backoff\"\n ? {\n ...(queue.retry.initialDelayMs !== undefined\n ? { initialDelayMs: queue.retry.initialDelayMs }\n : {}),\n ...(queue.retry.maxDelayMs !== undefined\n ? { maxDelayMs: queue.retry.maxDelayMs }\n : {}),\n ...(queue.retry.backoffMultiplier !== undefined\n ? { backoffMultiplier: queue.retry.backoffMultiplier }\n : {}),\n ...(queue.retry.jitter !== undefined ? { jitter: queue.retry.jitter } : {}),\n }\n : {}),\n };\n }\n\n return result as ChannelObject;\n }\n\n /**\n * Convert an exchange definition to AsyncAPI ChannelObject.\n *\n * Exchange-to-exchange bindings — used for bridge exchanges, fanout\n * fan-in/out, and other cross-domain routing — are surfaced both as a\n * line in the description and via the non-standard `x-amqp-exchange-bindings`\n * extension so tooling can recreate the topology.\n */\n private exchangeToChannel(\n exchange: ExchangeDefinition,\n contract: ContractDefinition,\n ): ChannelObject {\n const sourceBindings = this.getExchangeBindingsBySource(exchange, contract);\n const destinationBindings = this.getExchangeBindingsByDestination(exchange, contract);\n\n let description = `AMQP Exchange: ${exchange.name} (${exchange.type})`;\n if (sourceBindings.length > 0) {\n const summaries = sourceBindings\n .map((binding) => {\n const target = binding.destination.name;\n const routingKey = \"routingKey\" in binding ? binding.routingKey : undefined;\n return routingKey\n ? `forwards to '${target}' (routing key '${routingKey}')`\n : `forwards to '${target}'`;\n })\n .join(\", \");\n description += `. ${summaries}.`;\n }\n if (destinationBindings.length > 0) {\n const summaries = destinationBindings\n .map((binding) => {\n const source = binding.source.name;\n const routingKey = \"routingKey\" in binding ? binding.routingKey : undefined;\n return routingKey\n ? `receives from '${source}' (routing key '${routingKey}')`\n : `receives from '${source}'`;\n })\n .join(\", \");\n description += ` ${summaries}.`;\n }\n\n const result: Record<string, unknown> = {\n address: exchange.name,\n title: exchange.name,\n description,\n bindings: {\n amqp: {\n is: \"routingKey\",\n exchange: {\n name: exchange.name,\n type: exchange.type,\n durable: exchange.durable,\n ...(exchange.autoDelete !== undefined && { autoDelete: exchange.autoDelete }),\n ...(exchange.internal !== undefined && { internal: exchange.internal }),\n ...(exchange.arguments !== undefined && { arguments: exchange.arguments }),\n vhost: \"/\",\n },\n bindingVersion: \"0.3.0\",\n },\n },\n };\n\n if (sourceBindings.length > 0 || destinationBindings.length > 0) {\n const e2eBindings: Record<string, unknown> = {};\n if (sourceBindings.length > 0) {\n e2eBindings[\"forwardsTo\"] = sourceBindings.map((b) => ({\n destination: b.destination.name,\n ...(\"routingKey\" in b && b.routingKey !== undefined ? { routingKey: b.routingKey } : {}),\n ...(b.arguments !== undefined ? { arguments: b.arguments } : {}),\n }));\n }\n if (destinationBindings.length > 0) {\n e2eBindings[\"receivesFrom\"] = destinationBindings.map((b) => ({\n source: b.source.name,\n ...(\"routingKey\" in b && b.routingKey !== undefined ? { routingKey: b.routingKey } : {}),\n ...(b.arguments !== undefined ? { arguments: b.arguments } : {}),\n }));\n }\n (result as Record<string, unknown>)[\"x-amqp-exchange-bindings\"] = e2eBindings;\n }\n\n return result as ChannelObject;\n }\n\n private getExchangeBindingsBySource(\n exchange: ExchangeDefinition,\n contract: ContractDefinition,\n ): ExchangeBindingDefinition[] {\n return this.exchangeBindings(contract).filter((b) => b.source.name === exchange.name);\n }\n\n private getExchangeBindingsByDestination(\n exchange: ExchangeDefinition,\n contract: ContractDefinition,\n ): ExchangeBindingDefinition[] {\n return this.exchangeBindings(contract).filter((b) => b.destination.name === exchange.name);\n }\n\n private exchangeBindings(contract: ContractDefinition): ExchangeBindingDefinition[] {\n if (!contract.bindings) return [];\n const result: ExchangeBindingDefinition[] = [];\n for (const binding of Object.values(contract.bindings) as BindingDefinition[]) {\n if (binding.type === \"exchange\") {\n result.push(binding);\n }\n }\n return result;\n }\n\n /**\n * Get the name/key of an exchange from the contract\n */\n private getExchangeName(exchange: ExchangeDefinition, contract: ContractDefinition): string {\n if (contract.exchanges) {\n for (const [name, ex] of Object.entries(contract.exchanges)) {\n if (ex === exchange || ex.name === exchange.name) {\n return name;\n }\n }\n }\n return exchange.name;\n }\n\n /**\n * Get the name/key of a queue from the contract\n */\n private getQueueName(queue: QueueDefinition, contract: ContractDefinition): string {\n if (contract.queues) {\n for (const [name, qEntry] of Object.entries(contract.queues)) {\n const q = extractQueue(qEntry);\n if (q === queue || q.name === queue.name) {\n return name;\n }\n }\n }\n return queue.name;\n }\n\n /**\n * Get all bindings for a queue from the contract\n */\n private getQueueBindings(\n queue: QueueDefinition,\n contract: ContractDefinition,\n ): QueueBindingDefinition[] {\n const result: QueueBindingDefinition[] = [];\n\n if (contract.bindings) {\n for (const binding of Object.values(contract.bindings)) {\n if (binding.type === \"queue\" && binding.queue.name === queue.name) {\n result.push(binding);\n }\n }\n }\n\n return result;\n }\n\n /**\n * Convert a Standard Schema to JSON Schema using oRPC converters\n */\n private async convertSchema(\n schema: StandardSchemaV1,\n strategy: \"input\" | \"output\",\n ): Promise<JSONSchema> {\n // Try each converter until one matches\n for (const converter of this.converters) {\n const matches = await converter.condition(schema, { strategy });\n if (matches) {\n const [_required, jsonSchema] = await converter.convert(schema, { strategy });\n return jsonSchema;\n }\n }\n\n const message =\n `No schema converter matched for schema. ` +\n `Configure schemaConverters (e.g. zodToJsonSchema) to generate accurate schemas.`;\n\n if (this.failOnMissingConverter) {\n throw new Error(`AsyncAPIGenerator: ${message}`);\n }\n\n // No converter matched — the output will contain a generic { type: \"object\" } placeholder.\n this.logger?.warn(\n `${message} The generated spec will use a generic { type: \"object\" } placeholder.`,\n );\n return { type: \"object\" };\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../src/index.ts"],"sourcesContent":["import type {\n BindingDefinition,\n ContractDefinition,\n ExchangeBindingDefinition,\n ExchangeDefinition,\n MessageDefinition,\n QueueBindingDefinition,\n QueueDefinition,\n} from \"@amqp-contract/contract\";\nimport { extractConsumer, extractQueue } from \"@amqp-contract/contract\";\nimport {\n type AsyncAPIObject,\n type ChannelObject,\n type ChannelsObject,\n type MessageObject,\n type MessagesObject,\n type OperationsObject,\n} from \"@asyncapi/parser/esm/spec-types/v3.js\";\nimport { type ConditionalSchemaConverter, type JSONSchema } from \"@orpc/openapi\";\nimport type { StandardSchemaV1 } from \"@standard-schema/spec\";\n\n/**\n * Options for configuring the AsyncAPI generator.\n *\n * @example\n * ```typescript\n * import { AsyncAPIGenerator } from '@amqp-contract/asyncapi';\n * import { zodToJsonSchema } from '@orpc/zod';\n *\n * const generator = new AsyncAPIGenerator({\n * schemaConverters: [zodToJsonSchema]\n * });\n * ```\n */\nexport type AsyncAPIGeneratorOptions = {\n /**\n * Schema converters for transforming validation schemas to JSON Schema.\n * Supports Zod, Valibot, ArkType, and other Standard Schema v1 compatible libraries.\n */\n schemaConverters?: ConditionalSchemaConverter[];\n /**\n * Optional logger for warnings during generation (e.g. unmatched schema converters).\n */\n logger?: { warn: (message: string) => void };\n /**\n * If true, the generator throws when a payload schema cannot be converted by\n * any of the configured `schemaConverters` instead of falling back to a\n * generic `{ type: \"object\" }` placeholder. Recommended for CI pipelines\n * that depend on the generated spec being faithful (e.g. for codegen).\n *\n * Defaults to `false` for backwards compatibility.\n */\n failOnMissingConverter?: boolean;\n};\n\n/**\n * Options for generating an AsyncAPI document.\n * These correspond to the top-level AsyncAPI document fields.\n */\nexport type AsyncAPIGeneratorGenerateOptions = Pick<AsyncAPIObject, \"info\"> &\n Partial<Pick<AsyncAPIObject, \"id\" | \"servers\">>;\n\n/**\n * Generator for creating AsyncAPI 3.0 documentation from AMQP contracts.\n *\n * This class converts contract definitions into AsyncAPI 3.0 specification documents,\n * which can be used for API documentation, code generation, and tooling integration.\n *\n * @example\n * ```typescript\n * import { AsyncAPIGenerator } from '@amqp-contract/asyncapi';\n * import { defineExchange, defineMessage, defineContract, definePublisher } from '@amqp-contract/contract';\n * import { zodToJsonSchema } from '@orpc/zod';\n * import { z } from 'zod';\n *\n * const ordersExchange = defineExchange('orders');\n * const orderMessage = defineMessage(z.object({\n * orderId: z.string(),\n * amount: z.number()\n * }));\n *\n * const contract = defineContract({\n * publishers: {\n * orderCreated: definePublisher(ordersExchange, orderMessage, {\n * routingKey: 'order.created'\n * })\n * }\n * });\n *\n * const generator = new AsyncAPIGenerator({\n * schemaConverters: [zodToJsonSchema]\n * });\n *\n * const asyncapi = await generator.generate(contract, {\n * id: 'urn:com:example:order-service',\n * info: {\n * title: 'Order Service API',\n * version: '1.0.0',\n * description: 'Async API for order processing'\n * },\n * servers: {\n * production: {\n * host: 'rabbitmq.example.com',\n * protocol: 'amqp',\n * protocolVersion: '0.9.1'\n * }\n * }\n * });\n * ```\n */\nexport class AsyncAPIGenerator {\n private readonly converters: ConditionalSchemaConverter[];\n private readonly logger?: { warn: (message: string) => void } | undefined;\n private readonly failOnMissingConverter: boolean;\n\n /**\n * Create a new AsyncAPI generator instance.\n *\n * @param options - Configuration options including schema converters\n */\n constructor(options: AsyncAPIGeneratorOptions = {}) {\n this.converters = options.schemaConverters ?? [];\n this.logger = options.logger;\n this.failOnMissingConverter = options.failOnMissingConverter ?? false;\n }\n\n /**\n * Generate an AsyncAPI 3.0 document from a contract definition.\n *\n * Converts AMQP exchanges, queues, publishers, and consumers into\n * AsyncAPI channels, operations, and messages with proper JSON Schema\n * validation definitions.\n *\n * @param contract - The AMQP contract definition to convert\n * @param options - AsyncAPI document metadata (id, info, servers)\n * @returns Promise resolving to a complete AsyncAPI 3.0 document\n *\n * @example\n * ```typescript\n * const asyncapi = await generator.generate(contract, {\n * id: 'urn:com:example:api',\n * info: {\n * title: 'My API',\n * version: '1.0.0'\n * },\n * servers: {\n * dev: {\n * host: 'localhost:5672',\n * protocol: 'amqp'\n * }\n * }\n * });\n * ```\n */\n async generate(\n contract: ContractDefinition,\n options: AsyncAPIGeneratorGenerateOptions,\n ): Promise<AsyncAPIObject> {\n const convertedChannels: ChannelsObject = {};\n const convertedOperations: OperationsObject = {};\n const convertedMessages: MessagesObject = {};\n\n // First, collect all messages from publishers and consumers\n const publisherMessages = new Map<string, { message: MessageDefinition; channelKey: string }>();\n const consumerMessages = new Map<string, { message: MessageDefinition; channelKey: string }>();\n\n // Collect messages from publishers\n if (contract.publishers) {\n for (const [publisherName, publisher] of Object.entries(contract.publishers)) {\n const channelKey = this.getExchangeName(publisher.exchange, contract);\n publisherMessages.set(publisherName, { message: publisher.message, channelKey });\n }\n }\n\n // Collect messages from consumers\n if (contract.consumers) {\n for (const [consumerName, consumerEntry] of Object.entries(contract.consumers)) {\n const consumer = extractConsumer(consumerEntry);\n const queue = extractQueue(consumer.queue);\n const channelKey = this.getQueueName(queue, contract);\n consumerMessages.set(consumerName, { message: consumer.message, channelKey });\n }\n }\n\n // Generate channels from queues with their messages\n if (contract.queues) {\n for (const [queueName, queueEntry] of Object.entries(contract.queues)) {\n const queue = extractQueue(queueEntry);\n const channelMessages: MessagesObject = {};\n\n // Add messages from consumers that reference this queue\n for (const [consumerName, { message, channelKey }] of consumerMessages) {\n if (channelKey === queueName) {\n const messageName = `${consumerName}Message`;\n channelMessages[messageName] = await this.convertMessage(message);\n convertedMessages[messageName] = await this.convertMessage(message);\n }\n }\n\n // Find bindings for this queue\n const queueBindings = this.getQueueBindings(queue, contract);\n const channel: ChannelObject = {\n ...this.queueToChannel(queue, queueBindings),\n };\n\n if (Object.keys(channelMessages).length > 0) {\n channel.messages = channelMessages;\n }\n\n convertedChannels[queueName] = channel;\n }\n }\n\n // Generate channels from exchanges with their messages\n if (contract.exchanges) {\n for (const [exchangeName, exchange] of Object.entries(contract.exchanges)) {\n const channelMessages: MessagesObject = {};\n\n // Add messages from publishers that reference this exchange\n for (const [publisherName, { message, channelKey }] of publisherMessages) {\n if (channelKey === exchangeName) {\n const messageName = `${publisherName}Message`;\n channelMessages[messageName] = await this.convertMessage(message);\n convertedMessages[messageName] = await this.convertMessage(message);\n }\n }\n\n const channel: ChannelObject = {\n ...this.exchangeToChannel(exchange, contract),\n };\n\n if (Object.keys(channelMessages).length > 0) {\n channel.messages = channelMessages;\n }\n\n convertedChannels[exchangeName] = channel;\n }\n }\n\n // Generate publish operations from publishers\n if (contract.publishers) {\n for (const [publisherName, publisher] of Object.entries(contract.publishers)) {\n const exchangeName = this.getExchangeName(publisher.exchange, contract);\n const messageName = `${publisherName}Message`;\n\n // Build operation without type assertion\n if (publisher.routingKey) {\n convertedOperations[publisherName] = {\n action: \"send\",\n channel: { $ref: `#/channels/${exchangeName}` },\n messages: [{ $ref: `#/channels/${exchangeName}/messages/${messageName}` }],\n summary: `Publish to ${publisher.exchange.name}`,\n description: `Routing key: ${publisher.routingKey}`,\n bindings: {\n amqp: {\n cc: [publisher.routingKey],\n deliveryMode: 2, // Persistent by default\n bindingVersion: \"0.3.0\",\n } as Record<string, unknown>,\n },\n };\n } else {\n convertedOperations[publisherName] = {\n action: \"send\",\n channel: { $ref: `#/channels/${exchangeName}` },\n messages: [{ $ref: `#/channels/${exchangeName}/messages/${messageName}` }],\n summary: `Publish to ${publisher.exchange.name}`,\n };\n }\n }\n }\n\n // Generate receive operations from consumers\n if (contract.consumers) {\n for (const [consumerName, consumerEntry] of Object.entries(contract.consumers)) {\n const consumer = extractConsumer(consumerEntry);\n const queue = extractQueue(consumer.queue);\n const queueName = this.getQueueName(queue, contract);\n const messageName = `${consumerName}Message`;\n\n convertedOperations[consumerName] = {\n action: \"receive\",\n channel: { $ref: `#/channels/${queueName}` },\n messages: [{ $ref: `#/channels/${queueName}/messages/${messageName}` }],\n summary: `Consume from ${queue.name}`,\n bindings: {\n amqp: {\n bindingVersion: \"0.3.0\",\n } as Record<string, unknown>,\n },\n };\n }\n }\n\n return {\n ...options,\n asyncapi: \"3.1.0\",\n channels: convertedChannels,\n operations: convertedOperations,\n components: {\n messages: convertedMessages,\n },\n };\n }\n\n /**\n * Convert a message definition to AsyncAPI MessageObject\n */\n private async convertMessage(message: MessageDefinition): Promise<MessageObject> {\n const payload = message.payload;\n\n // Convert payload schema\n const payloadJsonSchema = await this.convertSchema(payload, \"input\");\n\n // Build result with required properties\n const result: Record<string, unknown> = {\n payload: payloadJsonSchema,\n contentType: \"application/json\",\n };\n\n // Add optional properties only if they exist\n if (message.headers) {\n const headersJsonSchema = await this.convertSchema(message.headers, \"input\");\n if (headersJsonSchema) {\n result[\"headers\"] = headersJsonSchema;\n }\n }\n\n if (message.summary) {\n result[\"summary\"] = message.summary;\n }\n\n if (message.description) {\n result[\"description\"] = message.description;\n }\n\n return result as MessageObject;\n }\n\n /**\n * Convert a queue definition to AsyncAPI ChannelObject.\n *\n * The AMQP binding spec doesn't have first-class fields for dead-lettering\n * or retry policy, so we surface them in two places:\n *\n * 1. The `arguments` map carries the canonical RabbitMQ keys\n * (`x-dead-letter-exchange`, `x-dead-letter-routing-key`) — these are\n * what a consumer of the spec would actually use to recreate the queue.\n * 2. The channel description summarises DLX + retry policy in human-readable\n * form so the topology is visible without reading the binding details.\n */\n private queueToChannel(\n queue: QueueDefinition,\n bindings: QueueBindingDefinition[] = [],\n ): ChannelObject {\n // Merge user-provided arguments with derived RabbitMQ args. User\n // arguments win on collision so consumers can override the derived ones\n // if they really need to. The DLX description below is then built from the\n // merged result so the human-readable summary cannot drift from the\n // structured `arguments` if the user overrode them.\n const derivedArgs: Record<string, unknown> = {};\n if (queue.deadLetter?.exchange) {\n derivedArgs[\"x-dead-letter-exchange\"] = queue.deadLetter.exchange.name;\n if (queue.deadLetter.routingKey) {\n derivedArgs[\"x-dead-letter-routing-key\"] = queue.deadLetter.routingKey;\n }\n }\n const mergedArgs = { ...derivedArgs, ...queue.arguments };\n\n let description = `AMQP Queue: ${queue.name}`;\n if (bindings.length > 0) {\n const bindingDescriptions = bindings\n .map((binding) => {\n const exchangeName = binding.exchange.name;\n const routingKey = \"routingKey\" in binding ? binding.routingKey : undefined;\n return routingKey\n ? `bound to exchange '${exchangeName}' with routing key '${routingKey}'`\n : `bound to exchange '${exchangeName}'`;\n })\n .join(\", \");\n description += ` (${bindingDescriptions})`;\n }\n\n const effectiveDlx = mergedArgs[\"x-dead-letter-exchange\"];\n if (typeof effectiveDlx === \"string\" && effectiveDlx.length > 0) {\n description += `. Dead-letters to '${effectiveDlx}'`;\n const effectiveDlxRoutingKey = mergedArgs[\"x-dead-letter-routing-key\"];\n if (typeof effectiveDlxRoutingKey === \"string\" && effectiveDlxRoutingKey.length > 0) {\n description += ` (routing key '${effectiveDlxRoutingKey}')`;\n }\n description += \".\";\n }\n\n if (queue.retry && queue.retry.mode !== \"none\") {\n const retry = queue.retry;\n if (retry.mode === \"immediate-requeue\") {\n description += ` Retry: immediate-requeue, max ${retry.maxRetries} attempts.`;\n } else if (retry.mode === \"ttl-backoff\") {\n const initial = retry.initialDelayMs;\n description += ` Retry: ttl-backoff, max ${retry.maxRetries} attempts`;\n if (initial !== undefined) {\n description += `, initial delay ${initial}ms`;\n }\n description += \".\";\n }\n }\n\n const result: Record<string, unknown> = {\n address: queue.name,\n title: queue.name,\n description,\n bindings: {\n amqp: {\n is: \"queue\",\n queue: {\n name: queue.name,\n type: queue.type,\n durable: queue.durable,\n ...(queue.exclusive !== undefined && { exclusive: queue.exclusive }),\n ...(queue.autoDelete !== undefined && { autoDelete: queue.autoDelete }),\n ...(queue.maxPriority !== undefined && { maxPriority: queue.maxPriority }),\n ...(Object.keys(mergedArgs).length > 0 ? { arguments: mergedArgs } : {}),\n vhost: \"/\",\n },\n bindingVersion: \"0.3.0\",\n },\n },\n };\n\n if (queue.retry && queue.retry.mode !== \"none\") {\n // Spec extension: retry policy is non-standard but useful for tooling\n // that wants to inspect it programmatically. Prefixing with `x-` keeps\n // the spec valid for strict parsers.\n (result as Record<string, unknown>)[\"x-amqp-retry\"] = {\n mode: queue.retry.mode,\n ...(\"maxRetries\" in queue.retry && queue.retry.maxRetries !== undefined\n ? { maxRetries: queue.retry.maxRetries }\n : {}),\n ...(queue.retry.mode === \"ttl-backoff\"\n ? {\n ...(queue.retry.initialDelayMs !== undefined\n ? { initialDelayMs: queue.retry.initialDelayMs }\n : {}),\n ...(queue.retry.maxDelayMs !== undefined\n ? { maxDelayMs: queue.retry.maxDelayMs }\n : {}),\n ...(queue.retry.backoffMultiplier !== undefined\n ? { backoffMultiplier: queue.retry.backoffMultiplier }\n : {}),\n ...(queue.retry.jitter !== undefined ? { jitter: queue.retry.jitter } : {}),\n }\n : {}),\n };\n }\n\n return result as ChannelObject;\n }\n\n /**\n * Convert an exchange definition to AsyncAPI ChannelObject.\n *\n * Exchange-to-exchange bindings — used for bridge exchanges, fanout\n * fan-in/out, and other cross-domain routing — are surfaced both as a\n * line in the description and via the non-standard `x-amqp-exchange-bindings`\n * extension so tooling can recreate the topology.\n */\n private exchangeToChannel(\n exchange: ExchangeDefinition,\n contract: ContractDefinition,\n ): ChannelObject {\n const sourceBindings = this.getExchangeBindingsBySource(exchange, contract);\n const destinationBindings = this.getExchangeBindingsByDestination(exchange, contract);\n\n let description = `AMQP Exchange: ${exchange.name} (${exchange.type})`;\n if (sourceBindings.length > 0) {\n const summaries = sourceBindings\n .map((binding) => {\n const target = binding.destination.name;\n const routingKey = \"routingKey\" in binding ? binding.routingKey : undefined;\n return routingKey\n ? `forwards to '${target}' (routing key '${routingKey}')`\n : `forwards to '${target}'`;\n })\n .join(\", \");\n description += `. ${summaries}.`;\n }\n if (destinationBindings.length > 0) {\n const summaries = destinationBindings\n .map((binding) => {\n const source = binding.source.name;\n const routingKey = \"routingKey\" in binding ? binding.routingKey : undefined;\n return routingKey\n ? `receives from '${source}' (routing key '${routingKey}')`\n : `receives from '${source}'`;\n })\n .join(\", \");\n description += ` ${summaries}.`;\n }\n\n const result: Record<string, unknown> = {\n address: exchange.name,\n title: exchange.name,\n description,\n bindings: {\n amqp: {\n is: \"routingKey\",\n exchange: {\n name: exchange.name,\n type: exchange.type,\n durable: exchange.durable,\n ...(exchange.autoDelete !== undefined && { autoDelete: exchange.autoDelete }),\n ...(exchange.internal !== undefined && { internal: exchange.internal }),\n ...(exchange.arguments !== undefined && { arguments: exchange.arguments }),\n vhost: \"/\",\n },\n bindingVersion: \"0.3.0\",\n },\n },\n };\n\n if (sourceBindings.length > 0 || destinationBindings.length > 0) {\n const e2eBindings: Record<string, unknown> = {};\n if (sourceBindings.length > 0) {\n e2eBindings[\"forwardsTo\"] = sourceBindings.map((b) => ({\n destination: b.destination.name,\n ...(\"routingKey\" in b && b.routingKey !== undefined ? { routingKey: b.routingKey } : {}),\n ...(b.arguments !== undefined ? { arguments: b.arguments } : {}),\n }));\n }\n if (destinationBindings.length > 0) {\n e2eBindings[\"receivesFrom\"] = destinationBindings.map((b) => ({\n source: b.source.name,\n ...(\"routingKey\" in b && b.routingKey !== undefined ? { routingKey: b.routingKey } : {}),\n ...(b.arguments !== undefined ? { arguments: b.arguments } : {}),\n }));\n }\n (result as Record<string, unknown>)[\"x-amqp-exchange-bindings\"] = e2eBindings;\n }\n\n return result as ChannelObject;\n }\n\n private getExchangeBindingsBySource(\n exchange: ExchangeDefinition,\n contract: ContractDefinition,\n ): ExchangeBindingDefinition[] {\n return this.exchangeBindings(contract).filter((b) => b.source.name === exchange.name);\n }\n\n private getExchangeBindingsByDestination(\n exchange: ExchangeDefinition,\n contract: ContractDefinition,\n ): ExchangeBindingDefinition[] {\n return this.exchangeBindings(contract).filter((b) => b.destination.name === exchange.name);\n }\n\n private exchangeBindings(contract: ContractDefinition): ExchangeBindingDefinition[] {\n if (!contract.bindings) return [];\n const result: ExchangeBindingDefinition[] = [];\n for (const binding of Object.values(contract.bindings) as BindingDefinition[]) {\n if (binding.type === \"exchange\") {\n result.push(binding);\n }\n }\n return result;\n }\n\n /**\n * Get the name/key of an exchange from the contract\n */\n private getExchangeName(exchange: ExchangeDefinition, contract: ContractDefinition): string {\n if (contract.exchanges) {\n for (const [name, ex] of Object.entries(contract.exchanges)) {\n if (ex === exchange || ex.name === exchange.name) {\n return name;\n }\n }\n }\n return exchange.name;\n }\n\n /**\n * Get the name/key of a queue from the contract\n */\n private getQueueName(queue: QueueDefinition, contract: ContractDefinition): string {\n if (contract.queues) {\n for (const [name, qEntry] of Object.entries(contract.queues)) {\n const q = extractQueue(qEntry);\n if (q === queue || q.name === queue.name) {\n return name;\n }\n }\n }\n return queue.name;\n }\n\n /**\n * Get all bindings for a queue from the contract\n */\n private getQueueBindings(\n queue: QueueDefinition,\n contract: ContractDefinition,\n ): QueueBindingDefinition[] {\n const result: QueueBindingDefinition[] = [];\n\n if (contract.bindings) {\n for (const binding of Object.values(contract.bindings)) {\n if (binding.type === \"queue\" && binding.queue.name === queue.name) {\n result.push(binding);\n }\n }\n }\n\n return result;\n }\n\n /**\n * Convert a Standard Schema to JSON Schema using oRPC converters\n */\n private async convertSchema(\n schema: StandardSchemaV1,\n strategy: \"input\" | \"output\",\n ): Promise<JSONSchema> {\n // Try each converter until one matches\n for (const converter of this.converters) {\n const matches = await converter.condition(schema, { strategy });\n if (matches) {\n const [_required, jsonSchema] = await converter.convert(schema, { strategy });\n return jsonSchema;\n }\n }\n\n const message =\n `No schema converter matched for schema. ` +\n `Configure schemaConverters (e.g. zodToJsonSchema) to generate accurate schemas.`;\n\n if (this.failOnMissingConverter) {\n throw new Error(`AsyncAPIGenerator: ${message}`);\n }\n\n // No converter matched — the output will contain a generic { type: \"object\" } placeholder.\n this.logger?.warn(\n `${message} The generated spec will use a generic { type: \"object\" } placeholder.`,\n );\n return { type: \"object\" };\n }\n}\n"],"mappings":"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"}
|
package/docs/index.md
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
### AsyncAPIGenerator
|
|
10
10
|
|
|
11
|
-
Defined in: [index.ts:111](https://github.com/btravstack/amqp-contract/blob/
|
|
11
|
+
Defined in: [index.ts:111](https://github.com/btravstack/amqp-contract/blob/6151e489f8974e390f2e30f8d953133b1b0caba3/packages/asyncapi/src/index.ts#L111)
|
|
12
12
|
|
|
13
13
|
Generator for creating AsyncAPI 3.0 documentation from AMQP contracts.
|
|
14
14
|
|
|
@@ -66,7 +66,7 @@ const asyncapi = await generator.generate(contract, {
|
|
|
66
66
|
new AsyncAPIGenerator(options?): AsyncAPIGenerator;
|
|
67
67
|
```
|
|
68
68
|
|
|
69
|
-
Defined in: [index.ts:121](https://github.com/btravstack/amqp-contract/blob/
|
|
69
|
+
Defined in: [index.ts:121](https://github.com/btravstack/amqp-contract/blob/6151e489f8974e390f2e30f8d953133b1b0caba3/packages/asyncapi/src/index.ts#L121)
|
|
70
70
|
|
|
71
71
|
Create a new AsyncAPI generator instance.
|
|
72
72
|
|
|
@@ -88,7 +88,7 @@ Create a new AsyncAPI generator instance.
|
|
|
88
88
|
generate(contract, options): Promise<AsyncAPIObject>;
|
|
89
89
|
```
|
|
90
90
|
|
|
91
|
-
Defined in: [index.ts:155](https://github.com/btravstack/amqp-contract/blob/
|
|
91
|
+
Defined in: [index.ts:155](https://github.com/btravstack/amqp-contract/blob/6151e489f8974e390f2e30f8d953133b1b0caba3/packages/asyncapi/src/index.ts#L155)
|
|
92
92
|
|
|
93
93
|
Generate an AsyncAPI 3.0 document from a contract definition.
|
|
94
94
|
|
|
@@ -135,7 +135,7 @@ const asyncapi = await generator.generate(contract, {
|
|
|
135
135
|
type AsyncAPIGeneratorGenerateOptions = Pick<AsyncAPIObject, "info"> & Partial<Pick<AsyncAPIObject, "id" | "servers">>;
|
|
136
136
|
```
|
|
137
137
|
|
|
138
|
-
Defined in: [index.ts:60](https://github.com/btravstack/amqp-contract/blob/
|
|
138
|
+
Defined in: [index.ts:60](https://github.com/btravstack/amqp-contract/blob/6151e489f8974e390f2e30f8d953133b1b0caba3/packages/asyncapi/src/index.ts#L60)
|
|
139
139
|
|
|
140
140
|
Options for generating an AsyncAPI document.
|
|
141
141
|
These correspond to the top-level AsyncAPI document fields.
|
|
@@ -148,7 +148,7 @@ These correspond to the top-level AsyncAPI document fields.
|
|
|
148
148
|
type AsyncAPIGeneratorOptions = object;
|
|
149
149
|
```
|
|
150
150
|
|
|
151
|
-
Defined in: [index.ts:35](https://github.com/btravstack/amqp-contract/blob/
|
|
151
|
+
Defined in: [index.ts:35](https://github.com/btravstack/amqp-contract/blob/6151e489f8974e390f2e30f8d953133b1b0caba3/packages/asyncapi/src/index.ts#L35)
|
|
152
152
|
|
|
153
153
|
Options for configuring the AsyncAPI generator.
|
|
154
154
|
|
|
@@ -167,7 +167,7 @@ const generator = new AsyncAPIGenerator({
|
|
|
167
167
|
|
|
168
168
|
| Property | Type | Description | Defined in |
|
|
169
169
|
| ------ | ------ | ------ | ------ |
|
|
170
|
-
| <a id="failonmissingconverter"></a> `failOnMissingConverter?` | `boolean` | If true, the generator throws when a payload schema cannot be converted by any of the configured `schemaConverters` instead of falling back to a generic `{ type: "object" }` placeholder. Recommended for CI pipelines that depend on the generated spec being faithful (e.g. for codegen). Defaults to `false` for backwards compatibility. | [index.ts:53](https://github.com/btravstack/amqp-contract/blob/
|
|
171
|
-
| <a id="logger"></a> `logger?` | `object` | Optional logger for warnings during generation (e.g. unmatched schema converters). | [index.ts:44](https://github.com/btravstack/amqp-contract/blob/
|
|
172
|
-
| `logger.warn` | (`message`) => `void` | - | [index.ts:44](https://github.com/btravstack/amqp-contract/blob/
|
|
173
|
-
| <a id="schemaconverters"></a> `schemaConverters?` | `ConditionalSchemaConverter`[] | Schema converters for transforming validation schemas to JSON Schema. Supports Zod, Valibot, ArkType, and other Standard Schema v1 compatible libraries. | [index.ts:40](https://github.com/btravstack/amqp-contract/blob/
|
|
170
|
+
| <a id="failonmissingconverter"></a> `failOnMissingConverter?` | `boolean` | If true, the generator throws when a payload schema cannot be converted by any of the configured `schemaConverters` instead of falling back to a generic `{ type: "object" }` placeholder. Recommended for CI pipelines that depend on the generated spec being faithful (e.g. for codegen). Defaults to `false` for backwards compatibility. | [index.ts:53](https://github.com/btravstack/amqp-contract/blob/6151e489f8974e390f2e30f8d953133b1b0caba3/packages/asyncapi/src/index.ts#L53) |
|
|
171
|
+
| <a id="logger"></a> `logger?` | `object` | Optional logger for warnings during generation (e.g. unmatched schema converters). | [index.ts:44](https://github.com/btravstack/amqp-contract/blob/6151e489f8974e390f2e30f8d953133b1b0caba3/packages/asyncapi/src/index.ts#L44) |
|
|
172
|
+
| `logger.warn` | (`message`) => `void` | - | [index.ts:44](https://github.com/btravstack/amqp-contract/blob/6151e489f8974e390f2e30f8d953133b1b0caba3/packages/asyncapi/src/index.ts#L44) |
|
|
173
|
+
| <a id="schemaconverters"></a> `schemaConverters?` | `ConditionalSchemaConverter`[] | Schema converters for transforming validation schemas to JSON Schema. Supports Zod, Valibot, ArkType, and other Standard Schema v1 compatible libraries. | [index.ts:40](https://github.com/btravstack/amqp-contract/blob/6151e489f8974e390f2e30f8d953133b1b0caba3/packages/asyncapi/src/index.ts#L40) |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@amqp-contract/asyncapi",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0-beta.1",
|
|
4
4
|
"description": "AsyncAPI specification generator for amqp-contract",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"amqp",
|
|
@@ -49,29 +49,29 @@
|
|
|
49
49
|
"./package.json": "./package.json"
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
|
-
"@orpc/openapi": "1.14.
|
|
52
|
+
"@orpc/openapi": "1.14.8",
|
|
53
53
|
"@standard-schema/spec": "1.1.0",
|
|
54
|
-
"@amqp-contract/contract": "
|
|
54
|
+
"@amqp-contract/contract": "3.0.0-beta.1"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
|
-
"@arethetypeswrong/cli": "0.18.
|
|
57
|
+
"@arethetypeswrong/cli": "0.18.5",
|
|
58
58
|
"@asyncapi/parser": "3.6.0",
|
|
59
|
-
"@
|
|
60
|
-
"@
|
|
61
|
-
"@orpc/
|
|
62
|
-
"@
|
|
63
|
-
"@
|
|
64
|
-
"
|
|
59
|
+
"@btravstack/tsconfig": "0.2.0",
|
|
60
|
+
"@btravstack/typedoc": "0.1.0",
|
|
61
|
+
"@orpc/arktype": "1.14.8",
|
|
62
|
+
"@orpc/valibot": "1.14.8",
|
|
63
|
+
"@orpc/zod": "1.14.8",
|
|
64
|
+
"@types/node": "26.1.1",
|
|
65
|
+
"@vitest/coverage-v8": "4.1.10",
|
|
66
|
+
"arktype": "2.2.3",
|
|
65
67
|
"publint": "0.3.21",
|
|
66
|
-
"tsdown": "0.22.
|
|
67
|
-
"typedoc": "0.28.
|
|
68
|
+
"tsdown": "0.22.12",
|
|
69
|
+
"typedoc": "0.28.20",
|
|
68
70
|
"typedoc-plugin-markdown": "4.12.0",
|
|
69
71
|
"typescript": "6.0.3",
|
|
70
72
|
"valibot": "1.4.2",
|
|
71
|
-
"vitest": "4.1.
|
|
72
|
-
"zod": "4.4.3"
|
|
73
|
-
"@amqp-contract/tsconfig": "0.1.0",
|
|
74
|
-
"@amqp-contract/typedoc": "0.1.0"
|
|
73
|
+
"vitest": "4.1.10",
|
|
74
|
+
"zod": "4.4.3"
|
|
75
75
|
},
|
|
76
76
|
"engines": {
|
|
77
77
|
"node": ">=22.19"
|