@eventcatalog/generator-openapi 7.5.5 → 7.6.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.js CHANGED
@@ -1575,7 +1575,7 @@ var buildService = (serviceOptions, document2, generateMarkdown) => {
1575
1575
  const generatedMarkdownForService = defaultMarkdown2(document2, schemaPath);
1576
1576
  return {
1577
1577
  id: serviceId,
1578
- version: document2.info.version,
1578
+ version: serviceOptions.version || document2.info.version,
1579
1579
  name: document2.info.title,
1580
1580
  summary: getSummary(document2),
1581
1581
  schemaPath,
@@ -1814,7 +1814,7 @@ var getSummary2 = (message2) => {
1814
1814
  }
1815
1815
  return escapeSpecialCharactersThatBreakMarkdown(eventCatalogMessageSummary);
1816
1816
  };
1817
- var buildMessage = async (pathToFile, document2, operation, generateMarkdown, messageIdConfig, serviceId) => {
1817
+ var buildMessage = async (pathToFile, document2, operation, generateMarkdown, messageIdConfig, serviceId, serviceVersion) => {
1818
1818
  const requestBodiesAndResponses = await getSchemasByOperationId(pathToFile, operation.operationId);
1819
1819
  const extensions = operation.extensions || {};
1820
1820
  const operationTags = operation.tags.map((badge) => ({
@@ -1836,13 +1836,14 @@ var buildMessage = async (pathToFile, document2, operation, generateMarkdown, me
1836
1836
  uniqueIdentifier = [messageIdConfig.prefix, uniqueIdentifier].join(separator);
1837
1837
  }
1838
1838
  const messageName = extensions["x-eventcatalog-message-id"] || uniqueIdentifier;
1839
+ const messageVersion = extensions["x-eventcatalog-message-version"] || serviceVersion || document2.info.version;
1839
1840
  if (messageIdConfig?.prefixWithServiceId) {
1840
1841
  const separator = messageIdConfig.separator || "-";
1841
1842
  uniqueIdentifier = [serviceId, uniqueIdentifier].join(separator);
1842
1843
  }
1843
1844
  return {
1844
1845
  id: extensions["x-eventcatalog-message-id"] || uniqueIdentifier,
1845
- version: extensions["x-eventcatalog-message-version"] || document2.info.version,
1846
+ version: messageVersion,
1846
1847
  name: extensions["x-eventcatalog-message-name"] || messageName,
1847
1848
  summary: getSummary2(operation),
1848
1849
  markdown: generateMarkdown ? generateMarkdown({ operation, markdown: generatedMarkdownForMessage }) : generatedMarkdownForMessage,
@@ -4071,7 +4072,7 @@ var import_node_path = require("path");
4071
4072
  // package.json
4072
4073
  var package_default = {
4073
4074
  name: "@eventcatalog/generator-openapi",
4074
- version: "7.5.5",
4075
+ version: "7.6.1",
4075
4076
  description: "OpenAPI generator for EventCatalog",
4076
4077
  scripts: {
4077
4078
  build: "tsup",
@@ -4108,7 +4109,7 @@ var package_default = {
4108
4109
  dependencies: {
4109
4110
  "@apidevtools/swagger-parser": "^10.1.0",
4110
4111
  "@changesets/cli": "^2.27.7",
4111
- "@eventcatalog/sdk": "^2.8.3",
4112
+ "@eventcatalog/sdk": "^2.9.2",
4112
4113
  chalk: "4.1.2",
4113
4114
  "js-yaml": "^4.1.0",
4114
4115
  "openapi-types": "^12.1.3",
@@ -4206,7 +4207,8 @@ var index_default = async (_, options) => {
4206
4207
  const document2 = await import_swagger_parser2.default.dereference(specFile);
4207
4208
  return {
4208
4209
  document: document2,
4209
- path: specFile
4210
+ path: specFile,
4211
+ version: serviceSpec.version || document2.info.version
4210
4212
  };
4211
4213
  } catch (error) {
4212
4214
  console.error(import_chalk4.default.red(`Failed to parse OpenAPI file: ${specFile}`));
@@ -4217,15 +4219,19 @@ var index_default = async (_, options) => {
4217
4219
  const validSpecs = await Promise.all(specs);
4218
4220
  const validSpecFiles = validSpecs.filter((v) => v !== null);
4219
4221
  const orderedSpecs = validSpecFiles.sort((a, b) => {
4220
- const versionA = a?.document.info.version ?? "";
4221
- const versionB = b?.document.info.version ?? "";
4222
+ const versionA = a?.version ?? "";
4223
+ const versionB = b?.version ?? "";
4222
4224
  return versionA.localeCompare(versionB);
4223
4225
  });
4224
4226
  for (const specification of orderedSpecs) {
4225
4227
  const document2 = specification.document;
4226
- const version = document2.info.version;
4228
+ const version = specification.version;
4227
4229
  const specPath = specification.path;
4228
- const service = buildService({ ...serviceSpec, path: specPath }, document2, serviceSpec.generateMarkdown);
4230
+ const service = buildService(
4231
+ { ...serviceSpec, path: specPath, version: specification.version },
4232
+ document2,
4233
+ serviceSpec.generateMarkdown
4234
+ );
4229
4235
  let serviceMarkdown = service.markdown;
4230
4236
  let serviceSpecificationsFiles = [];
4231
4237
  let serviceSpecifications = service.specifications;
@@ -4270,6 +4276,11 @@ Processing domain: ${domainName} (v${domainVersion})`));
4270
4276
  await addServiceToDomain(domainId, { id: service.id, version: service.version }, domainVersion);
4271
4277
  }
4272
4278
  const latestServiceInCatalog = await getService(service.id, "latest");
4279
+ let latestVersionSpecificationFiles = [];
4280
+ try {
4281
+ latestVersionSpecificationFiles = await getSpecificationFilesForService(service.id, "latest");
4282
+ } catch (error) {
4283
+ }
4273
4284
  const versionTheService = latestServiceInCatalog && isVersionGreaterThan(version, latestServiceInCatalog.version);
4274
4285
  console.log(import_chalk4.default.blue(`Processing service: ${document2.info.title} (v${version})`));
4275
4286
  if (latestServiceInCatalog && isVersionLessThan(version, latestServiceInCatalog.version)) {
@@ -4284,7 +4295,8 @@ Processing domain: ${domainName} (v${domainVersion})`));
4284
4295
  owners: service.setMessageOwnersToServiceOwners ? service.owners : [],
4285
4296
  serviceHasMultipleSpecFiles: Array.isArray(serviceSpec.path),
4286
4297
  isDraft: isServiceMarkedAsDraft,
4287
- serviceId: service.id
4298
+ serviceId: service.id,
4299
+ serviceVersion: service.version
4288
4300
  });
4289
4301
  let owners = service.owners || [];
4290
4302
  let repository = null;
@@ -4292,7 +4304,7 @@ Processing domain: ${domainName} (v${domainVersion})`));
4292
4304
  const persistPreviousSpecificationFiles = Array.isArray(serviceSpec.path) === false;
4293
4305
  if (latestServiceInCatalog) {
4294
4306
  serviceMarkdown = latestServiceInCatalog.markdown;
4295
- serviceSpecificationsFiles = await getSpecificationFilesForService(service.id, "latest");
4307
+ serviceSpecificationsFiles = latestVersionSpecificationFiles;
4296
4308
  sends = latestServiceInCatalog.sends || [];
4297
4309
  owners = latestServiceInCatalog.owners || [];
4298
4310
  repository = latestServiceInCatalog.repository || null;
@@ -4354,7 +4366,7 @@ Processing domain: ${domainName} (v${domainVersion})`));
4354
4366
  var processMessagesForOpenAPISpec = async (pathToSpec, document2, servicePath, options) => {
4355
4367
  const operations = await getOperationsByType(pathToSpec, options.httpMethodsToMessages);
4356
4368
  const sidebarBadgeType = options.sidebarBadgeType || "HTTP_METHOD";
4357
- const version = document2.info.version;
4369
+ const version = options.serviceVersion || document2.info.version;
4358
4370
  const preserveExistingMessages = options.preserveExistingMessages ?? true;
4359
4371
  const isDraft = options.isDraft ?? null;
4360
4372
  let receives = [], sends = [];
@@ -4365,7 +4377,8 @@ var processMessagesForOpenAPISpec = async (pathToSpec, document2, servicePath, o
4365
4377
  operation,
4366
4378
  options.messages?.generateMarkdown,
4367
4379
  options.messages?.id,
4368
- options.serviceId
4380
+ options.serviceId,
4381
+ version
4369
4382
  );
4370
4383
  let messageMarkdown = message2.markdown;
4371
4384
  const messageType = operation.type;
@@ -4387,7 +4400,7 @@ var processMessagesForOpenAPISpec = async (pathToSpec, document2, servicePath, o
4387
4400
  if (preserveExistingMessages) {
4388
4401
  messageMarkdown = catalogedMessage.markdown;
4389
4402
  }
4390
- if (catalogedMessage.version !== version) {
4403
+ if (catalogedMessage.version !== message2.version) {
4391
4404
  console.log("versioning message", message2.id);
4392
4405
  await versionMessage(message2.id);
4393
4406
  console.log(import_chalk4.default.cyan(` - Versioned previous message: ${message2.id} (v${catalogedMessage.version})`));