@eventcatalog/generator-openapi 7.2.1 → 7.3.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.mjs CHANGED
@@ -6833,7 +6833,7 @@ var defaultMarkdown3 = (message, openAPIOperation = {}) => {
6833
6833
  return `
6834
6834
  ${message.description ? `
6835
6835
  ## Overview
6836
- ${message.description}
6836
+ ${escapeSpecialCharactersThatBreakMarkdown(message.description)}
6837
6837
  ` : ""}
6838
6838
 
6839
6839
  ${message.externalDocs ? `
@@ -6858,6 +6858,22 @@ ${markdownForResponses(openAPIOperation)}
6858
6858
 
6859
6859
  `;
6860
6860
  };
6861
+ var escapeSpecialCharactersThatBreakMarkdown = (text) => {
6862
+ const codeBlockRegex = /```[\s\S]*?```/g;
6863
+ const codeBlocks = [];
6864
+ const placeholders = [];
6865
+ let processedText = text.replace(codeBlockRegex, (match, index) => {
6866
+ const placeholder = `__CODE_BLOCK_${index}__`;
6867
+ codeBlocks.push(match);
6868
+ placeholders.push(placeholder);
6869
+ return placeholder;
6870
+ });
6871
+ processedText = processedText.replace(/{/g, "\\{").replace(/}/g, "\\}");
6872
+ placeholders.forEach((placeholder, index) => {
6873
+ processedText = processedText.replace(placeholder, codeBlocks[index]);
6874
+ });
6875
+ return processedText;
6876
+ };
6861
6877
  var getSummary2 = (message) => {
6862
6878
  const messageSummary = message.summary ? message.summary : "";
6863
6879
  const messageDescription = message.description ? message.description : "";
@@ -6865,7 +6881,7 @@ var getSummary2 = (message) => {
6865
6881
  if (!eventCatalogMessageSummary) {
6866
6882
  eventCatalogMessageSummary = messageDescription && messageDescription.length < 150 ? messageDescription : "";
6867
6883
  }
6868
- return eventCatalogMessageSummary;
6884
+ return escapeSpecialCharactersThatBreakMarkdown(eventCatalogMessageSummary);
6869
6885
  };
6870
6886
  var buildMessage = async (pathToFile, document2, operation, generateMarkdown) => {
6871
6887
  const requestBodiesAndResponses = await getSchemasByOperationId(pathToFile, operation.operationId);
@@ -6896,6 +6912,7 @@ var buildMessage = async (pathToFile, document2, operation, generateMarkdown) =>
6896
6912
  sidebar: {
6897
6913
  badge: httpVerb
6898
6914
  },
6915
+ ...extensions["x-eventcatalog-draft"] ? { draft: true } : {},
6899
6916
  ...operation.deprecated ? { deprecated: operation.deprecated } : {}
6900
6917
  };
6901
6918
  };
@@ -8294,7 +8311,7 @@ import { join } from "path";
8294
8311
  // package.json
8295
8312
  var package_default = {
8296
8313
  name: "@eventcatalog/generator-openapi",
8297
- version: "7.2.1",
8314
+ version: "7.3.1",
8298
8315
  description: "OpenAPI generator for EventCatalog",
8299
8316
  scripts: {
8300
8317
  build: "tsup",
@@ -8331,7 +8348,7 @@ var package_default = {
8331
8348
  dependencies: {
8332
8349
  "@apidevtools/swagger-parser": "^10.1.0",
8333
8350
  "@changesets/cli": "^2.27.7",
8334
- "@eventcatalog/sdk": "^2.3.7",
8351
+ "@eventcatalog/sdk": "^2.6.9",
8335
8352
  chalk: "^4",
8336
8353
  "js-yaml": "^4.1.0",
8337
8354
  "openapi-types": "^12.1.3",
@@ -9261,6 +9278,11 @@ var index_default = async (_, options) => {
9261
9278
  let serviceMarkdown = service.markdown;
9262
9279
  let serviceSpecificationsFiles = [];
9263
9280
  let serviceSpecifications = service.specifications;
9281
+ const isDomainMarkedAsDraft = options.domain?.draft || null;
9282
+ const isServiceMarkedAsDraft = (
9283
+ // @ts-ignore
9284
+ isDomainMarkedAsDraft || document2.info?.["x-eventcatalog-draft"] || serviceSpec.draft || null
9285
+ );
9264
9286
  let servicePath = options.domain ? join("../", "domains", options.domain.id, "services", service.id) : join("../", "services", service.id);
9265
9287
  if (options.writeFilesToRoot) {
9266
9288
  servicePath = service.id;
@@ -9282,7 +9304,8 @@ Processing domain: ${domainName} (v${domainVersion})`));
9282
9304
  name: domainName,
