@omer-x/next-openapi-json-generator 1.3.0 → 1.3.2

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 CHANGED
@@ -122,17 +122,19 @@ async function isDocumentedRoute(routePath2) {
122
122
  var import_promises3 = __toESM(require("fs/promises"), 1);
123
123
  var import_node_path2 = __toESM(require("path"), 1);
124
124
 
125
- // src/core/injectSchemas.ts
125
+ // src/utils/generateRandomString.ts
126
126
  function generateRandomString(length) {
127
127
  return [...Array(length)].map(() => Math.random().toString(36)[2]).join("");
128
128
  }
129
+
130
+ // src/utils/string-preservation.ts
129
131
  function preserveStrings(code2) {
130
132
  let replacements = {};
131
- const output = code2.replace(/(['"`])([^'`"]+)\1/g, (replacedString) => {
133
+ const output = code2.replace(/(['"`])((?:\\.|(?!\1).)*)\1/g, (match, quote, content) => {
132
134
  const replacementId = generateRandomString(32);
133
135
  replacements = {
134
136
  ...replacements,
135
- [replacementId]: replacedString
137
+ [replacementId]: `${quote}${content}${quote}`
136
138
  };
137
139
  return `<@~${replacementId}~@>`;
138
140
  });
@@ -143,9 +145,11 @@ function restoreStrings(code2, replacements) {
143
145
  return replacements[replacementId];
144
146
  });
145
147
  }
148
+
149
+ // src/core/injectSchemas.ts
146
150
  function injectSchemas(code2, refName) {
147
151
  const { output: preservedCode, replacements } = preserveStrings(code2);
148
- const preservedCodeWithSchemasInjected = preservedCode.replace(new RegExp(`\\b${refName}\\.`, "g"), `global.schemas[${refName}].`).replace(new RegExp(`\\b${refName}\\b`, "g"), `"${refName}"`);
152
+ const preservedCodeWithSchemasInjected = preservedCode.replace(new RegExp(`\\b${refName}\\.`, "g"), `global.schemas[${refName}].`).replace(new RegExp(`\\b${refName}\\b`, "g"), `"${refName}"`).replace(new RegExp(`queryParams:\\s*['"\`]${refName}['"\`]`, "g"), `queryParams: global.schemas["${refName}"]`).replace(new RegExp(`pathParams:\\s*['"\`]${refName}['"\`]`, "g"), `pathParams: global.schemas["${refName}"]`);
149
153
  return restoreStrings(preservedCodeWithSchemasInjected, replacements);
150
154
  }
151
155
 
package/dist/index.js CHANGED
@@ -86,17 +86,19 @@ async function isDocumentedRoute(routePath2) {
86
86
  import fs3 from "node:fs/promises";
87
87
  import path2 from "node:path";
88
88
 
89
- // src/core/injectSchemas.ts
89
+ // src/utils/generateRandomString.ts
90
90
  function generateRandomString(length) {
91
91
  return [...Array(length)].map(() => Math.random().toString(36)[2]).join("");
92
92
  }
93
+
94
+ // src/utils/string-preservation.ts
93
95
  function preserveStrings(code2) {
94
96
  let replacements = {};
95
- const output = code2.replace(/(['"`])([^'`"]+)\1/g, (replacedString) => {
97
+ const output = code2.replace(/(['"`])((?:\\.|(?!\1).)*)\1/g, (match, quote, content) => {
96
98
  const replacementId = generateRandomString(32);
97
99
  replacements = {
98
100
  ...replacements,
99
- [replacementId]: replacedString
101
+ [replacementId]: `${quote}${content}${quote}`
100
102
  };
101
103
  return `<@~${replacementId}~@>`;
102
104
  });
@@ -107,9 +109,11 @@ function restoreStrings(code2, replacements) {
107
109
  return replacements[replacementId];
108
110
  });
109
111
  }
112
+
113
+ // src/core/injectSchemas.ts
110
114
  function injectSchemas(code2, refName) {
111
115
  const { output: preservedCode, replacements } = preserveStrings(code2);
112
- const preservedCodeWithSchemasInjected = preservedCode.replace(new RegExp(`\\b${refName}\\.`, "g"), `global.schemas[${refName}].`).replace(new RegExp(`\\b${refName}\\b`, "g"), `"${refName}"`);
116
+ const preservedCodeWithSchemasInjected = preservedCode.replace(new RegExp(`\\b${refName}\\.`, "g"), `global.schemas[${refName}].`).replace(new RegExp(`\\b${refName}\\b`, "g"), `"${refName}"`).replace(new RegExp(`queryParams:\\s*['"\`]${refName}['"\`]`, "g"), `queryParams: global.schemas["${refName}"]`).replace(new RegExp(`pathParams:\\s*['"\`]${refName}['"\`]`, "g"), `pathParams: global.schemas["${refName}"]`);
113
117
  return restoreStrings(preservedCodeWithSchemasInjected, replacements);
114
118
  }
115
119
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omer-x/next-openapi-json-generator",
3
- "version": "1.3.0",
3
+ "version": "1.3.2",
4
4
  "description": "a Next.js plugin to generate OpenAPI documentation from route handlers",
5
5
  "keywords": [
6
6
  "next.js",