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