@amqp-contract/asyncapi 0.15.0 → 0.17.0
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 +8 -7
- package/dist/index.d.cts +8 -7
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +8 -7
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +8 -7
- package/dist/index.mjs.map +1 -1
- package/docs/index.md +14 -13
- package/package.json +2 -2
package/dist/index.cjs
CHANGED
|
@@ -11,18 +11,19 @@ let _amqp_contract_contract = require("@amqp-contract/contract");
|
|
|
11
11
|
* @example
|
|
12
12
|
* ```typescript
|
|
13
13
|
* import { AsyncAPIGenerator } from '@amqp-contract/asyncapi';
|
|
14
|
+
* import { defineExchange, defineMessage, defineContract, definePublisher } from '@amqp-contract/contract';
|
|
14
15
|
* import { zodToJsonSchema } from '@orpc/zod';
|
|
15
16
|
* import { z } from 'zod';
|
|
16
17
|
*
|
|
18
|
+
* const ordersExchange = defineExchange('orders', 'topic', { durable: true });
|
|
19
|
+
* const orderMessage = defineMessage(z.object({
|
|
20
|
+
* orderId: z.string(),
|
|
21
|
+
* amount: z.number()
|
|
22
|
+
* }));
|
|
23
|
+
*
|
|
17
24
|
* const contract = defineContract({
|
|
18
|
-
* exchanges: {
|
|
19
|
-
* orders: defineExchange('orders', 'topic', { durable: true })
|
|
20
|
-
* },
|
|
21
25
|
* publishers: {
|
|
22
|
-
* orderCreated: definePublisher(
|
|
23
|
-
* orderId: z.string(),
|
|
24
|
-
* amount: z.number()
|
|
25
|
-
* }), {
|
|
26
|
+
* orderCreated: definePublisher(ordersExchange, orderMessage, {
|
|
26
27
|
* routingKey: 'order.created'
|
|
27
28
|
* })
|
|
28
29
|
* }
|
package/dist/index.d.cts
CHANGED
|
@@ -427,18 +427,19 @@ type AsyncAPIGeneratorGenerateOptions = Pick<AsyncAPIObject, "info"> & Partial<P
|
|
|
427
427
|
* @example
|
|
428
428
|
* ```typescript
|
|
429
429
|
* import { AsyncAPIGenerator } from '@amqp-contract/asyncapi';
|
|
430
|
+
* import { defineExchange, defineMessage, defineContract, definePublisher } from '@amqp-contract/contract';
|
|
430
431
|
* import { zodToJsonSchema } from '@orpc/zod';
|
|
431
432
|
* import { z } from 'zod';
|
|
432
433
|
*
|
|
434
|
+
* const ordersExchange = defineExchange('orders', 'topic', { durable: true });
|
|
435
|
+
* const orderMessage = defineMessage(z.object({
|
|
436
|
+
* orderId: z.string(),
|
|
437
|
+
* amount: z.number()
|
|
438
|
+
* }));
|
|
439
|
+
*
|
|
433
440
|
* const contract = defineContract({
|
|
434
|
-
* exchanges: {
|
|
435
|
-
* orders: defineExchange('orders', 'topic', { durable: true })
|
|
436
|
-
* },
|
|
437
441
|
* publishers: {
|
|
438
|
-
* orderCreated: definePublisher(
|
|
439
|
-
* orderId: z.string(),
|
|
440
|
-
* amount: z.number()
|
|
441
|
-
* }), {
|
|
442
|
+
* orderCreated: definePublisher(ordersExchange, orderMessage, {
|
|
442
443
|
* routingKey: 'order.created'
|
|
443
444
|
* })
|
|
444
445
|
* }
|
package/dist/index.d.cts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.cts","names":["JSONSchema4TypeName","JSONSchema4Type","JSONSchema4Object","JSONSchema4Array","key","Array","JSONSchema4Version","JSONSchema4","id","$ref","$schema","title","description","default","multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","items","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","definitions","k","properties","patternProperties","dependencies","enum","type","allOf","anyOf","oneOf","not","extends","format","JSONSchema6TypeName","JSONSchema6Type","JSONSchema6Object","JSONSchema6Array","JSONSchema6Version","JSONSchema6Definition","JSONSchema6","$id","contains","propertyNames","const","examples","JSONSchema7TypeName","JSONSchema7Type","JSONSchema7Object","JSONSchema7Array","JSONSchema7Version","JSONSchema7Definition","JSONSchema7","$comment","$defs","if","then","else","contentMediaType","contentEncoding","readOnly","writeOnly","ValidationResult","ValidationError","valid","errors","property","message","validate","instance","schema","checkPropertyChange","value","mustBeValid","result","JSONSchema7Version","JSONSchema7TypeName","JSONSchema7Type","AsyncAPIVersion","Identifier","DefaultContentType","AsyncAPIObject","InfoObject","ServersObject","ChannelsObject","OperationsObject","ComponentsObject","SpecificationExtensions","asyncapi","id","defaultContentType","info","servers","channels","operations","components","ContactObject","LicenseObject","TagsObject","ExternalDocumentationObject","ReferenceObject","title","version","description","termsOfService","contact","license","tags","externalDocs","name","url","email","ServerObject","Record","ServerVariableObject","SecuritySchemeObject","Array","ServerBindingsObject","host","protocol","pathname","protocolVersion","variables","security","bindings","enum","default","examples","Binding","http","ws","kafka","anypointmq","amqp","amqp1","mqtt","mqtt5","nats","jms","sns","sqs","stomp","redis","mercure","ibmmq","googlepubsub","ChannelObject","MessagesObject","ParametersObject","ChannelBindingsObject","address","messages","summary","parameters","OperationObject","MessageObject","OperationReplyObject","OperationBindingsObject","OperationTraitObject","action","channel","reply","traits","OperationReplyAddressObject","location","MessageTraitObject","payload","MultiFormatSchemaObject","CorrelationIDObject","MessageBindingsObject","MessageExampleObject","headers","correlationId","contentType","ParameterObject","TagObject","SchemaObject","schemas","securitySchemes","serverVariables","replies","replyAddresses","correlationIds","operationTraits","messageTraits","serverBindings","channelBindings","operationBindings","messageBindings","SecuritySchemeType","OAuthFlowsObject","type","in","scheme","bearerFormat","flows","openIdConnectUrl","scopes","SecuritySchemaLocation","SecuritySchemeObjectBase","SecuritySchemeObjectUserPassword","SecuritySchemeObjectApiKey","SecuritySchemeObjectX509","SecuritySchemeObjectSymetricEncryption","SecuritySchemeObjectAsymetricEncryption","SecuritySchemeObjectHttpApiKey","SecuritySchemeObjectHttp","SecuritySchemeObjectOauth2","SecuritySchemeObjectOpenIdConnect","SecuritySchemeObjectPlain","SecuritySchemeObjectScramSha256","SecuritySchemeObjectScramSha512","SecuritySchemeObjectGssapi","OAuthFlowObjectImplicit","OAuthFlowObjectPassword","OAuthFlowObjectClientCredentials","OAuthFlowObjectAuthorizationCode","implicit","password","clientCredentials","authorizationCode","OAuthFlowObject","OAuthFlowObjectBase","refreshUrl","availableScopes","authorizationUrl","tokenUrl","AsyncAPISchemaObject","AsyncAPISchemaDefinition","MultiFormatObject","schema","schemaFormat","$id","$schema","$comment","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","SpecificationExtension","extension","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":["JSONSchema4TypeName","JSONSchema4Type","JSONSchema4Object","JSONSchema4Array","key","Array","JSONSchema4Version","JSONSchema4","id","$ref","$schema","title","description","default","multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","items","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","definitions","k","properties","patternProperties","dependencies","enum","type","allOf","anyOf","oneOf","not","extends","format","JSONSchema6TypeName","JSONSchema6Type","JSONSchema6Object","JSONSchema6Array","JSONSchema6Version","JSONSchema6Definition","JSONSchema6","$id","contains","propertyNames","const","examples","JSONSchema7TypeName","JSONSchema7Type","JSONSchema7Object","JSONSchema7Array","JSONSchema7Version","JSONSchema7Definition","JSONSchema7","$comment","$defs","if","then","else","contentMediaType","contentEncoding","readOnly","writeOnly","ValidationResult","ValidationError","valid","errors","property","message","validate","instance","schema","checkPropertyChange","value","mustBeValid","result","JSONSchema7Version","JSONSchema7TypeName","JSONSchema7Type","AsyncAPIVersion","Identifier","DefaultContentType","AsyncAPIObject","InfoObject","ServersObject","ChannelsObject","OperationsObject","ComponentsObject","SpecificationExtensions","asyncapi","id","defaultContentType","info","servers","channels","operations","components","ContactObject","LicenseObject","TagsObject","ExternalDocumentationObject","ReferenceObject","title","version","description","termsOfService","contact","license","tags","externalDocs","name","url","email","ServerObject","Record","ServerVariableObject","SecuritySchemeObject","Array","ServerBindingsObject","host","protocol","pathname","protocolVersion","variables","security","bindings","enum","default","examples","Binding","http","ws","kafka","anypointmq","amqp","amqp1","mqtt","mqtt5","nats","jms","sns","sqs","stomp","redis","mercure","ibmmq","googlepubsub","ChannelObject","MessagesObject","ParametersObject","ChannelBindingsObject","address","messages","summary","parameters","OperationObject","MessageObject","OperationReplyObject","OperationBindingsObject","OperationTraitObject","action","channel","reply","traits","OperationReplyAddressObject","location","MessageTraitObject","payload","MultiFormatSchemaObject","CorrelationIDObject","MessageBindingsObject","MessageExampleObject","headers","correlationId","contentType","ParameterObject","TagObject","SchemaObject","schemas","securitySchemes","serverVariables","replies","replyAddresses","correlationIds","operationTraits","messageTraits","serverBindings","channelBindings","operationBindings","messageBindings","SecuritySchemeType","OAuthFlowsObject","type","in","scheme","bearerFormat","flows","openIdConnectUrl","scopes","SecuritySchemaLocation","SecuritySchemeObjectBase","SecuritySchemeObjectUserPassword","SecuritySchemeObjectApiKey","SecuritySchemeObjectX509","SecuritySchemeObjectSymetricEncryption","SecuritySchemeObjectAsymetricEncryption","SecuritySchemeObjectHttpApiKey","SecuritySchemeObjectHttp","SecuritySchemeObjectOauth2","SecuritySchemeObjectOpenIdConnect","SecuritySchemeObjectPlain","SecuritySchemeObjectScramSha256","SecuritySchemeObjectScramSha512","SecuritySchemeObjectGssapi","OAuthFlowObjectImplicit","OAuthFlowObjectPassword","OAuthFlowObjectClientCredentials","OAuthFlowObjectAuthorizationCode","implicit","password","clientCredentials","authorizationCode","OAuthFlowObject","OAuthFlowObjectBase","refreshUrl","availableScopes","authorizationUrl","tokenUrl","AsyncAPISchemaObject","AsyncAPISchemaDefinition","MultiFormatObject","schema","schemaFormat","$id","$schema","$comment","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","SpecificationExtension","extension","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":";;;;;;;;;;;;;KA+iBYwD,mBAAAA;AAAAA;;;;;KAaAC,eAAAA;AAAAA,qBAINC,iBAAAA,GACAC,gBAAAA;AAAAA;AAAAA,UAIWD,iBAAAA;EAAAA,CACZtD,GAAAA,WAAcqD,eAAAA;AAAAA;AAAAA;AAAAA;AAAAA,UAKFE,gBAAAA,SAAyBtD,KAAAA,CAAMoD,eAAAA;;;;;;;;AC3ahD;;;;KDwbYG,kBAAAA;;;KCvlBA4B,eAAAA;AAAAA,KACAC,UAAAA;AAAAA,KACAC,kBAAAA;AAAAA,UACKC,cAAAA,SAAuBM,uBAAAA;EACpCC,QAAAA,EAAUV,eAAAA;EACVW,EAAAA,GAAKV,UAAAA;EACLW,kBAAAA,GAAqBV,kBAAAA;EACrBW,IAAAA,EAAMT,UAAAA;EACNU,OAAAA,GAAUT,aAAAA;EACVU,QAAAA,GAAWT,cAAAA;EACXU,UAAAA,GAAaT,gBAAAA;EACbU,UAAAA,GAAaT,gBAAAA;AAAAA;AAAAA,UAEAJ,UAAAA,SAAmBK,uBAAAA;EAChCc,KAAAA;EACAC,OAAAA;EACAC,WAAAA;EACAC,cAAAA;EACAC,OAAAA,GAAUT,aAAAA;EACVU,OAAAA,GAAUT,aAAAA;EACVU,IAAAA,GAAOT,UAAAA;EACPU,YAAAA,GAAeT,2BAAAA,GAA8BC,eAAAA;AAAAA;AAAAA,UAEhCJ,aAAAA,SAAsBT,uBAAAA;EACnCsB,IAAAA;EACAC,GAAAA;EACAC,KAAAA;AAAAA;AAAAA,UAEad,aAAAA,SAAsBV,uBAAAA;EACnCsB,IAAAA;EACAC,GAAAA;AAAAA;AAAAA,KAEQ3B,aAAAA,GAAgB8B,MAAAA,SAAeD,YAAAA,GAAeZ,eAAAA;AAAAA,UACzCY,YAAAA,SAAqBzB,uBAAAA;EAClC+B,IAAAA;EACAC,QAAAA;EACAC,QAAAA;EACAC,eAAAA;EACAlB,WAAAA;EACAmB,SAAAA,GAAYT,MAAAA,SAAeC,oBAAAA,GAAuBd,eAAAA;EAClDuB,QAAAA,GAAWP,KAAAA,CAAMD,oBAAAA,GAAuBf,eAAAA;EACxCO,IAAAA,GAAOT,UAAAA;EACPU,YAAAA,GAAeT,2BAAAA,GAA8BC,eAAAA;EAC7CwB,QAAAA,GAAWP,oBAAAA,GAAuBjB,eAAAA;AAAAA;AAAAA,UAErBc,oBAAAA,SAA6B3B,uBAAAA;EAC1CsC,IAAAA,GAAOT,KAAAA;EACPU,OAAAA;EACAvB,WAAAA;EACAwB,QAAAA,GAAWX,KAAAA;AAAAA;AAAAA,UAEEC,oBAAAA,SAA6B9B,uBAAAA;EAC1C0C,IAAAA,GAAOD,OAAAA;EACPE,EAAAA,GAAKF,OAAAA;EACLG,KAAAA,GAAQH,OAAAA;EACRI,UAAAA,GAAaJ,OAAAA;EACbK,IAAAA,GAAOL,OAAAA;EACPM,KAAAA,GAAQN,OAAAA;EACRO,IAAAA,GAAOP,OAAAA;EACPQ,KAAAA,GAAQR,OAAAA;EACRS,IAAAA,GAAOT,OAAAA;EACPU,GAAAA,GAAMV,OAAAA;EACNW,GAAAA,GAAMX,OAAAA;EACNY,GAAAA,GAAMZ,OAAAA;EACNa,KAAAA,GAAQb,OAAAA;EACRc,KAAAA,GAAQd,OAAAA;EACRe,OAAAA,GAAUf,OAAAA;EACVgB,KAAAA,GAAQhB,OAAAA;EACRiB,YAAAA,GAAejB,OAAAA;AAAAA;AAAAA,KAEP5C,cAAAA,GAAiB6B,MAAAA,SAAeiC,aAAAA,GAAgB9C,eAAAA;AAAAA,UAC3C8C,aAAAA,SAAsB3D,uBAAAA;EACnC+D,OAAAA;EACAC,QAAAA,GAAWJ,cAAAA;EACX9C,KAAAA;EACAmD,OAAAA;EACAjD,WAAAA;EACAX,OAAAA,GAAUwB,KAAAA,CAAMJ,YAAAA,GAAeZ,eAAAA;EAC/BqD,UAAAA,GAAaL,gBAAAA;EACbzC,IAAAA,GAAOT,UAAAA;EACPU,YAAAA,GAAeT,2BAAAA,GAA8BC,eAAAA;EAC7CwB,QAAAA,GAAWyB,qBAAAA,GAAwBjD,eAAAA;AAAAA;AAAAA,UAEtBiD,qBAAAA,SAA8B9D,uBAAAA;EAC3C0C,IAAAA,GAAOD,OAAAA;EACPE,EAAAA,GAAKF,OAAAA;EACLG,KAAAA,GAAQH,OAAAA;EACRI,UAAAA,GAAaJ,OAAAA;EACbK,IAAAA,GAAOL,OAAAA;EACPM,KAAAA,GAAQN,OAAAA;EACRO,IAAAA,GAAOP,OAAAA;EACPQ,KAAAA,GAAQR,OAAAA;EACRS,IAAAA,GAAOT,OAAAA;EACPU,GAAAA,GAAMV,OAAAA;EACNW,GAAAA,GAAMX,OAAAA;EACNY,GAAAA,GAAMZ,OAAAA;EACNa,KAAAA,GAAQb,OAAAA;EACRc,KAAAA,GAAQd,OAAAA;EACRe,OAAAA,GAAUf,OAAAA;EACVgB,KAAAA,GAAQhB,OAAAA;EACRiB,YAAAA,GAAejB,OAAAA;AAAAA;AAAAA,KAEP3C,gBAAAA,GAAmB4B,MAAAA,SAAeyC,eAAAA,GAAkBtD,eAAAA;AAAAA,UAC/CsD,eAAAA,SAAwBnE,uBAAAA;EACrCwE,MAAAA;EACAC,OAAAA,EAASd,aAAAA,GAAgB9C,eAAAA;EACzBmD,QAAAA,GAAWnC,KAAAA,CAAMuC,aAAAA,GAAgBvD,eAAAA;EACjC6D,KAAAA,GAAQL,oBAAAA,GAAuBxD,eAAAA;EAC/BC,KAAAA;EACAmD,OAAAA;EACAjD,WAAAA;EACAoB,QAAAA,GAAWP,KAAAA,CAAMD,oBAAAA,GAAuBf,eAAAA;EACxCO,IAAAA,GAAOT,UAAAA;EACPU,YAAAA,GAAeT,2BAAAA,GAA8BC,eAAAA;EAC7CwB,QAAAA,GAAWiC,uBAAAA,GAA0BzD,eAAAA;EACrC8D,MAAAA,GAAS9C,KAAAA,CAAM0C,oBAAAA,GAAuB1D,eAAAA;AAAAA;AAAAA,UAEzB0D,oBAAAA,SAA6BvE,uBAAAA;EAC1Cc,KAAAA;EACAmD,OAAAA;EACAjD,WAAAA;EACAoB,QAAAA,GAAWP,KAAAA,CAAMD,oBAAAA,GAAuBf,eAAAA;EACxCO,IAAAA,GAAOT,UAAAA;EACPU,YAAAA,GAAeT,2BAAAA,GAA8BC,eAAAA;EAC7CwB,QAAAA,GAAWiC,uBAAAA,GAA0BzD,eAAAA;AAAAA;AAAAA,UAExBwD,oBAAAA,SAA6BrE,uBAAAA;EAC1CyE,OAAAA,GAAUd,aAAAA,GAAgB9C,eAAAA;EAC1BmD,QAAAA,IAAYI,aAAAA,GAAgBvD,eAAAA;EAC5BkD,OAAAA,GAAUa,2BAAAA,GAA8B/D,eAAAA;AAAAA;AAAAA,UAE3B+D,2BAAAA,SAAoC5E,uBAAAA;EACjD6E,QAAAA;EACA7D,WAAAA;AAAAA;AAAAA,UAEasD,uBAAAA,SAAgCtE,uBAAAA;EAC7C0C,IAAAA,GAAOD,OAAAA;EACPE,EAAAA,GAAKF,OAAAA;EACLG,KAAAA,GAAQH,OAAAA;EACRI,UAAAA,GAAaJ,OAAAA;EACbK,IAAAA,GAAOL,OAAAA;EACPM,KAAAA,GAAQN,OAAAA;EACRO,IAAAA,GAAOP,OAAAA;EACPQ,KAAAA,GAAQR,OAAAA;EACRS,IAAAA,GAAOT,OAAAA;EACPU,GAAAA,GAAMV,OAAAA;EACNW,GAAAA,GAAMX,OAAAA;EACNY,GAAAA,GAAMZ,OAAAA;EACNa,KAAAA,GAAQb,OAAAA;EACRc,KAAAA,GAAQd,OAAAA;EACRe,OAAAA,GAAUf,OAAAA;EACVgB,KAAAA,GAAQhB,OAAAA;EACRiB,YAAAA,GAAejB,OAAAA;AAAAA;AAAAA,KAEPmB,cAAAA,GAAiBlC,MAAAA,SAAe0C,aAAAA,GAAgBvD,eAAAA;AAAAA,UAC3CuD,aAAAA,SAAsBU,kBAAAA,EAAoB9E,uBAAAA;EACvD+E,OAAAA;EACAJ,MAAAA,GAAS9C,KAAAA,CAAMiD,kBAAAA,GAAqBjE,eAAAA;AAAAA;AAAAA,UAEvBiE,kBAAAA,SAA2B9E,uBAAAA;EACxCoF,OAAAA,GAAUJ,uBAAAA;EACVK,aAAAA,GAAgBJ,mBAAAA,GAAsBpE,eAAAA;EACtCyE,WAAAA;EACAhE,IAAAA;EACAR,KAAAA;EACAmD,OAAAA;EACAjD,WAAAA;EACAI,IAAAA,GAAOT,UAAAA;EACPU,YAAAA,GAAeT,2BAAAA,GAA8BC,eAAAA;EAC7CwB,QAAAA,GAAW6C,qBAAAA,GAAwBrE,eAAAA;EACnC2B,QAAAA,GAAWX,KAAAA,CAAMsD,oBAAAA;AAAAA;AAAAA,UAEJA,oBAAAA,SAA6BnF,uBAAAA;EAC1CsB,IAAAA;EACA2C,OAAAA;EACAmB,OAAAA,GAAU1D,MAAAA;EACVqD,OAAAA;AAAAA;AAAAA,UAEaG,qBAAAA,SAA8BlF,uBAAAA;EAC3C0C,IAAAA,GAAOD,OAAAA;EACPE,EAAAA,GAAKF,OAAAA;EACLG,KAAAA,GAAQH,OAAAA;EACRI,UAAAA,GAAaJ,OAAAA;EACbK,IAAAA,GAAOL,OAAAA;EACPM,KAAAA,GAAQN,OAAAA;EACRO,IAAAA,GAAOP,OAAAA;EACPQ,KAAAA,GAAQR,OAAAA;EACRS,IAAAA,GAAOT,OAAAA;EACPU,GAAAA,GAAMV,OAAAA;EACNW,GAAAA,GAAMX,OAAAA;EACNY,GAAAA,GAAMZ,OAAAA;EACNa,KAAAA,GAAQb,OAAAA;EACRc,KAAAA,GAAQd,OAAAA;EACRe,OAAAA,GAAUf,OAAAA;EACVgB,KAAAA,GAAQhB,OAAAA;EACRiB,YAAAA,GAAejB,OAAAA;AAAAA;AAAAA,KAEPoB,gBAAAA,GAAmBnC,MAAAA,SAAe6D,eAAAA,GAAkB1E,eAAAA;AAAAA,UAC/C0E,eAAAA,SAAwBvF,uBAAAA;EACrCgB,WAAAA;EACAsB,IAAAA;EACAC,OAAAA;EACAC,QAAAA;EACAqC,QAAAA;AAAAA;AAAAA,KAEQlE,UAAAA,GAAakB,KAAAA,CAAM2D,SAAAA,GAAY3E,eAAAA;AAAAA,UAC1B2E,SAAAA,SAAkBxF,uBAAAA;EAC/BsB,IAAAA;EACAN,WAAAA;EACAK,YAAAA,GAAeT,2BAAAA,GAA8BC,eAAAA;AAAAA;AAAAA,UAEhCD,2BAAAA,SAAoCZ,uBAAAA;EACjDuB,GAAAA;EACAP,WAAAA;AAAAA;AAAAA,UAEajB,gBAAAA,SAAyBC,uBAAAA;EACtCK,OAAAA,GAAUqB,MAAAA,SAAeD,YAAAA,GAAeZ,eAAAA;EACxCP,QAAAA,GAAWoB,MAAAA,SAAeiC,aAAAA,GAAgB9C,eAAAA;EAC1CN,UAAAA,GAAamB,MAAAA,SAAeyC,eAAAA,GAAkBtD,eAAAA;EAC9CmD,QAAAA,GAAWtC,MAAAA,SAAe0C,aAAAA,GAAgBvD,eAAAA;EAC1C6E,OAAAA,GAAUhE,MAAAA,SAAe+D,YAAAA,GAAe5E,eAAAA;EACxC8E,eAAAA,GAAkBjE,MAAAA,SAAeE,oBAAAA,GAAuBf,eAAAA;EACxD+E,eAAAA,GAAkBlE,MAAAA,SAAeC,oBAAAA,GAAuBd,eAAAA;EACxDqD,UAAAA,GAAaxC,MAAAA,SAAe6D,eAAAA,GAAkB1E,eAAAA;EAC9CgF,OAAAA,GAAUnE,MAAAA,SAAe2C,oBAAAA,GAAuBxD,eAAAA;EAChDiF,cAAAA,GAAiBpE,MAAAA,SAAekD,2BAAAA,GAA8B/D,eAAAA;EAC9DkF,cAAAA,GAAiBrE,MAAAA,SAAeuD,mBAAAA,GAAsBpE,eAAAA;EACtDmF,eAAAA,GAAkBtE,MAAAA,SAAe6C,oBAAAA,GAAuB1D,eAAAA;EACxDoF,aAAAA,GAAgBvE,MAAAA,SAAeoD,kBAAAA,GAAqBjE,eAAAA;EACpDO,IAAAA,GAAOM,MAAAA,SAAe8D,SAAAA,GAAY3E,eAAAA;EAClCQ,YAAAA,GAAeK,MAAAA,SAAed,2BAAAA,GAA8BC,eAAAA;EAC5DqF,cAAAA,GAAiBxE,MAAAA,SAAeI,oBAAAA,GAAuBjB,eAAAA;EACvDsF,eAAAA,GAAkBzE,MAAAA,SAAeoC,qBAAAA,GAAwBjD,eAAAA;EACzDuF,iBAAAA,GAAoB1E,MAAAA,SAAe4C,uBAAAA,GAA0BzD,eAAAA;EAC7DwF,eAAAA,GAAkB3E,MAAAA,SAAewD,qBAAAA,GAAwBrE,eAAAA;AAAAA;AAAAA,UAE5Ce,oBAAAA,SAA6B5B,uBAAAA;EAC1CwG,IAAAA,EAAMF,kBAAAA;EACNtF,WAAAA;EACAM,IAAAA;EACAmF,EAAAA;EACAC,MAAAA;EACAC,YAAAA;EACAC,KAAAA,GAAQL,gBAAAA;EACRM,gBAAAA;EACAC,MAAAA;AAAAA;AAAAA,KAEQR,kBAAAA;AAAAA,UAoDKC,gBAAAA,SAAyBvG,uBAAAA;EACtCkI,QAAAA,GAAWJ,uBAAAA;EACXK,QAAAA,GAAWJ,uBAAAA;EACXK,iBAAAA,GAAoBJ,gCAAAA;EACpBK,iBAAAA,GAAoBJ,gCAAAA;AAAAA;AAAAA,UAGPM,mBAAAA,SAA4BvI,uBAAAA;EACzCwI,UAAAA;EACAC,eAAAA,EAAiB/G,MAAAA;AAAAA;AAAAA,UAEJoG,uBAAAA,SAAgCS,mBAAAA,EAAqBvI,uBAAAA;EAClE0I,gBAAAA;AAAAA;AAAAA,UAEaX,uBAAAA,SAAgCQ,mBAAAA,EAAqBvI,uBAAAA;EAClE2I,QAAAA;AAAAA;AAAAA,UAEaX,gCAAAA,SAAyCO,mBAAAA,EAAqBvI,uBAAAA;EAC3E2I,QAAAA;AAAAA;AAAAA,UAEaV,gCAAAA,SAAyCM,mBAAAA,EAAqBvI,uBAAAA;EAC3E0I,gBAAAA;EACAC,QAAAA;AAAAA;AAAAA,KAEQlD,YAAAA,GAAemD,oBAAAA,GAAuB/H,eAAAA;AAAAA,KACtC+H,oBAAAA,GAAuBC,wBAAAA;AAAAA,KACvBC,iBAAAA;EACRC,MAAAA,EAAQH,oBAAAA;EACRI,YAAAA;AAAAA;AAAAA,KAEQhE,uBAAAA,GAA0B4D,oBAAAA,GAAuBE,iBAAAA;AAAAA,UAC5CD,wBAAAA,SAAiC7I,uBAAAA;EAC9CiJ,GAAAA;EACAC,OAAAA,GAAU9J,kBAAAA;EACV+J,QAAAA;EACA3C,IAAAA,GAAOnH,mBAAAA,GAAsBA,mBAAAA;EAC7BiD,IAAAA,GAAOhD,eAAAA;EACP8J,KAAAA,GAAQ9J,eAAAA;EACR+J,UAAAA;EACAC,OAAAA;EACAC,gBAAAA;EACAC,OAAAA;EACAC,gBAAAA;EACAC,SAAAA;EACAC,SAAAA;EACAC,OAAAA;EACAC,KAAAA,GAAQjB,oBAAAA,GAAuBA,oBAAAA;EAC/BkB,eAAAA,GAAkBlB,oBAAAA;EAClBmB,QAAAA;EACAC,QAAAA;EACAC,WAAAA;EACAC,QAAAA,GAAWtB,oBAAAA;EACXuB,aAAAA;EACAC,aAAAA;EACAC,QAAAA;EACAC,UAAAA;IAAAA,CACKC,GAAAA,WAAc3B,oBAAAA;EAAAA;EAEnB4B,iBAAAA;IAAAA,CACKD,GAAAA,WAAc3B,oBAAAA;EAAAA;EAEnB6B,oBAAAA,GAAuB7B,oBAAAA;EACvB8B,YAAAA;IAAAA,CACKH,GAAAA,WAAc3B,oBAAAA;EAAAA;EAEnB+B,aAAAA,GAAgB/B,oBAAAA;EAChBgC,EAAAA,GAAKhC,oBAAAA;EACLiC,IAAAA,GAAOjC,oBAAAA;EACPkC,IAAAA,GAAOlC,oBAAAA;EACPmC,KAAAA,GAAQnC,oBAAAA;EACRoC,KAAAA,GAAQpC,oBAAAA;EACRqC,KAAAA,GAAQrC,oBAAAA;EACRsC,GAAAA,GAAMtC,oBAAAA;EACNuC,MAAAA;EACAC,gBAAAA;EACAC,eAAAA;EACAC,WAAAA;IAAAA,CACKf,GAAAA,WAAc3B,oBAAAA;EAAAA;EAEnB9H,KAAAA;EACAE,WAAAA;EACAuB,OAAAA,GAAUjD,eAAAA;EACViM,QAAAA;EACAC,SAAAA;EACAhJ,QAAAA,GAAWX,KAAAA,CAAMvC,eAAAA;EACjBmM,aAAAA;EACApK,YAAAA,GAAeT,2BAAAA;EACf8K,UAAAA;EAAAA,CACCC,OAAAA;AAAAA;AAAAA,UAEYlJ,OAAAA;EACbmJ,cAAAA;AAAAA;AAAAA,UAEa5L,uBAAAA;EAAAA,CACZ8L,SAAAA,kBAA2BD,sBAAAA;AAAAA;AAAAA,KAEpBA,sBAAAA,YAAkCE,CAAAA;AAAAA,UAC7BlL,eAAAA;EACbmL,IAAAA;AAAAA;AAAAA,UAEa/G,mBAAAA,SAA4BjF,uBAAAA;EACzC6E,QAAAA;EACA7D,WAAAA;AAAAA;;;;AD6JJ;;;;;AAaA;;;;;AASA;;KEriBY,wBAAA;EFsiBP7G;;AAKL;;EEtiBE,gBAAA,GAAmB,0BAAA;AAAA;;AFmjBrB;;;KE5iBY,gCAAA,GAAmC,IAAA,CAAK,cAAA,YAClD,OAAA,CAAQ,IAAA,CAAK,cAAA;;;;;AD5Cf;;;;;AACA;;;;;AACA;;;;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cC2Fa,iBAAA;EAAA,iBACM,UAAA;EDpFc;;AAEjC;;;cCyFc,OAAA,GAAS,wBAAA;EDnFTuG;;;;;;;;;;;;;;;;;;;;;;;AAId;;;;;EC+GQ,QAAA,CACJ,QAAA,EAAU,kBAAA,EACV,OAAA,EAAS,gCAAA,GACR,OAAA,CAAQ,cAAA;EDhHTa;;;EAAAA,QCqQY,cAAA;EDlQCb;;;EAAAA,QCoSP,cAAA;EDpS6BV;;;EAAAA,QCgV7B,iBAAA;ED9UH;AAEP;;EAFO,QCwWG,eAAA;EDtWiCyB;;;EAAAA,QCoXjC,YAAA;EDpXwB;;;EAAA,QCmYxB,gBAAA;EDnY+D;;AACzE;EADyE,QCuZzD,aAAA;AAAA"}
|
package/dist/index.d.mts
CHANGED
|
@@ -427,18 +427,19 @@ type AsyncAPIGeneratorGenerateOptions = Pick<AsyncAPIObject, "info"> & Partial<P
|
|
|
427
427
|
* @example
|
|
428
428
|
* ```typescript
|
|
429
429
|
* import { AsyncAPIGenerator } from '@amqp-contract/asyncapi';
|
|
430
|
+
* import { defineExchange, defineMessage, defineContract, definePublisher } from '@amqp-contract/contract';
|
|
430
431
|
* import { zodToJsonSchema } from '@orpc/zod';
|
|
431
432
|
* import { z } from 'zod';
|
|
432
433
|
*
|
|
434
|
+
* const ordersExchange = defineExchange('orders', 'topic', { durable: true });
|
|
435
|
+
* const orderMessage = defineMessage(z.object({
|
|
436
|
+
* orderId: z.string(),
|
|
437
|
+
* amount: z.number()
|
|
438
|
+
* }));
|
|
439
|
+
*
|
|
433
440
|
* const contract = defineContract({
|
|
434
|
-
* exchanges: {
|
|
435
|
-
* orders: defineExchange('orders', 'topic', { durable: true })
|
|
436
|
-
* },
|
|
437
441
|
* publishers: {
|
|
438
|
-
* orderCreated: definePublisher(
|
|
439
|
-
* orderId: z.string(),
|
|
440
|
-
* amount: z.number()
|
|
441
|
-
* }), {
|
|
442
|
+
* orderCreated: definePublisher(ordersExchange, orderMessage, {
|
|
442
443
|
* routingKey: 'order.created'
|
|
443
444
|
* })
|
|
444
445
|
* }
|
package/dist/index.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":["JSONSchema4TypeName","JSONSchema4Type","JSONSchema4Object","JSONSchema4Array","key","Array","JSONSchema4Version","JSONSchema4","id","$ref","$schema","title","description","default","multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","items","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","definitions","k","properties","patternProperties","dependencies","enum","type","allOf","anyOf","oneOf","not","extends","format","JSONSchema6TypeName","JSONSchema6Type","JSONSchema6Object","JSONSchema6Array","JSONSchema6Version","JSONSchema6Definition","JSONSchema6","$id","contains","propertyNames","const","examples","JSONSchema7TypeName","JSONSchema7Type","JSONSchema7Object","JSONSchema7Array","JSONSchema7Version","JSONSchema7Definition","JSONSchema7","$comment","$defs","if","then","else","contentMediaType","contentEncoding","readOnly","writeOnly","ValidationResult","ValidationError","valid","errors","property","message","validate","instance","schema","checkPropertyChange","value","mustBeValid","result","JSONSchema7Version","JSONSchema7TypeName","JSONSchema7Type","AsyncAPIVersion","Identifier","DefaultContentType","AsyncAPIObject","InfoObject","ServersObject","ChannelsObject","OperationsObject","ComponentsObject","SpecificationExtensions","asyncapi","id","defaultContentType","info","servers","channels","operations","components","ContactObject","LicenseObject","TagsObject","ExternalDocumentationObject","ReferenceObject","title","version","description","termsOfService","contact","license","tags","externalDocs","name","url","email","ServerObject","Record","ServerVariableObject","SecuritySchemeObject","Array","ServerBindingsObject","host","protocol","pathname","protocolVersion","variables","security","bindings","enum","default","examples","Binding","http","ws","kafka","anypointmq","amqp","amqp1","mqtt","mqtt5","nats","jms","sns","sqs","stomp","redis","mercure","ibmmq","googlepubsub","ChannelObject","MessagesObject","ParametersObject","ChannelBindingsObject","address","messages","summary","parameters","OperationObject","MessageObject","OperationReplyObject","OperationBindingsObject","OperationTraitObject","action","channel","reply","traits","OperationReplyAddressObject","location","MessageTraitObject","payload","MultiFormatSchemaObject","CorrelationIDObject","MessageBindingsObject","MessageExampleObject","headers","correlationId","contentType","ParameterObject","TagObject","SchemaObject","schemas","securitySchemes","serverVariables","replies","replyAddresses","correlationIds","operationTraits","messageTraits","serverBindings","channelBindings","operationBindings","messageBindings","SecuritySchemeType","OAuthFlowsObject","type","in","scheme","bearerFormat","flows","openIdConnectUrl","scopes","SecuritySchemaLocation","SecuritySchemeObjectBase","SecuritySchemeObjectUserPassword","SecuritySchemeObjectApiKey","SecuritySchemeObjectX509","SecuritySchemeObjectSymetricEncryption","SecuritySchemeObjectAsymetricEncryption","SecuritySchemeObjectHttpApiKey","SecuritySchemeObjectHttp","SecuritySchemeObjectOauth2","SecuritySchemeObjectOpenIdConnect","SecuritySchemeObjectPlain","SecuritySchemeObjectScramSha256","SecuritySchemeObjectScramSha512","SecuritySchemeObjectGssapi","OAuthFlowObjectImplicit","OAuthFlowObjectPassword","OAuthFlowObjectClientCredentials","OAuthFlowObjectAuthorizationCode","implicit","password","clientCredentials","authorizationCode","OAuthFlowObject","OAuthFlowObjectBase","refreshUrl","availableScopes","authorizationUrl","tokenUrl","AsyncAPISchemaObject","AsyncAPISchemaDefinition","MultiFormatObject","schema","schemaFormat","$id","$schema","$comment","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","SpecificationExtension","extension","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":";;;;;;;;;;;;;KA+iBYwD,mBAAAA;AAAAA;;;;;KAaAC,eAAAA;AAAAA,qBAINC,iBAAAA,GACAC,gBAAAA;AAAAA;AAAAA,UAIWD,iBAAAA;EAAAA,CACZtD,GAAAA,WAAcqD,eAAAA;AAAAA;AAAAA;AAAAA;AAAAA,UAKFE,gBAAAA,SAAyBtD,KAAAA,CAAMoD,eAAAA;;;;;;;;AC3ahD;;;;KDwbYG,kBAAAA;;;KCvlBA4B,eAAAA;AAAAA,KACAC,UAAAA;AAAAA,KACAC,kBAAAA;AAAAA,UACKC,cAAAA,SAAuBM,uBAAAA;EACpCC,QAAAA,EAAUV,eAAAA;EACVW,EAAAA,GAAKV,UAAAA;EACLW,kBAAAA,GAAqBV,kBAAAA;EACrBW,IAAAA,EAAMT,UAAAA;EACNU,OAAAA,GAAUT,aAAAA;EACVU,QAAAA,GAAWT,cAAAA;EACXU,UAAAA,GAAaT,gBAAAA;EACbU,UAAAA,GAAaT,gBAAAA;AAAAA;AAAAA,UAEAJ,UAAAA,SAAmBK,uBAAAA;EAChCc,KAAAA;EACAC,OAAAA;EACAC,WAAAA;EACAC,cAAAA;EACAC,OAAAA,GAAUT,aAAAA;EACVU,OAAAA,GAAUT,aAAAA;EACVU,IAAAA,GAAOT,UAAAA;EACPU,YAAAA,GAAeT,2BAAAA,GAA8BC,eAAAA;AAAAA;AAAAA,UAEhCJ,aAAAA,SAAsBT,uBAAAA;EACnCsB,IAAAA;EACAC,GAAAA;EACAC,KAAAA;AAAAA;AAAAA,UAEad,aAAAA,SAAsBV,uBAAAA;EACnCsB,IAAAA;EACAC,GAAAA;AAAAA;AAAAA,KAEQ3B,aAAAA,GAAgB8B,MAAAA,SAAeD,YAAAA,GAAeZ,eAAAA;AAAAA,UACzCY,YAAAA,SAAqBzB,uBAAAA;EAClC+B,IAAAA;EACAC,QAAAA;EACAC,QAAAA;EACAC,eAAAA;EACAlB,WAAAA;EACAmB,SAAAA,GAAYT,MAAAA,SAAeC,oBAAAA,GAAuBd,eAAAA;EAClDuB,QAAAA,GAAWP,KAAAA,CAAMD,oBAAAA,GAAuBf,eAAAA;EACxCO,IAAAA,GAAOT,UAAAA;EACPU,YAAAA,GAAeT,2BAAAA,GAA8BC,eAAAA;EAC7CwB,QAAAA,GAAWP,oBAAAA,GAAuBjB,eAAAA;AAAAA;AAAAA,UAErBc,oBAAAA,SAA6B3B,uBAAAA;EAC1CsC,IAAAA,GAAOT,KAAAA;EACPU,OAAAA;EACAvB,WAAAA;EACAwB,QAAAA,GAAWX,KAAAA;AAAAA;AAAAA,UAEEC,oBAAAA,SAA6B9B,uBAAAA;EAC1C0C,IAAAA,GAAOD,OAAAA;EACPE,EAAAA,GAAKF,OAAAA;EACLG,KAAAA,GAAQH,OAAAA;EACRI,UAAAA,GAAaJ,OAAAA;EACbK,IAAAA,GAAOL,OAAAA;EACPM,KAAAA,GAAQN,OAAAA;EACRO,IAAAA,GAAOP,OAAAA;EACPQ,KAAAA,GAAQR,OAAAA;EACRS,IAAAA,GAAOT,OAAAA;EACPU,GAAAA,GAAMV,OAAAA;EACNW,GAAAA,GAAMX,OAAAA;EACNY,GAAAA,GAAMZ,OAAAA;EACNa,KAAAA,GAAQb,OAAAA;EACRc,KAAAA,GAAQd,OAAAA;EACRe,OAAAA,GAAUf,OAAAA;EACVgB,KAAAA,GAAQhB,OAAAA;EACRiB,YAAAA,GAAejB,OAAAA;AAAAA;AAAAA,KAEP5C,cAAAA,GAAiB6B,MAAAA,SAAeiC,aAAAA,GAAgB9C,eAAAA;AAAAA,UAC3C8C,aAAAA,SAAsB3D,uBAAAA;EACnC+D,OAAAA;EACAC,QAAAA,GAAWJ,cAAAA;EACX9C,KAAAA;EACAmD,OAAAA;EACAjD,WAAAA;EACAX,OAAAA,GAAUwB,KAAAA,CAAMJ,YAAAA,GAAeZ,eAAAA;EAC/BqD,UAAAA,GAAaL,gBAAAA;EACbzC,IAAAA,GAAOT,UAAAA;EACPU,YAAAA,GAAeT,2BAAAA,GAA8BC,eAAAA;EAC7CwB,QAAAA,GAAWyB,qBAAAA,GAAwBjD,eAAAA;AAAAA;AAAAA,UAEtBiD,qBAAAA,SAA8B9D,uBAAAA;EAC3C0C,IAAAA,GAAOD,OAAAA;EACPE,EAAAA,GAAKF,OAAAA;EACLG,KAAAA,GAAQH,OAAAA;EACRI,UAAAA,GAAaJ,OAAAA;EACbK,IAAAA,GAAOL,OAAAA;EACPM,KAAAA,GAAQN,OAAAA;EACRO,IAAAA,GAAOP,OAAAA;EACPQ,KAAAA,GAAQR,OAAAA;EACRS,IAAAA,GAAOT,OAAAA;EACPU,GAAAA,GAAMV,OAAAA;EACNW,GAAAA,GAAMX,OAAAA;EACNY,GAAAA,GAAMZ,OAAAA;EACNa,KAAAA,GAAQb,OAAAA;EACRc,KAAAA,GAAQd,OAAAA;EACRe,OAAAA,GAAUf,OAAAA;EACVgB,KAAAA,GAAQhB,OAAAA;EACRiB,YAAAA,GAAejB,OAAAA;AAAAA;AAAAA,KAEP3C,gBAAAA,GAAmB4B,MAAAA,SAAeyC,eAAAA,GAAkBtD,eAAAA;AAAAA,UAC/CsD,eAAAA,SAAwBnE,uBAAAA;EACrCwE,MAAAA;EACAC,OAAAA,EAASd,aAAAA,GAAgB9C,eAAAA;EACzBmD,QAAAA,GAAWnC,KAAAA,CAAMuC,aAAAA,GAAgBvD,eAAAA;EACjC6D,KAAAA,GAAQL,oBAAAA,GAAuBxD,eAAAA;EAC/BC,KAAAA;EACAmD,OAAAA;EACAjD,WAAAA;EACAoB,QAAAA,GAAWP,KAAAA,CAAMD,oBAAAA,GAAuBf,eAAAA;EACxCO,IAAAA,GAAOT,UAAAA;EACPU,YAAAA,GAAeT,2BAAAA,GAA8BC,eAAAA;EAC7CwB,QAAAA,GAAWiC,uBAAAA,GAA0BzD,eAAAA;EACrC8D,MAAAA,GAAS9C,KAAAA,CAAM0C,oBAAAA,GAAuB1D,eAAAA;AAAAA;AAAAA,UAEzB0D,oBAAAA,SAA6BvE,uBAAAA;EAC1Cc,KAAAA;EACAmD,OAAAA;EACAjD,WAAAA;EACAoB,QAAAA,GAAWP,KAAAA,CAAMD,oBAAAA,GAAuBf,eAAAA;EACxCO,IAAAA,GAAOT,UAAAA;EACPU,YAAAA,GAAeT,2BAAAA,GAA8BC,eAAAA;EAC7CwB,QAAAA,GAAWiC,uBAAAA,GAA0BzD,eAAAA;AAAAA;AAAAA,UAExBwD,oBAAAA,SAA6BrE,uBAAAA;EAC1CyE,OAAAA,GAAUd,aAAAA,GAAgB9C,eAAAA;EAC1BmD,QAAAA,IAAYI,aAAAA,GAAgBvD,eAAAA;EAC5BkD,OAAAA,GAAUa,2BAAAA,GAA8B/D,eAAAA;AAAAA;AAAAA,UAE3B+D,2BAAAA,SAAoC5E,uBAAAA;EACjD6E,QAAAA;EACA7D,WAAAA;AAAAA;AAAAA,UAEasD,uBAAAA,SAAgCtE,uBAAAA;EAC7C0C,IAAAA,GAAOD,OAAAA;EACPE,EAAAA,GAAKF,OAAAA;EACLG,KAAAA,GAAQH,OAAAA;EACRI,UAAAA,GAAaJ,OAAAA;EACbK,IAAAA,GAAOL,OAAAA;EACPM,KAAAA,GAAQN,OAAAA;EACRO,IAAAA,GAAOP,OAAAA;EACPQ,KAAAA,GAAQR,OAAAA;EACRS,IAAAA,GAAOT,OAAAA;EACPU,GAAAA,GAAMV,OAAAA;EACNW,GAAAA,GAAMX,OAAAA;EACNY,GAAAA,GAAMZ,OAAAA;EACNa,KAAAA,GAAQb,OAAAA;EACRc,KAAAA,GAAQd,OAAAA;EACRe,OAAAA,GAAUf,OAAAA;EACVgB,KAAAA,GAAQhB,OAAAA;EACRiB,YAAAA,GAAejB,OAAAA;AAAAA;AAAAA,KAEPmB,cAAAA,GAAiBlC,MAAAA,SAAe0C,aAAAA,GAAgBvD,eAAAA;AAAAA,UAC3CuD,aAAAA,SAAsBU,kBAAAA,EAAoB9E,uBAAAA;EACvD+E,OAAAA;EACAJ,MAAAA,GAAS9C,KAAAA,CAAMiD,kBAAAA,GAAqBjE,eAAAA;AAAAA;AAAAA,UAEvBiE,kBAAAA,SAA2B9E,uBAAAA;EACxCoF,OAAAA,GAAUJ,uBAAAA;EACVK,aAAAA,GAAgBJ,mBAAAA,GAAsBpE,eAAAA;EACtCyE,WAAAA;EACAhE,IAAAA;EACAR,KAAAA;EACAmD,OAAAA;EACAjD,WAAAA;EACAI,IAAAA,GAAOT,UAAAA;EACPU,YAAAA,GAAeT,2BAAAA,GAA8BC,eAAAA;EAC7CwB,QAAAA,GAAW6C,qBAAAA,GAAwBrE,eAAAA;EACnC2B,QAAAA,GAAWX,KAAAA,CAAMsD,oBAAAA;AAAAA;AAAAA,UAEJA,oBAAAA,SAA6BnF,uBAAAA;EAC1CsB,IAAAA;EACA2C,OAAAA;EACAmB,OAAAA,GAAU1D,MAAAA;EACVqD,OAAAA;AAAAA;AAAAA,UAEaG,qBAAAA,SAA8BlF,uBAAAA;EAC3C0C,IAAAA,GAAOD,OAAAA;EACPE,EAAAA,GAAKF,OAAAA;EACLG,KAAAA,GAAQH,OAAAA;EACRI,UAAAA,GAAaJ,OAAAA;EACbK,IAAAA,GAAOL,OAAAA;EACPM,KAAAA,GAAQN,OAAAA;EACRO,IAAAA,GAAOP,OAAAA;EACPQ,KAAAA,GAAQR,OAAAA;EACRS,IAAAA,GAAOT,OAAAA;EACPU,GAAAA,GAAMV,OAAAA;EACNW,GAAAA,GAAMX,OAAAA;EACNY,GAAAA,GAAMZ,OAAAA;EACNa,KAAAA,GAAQb,OAAAA;EACRc,KAAAA,GAAQd,OAAAA;EACRe,OAAAA,GAAUf,OAAAA;EACVgB,KAAAA,GAAQhB,OAAAA;EACRiB,YAAAA,GAAejB,OAAAA;AAAAA;AAAAA,KAEPoB,gBAAAA,GAAmBnC,MAAAA,SAAe6D,eAAAA,GAAkB1E,eAAAA;AAAAA,UAC/C0E,eAAAA,SAAwBvF,uBAAAA;EACrCgB,WAAAA;EACAsB,IAAAA;EACAC,OAAAA;EACAC,QAAAA;EACAqC,QAAAA;AAAAA;AAAAA,KAEQlE,UAAAA,GAAakB,KAAAA,CAAM2D,SAAAA,GAAY3E,eAAAA;AAAAA,UAC1B2E,SAAAA,SAAkBxF,uBAAAA;EAC/BsB,IAAAA;EACAN,WAAAA;EACAK,YAAAA,GAAeT,2BAAAA,GAA8BC,eAAAA;AAAAA;AAAAA,UAEhCD,2BAAAA,SAAoCZ,uBAAAA;EACjDuB,GAAAA;EACAP,WAAAA;AAAAA;AAAAA,UAEajB,gBAAAA,SAAyBC,uBAAAA;EACtCK,OAAAA,GAAUqB,MAAAA,SAAeD,YAAAA,GAAeZ,eAAAA;EACxCP,QAAAA,GAAWoB,MAAAA,SAAeiC,aAAAA,GAAgB9C,eAAAA;EAC1CN,UAAAA,GAAamB,MAAAA,SAAeyC,eAAAA,GAAkBtD,eAAAA;EAC9CmD,QAAAA,GAAWtC,MAAAA,SAAe0C,aAAAA,GAAgBvD,eAAAA;EAC1C6E,OAAAA,GAAUhE,MAAAA,SAAe+D,YAAAA,GAAe5E,eAAAA;EACxC8E,eAAAA,GAAkBjE,MAAAA,SAAeE,oBAAAA,GAAuBf,eAAAA;EACxD+E,eAAAA,GAAkBlE,MAAAA,SAAeC,oBAAAA,GAAuBd,eAAAA;EACxDqD,UAAAA,GAAaxC,MAAAA,SAAe6D,eAAAA,GAAkB1E,eAAAA;EAC9CgF,OAAAA,GAAUnE,MAAAA,SAAe2C,oBAAAA,GAAuBxD,eAAAA;EAChDiF,cAAAA,GAAiBpE,MAAAA,SAAekD,2BAAAA,GAA8B/D,eAAAA;EAC9DkF,cAAAA,GAAiBrE,MAAAA,SAAeuD,mBAAAA,GAAsBpE,eAAAA;EACtDmF,eAAAA,GAAkBtE,MAAAA,SAAe6C,oBAAAA,GAAuB1D,eAAAA;EACxDoF,aAAAA,GAAgBvE,MAAAA,SAAeoD,kBAAAA,GAAqBjE,eAAAA;EACpDO,IAAAA,GAAOM,MAAAA,SAAe8D,SAAAA,GAAY3E,eAAAA;EAClCQ,YAAAA,GAAeK,MAAAA,SAAed,2BAAAA,GAA8BC,eAAAA;EAC5DqF,cAAAA,GAAiBxE,MAAAA,SAAeI,oBAAAA,GAAuBjB,eAAAA;EACvDsF,eAAAA,GAAkBzE,MAAAA,SAAeoC,qBAAAA,GAAwBjD,eAAAA;EACzDuF,iBAAAA,GAAoB1E,MAAAA,SAAe4C,uBAAAA,GAA0BzD,eAAAA;EAC7DwF,eAAAA,GAAkB3E,MAAAA,SAAewD,qBAAAA,GAAwBrE,eAAAA;AAAAA;AAAAA,UAE5Ce,oBAAAA,SAA6B5B,uBAAAA;EAC1CwG,IAAAA,EAAMF,kBAAAA;EACNtF,WAAAA;EACAM,IAAAA;EACAmF,EAAAA;EACAC,MAAAA;EACAC,YAAAA;EACAC,KAAAA,GAAQL,gBAAAA;EACRM,gBAAAA;EACAC,MAAAA;AAAAA;AAAAA,KAEQR,kBAAAA;AAAAA,UAoDKC,gBAAAA,SAAyBvG,uBAAAA;EACtCkI,QAAAA,GAAWJ,uBAAAA;EACXK,QAAAA,GAAWJ,uBAAAA;EACXK,iBAAAA,GAAoBJ,gCAAAA;EACpBK,iBAAAA,GAAoBJ,gCAAAA;AAAAA;AAAAA,UAGPM,mBAAAA,SAA4BvI,uBAAAA;EACzCwI,UAAAA;EACAC,eAAAA,EAAiB/G,MAAAA;AAAAA;AAAAA,UAEJoG,uBAAAA,SAAgCS,mBAAAA,EAAqBvI,uBAAAA;EAClE0I,gBAAAA;AAAAA;AAAAA,UAEaX,uBAAAA,SAAgCQ,mBAAAA,EAAqBvI,uBAAAA;EAClE2I,QAAAA;AAAAA;AAAAA,UAEaX,gCAAAA,SAAyCO,mBAAAA,EAAqBvI,uBAAAA;EAC3E2I,QAAAA;AAAAA;AAAAA,UAEaV,gCAAAA,SAAyCM,mBAAAA,EAAqBvI,uBAAAA;EAC3E0I,gBAAAA;EACAC,QAAAA;AAAAA;AAAAA,KAEQlD,YAAAA,GAAemD,oBAAAA,GAAuB/H,eAAAA;AAAAA,KACtC+H,oBAAAA,GAAuBC,wBAAAA;AAAAA,KACvBC,iBAAAA;EACRC,MAAAA,EAAQH,oBAAAA;EACRI,YAAAA;AAAAA;AAAAA,KAEQhE,uBAAAA,GAA0B4D,oBAAAA,GAAuBE,iBAAAA;AAAAA,UAC5CD,wBAAAA,SAAiC7I,uBAAAA;EAC9CiJ,GAAAA;EACAC,OAAAA,GAAU9J,kBAAAA;EACV+J,QAAAA;EACA3C,IAAAA,GAAOnH,mBAAAA,GAAsBA,mBAAAA;EAC7BiD,IAAAA,GAAOhD,eAAAA;EACP8J,KAAAA,GAAQ9J,eAAAA;EACR+J,UAAAA;EACAC,OAAAA;EACAC,gBAAAA;EACAC,OAAAA;EACAC,gBAAAA;EACAC,SAAAA;EACAC,SAAAA;EACAC,OAAAA;EACAC,KAAAA,GAAQjB,oBAAAA,GAAuBA,oBAAAA;EAC/BkB,eAAAA,GAAkBlB,oBAAAA;EAClBmB,QAAAA;EACAC,QAAAA;EACAC,WAAAA;EACAC,QAAAA,GAAWtB,oBAAAA;EACXuB,aAAAA;EACAC,aAAAA;EACAC,QAAAA;EACAC,UAAAA;IAAAA,CACKC,GAAAA,WAAc3B,oBAAAA;EAAAA;EAEnB4B,iBAAAA;IAAAA,CACKD,GAAAA,WAAc3B,oBAAAA;EAAAA;EAEnB6B,oBAAAA,GAAuB7B,oBAAAA;EACvB8B,YAAAA;IAAAA,CACKH,GAAAA,WAAc3B,oBAAAA;EAAAA;EAEnB+B,aAAAA,GAAgB/B,oBAAAA;EAChBgC,EAAAA,GAAKhC,oBAAAA;EACLiC,IAAAA,GAAOjC,oBAAAA;EACPkC,IAAAA,GAAOlC,oBAAAA;EACPmC,KAAAA,GAAQnC,oBAAAA;EACRoC,KAAAA,GAAQpC,oBAAAA;EACRqC,KAAAA,GAAQrC,oBAAAA;EACRsC,GAAAA,GAAMtC,oBAAAA;EACNuC,MAAAA;EACAC,gBAAAA;EACAC,eAAAA;EACAC,WAAAA;IAAAA,CACKf,GAAAA,WAAc3B,oBAAAA;EAAAA;EAEnB9H,KAAAA;EACAE,WAAAA;EACAuB,OAAAA,GAAUjD,eAAAA;EACViM,QAAAA;EACAC,SAAAA;EACAhJ,QAAAA,GAAWX,KAAAA,CAAMvC,eAAAA;EACjBmM,aAAAA;EACApK,YAAAA,GAAeT,2BAAAA;EACf8K,UAAAA;EAAAA,CACCC,OAAAA;AAAAA;AAAAA,UAEYlJ,OAAAA;EACbmJ,cAAAA;AAAAA;AAAAA,UAEa5L,uBAAAA;EAAAA,CACZ8L,SAAAA,kBAA2BD,sBAAAA;AAAAA;AAAAA,KAEpBA,sBAAAA,YAAkCE,CAAAA;AAAAA,UAC7BlL,eAAAA;EACbmL,IAAAA;AAAAA;AAAAA,UAEa/G,mBAAAA,SAA4BjF,uBAAAA;EACzC6E,QAAAA;EACA7D,WAAAA;AAAAA;;;;AD6JJ;;;;;AAaA;;;;;AASA;;KEriBY,wBAAA;EFsiBP7G;;AAKL;;EEtiBE,gBAAA,GAAmB,0BAAA;AAAA;;AFmjBrB;;;KE5iBY,gCAAA,GAAmC,IAAA,CAAK,cAAA,YAClD,OAAA,CAAQ,IAAA,CAAK,cAAA;;;;;AD5Cf;;;;;AACA;;;;;AACA;;;;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;cC0Fa,iBAAA;EAAA,iBACM,UAAA;EDnFF4F;;;AAEjB;;cCwFc,OAAA,GAAS,wBAAA;EDnFTU;;;;;;;;;;;;;;;;;;;;;;;;AAKd;;;;EC8GQ,QAAA,CACJ,QAAA,EAAU,kBAAA,EACV,OAAA,EAAS,gCAAA,GACR,OAAA,CAAQ,cAAA;EDhHTa;;;EAAAA,QCqQY,cAAA;EDnQP;AAET;;EAFS,QCqSC,cAAA;EDnSoD;;;EAAA,QC+UpD,iBAAA;ED7UH;;AAEP;EAFO,QCuWG,eAAA;;;;UAcA,YAAA;EDnXwB;;;EAAA,QCkYxB,gBAAA;EDlYgDT;;;EAAAA,QCsZ1C,aAAA;AAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":["JSONSchema4TypeName","JSONSchema4Type","JSONSchema4Object","JSONSchema4Array","key","Array","JSONSchema4Version","JSONSchema4","id","$ref","$schema","title","description","default","multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","items","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","definitions","k","properties","patternProperties","dependencies","enum","type","allOf","anyOf","oneOf","not","extends","format","JSONSchema6TypeName","JSONSchema6Type","JSONSchema6Object","JSONSchema6Array","JSONSchema6Version","JSONSchema6Definition","JSONSchema6","$id","contains","propertyNames","const","examples","JSONSchema7TypeName","JSONSchema7Type","JSONSchema7Object","JSONSchema7Array","JSONSchema7Version","JSONSchema7Definition","JSONSchema7","$comment","$defs","if","then","else","contentMediaType","contentEncoding","readOnly","writeOnly","ValidationResult","ValidationError","valid","errors","property","message","validate","instance","schema","checkPropertyChange","value","mustBeValid","result","JSONSchema7Version","JSONSchema7TypeName","JSONSchema7Type","AsyncAPIVersion","Identifier","DefaultContentType","AsyncAPIObject","InfoObject","ServersObject","ChannelsObject","OperationsObject","ComponentsObject","SpecificationExtensions","asyncapi","id","defaultContentType","info","servers","channels","operations","components","ContactObject","LicenseObject","TagsObject","ExternalDocumentationObject","ReferenceObject","title","version","description","termsOfService","contact","license","tags","externalDocs","name","url","email","ServerObject","Record","ServerVariableObject","SecuritySchemeObject","Array","ServerBindingsObject","host","protocol","pathname","protocolVersion","variables","security","bindings","enum","default","examples","Binding","http","ws","kafka","anypointmq","amqp","amqp1","mqtt","mqtt5","nats","jms","sns","sqs","stomp","redis","mercure","ibmmq","googlepubsub","ChannelObject","MessagesObject","ParametersObject","ChannelBindingsObject","address","messages","summary","parameters","OperationObject","MessageObject","OperationReplyObject","OperationBindingsObject","OperationTraitObject","action","channel","reply","traits","OperationReplyAddressObject","location","MessageTraitObject","payload","MultiFormatSchemaObject","CorrelationIDObject","MessageBindingsObject","MessageExampleObject","headers","correlationId","contentType","ParameterObject","TagObject","SchemaObject","schemas","securitySchemes","serverVariables","replies","replyAddresses","correlationIds","operationTraits","messageTraits","serverBindings","channelBindings","operationBindings","messageBindings","SecuritySchemeType","OAuthFlowsObject","type","in","scheme","bearerFormat","flows","openIdConnectUrl","scopes","SecuritySchemaLocation","SecuritySchemeObjectBase","SecuritySchemeObjectUserPassword","SecuritySchemeObjectApiKey","SecuritySchemeObjectX509","SecuritySchemeObjectSymetricEncryption","SecuritySchemeObjectAsymetricEncryption","SecuritySchemeObjectHttpApiKey","SecuritySchemeObjectHttp","SecuritySchemeObjectOauth2","SecuritySchemeObjectOpenIdConnect","SecuritySchemeObjectPlain","SecuritySchemeObjectScramSha256","SecuritySchemeObjectScramSha512","SecuritySchemeObjectGssapi","OAuthFlowObjectImplicit","OAuthFlowObjectPassword","OAuthFlowObjectClientCredentials","OAuthFlowObjectAuthorizationCode","implicit","password","clientCredentials","authorizationCode","OAuthFlowObject","OAuthFlowObjectBase","refreshUrl","availableScopes","authorizationUrl","tokenUrl","AsyncAPISchemaObject","AsyncAPISchemaDefinition","MultiFormatObject","schema","schemaFormat","$id","$schema","$comment","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","SpecificationExtension","extension","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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"}
|
package/dist/index.mjs
CHANGED
|
@@ -10,18 +10,19 @@ import { extractConsumer, extractQueue } from "@amqp-contract/contract";
|
|
|
10
10
|
* @example
|
|
11
11
|
* ```typescript
|
|
12
12
|
* import { AsyncAPIGenerator } from '@amqp-contract/asyncapi';
|
|
13
|
+
* import { defineExchange, defineMessage, defineContract, definePublisher } from '@amqp-contract/contract';
|
|
13
14
|
* import { zodToJsonSchema } from '@orpc/zod';
|
|
14
15
|
* import { z } from 'zod';
|
|
15
16
|
*
|
|
17
|
+
* const ordersExchange = defineExchange('orders', 'topic', { durable: true });
|
|
18
|
+
* const orderMessage = defineMessage(z.object({
|
|
19
|
+
* orderId: z.string(),
|
|
20
|
+
* amount: z.number()
|
|
21
|
+
* }));
|
|
22
|
+
*
|
|
16
23
|
* const contract = defineContract({
|
|
17
|
-
* exchanges: {
|
|
18
|
-
* orders: defineExchange('orders', 'topic', { durable: true })
|
|
19
|
-
* },
|
|
20
24
|
* publishers: {
|
|
21
|
-
* orderCreated: definePublisher(
|
|
22
|
-
* orderId: z.string(),
|
|
23
|
-
* amount: z.number()
|
|
24
|
-
* }), {
|
|
25
|
+
* orderCreated: definePublisher(ordersExchange, orderMessage, {
|
|
25
26
|
* routingKey: 'order.created'
|
|
26
27
|
* })
|
|
27
28
|
* }
|
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 ContractDefinition,\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\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 { zodToJsonSchema } from '@orpc/zod';\n * import { z } from 'zod';\n *\n * const contract = defineContract({\n * exchanges: {\n * orders: defineExchange('orders', 'topic', { durable: true })\n * },\n * publishers: {\n * orderCreated: definePublisher('orders', z.object({\n * orderId: z.string(),\n * amount: z.number()\n * }), {\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\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 }\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 channelKey = this.getQueueName(consumer.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),\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 queueName = this.getQueueName(consumer.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 ${consumer.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 private queueToChannel(\n queue: QueueDefinition,\n bindings: QueueBindingDefinition[] = [],\n ): ChannelObject {\n // Build description with binding information\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 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 durable: queue.durable ?? false,\n exclusive: queue.type === \"classic\" ? (queue.exclusive ?? false) : false,\n autoDelete: queue.autoDelete ?? false,\n vhost: \"/\",\n },\n bindingVersion: \"0.3.0\",\n },\n },\n };\n\n return result as ChannelObject;\n }\n\n /**\n * Convert an exchange definition to AsyncAPI ChannelObject\n */\n private exchangeToChannel(exchange: ExchangeDefinition): ChannelObject {\n const result: Record<string, unknown> = {\n address: exchange.name,\n title: exchange.name,\n description: `AMQP Exchange: ${exchange.name} (${exchange.type})`,\n bindings: {\n amqp: {\n is: \"routingKey\",\n exchange: {\n name: exchange.name,\n type: exchange.type,\n durable: exchange.durable ?? false,\n autoDelete: exchange.autoDelete ?? false,\n vhost: \"/\",\n },\n bindingVersion: \"0.3.0\",\n },\n },\n };\n\n return result as ChannelObject;\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 // If no converter matches, return a generic object schema\n // This allows the contract to still be generated even without schema converters\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 {\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 ContractDefinition,\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\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', 'topic', { durable: true });\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\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 }\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 channelKey = this.getQueueName(consumer.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),\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 queueName = this.getQueueName(consumer.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 ${consumer.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 private queueToChannel(\n queue: QueueDefinition,\n bindings: QueueBindingDefinition[] = [],\n ): ChannelObject {\n // Build description with binding information\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 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 durable: queue.durable ?? false,\n exclusive: queue.type === \"classic\" ? (queue.exclusive ?? false) : false,\n autoDelete: queue.autoDelete ?? false,\n vhost: \"/\",\n },\n bindingVersion: \"0.3.0\",\n },\n },\n };\n\n return result as ChannelObject;\n }\n\n /**\n * Convert an exchange definition to AsyncAPI ChannelObject\n */\n private exchangeToChannel(exchange: ExchangeDefinition): ChannelObject {\n const result: Record<string, unknown> = {\n address: exchange.name,\n title: exchange.name,\n description: `AMQP Exchange: ${exchange.name} (${exchange.type})`,\n bindings: {\n amqp: {\n is: \"routingKey\",\n exchange: {\n name: exchange.name,\n type: exchange.type,\n durable: exchange.durable ?? false,\n autoDelete: exchange.autoDelete ?? false,\n vhost: \"/\",\n },\n bindingVersion: \"0.3.0\",\n },\n },\n };\n\n return result as ChannelObject;\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 // If no converter matches, return a generic object schema\n // This allows the contract to still be generated even without schema converters\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:
|
|
11
|
+
Defined in: [index.ts:96](https://github.com/btravers/amqp-contract/blob/5f68ac0e7a01403c51ddebd327d65b70384c2e2f/packages/asyncapi/src/index.ts#L96)
|
|
12
12
|
|
|
13
13
|
Generator for creating AsyncAPI 3.0 documentation from AMQP contracts.
|
|
14
14
|
|
|
@@ -19,18 +19,19 @@ which can be used for API documentation, code generation, and tooling integratio
|
|
|
19
19
|
|
|
20
20
|
```typescript
|
|
21
21
|
import { AsyncAPIGenerator } from '@amqp-contract/asyncapi';
|
|
22
|
+
import { defineExchange, defineMessage, defineContract, definePublisher } from '@amqp-contract/contract';
|
|
22
23
|
import { zodToJsonSchema } from '@orpc/zod';
|
|
23
24
|
import { z } from 'zod';
|
|
24
25
|
|
|
26
|
+
const ordersExchange = defineExchange('orders', 'topic', { durable: true });
|
|
27
|
+
const orderMessage = defineMessage(z.object({
|
|
28
|
+
orderId: z.string(),
|
|
29
|
+
amount: z.number()
|
|
30
|
+
}));
|
|
31
|
+
|
|
25
32
|
const contract = defineContract({
|
|
26
|
-
exchanges: {
|
|
27
|
-
orders: defineExchange('orders', 'topic', { durable: true })
|
|
28
|
-
},
|
|
29
33
|
publishers: {
|
|
30
|
-
orderCreated: definePublisher(
|
|
31
|
-
orderId: z.string(),
|
|
32
|
-
amount: z.number()
|
|
33
|
-
}), {
|
|
34
|
+
orderCreated: definePublisher(ordersExchange, orderMessage, {
|
|
34
35
|
routingKey: 'order.created'
|
|
35
36
|
})
|
|
36
37
|
}
|
|
@@ -65,7 +66,7 @@ const asyncapi = await generator.generate(contract, {
|
|
|
65
66
|
new AsyncAPIGenerator(options): AsyncAPIGenerator;
|
|
66
67
|
```
|
|
67
68
|
|
|
68
|
-
Defined in: [index.ts:
|
|
69
|
+
Defined in: [index.ts:104](https://github.com/btravers/amqp-contract/blob/5f68ac0e7a01403c51ddebd327d65b70384c2e2f/packages/asyncapi/src/index.ts#L104)
|
|
69
70
|
|
|
70
71
|
Create a new AsyncAPI generator instance.
|
|
71
72
|
|
|
@@ -87,7 +88,7 @@ Create a new AsyncAPI generator instance.
|
|
|
87
88
|
generate(contract, options): Promise<AsyncAPIObject>;
|
|
88
89
|
```
|
|
89
90
|
|
|
90
|
-
Defined in: [index.ts:
|
|
91
|
+
Defined in: [index.ts:136](https://github.com/btravers/amqp-contract/blob/5f68ac0e7a01403c51ddebd327d65b70384c2e2f/packages/asyncapi/src/index.ts#L136)
|
|
91
92
|
|
|
92
93
|
Generate an AsyncAPI 3.0 document from a contract definition.
|
|
93
94
|
|
|
@@ -134,7 +135,7 @@ const asyncapi = await generator.generate(contract, {
|
|
|
134
135
|
type AsyncAPIGeneratorGenerateOptions = Pick<AsyncAPIObject, "info"> & Partial<Pick<AsyncAPIObject, "id" | "servers">>;
|
|
135
136
|
```
|
|
136
137
|
|
|
137
|
-
Defined in: [index.ts:45](https://github.com/btravers/amqp-contract/blob/
|
|
138
|
+
Defined in: [index.ts:45](https://github.com/btravers/amqp-contract/blob/5f68ac0e7a01403c51ddebd327d65b70384c2e2f/packages/asyncapi/src/index.ts#L45)
|
|
138
139
|
|
|
139
140
|
Options for generating an AsyncAPI document.
|
|
140
141
|
These correspond to the top-level AsyncAPI document fields.
|
|
@@ -147,7 +148,7 @@ These correspond to the top-level AsyncAPI document fields.
|
|
|
147
148
|
type AsyncAPIGeneratorOptions = object;
|
|
148
149
|
```
|
|
149
150
|
|
|
150
|
-
Defined in: [index.ts:33](https://github.com/btravers/amqp-contract/blob/
|
|
151
|
+
Defined in: [index.ts:33](https://github.com/btravers/amqp-contract/blob/5f68ac0e7a01403c51ddebd327d65b70384c2e2f/packages/asyncapi/src/index.ts#L33)
|
|
151
152
|
|
|
152
153
|
Options for configuring the AsyncAPI generator.
|
|
153
154
|
|
|
@@ -166,4 +167,4 @@ const generator = new AsyncAPIGenerator({
|
|
|
166
167
|
|
|
167
168
|
| Property | Type | Description | Defined in |
|
|
168
169
|
| ------ | ------ | ------ | ------ |
|
|
169
|
-
| <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:38](https://github.com/btravers/amqp-contract/blob/
|
|
170
|
+
| <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:38](https://github.com/btravers/amqp-contract/blob/5f68ac0e7a01403c51ddebd327d65b70384c2e2f/packages/asyncapi/src/index.ts#L38) |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@amqp-contract/asyncapi",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.0",
|
|
4
4
|
"description": "AsyncAPI specification generator for amqp-contract",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"amqp",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"dependencies": {
|
|
52
52
|
"@orpc/openapi": "1.13.4",
|
|
53
53
|
"@standard-schema/spec": "1.1.0",
|
|
54
|
-
"@amqp-contract/contract": "0.
|
|
54
|
+
"@amqp-contract/contract": "0.17.0"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
57
|
"@asyncapi/parser": "3.6.0",
|