9283
9305
  version: domainVersion,
9284
9306
  markdown: options.domain?.generateMarkdown ? options.domain.generateMarkdown({ domain: options.domain, markdown: generatedMarkdownForDomain }) : generatedMarkdownForDomain,
9285
- ...options.domain?.owners ? { owners: options.domain.owners } : {}
9307
+ ...options.domain?.owners ? { owners: options.domain.owners } : {},
9308
+ ...isDomainMarkedAsDraft && { draft: true }
9286
9309
  });
9287
9310
  console.log(chalk3.cyan(` - Domain (v${domainVersion}) created`));
9288
9311
  }
@@ -9304,7 +9327,8 @@ Processing domain: ${domainName} (v${domainVersion})`));
9304
9327
  let { sends, receives } = await processMessagesForOpenAPISpec(specPath, document2, servicePath, {
9305
9328
  ...options,
9306
9329
  owners: service.setMessageOwnersToServiceOwners ? service.owners : [],
9307
- serviceHasMultipleSpecFiles: Array.isArray(serviceSpec.path)
9330
+ serviceHasMultipleSpecFiles: Array.isArray(serviceSpec.path),
9331
+ isDraft: isServiceMarkedAsDraft
9308
9332
  });
9309
9333
  let owners = service.owners || [];
9310
9334
  let repository = null;
@@ -9325,6 +9349,7 @@ Processing domain: ${domainName} (v${domainVersion})`));
9325
9349
  receives = latestServiceInCatalog.receives ? [...latestServiceInCatalog.receives, ...receives] : receives;
9326
9350
  }
9327
9351
  }
9352
+ console.log("isServiceMarkedAsDraft", service);
9328
9353
  await writeService(
9329
9354
  {
9330
9355
  ...service,
@@ -9334,7 +9359,8 @@ Processing domain: ${domainName} (v${domainVersion})`));
9334
9359
  receives,
9335
9360
  ...owners ? { owners } : {},
9336
9361
  ...repository ? { repository } : {},
9337
- ...styles2 ? { styles: styles2 } : {}
9362
+ ...styles2 ? { styles: styles2 } : {},
9363
+ ...isServiceMarkedAsDraft ? { draft: true } : {}
9338
9364
  },
9339
9365
  { path: join(servicePath), override: true }
9340
9366
  );
@@ -9365,6 +9391,7 @@ var processMessagesForOpenAPISpec = async (pathToSpec, document2, servicePath, o
9365
9391
  const sidebarBadgeType = options.sidebarBadgeType || "HTTP_METHOD";
9366
9392
  const version = document2.info.version;
9367
9393
  const preserveExistingMessages = options.preserveExistingMessages ?? true;
9394
+ const isDraft = options.isDraft ?? null;
9368
9395
  let receives = [], sends = [];
9369
9396
  for (const operation of operations) {
9370
9397
  const { requestBodiesAndResponses, sidebar, ...message } = await buildMessage(
@@ -9404,7 +9431,8 @@ var processMessagesForOpenAPISpec = async (pathToSpec, document2, servicePath, o
9404
9431
  markdown: messageMarkdown,
9405
9432
  ...options.owners ? { owners: options.owners } : {},
9406
9433
  // only if its defined add it to the sidebar
9407
- ...sidebarBadgeType === "HTTP_METHOD" ? { sidebar } : {}
9434
+ ...sidebarBadgeType === "HTTP_METHOD" ? { sidebar } : {},
9435
+ ...isDraft ? { draft: true } : {}
9408
9436
  },
9409
9437
  { path: options.pathForMessages || messagePath, override: true }
9410
9438
  );