@redocly/cli 2.19.1 → 2.20.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.
Files changed (217) hide show
  1. package/lib/auth/device-flow.d.ts.map +1 -1
  2. package/lib/auth/device-flow.js +1 -1
  3. package/lib/auth/device-flow.js.map +1 -1
  4. package/lib/auth/oauth-client.d.ts.map +1 -1
  5. package/lib/auth/oauth-client.js +5 -5
  6. package/lib/auth/oauth-client.js.map +1 -1
  7. package/lib/commands/auth.js +1 -1
  8. package/lib/commands/auth.js.map +1 -1
  9. package/lib/commands/build-docs/index.d.ts +1 -1
  10. package/lib/commands/build-docs/index.d.ts.map +1 -1
  11. package/lib/commands/build-docs/index.js +5 -5
  12. package/lib/commands/build-docs/index.js.map +1 -1
  13. package/lib/commands/build-docs/utils.d.ts.map +1 -1
  14. package/lib/commands/build-docs/utils.js +6 -6
  15. package/lib/commands/build-docs/utils.js.map +1 -1
  16. package/lib/commands/bundle.d.ts.map +1 -1
  17. package/lib/commands/bundle.js +3 -3
  18. package/lib/commands/bundle.js.map +1 -1
  19. package/lib/commands/eject.d.ts +1 -1
  20. package/lib/commands/eject.d.ts.map +1 -1
  21. package/lib/commands/eject.js +1 -1
  22. package/lib/commands/eject.js.map +1 -1
  23. package/lib/commands/generate-arazzo.d.ts.map +1 -1
  24. package/lib/commands/generate-arazzo.js +1 -1
  25. package/lib/commands/generate-arazzo.js.map +1 -1
  26. package/lib/commands/join/helpers/add-components-prefix.d.ts +2 -0
  27. package/lib/commands/join/helpers/add-components-prefix.d.ts.map +1 -0
  28. package/lib/commands/join/helpers/add-components-prefix.js +9 -0
  29. package/lib/commands/join/helpers/add-components-prefix.js.map +1 -0
  30. package/lib/commands/join/helpers/add-info-section.d.ts +2 -0
  31. package/lib/commands/join/helpers/add-info-section.d.ts.map +1 -0
  32. package/lib/commands/join/helpers/add-info-section.js +19 -0
  33. package/lib/commands/join/helpers/add-info-section.js.map +1 -0
  34. package/lib/commands/join/helpers/add-prefix.d.ts +2 -0
  35. package/lib/commands/join/helpers/add-prefix.d.ts.map +1 -0
  36. package/lib/commands/join/helpers/add-prefix.js +4 -0
  37. package/lib/commands/join/helpers/add-prefix.js.map +1 -0
  38. package/lib/commands/join/helpers/add-security-prefix.d.ts +2 -0
  39. package/lib/commands/join/helpers/add-security-prefix.d.ts.map +1 -0
  40. package/lib/commands/join/helpers/add-security-prefix.js +12 -0
  41. package/lib/commands/join/helpers/add-security-prefix.js.map +1 -0
  42. package/lib/commands/join/helpers/collect-components.d.ts +7 -0
  43. package/lib/commands/join/helpers/collect-components.d.ts.map +1 -0
  44. package/lib/commands/join/helpers/collect-components.js +26 -0
  45. package/lib/commands/join/helpers/collect-components.js.map +1 -0
  46. package/lib/commands/join/helpers/collect-external-docs.d.ts +7 -0
  47. package/lib/commands/join/helpers/collect-external-docs.d.ts.map +1 -0
  48. package/lib/commands/join/helpers/collect-external-docs.js +15 -0
  49. package/lib/commands/join/helpers/collect-external-docs.js.map +1 -0
  50. package/lib/commands/join/helpers/collect-paths.d.ts +9 -0
  51. package/lib/commands/join/helpers/collect-paths.d.ts.map +1 -0
  52. package/lib/commands/join/helpers/collect-paths.js +172 -0
  53. package/lib/commands/join/helpers/collect-paths.js.map +1 -0
  54. package/lib/commands/join/helpers/collect-webhooks.d.ts +8 -0
  55. package/lib/commands/join/helpers/collect-webhooks.d.ts.map +1 -0
  56. package/lib/commands/join/helpers/collect-webhooks.js +46 -0
  57. package/lib/commands/join/helpers/collect-webhooks.js.map +1 -0
  58. package/lib/commands/join/helpers/duplicate-tag-description-warning.d.ts +2 -0
  59. package/lib/commands/join/helpers/duplicate-tag-description-warning.d.ts.map +1 -0
  60. package/lib/commands/join/helpers/duplicate-tag-description-warning.js +8 -0
  61. package/lib/commands/join/helpers/duplicate-tag-description-warning.js.map +1 -0
  62. package/lib/commands/join/helpers/filter-conflicts.d.ts +2 -0
  63. package/lib/commands/join/helpers/filter-conflicts.d.ts.map +1 -0
  64. package/lib/commands/join/helpers/filter-conflicts.js +4 -0
  65. package/lib/commands/join/helpers/filter-conflicts.js.map +1 -0
  66. package/lib/commands/join/helpers/format-tags.d.ts +4 -0
  67. package/lib/commands/join/helpers/format-tags.d.ts.map +1 -0
  68. package/lib/commands/join/helpers/format-tags.js +4 -0
  69. package/lib/commands/join/helpers/format-tags.js.map +1 -0
  70. package/lib/commands/join/helpers/get-api-filename.d.ts +2 -0
  71. package/lib/commands/join/helpers/get-api-filename.d.ts.map +1 -0
  72. package/lib/commands/join/helpers/get-api-filename.js +5 -0
  73. package/lib/commands/join/helpers/get-api-filename.js.map +1 -0
  74. package/lib/commands/join/helpers/get-info-prefix.d.ts +2 -0
  75. package/lib/commands/join/helpers/get-info-prefix.d.ts.map +1 -0
  76. package/lib/commands/join/helpers/get-info-prefix.js +17 -0
  77. package/lib/commands/join/helpers/get-info-prefix.js.map +1 -0
  78. package/lib/commands/join/helpers/index.d.ts +19 -0
  79. package/lib/commands/join/helpers/index.d.ts.map +1 -0
  80. package/lib/commands/join/helpers/index.js +19 -0
  81. package/lib/commands/join/helpers/index.js.map +1 -0
  82. package/lib/commands/join/helpers/iterate-potential-conflicts.d.ts +5 -0
  83. package/lib/commands/join/helpers/iterate-potential-conflicts.d.ts.map +1 -0
  84. package/lib/commands/join/helpers/iterate-potential-conflicts.js +53 -0
  85. package/lib/commands/join/helpers/iterate-potential-conflicts.js.map +1 -0
  86. package/lib/commands/join/helpers/populate-tags.d.ts +7 -0
  87. package/lib/commands/join/helpers/populate-tags.d.ts.map +1 -0
  88. package/lib/commands/join/helpers/populate-tags.js +77 -0
  89. package/lib/commands/join/helpers/populate-tags.js.map +1 -0
  90. package/lib/commands/join/helpers/prefix-tag-suggestion.d.ts +2 -0
  91. package/lib/commands/join/helpers/prefix-tag-suggestion.d.ts.map +1 -0
  92. package/lib/commands/join/helpers/prefix-tag-suggestion.js +6 -0
  93. package/lib/commands/join/helpers/prefix-tag-suggestion.js.map +1 -0
  94. package/lib/commands/join/helpers/replace-$-refs.d.ts +2 -0
  95. package/lib/commands/join/helpers/replace-$-refs.d.ts.map +1 -0
  96. package/lib/commands/join/helpers/replace-$-refs.js +28 -0
  97. package/lib/commands/join/helpers/replace-$-refs.js.map +1 -0
  98. package/lib/commands/join/helpers/show-conflicts.d.ts +2 -0
  99. package/lib/commands/join/helpers/show-conflicts.d.ts.map +1 -0
  100. package/lib/commands/join/helpers/show-conflicts.js +8 -0
  101. package/lib/commands/join/helpers/show-conflicts.js.map +1 -0
  102. package/lib/commands/join/index.d.ts +4 -0
  103. package/lib/commands/join/index.d.ts.map +1 -0
  104. package/lib/commands/join/index.js +141 -0
  105. package/lib/commands/join/index.js.map +1 -0
  106. package/lib/commands/join/types.d.ts +22 -0
  107. package/lib/commands/join/types.d.ts.map +1 -0
  108. package/lib/commands/join/types.js +2 -0
  109. package/lib/commands/join/types.js.map +1 -0
  110. package/lib/commands/lint.d.ts.map +1 -1
  111. package/lib/commands/lint.js +2 -2
  112. package/lib/commands/lint.js.map +1 -1
  113. package/lib/commands/preview-project/index.d.ts +1 -1
  114. package/lib/commands/preview-project/index.d.ts.map +1 -1
  115. package/lib/commands/preview-project/index.js +4 -4
  116. package/lib/commands/preview-project/index.js.map +1 -1
  117. package/lib/commands/respect/connection-client.d.ts.map +1 -1
  118. package/lib/commands/respect/connection-client.js.map +1 -1
  119. package/lib/commands/respect/display-files-summary-table.d.ts +1 -1
  120. package/lib/commands/respect/display-files-summary-table.d.ts.map +1 -1
  121. package/lib/commands/respect/display-files-summary-table.js +1 -1
  122. package/lib/commands/respect/display-files-summary-table.js.map +1 -1
  123. package/lib/commands/respect/har-logs/with-har.d.ts.map +1 -1
  124. package/lib/commands/respect/har-logs/with-har.js +3 -3
  125. package/lib/commands/respect/har-logs/with-har.js.map +1 -1
  126. package/lib/commands/respect/index.d.ts.map +1 -1
  127. package/lib/commands/respect/index.js +6 -6
  128. package/lib/commands/respect/index.js.map +1 -1
  129. package/lib/commands/respect/json-logs.d.ts.map +1 -1
  130. package/lib/commands/respect/json-logs.js.map +1 -1
  131. package/lib/commands/scorecard-classic/auth/login-handler.d.ts.map +1 -1
  132. package/lib/commands/scorecard-classic/auth/login-handler.js.map +1 -1
  133. package/lib/commands/scorecard-classic/index.d.ts +1 -1
  134. package/lib/commands/scorecard-classic/index.d.ts.map +1 -1
  135. package/lib/commands/scorecard-classic/index.js +3 -3
  136. package/lib/commands/scorecard-classic/index.js.map +1 -1
  137. package/lib/commands/scorecard-classic/remote/fetch-scorecard.d.ts.map +1 -1
  138. package/lib/commands/scorecard-classic/remote/fetch-scorecard.js +6 -4
  139. package/lib/commands/scorecard-classic/remote/fetch-scorecard.js.map +1 -1
  140. package/lib/commands/scorecard-classic/validation/plugin-evaluator.d.ts.map +1 -1
  141. package/lib/commands/scorecard-classic/validation/plugin-evaluator.js.map +1 -1
  142. package/lib/commands/scorecard-classic/validation/validate-scorecard.d.ts.map +1 -1
  143. package/lib/commands/scorecard-classic/validation/validate-scorecard.js +1 -1
  144. package/lib/commands/scorecard-classic/validation/validate-scorecard.js.map +1 -1
  145. package/lib/commands/split/index.d.ts +1 -1
  146. package/lib/commands/split/index.d.ts.map +1 -1
  147. package/lib/commands/split/index.js +2 -2
  148. package/lib/commands/split/index.js.map +1 -1
  149. package/lib/commands/{stats.d.ts → stats/index.d.ts} +3 -3
  150. package/lib/commands/stats/index.d.ts.map +1 -0
  151. package/lib/commands/{stats.js → stats/index.js} +18 -28
  152. package/lib/commands/stats/index.js.map +1 -0
  153. package/lib/commands/stats/visitor-and-accumulator-resolver.d.ts +103 -0
  154. package/lib/commands/stats/visitor-and-accumulator-resolver.d.ts.map +1 -0
  155. package/lib/commands/stats/visitor-and-accumulator-resolver.js +46 -0
  156. package/lib/commands/stats/visitor-and-accumulator-resolver.js.map +1 -0
  157. package/lib/commands/translations.d.ts +1 -1
  158. package/lib/commands/translations.d.ts.map +1 -1
  159. package/lib/commands/translations.js +1 -1
  160. package/lib/commands/translations.js.map +1 -1
  161. package/lib/index.d.ts.map +1 -1
  162. package/lib/index.js +19 -19
  163. package/lib/index.js.map +1 -1
  164. package/lib/reunite/api/api-client.d.ts +1 -1
  165. package/lib/reunite/api/api-client.d.ts.map +1 -1
  166. package/lib/reunite/api/api-client.js +1 -1
  167. package/lib/reunite/api/api-client.js.map +1 -1
  168. package/lib/reunite/commands/push-status.d.ts +1 -1
  169. package/lib/reunite/commands/push-status.d.ts.map +1 -1
  170. package/lib/reunite/commands/push-status.js +2 -2
  171. package/lib/reunite/commands/push-status.js.map +1 -1
  172. package/lib/reunite/commands/push.d.ts +1 -1
  173. package/lib/reunite/commands/push.d.ts.map +1 -1
  174. package/lib/reunite/commands/push.js +5 -5
  175. package/lib/reunite/commands/push.js.map +1 -1
  176. package/lib/reunite/commands/utils.d.ts +1 -1
  177. package/lib/reunite/commands/utils.d.ts.map +1 -1
  178. package/lib/reunite/commands/utils.js +2 -2
  179. package/lib/reunite/commands/utils.js.map +1 -1
  180. package/lib/types.d.ts +10 -10
  181. package/lib/types.d.ts.map +1 -1
  182. package/lib/types.js.map +1 -1
  183. package/lib/utils/assert-node-version.js +1 -1
  184. package/lib/utils/assert-node-version.js.map +1 -1
  185. package/lib/utils/fetch-with-timeout.d.ts.map +1 -1
  186. package/lib/utils/fetch-with-timeout.js +1 -1
  187. package/lib/utils/fetch-with-timeout.js.map +1 -1
  188. package/lib/utils/miscellaneous.d.ts.map +1 -1
  189. package/lib/utils/miscellaneous.js +5 -5
  190. package/lib/utils/miscellaneous.js.map +1 -1
  191. package/lib/utils/network-check.js +1 -1
  192. package/lib/utils/network-check.js.map +1 -1
  193. package/lib/utils/otel.d.ts.map +1 -1
  194. package/lib/utils/otel.js +3 -3
  195. package/lib/utils/otel.js.map +1 -1
  196. package/lib/utils/read-env-variables.js +1 -1
  197. package/lib/utils/read-env-variables.js.map +1 -1
  198. package/lib/utils/spinner.js +1 -1
  199. package/lib/utils/spinner.js.map +1 -1
  200. package/lib/utils/telemetry.d.ts +1 -1
  201. package/lib/utils/telemetry.d.ts.map +1 -1
  202. package/lib/utils/telemetry.js +8 -8
  203. package/lib/utils/telemetry.js.map +1 -1
  204. package/lib/utils/update-version-notifier.d.ts.map +1 -1
  205. package/lib/utils/update-version-notifier.js +4 -4
  206. package/lib/utils/update-version-notifier.js.map +1 -1
  207. package/lib/wrapper.d.ts +1 -1
  208. package/lib/wrapper.d.ts.map +1 -1
  209. package/lib/wrapper.js +2 -2
  210. package/lib/wrapper.js.map +1 -1
  211. package/package.json +4 -4
  212. package/lib/commands/join.d.ts +0 -12
  213. package/lib/commands/join.d.ts.map +0 -1
  214. package/lib/commands/join.js +0 -576
  215. package/lib/commands/join.js.map +0 -1
  216. package/lib/commands/stats.d.ts.map +0 -1
  217. package/lib/commands/stats.js.map +0 -1
@@ -1,576 +0,0 @@
1
- import * as path from 'node:path';
2
- import { red, blue, yellow, green } from 'colorette';
3
- import { performance } from 'node:perf_hooks';
4
- import { BaseResolver, formatProblems, getTotals, detectSpec, bundleDocument, isRef, dequal, logger, isString, isPlainObject, keysOf, isEmptyObject, getTypes, } from '@redocly/openapi-core';
5
- import { getFallbackApisOrExit, printExecutionTime, sortTopLevelKeysForOas, getAndValidateFileExtension, writeToFileByExtension, } from '../utils/miscellaneous.js';
6
- import { exitWithError } from '../utils/error.js';
7
- import { COMPONENTS, OPENAPI3_METHOD_NAMES } from './split/types.js';
8
- import { crawl, startsWithComponents } from './split/index.js';
9
- const Tags = 'tags';
10
- const xTagGroups = 'x-tagGroups';
11
- let potentialConflictsTotal = 0;
12
- export async function handleJoin({ argv, config, version: packageVersion, collectSpecData, }) {
13
- const startedAt = performance.now();
14
- const { 'prefix-components-with-info-prop': prefixComponentsWithInfoProp, 'prefix-tags-with-filename': prefixTagsWithFilename, 'prefix-tags-with-info-prop': prefixTagsWithInfoProp, 'without-x-tag-groups': withoutXTagGroups, output, } = argv;
15
- const usedTagsOptions = [
16
- prefixTagsWithFilename && 'prefix-tags-with-filename',
17
- prefixTagsWithInfoProp && 'prefix-tags-with-info-prop',
18
- withoutXTagGroups && 'without-x-tag-groups',
19
- ].filter(Boolean);
20
- if (usedTagsOptions.length > 1) {
21
- return exitWithError(`You use ${yellow(usedTagsOptions.join(', '))} together.\nPlease choose only one!`);
22
- }
23
- const apis = await getFallbackApisOrExit(argv.apis, config);
24
- if (apis.length < 2) {
25
- return exitWithError(`At least 2 APIs should be provided.`);
26
- }
27
- const fileExtension = getAndValidateFileExtension(output || apis[0].path);
28
- const specFilename = output || `openapi.${fileExtension}`;
29
- const externalRefResolver = new BaseResolver(config.resolve);
30
- const documents = await Promise.all(apis.map(({ path }) => externalRefResolver.resolveDocument(null, path, true)));
31
- const decorators = new Set([
32
- ...Object.keys(config.decorators.oas3_0),
33
- ...Object.keys(config.decorators.oas3_1),
34
- ...Object.keys(config.decorators.oas2),
35
- ]);
36
- config.skipDecorators(Array.from(decorators));
37
- const preprocessors = new Set([
38
- ...Object.keys(config.preprocessors.oas3_0),
39
- ...Object.keys(config.preprocessors.oas3_1),
40
- ...Object.keys(config.preprocessors.oas2),
41
- ]);
42
- config.skipPreprocessors(Array.from(preprocessors));
43
- const bundleResults = await Promise.all(documents.map((document) => bundleDocument({
44
- document,
45
- config,
46
- externalRefResolver: new BaseResolver(config.resolve),
47
- types: getTypes(detectSpec(document.parsed)),
48
- }).catch((e) => {
49
- exitWithError(`${e.message}: ${blue(document.source.absoluteRef)}`);
50
- })));
51
- for (const { problems, bundle: document } of bundleResults) {
52
- const fileTotals = getTotals(problems);
53
- if (fileTotals.errors) {
54
- formatProblems(problems, {
55
- totals: fileTotals,
56
- version: packageVersion,
57
- command: 'join',
58
- });
59
- exitWithError(`❌ Errors encountered while bundling ${blue(document.source.absoluteRef)}: join will not proceed.`);
60
- }
61
- }
62
- let oasVersion = null;
63
- for (const document of documents) {
64
- try {
65
- const version = detectSpec(document.parsed);
66
- collectSpecData?.(document.parsed);
67
- if (version !== 'oas3_0' && version !== 'oas3_1' && version !== 'oas3_2') {
68
- return exitWithError(`Only OpenAPI 3.0, 3.1, and 3.2 are supported: ${blue(document.source.absoluteRef)}.`);
69
- }
70
- oasVersion = oasVersion ?? version;
71
- if (oasVersion !== version) {
72
- return exitWithError(`All APIs must use the same OpenAPI version: ${blue(document.source.absoluteRef)}.`);
73
- }
74
- }
75
- catch (e) {
76
- return exitWithError(`${e.message}: ${blue(document.source.absoluteRef)}.`);
77
- }
78
- }
79
- const [first, ...others] = (documents ?? []);
80
- const serversAreTheSame = others.every(({ parsed: { paths, servers } }) => {
81
- // include only documents with paths
82
- if (!paths || isEmptyObject(paths || {})) {
83
- return true;
84
- }
85
- return servers?.every((server) => first.parsed.servers?.find(({ url }) => url === server.url));
86
- });
87
- const joinedDef = {};
88
- const potentialConflicts = {
89
- tags: {},
90
- paths: {},
91
- components: {},
92
- webhooks: {},
93
- };
94
- addInfoSectionAndSpecVersion(documents, prefixComponentsWithInfoProp);
95
- if (serversAreTheSame && first.parsed.servers) {
96
- joinedDef.servers = first.parsed.servers;
97
- }
98
- for (const document of documents) {
99
- const openapi = isPlainObject(document.parsed)
100
- ? document.parsed
101
- : {};
102
- const { tags, info } = openapi;
103
- const api = path.relative(process.cwd(), document.source.absoluteRef);
104
- const apiFilename = getApiFilename(api);
105
- const tagsPrefix = prefixTagsWithFilename
106
- ? apiFilename
107
- : getInfoPrefix(info, prefixTagsWithInfoProp, 'tags');
108
- const componentsPrefix = getInfoPrefix(info, prefixComponentsWithInfoProp, COMPONENTS);
109
- if (openapi.hasOwnProperty('x-tagGroups')) {
110
- logger.warn(`warning: x-tagGroups at ${blue(api)} will be skipped \n`);
111
- }
112
- const context = {
113
- api,
114
- apiFilename,
115
- apiTitle: info?.title,
116
- tags,
117
- potentialConflicts,
118
- tagsPrefix,
119
- componentsPrefix,
120
- oasVersion,
121
- };
122
- if (tags) {
123
- populateTags(context);
124
- }
125
- collectExternalDocs(openapi, context);
126
- collectPaths(openapi, context, serversAreTheSame);
127
- collectComponents(openapi, context);
128
- collectWebhooks(openapi, context);
129
- if (componentsPrefix) {
130
- replace$Refs(openapi, componentsPrefix);
131
- }
132
- }
133
- iteratePotentialConflicts(potentialConflicts, withoutXTagGroups);
134
- const noRefs = true;
135
- if (potentialConflictsTotal) {
136
- return exitWithError(`Please fix conflicts before running ${yellow('join')}.`);
137
- }
138
- writeToFileByExtension(sortTopLevelKeysForOas(joinedDef), specFilename, noRefs);
139
- printExecutionTime('join', startedAt, specFilename);
140
- function populateTags({ api, apiFilename, apiTitle, tags, potentialConflicts, tagsPrefix, componentsPrefix, oasVersion, }) {
141
- if (!joinedDef.hasOwnProperty(Tags)) {
142
- joinedDef[Tags] = [];
143
- }
144
- if (!potentialConflicts.tags.hasOwnProperty('all')) {
145
- potentialConflicts.tags['all'] = {};
146
- }
147
- if (withoutXTagGroups && !potentialConflicts.tags.hasOwnProperty('description')) {
148
- potentialConflicts.tags['description'] = {};
149
- }
150
- for (const tag of tags || []) {
151
- const entrypointTagName = addPrefix(tag.name, tagsPrefix);
152
- if (tag.description) {
153
- tag.description = addComponentsPrefix(tag.description, componentsPrefix);
154
- }
155
- const tagDuplicate = joinedDef.tags.find((t) => t.name === entrypointTagName);
156
- if (tagDuplicate && withoutXTagGroups) {
157
- // If tag already exist and `without-x-tag-groups` option,
158
- // check if description are different for potential conflicts warning.
159
- const isTagDescriptionNotEqual = tag.hasOwnProperty('description') && tagDuplicate.description !== tag.description;
160
- potentialConflicts.tags.description[entrypointTagName].push(...(isTagDescriptionNotEqual ? [api] : []));
161
- }
162
- else if (!tagDuplicate) {
163
- // Instead add tag to joinedDef if there no duplicate;
164
- if (oasVersion === 'oas3_0' || oasVersion === 'oas3_1') {
165
- tag['x-displayName'] = tag['x-displayName'] || tag.name;
166
- }
167
- else if (oasVersion === 'oas3_2') {
168
- tag.summary = tag.summary || tag.name;
169
- }
170
- tag.name = entrypointTagName;
171
- joinedDef.tags.push(tag);
172
- if (withoutXTagGroups) {
173
- potentialConflicts.tags.description[entrypointTagName] = [api];
174
- }
175
- }
176
- if (!withoutXTagGroups && oasVersion !== 'oas3_2') {
177
- const groupName = apiTitle || apiFilename;
178
- createXTagGroups(groupName);
179
- if (!tagDuplicate) {
180
- populateXTagGroups(entrypointTagName, getIndexGroup(groupName));
181
- }
182
- }
183
- const doesEntrypointExist = !potentialConflicts.tags.all[entrypointTagName] ||
184
- (potentialConflicts.tags.all[entrypointTagName] &&
185
- !potentialConflicts.tags.all[entrypointTagName].includes(api));
186
- potentialConflicts.tags.all[entrypointTagName] = [
187
- ...(potentialConflicts.tags.all[entrypointTagName] || []),
188
- ...(!withoutXTagGroups && doesEntrypointExist ? [api] : []),
189
- ];
190
- }
191
- }
192
- function getIndexGroup(name) {
193
- return joinedDef[xTagGroups].findIndex((item) => item.name === name);
194
- }
195
- function createXTagGroups(name) {
196
- if (!joinedDef.hasOwnProperty(xTagGroups)) {
197
- joinedDef[xTagGroups] = [];
198
- }
199
- if (!joinedDef[xTagGroups].some((g) => g.name === name)) {
200
- joinedDef[xTagGroups].push({ name, tags: [] });
201
- }
202
- const indexGroup = getIndexGroup(name);
203
- if (!joinedDef[xTagGroups][indexGroup].hasOwnProperty(Tags)) {
204
- joinedDef[xTagGroups][indexGroup][Tags] = [];
205
- }
206
- }
207
- function populateXTagGroups(entrypointTagName, indexGroup) {
208
- if (!joinedDef[xTagGroups][indexGroup][Tags].find((t) => t.name === entrypointTagName)) {
209
- joinedDef[xTagGroups][indexGroup][Tags].push(entrypointTagName);
210
- }
211
- }
212
- function collectExternalDocs(openapi, { api }) {
213
- const { externalDocs } = openapi;
214
- if (externalDocs) {
215
- if (joinedDef.hasOwnProperty('externalDocs')) {
216
- logger.warn(`warning: skip externalDocs from ${blue(path.basename(api))} \n`);
217
- return;
218
- }
219
- joinedDef['externalDocs'] = externalDocs;
220
- }
221
- }
222
- function collectPaths(openapi, { apiFilename, apiTitle, api, potentialConflicts, tagsPrefix, componentsPrefix, oasVersion, }, serversAreTheSame) {
223
- const { paths, servers: rootServers } = openapi;
224
- const operationsSet = new Set(OPENAPI3_METHOD_NAMES);
225
- if (paths) {
226
- if (!joinedDef.hasOwnProperty('paths')) {
227
- joinedDef['paths'] = {};
228
- }
229
- for (const path of keysOf(paths)) {
230
- if (!joinedDef.paths.hasOwnProperty(path)) {
231
- joinedDef.paths[path] = {};
232
- }
233
- if (!potentialConflicts.paths.hasOwnProperty(path)) {
234
- potentialConflicts.paths[path] = {};
235
- }
236
- const pathItem = paths[path];
237
- const servers = serversAreTheSame
238
- ? pathItem.servers
239
- : pathItem.servers || rootServers || [];
240
- if (servers) {
241
- collectPathServers(servers, path);
242
- }
243
- for (const field of keysOf(pathItem)) {
244
- if (operationsSet.has(field)) {
245
- collectPathOperation(pathItem, path, field);
246
- }
247
- if (field === 'parameters') {
248
- collectPathParameters(pathItem, path);
249
- }
250
- if (typeof pathItem[field] === 'string') {
251
- collectPathStringFields(pathItem, path, field);
252
- }
253
- }
254
- }
255
- }
256
- function collectPathStringFields(pathItem, path, field) {
257
- const fieldValue = pathItem[field];
258
- if (joinedDef.paths[path].hasOwnProperty(field) &&
259
- joinedDef.paths[path][field] !== fieldValue) {
260
- logger.warn(`warning: different ${field} values in ${path}\n`);
261
- return;
262
- }
263
- joinedDef.paths[path][field] = fieldValue;
264
- }
265
- function collectPathServers(servers, path) {
266
- if (!servers) {
267
- return;
268
- }
269
- if (!joinedDef.paths[path].hasOwnProperty('servers')) {
270
- joinedDef.paths[path].servers = [];
271
- }
272
- for (const server of servers) {
273
- let isFoundServer = false;
274
- for (const pathServer of joinedDef.paths[path].servers) {
275
- if (pathServer.url === server.url) {
276
- if (!isServersEqual(pathServer, server)) {
277
- exitWithError(`Different server values for (${server.url}) in ${path}.`);
278
- }
279
- isFoundServer = true;
280
- }
281
- }
282
- if (!isFoundServer) {
283
- joinedDef.paths[path].servers.push(server);
284
- }
285
- }
286
- }
287
- function collectPathParameters(pathItem, path) {
288
- if (!pathItem.parameters) {
289
- return;
290
- }
291
- if (!joinedDef.paths[path].hasOwnProperty('parameters')) {
292
- joinedDef.paths[path].parameters = [];
293
- }
294
- for (const parameter of pathItem.parameters) {
295
- let isFoundParameter = false;
296
- for (const pathParameter of joinedDef.paths[path]
297
- .parameters) {
298
- // Compare $ref only if both are reference objects
299
- if (isRef(pathParameter) && isRef(parameter)) {
300
- if (pathParameter['$ref'] === parameter['$ref']) {
301
- isFoundParameter = true;
302
- }
303
- }
304
- // Compare properties only if both are reference objects
305
- if (!isRef(pathParameter) && !isRef(parameter)) {
306
- if (pathParameter.name === parameter.name && pathParameter.in === parameter.in) {
307
- if (!dequal(pathParameter.schema, parameter.schema)) {
308
- exitWithError(`Different parameter schemas for (${parameter.name}) in ${path}.`);
309
- }
310
- isFoundParameter = true;
311
- }
312
- }
313
- }
314
- if (!isFoundParameter) {
315
- joinedDef.paths[path].parameters.push(parameter);
316
- }
317
- }
318
- }
319
- function collectPathOperation(pathItem, path, operation) {
320
- const pathOperation = pathItem[operation];
321
- if (!pathOperation) {
322
- return;
323
- }
324
- joinedDef.paths[path][operation] = pathOperation;
325
- potentialConflicts.paths[path][operation] = [
326
- ...(potentialConflicts.paths[path][operation] || []),
327
- api,
328
- ];
329
- const { operationId } = pathOperation;
330
- if (operationId) {
331
- if (!potentialConflicts.paths.hasOwnProperty('operationIds')) {
332
- potentialConflicts.paths['operationIds'] = {};
333
- }
334
- potentialConflicts.paths.operationIds[operationId] = [
335
- ...(potentialConflicts.paths.operationIds[operationId] || []),
336
- api,
337
- ];
338
- }
339
- const { tags, security } = joinedDef.paths[path][operation];
340
- if (tags) {
341
- joinedDef.paths[path][operation].tags = tags.map((tag) => addPrefix(tag, tagsPrefix));
342
- populateTags({
343
- api,
344
- apiFilename,
345
- apiTitle,
346
- tags: formatTags(tags),
347
- potentialConflicts,
348
- tagsPrefix,
349
- componentsPrefix,
350
- oasVersion,
351
- });
352
- }
353
- else {
354
- joinedDef.paths[path][operation]['tags'] = [addPrefix('other', tagsPrefix || apiFilename)];
355
- populateTags({
356
- api,
357
- apiFilename,
358
- apiTitle,
359
- tags: formatTags(['other']),
360
- potentialConflicts,
361
- tagsPrefix: tagsPrefix || apiFilename,
362
- componentsPrefix,
363
- oasVersion,
364
- });
365
- }
366
- if (!security && openapi.hasOwnProperty('security')) {
367
- joinedDef.paths[path][operation]['security'] = addSecurityPrefix(openapi.security, componentsPrefix);
368
- }
369
- else if (pathOperation.security) {
370
- joinedDef.paths[path][operation].security = addSecurityPrefix(pathOperation.security, componentsPrefix);
371
- }
372
- }
373
- }
374
- function isServersEqual(serverOne, serverTwo) {
375
- if (serverOne.description === serverTwo.description) {
376
- return dequal(serverOne.variables, serverTwo.variables);
377
- }
378
- return false;
379
- }
380
- function collectComponents(openapi, { api, potentialConflicts, componentsPrefix }) {
381
- const { components } = openapi;
382
- if (components) {
383
- if (!joinedDef.hasOwnProperty(COMPONENTS)) {
384
- joinedDef[COMPONENTS] = {};
385
- }
386
- for (const [component, componentObj] of Object.entries(components)) {
387
- if (!potentialConflicts[COMPONENTS].hasOwnProperty(component)) {
388
- potentialConflicts[COMPONENTS][component] = {};
389
- joinedDef[COMPONENTS][component] = {};
390
- }
391
- for (const item of Object.keys(componentObj)) {
392
- const componentPrefix = addPrefix(item, componentsPrefix);
393
- potentialConflicts.components[component][componentPrefix] = [
394
- ...(potentialConflicts.components[component][item] || []),
395
- { [api]: componentObj[item] },
396
- ];
397
- joinedDef.components[component][componentPrefix] = componentObj[item];
398
- }
399
- }
400
- }
401
- }
402
- function collectWebhooks(openapi, { apiFilename, apiTitle, api, potentialConflicts, tagsPrefix, componentsPrefix, oasVersion, }) {
403
- const webhooks = oasVersion === 'oas3_0' ? 'x-webhooks' : 'webhooks';
404
- const openapiWebhooks = openapi[webhooks];
405
- if (openapiWebhooks) {
406
- if (!joinedDef.hasOwnProperty(webhooks)) {
407
- joinedDef[webhooks] = {};
408
- }
409
- for (const webhook of Object.keys(openapiWebhooks)) {
410
- joinedDef[webhooks][webhook] = openapiWebhooks[webhook];
411
- if (!potentialConflicts.webhooks.hasOwnProperty(webhook)) {
412
- potentialConflicts.webhooks[webhook] = {};
413
- }
414
- for (const operation of Object.keys(openapiWebhooks[webhook])) {
415
- potentialConflicts.webhooks[webhook][operation] = [
416
- ...(potentialConflicts.webhooks[webhook][operation] || []),
417
- api,
418
- ];
419
- }
420
- for (const operationKey of Object.keys(joinedDef[webhooks][webhook])) {
421
- const { tags } = joinedDef[webhooks][webhook][operationKey];
422
- if (tags) {
423
- joinedDef[webhooks][webhook][operationKey].tags = tags.map((tag) => addPrefix(tag, tagsPrefix));
424
- populateTags({
425
- api,
426
- apiFilename,
427
- apiTitle,
428
- tags: formatTags(tags),
429
- potentialConflicts,
430
- tagsPrefix,
431
- componentsPrefix,
432
- oasVersion,
433
- });
434
- }
435
- }
436
- }
437
- }
438
- }
439
- function addInfoSectionAndSpecVersion(documents, prefixComponentsWithInfoProp) {
440
- const firstApi = documents[0];
441
- const openapi = firstApi.parsed;
442
- const componentsPrefix = getInfoPrefix(openapi.info, prefixComponentsWithInfoProp, COMPONENTS);
443
- if (!openapi.openapi)
444
- exitWithError('Version of specification is not found.');
445
- if (!openapi.info)
446
- exitWithError('Info section is not found in specification.');
447
- if (openapi.info?.description) {
448
- openapi.info.description = addComponentsPrefix(openapi.info.description, componentsPrefix);
449
- }
450
- joinedDef.openapi = openapi.openapi;
451
- joinedDef.info = openapi.info;
452
- }
453
- }
454
- function doesComponentsDiffer(curr, next) {
455
- return !dequal(Object.values(curr)[0], Object.values(next)[0]);
456
- }
457
- function validateComponentsDifference(files) {
458
- let isDiffer = false;
459
- for (let i = 0, len = files.length; i < len; i++) {
460
- const next = files[i + 1];
461
- if (next && doesComponentsDiffer(files[i], next)) {
462
- isDiffer = true;
463
- }
464
- }
465
- return isDiffer;
466
- }
467
- function iteratePotentialConflicts(potentialConflicts, withoutXTagGroups) {
468
- for (const group of Object.keys(potentialConflicts)) {
469
- for (const [key, value] of Object.entries(potentialConflicts[group])) {
470
- const conflicts = filterConflicts(value);
471
- if (conflicts.length) {
472
- if (group === COMPONENTS) {
473
- for (const [_, conflict] of Object.entries(conflicts)) {
474
- if (validateComponentsDifference(conflict[1])) {
475
- conflict[1] = conflict[1].map((c) => Object.keys(c)[0]);
476
- showConflicts(green(group) + ' => ' + key, [conflict]);
477
- potentialConflictsTotal += 1;
478
- }
479
- }
480
- }
481
- else {
482
- if (withoutXTagGroups && group === 'tags') {
483
- duplicateTagDescriptionWarning(conflicts);
484
- }
485
- else {
486
- potentialConflictsTotal += conflicts.length;
487
- showConflicts(green(group) + ' => ' + key, conflicts);
488
- }
489
- }
490
- if (group === 'tags' && !withoutXTagGroups) {
491
- prefixTagSuggestion(conflicts.length);
492
- }
493
- }
494
- }
495
- }
496
- }
497
- function duplicateTagDescriptionWarning(conflicts) {
498
- const tagsKeys = conflicts.map(([tagName]) => `\`${tagName}\``);
499
- const joinString = yellow(', ');
500
- logger.warn(`\nwarning: ${tagsKeys.length} conflict(s) on the ${red(tagsKeys.join(joinString))} tags description.\n`);
501
- }
502
- function prefixTagSuggestion(conflictsLength) {
503
- logger.info(green(`\n${conflictsLength} conflict(s) on tags.\nSuggestion: please use ${blue('prefix-tags-with-filename')}, ${blue('prefix-tags-with-info-prop')} or ${blue('without-x-tag-groups')} to prevent naming conflicts.\n\n`));
504
- }
505
- function showConflicts(key, conflicts) {
506
- for (const [path, files] of conflicts) {
507
- logger.warn(`Conflict on ${key} : ${red(path)} in files: ${blue(files)} \n`);
508
- }
509
- }
510
- function filterConflicts(entities) {
511
- return Object.entries(entities).filter(([_, files]) => files.length > 1);
512
- }
513
- function getApiFilename(filePath) {
514
- return path.basename(filePath, path.extname(filePath));
515
- }
516
- function addPrefix(tag, tagsPrefix) {
517
- return tagsPrefix ? tagsPrefix + '_' + tag : tag;
518
- }
519
- function formatTags(tags) {
520
- return tags.map((tag) => ({ name: tag }));
521
- }
522
- function addComponentsPrefix(description, componentsPrefix) {
523
- return description.replace(/"(#\/components\/.*?)"/g, (match) => {
524
- const componentName = path.basename(match);
525
- return match.replace(componentName, addPrefix(componentName, componentsPrefix));
526
- });
527
- }
528
- function addSecurityPrefix(security, componentsPrefix) {
529
- return componentsPrefix
530
- ? security?.map((s) => {
531
- const joinedSecuritySchema = {};
532
- for (const [key, value] of Object.entries(s)) {
533
- Object.assign(joinedSecuritySchema, { [componentsPrefix + '_' + key]: value });
534
- }
535
- return joinedSecuritySchema;
536
- })
537
- : security;
538
- }
539
- function getInfoPrefix(info, prefixArg, type) {
540
- if (!prefixArg)
541
- return '';
542
- if (!info)
543
- exitWithError('Info section is not found in specification.');
544
- if (!info[prefixArg])
545
- exitWithError(`${yellow(`prefix-${type}-with-info-prop`)} argument value is not found in info section.`);
546
- if (!isString(info[prefixArg]))
547
- exitWithError(`${yellow(`prefix-${type}-with-info-prop`)} argument value should be string.`);
548
- if (info[prefixArg].length > 50)
549
- exitWithError(`${yellow(`prefix-${type}-with-info-prop`)} argument value length should not exceed 50 characters.`);
550
- return info[prefixArg].replaceAll(/\s/g, '_');
551
- }
552
- function replace$Refs(obj, componentsPrefix) {
553
- crawl(obj, (node) => {
554
- if (isRef(node) && startsWithComponents(node.$ref)) {
555
- const name = path.basename(node.$ref);
556
- node.$ref = node.$ref.replace(name, componentsPrefix + '_' + name);
557
- }
558
- else if (isPlainObject(node.discriminator) && isPlainObject(node.discriminator.mapping)) {
559
- const { mapping } = node.discriminator;
560
- for (const name of Object.keys(mapping)) {
561
- const mappingPointer = mapping[name];
562
- if (typeof mappingPointer === 'string' && startsWithComponents(mappingPointer)) {
563
- mapping[name] = mappingPointer
564
- .split('/')
565
- .map((name, i, arr) => {
566
- return arr.length - 1 === i && !name.includes(componentsPrefix)
567
- ? componentsPrefix + '_' + name
568
- : name;
569
- })
570
- .join('/');
571
- }
572
- }
573
- }
574
- });
575
- }
576
- //# sourceMappingURL=join.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"join.js","sourceRoot":"","sources":["../../src/commands/join.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/commands/stats.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAA4C,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACpG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAuEvD,MAAM,MAAM,SAAS,GAAG;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,YAAY,CAAC;CACtB,GAAG,mBAAmB,CAAC;AAExB,wBAAsB,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,WAAW,CAAC,SAAS,CAAC,iBA0C1F"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/commands/stats.ts"],"names":[],"mappings":"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"}