@redocly/openapi-core 0.0.0-snapshot.1750341369 → 0.0.0-snapshot.1750854988

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 (121) hide show
  1. package/README.md +42 -4
  2. package/lib/bundle.d.ts +8 -6
  3. package/lib/bundle.d.ts.map +1 -1
  4. package/lib/bundle.js +21 -31
  5. package/lib/bundle.js.map +1 -1
  6. package/lib/config/all.d.ts +2 -2
  7. package/lib/config/all.d.ts.map +1 -1
  8. package/lib/config/all.js.map +1 -1
  9. package/lib/config/builtIn.d.ts +2 -2
  10. package/lib/config/builtIn.d.ts.map +1 -1
  11. package/lib/config/builtIn.js.map +1 -1
  12. package/lib/config/bundle-extends.d.ts +8 -0
  13. package/lib/config/bundle-extends.d.ts.map +1 -0
  14. package/lib/config/bundle-extends.js +27 -0
  15. package/lib/config/bundle-extends.js.map +1 -0
  16. package/lib/config/config-resolvers.d.ts +9 -24
  17. package/lib/config/config-resolvers.d.ts.map +1 -1
  18. package/lib/config/config-resolvers.js +178 -294
  19. package/lib/config/config-resolvers.js.map +1 -1
  20. package/lib/config/config.d.ts +16 -19
  21. package/lib/config/config.d.ts.map +1 -1
  22. package/lib/config/config.js +69 -49
  23. package/lib/config/config.js.map +1 -1
  24. package/lib/config/load.d.ts +6 -15
  25. package/lib/config/load.d.ts.map +1 -1
  26. package/lib/config/load.js +49 -53
  27. package/lib/config/load.js.map +1 -1
  28. package/lib/config/minimal.d.ts +2 -2
  29. package/lib/config/minimal.d.ts.map +1 -1
  30. package/lib/config/minimal.js.map +1 -1
  31. package/lib/config/recommended-strict.d.ts +2 -2
  32. package/lib/config/recommended-strict.d.ts.map +1 -1
  33. package/lib/config/recommended-strict.js.map +1 -1
  34. package/lib/config/recommended.d.ts +2 -2
  35. package/lib/config/recommended.d.ts.map +1 -1
  36. package/lib/config/recommended.js.map +1 -1
  37. package/lib/config/rules.d.ts +2 -2
  38. package/lib/config/rules.d.ts.map +1 -1
  39. package/lib/config/rules.js.map +1 -1
  40. package/lib/config/spec.d.ts +2 -2
  41. package/lib/config/spec.d.ts.map +1 -1
  42. package/lib/config/spec.js +1 -1
  43. package/lib/config/spec.js.map +1 -1
  44. package/lib/config/types.d.ts +14 -34
  45. package/lib/config/types.d.ts.map +1 -1
  46. package/lib/config/utils.d.ts +4 -7
  47. package/lib/config/utils.d.ts.map +1 -1
  48. package/lib/config/utils.js +2 -114
  49. package/lib/config/utils.js.map +1 -1
  50. package/lib/config/visitors.d.ts +36 -0
  51. package/lib/config/visitors.d.ts.map +1 -0
  52. package/lib/config/visitors.js +89 -0
  53. package/lib/config/visitors.js.map +1 -0
  54. package/lib/index.d.ts +4 -2
  55. package/lib/index.d.ts.map +1 -1
  56. package/lib/index.js +1 -1
  57. package/lib/index.js.map +1 -1
  58. package/lib/lint.d.ts +3 -5
  59. package/lib/lint.d.ts.map +1 -1
  60. package/lib/lint.js +9 -8
  61. package/lib/lint.js.map +1 -1
  62. package/lib/oas-types.d.ts.map +1 -1
  63. package/lib/oas-types.js +1 -0
  64. package/lib/oas-types.js.map +1 -1
  65. package/lib/ref-utils.d.ts +2 -0
  66. package/lib/ref-utils.d.ts.map +1 -1
  67. package/lib/ref-utils.js +12 -0
  68. package/lib/ref-utils.js.map +1 -1
  69. package/lib/resolve.d.ts +4 -7
  70. package/lib/resolve.d.ts.map +1 -1
  71. package/lib/resolve.js +4 -2
  72. package/lib/resolve.js.map +1 -1
  73. package/lib/rules/oas3/no-undefined-server-variable.js +1 -1
  74. package/lib/rules/oas3/no-undefined-server-variable.js.map +1 -1
  75. package/lib/types/index.d.ts +1 -0
  76. package/lib/types/index.d.ts.map +1 -1
  77. package/lib/types/index.js.map +1 -1
  78. package/lib/types/redocly-yaml.d.ts +1 -0
  79. package/lib/types/redocly-yaml.d.ts.map +1 -1
  80. package/lib/types/redocly-yaml.js +56 -31
  81. package/lib/types/redocly-yaml.js.map +1 -1
  82. package/lib/utils.d.ts +1 -2
  83. package/lib/utils.d.ts.map +1 -1
  84. package/lib/utils.js +3 -13
  85. package/lib/utils.js.map +1 -1
  86. package/lib/walk.d.ts.map +1 -1
  87. package/lib/walk.js +7 -2
  88. package/lib/walk.js.map +1 -1
  89. package/package.json +2 -2
  90. package/lib/benchmark/benches/lint-with-many-rules.bench.d.ts +0 -5
  91. package/lib/benchmark/benches/lint-with-many-rules.bench.d.ts.map +0 -1
  92. package/lib/benchmark/benches/lint-with-many-rules.bench.js +0 -36
  93. package/lib/benchmark/benches/lint-with-many-rules.bench.js.map +0 -1
  94. package/lib/benchmark/benches/lint-with-nested-rule.bench.d.ts +0 -5
  95. package/lib/benchmark/benches/lint-with-nested-rule.bench.d.ts.map +0 -1
  96. package/lib/benchmark/benches/lint-with-nested-rule.bench.js +0 -40
  97. package/lib/benchmark/benches/lint-with-nested-rule.bench.js.map +0 -1
  98. package/lib/benchmark/benches/lint-with-no-rules.bench.d.ts +0 -5
  99. package/lib/benchmark/benches/lint-with-no-rules.bench.d.ts.map +0 -1
  100. package/lib/benchmark/benches/lint-with-no-rules.bench.js +0 -21
  101. package/lib/benchmark/benches/lint-with-no-rules.bench.js.map +0 -1
  102. package/lib/benchmark/benches/lint-with-top-level-rule-report.bench.d.ts +0 -5
  103. package/lib/benchmark/benches/lint-with-top-level-rule-report.bench.d.ts.map +0 -1
  104. package/lib/benchmark/benches/lint-with-top-level-rule-report.bench.js +0 -33
  105. package/lib/benchmark/benches/lint-with-top-level-rule-report.bench.js.map +0 -1
  106. package/lib/benchmark/benches/lint-with-top-level-rule.bench.d.ts +0 -5
  107. package/lib/benchmark/benches/lint-with-top-level-rule.bench.d.ts.map +0 -1
  108. package/lib/benchmark/benches/lint-with-top-level-rule.bench.js +0 -32
  109. package/lib/benchmark/benches/lint-with-top-level-rule.bench.js.map +0 -1
  110. package/lib/benchmark/benches/recommended-oas3.bench.d.ts +0 -4
  111. package/lib/benchmark/benches/recommended-oas3.bench.d.ts.map +0 -1
  112. package/lib/benchmark/benches/recommended-oas3.bench.js +0 -18
  113. package/lib/benchmark/benches/recommended-oas3.bench.js.map +0 -1
  114. package/lib/benchmark/benches/resolve-with-no-external.bench.d.ts +0 -4
  115. package/lib/benchmark/benches/resolve-with-no-external.bench.d.ts.map +0 -1
  116. package/lib/benchmark/benches/resolve-with-no-external.bench.js +0 -19
  117. package/lib/benchmark/benches/resolve-with-no-external.bench.js.map +0 -1
  118. package/lib/benchmark/utils.d.ts +0 -7
  119. package/lib/benchmark/utils.d.ts.map +0 -1
  120. package/lib/benchmark/utils.js +0 -31
  121. package/lib/benchmark/utils.js.map +0 -1
@@ -3,53 +3,63 @@ import * as url from 'node:url';
3
3
  import * as fs from 'node:fs';
4
4
  import module from 'node:module';
5
5
  import { isAbsoluteUrl } from '../ref-utils.js';
6
- import { pickDefined, isNotString, isString, isDefined, keysOf } from '../utils.js';
7
- import { resolveDocument, BaseResolver } from '../resolve.js';
6
+ import { isNotString, isString, isDefined, keysOf } from '../utils.js';
7
+ import { resolveDocument, BaseResolver, Source } from '../resolve.js';
8
8
  import { defaultPlugin } from './builtIn.js';
9
- import { getResolveConfig, getUniquePlugins, isCommonJsPlugin, isDeprecatedPluginFormat, mergeExtends, parsePresetName, prefixRules, transformConfig, } from './utils.js';
9
+ import { deepCloneMapWithJSON, getResolveConfig, isCommonJsPlugin, isDeprecatedPluginFormat, mergeExtends, parsePresetName, prefixRules, } from './utils.js';
10
10
  import { isBrowser } from '../env.js';
11
- import { Config } from './config.js';
12
11
  import { colorize, logger } from '../logger.js';
13
12
  import { asserts, buildAssertCustomFunction } from '../rules/common/assertions/asserts.js';
14
13
  import { NormalizedConfigTypes } from '../types/redocly-yaml.js';
14
+ import { bundleConfig, collectConfigPlugins } from '../bundle.js';
15
15
  const DEFAULT_PROJECT_PLUGIN_PATHS = ['@theme/plugin.js', '@theme/plugin.cjs', '@theme/plugin.mjs'];
16
16
  // Cache instantiated plugins during a single execution
17
17
  const pluginsCache = new Map();
18
- export async function resolveConfigFileAndRefs({ configPath, externalRefResolver = new BaseResolver(), base = null, }) {
19
- if (!configPath) {
20
- throw new Error('Reference to a config is required.\n');
18
+ export async function resolveConfig({ rawConfigDocument, configPath, externalRefResolver, customExtends, }) {
19
+ const config = rawConfigDocument === undefined ? { extends: ['recommended'] } : rawConfigDocument.parsed;
20
+ if (customExtends !== undefined) {
21
+ config.extends = customExtends;
21
22
  }
22
- const document = await externalRefResolver.resolveDocument(base, configPath, true);
23
- if (document instanceof Error) {
24
- throw document;
23
+ if (config?.extends?.some(isNotString)) {
24
+ throw new Error(`Configuration format not detected in extends: values must be strings.`);
25
25
  }
26
+ const rootDocument = rawConfigDocument ?? {
27
+ source: new Source(configPath ?? '', JSON.stringify(config)),
28
+ parsed: config,
29
+ };
26
30
  const resolvedRefMap = await resolveDocument({
27
- rootDocument: document,
31
+ rootDocument,
28
32
  rootType: NormalizedConfigTypes.ConfigRoot,
29
- externalRefResolver,
33
+ externalRefResolver: externalRefResolver ?? new BaseResolver(getResolveConfig(config?.resolve)),
30
34
  });
31
- return { document, resolvedRefMap };
32
- }
33
- export async function resolveConfig({ rawConfig, configPath, externalRefResolver, }) {
34
- if (rawConfig.styleguide?.extends?.some(isNotString)) {
35
- throw new Error(`Error configuration format not detected in extends value must contain strings`);
35
+ const withCollectedPlugins = collectConfigPlugins(rootDocument, resolvedRefMap);
36
+ const { plugins = [] } = withCollectedPlugins;
37
+ const resolvedPlugins = isBrowser // In browser, we don't support plugins from config file yet
38
+ ? [defaultPlugin]
39
+ : await resolvePlugins([...plugins, defaultPlugin], path.dirname(configPath ?? ''));
40
+ const bundledConfig = bundleConfig(rootDocument, deepCloneMapWithJSON(resolvedRefMap), resolvedPlugins);
41
+ if (bundledConfig.apis) {
42
+ bundledConfig.apis = Object.fromEntries(Object.entries(bundledConfig.apis).map(([key, apiConfig]) => {
43
+ const mergedConfig = mergeExtends([bundledConfig, apiConfig]);
44
+ return [
45
+ key,
46
+ {
47
+ ...mergedConfig,
48
+ root: apiConfig.root,
49
+ plugins: resolvedPlugins,
50
+ rules: groupAssertionRules(mergedConfig, resolvedPlugins),
51
+ },
52
+ ];
53
+ }));
36
54
  }
37
- const resolver = externalRefResolver ?? new BaseResolver(getResolveConfig(rawConfig.resolve));
38
- const apis = await resolveApis({
39
- rawConfig,
40
- configPath,
41
- resolver,
42
- });
43
- const styleguide = await resolveStyleguideConfig({
44
- styleguideConfig: rawConfig.styleguide,
45
- configPath,
46
- resolver,
47
- });
48
- return new Config({
49
- ...rawConfig,
50
- apis,
51
- styleguide,
52
- }, configPath);
55
+ return {
56
+ resolvedConfig: {
57
+ ...bundledConfig,
58
+ plugins: resolvedPlugins,
59
+ rules: groupAssertionRules(bundledConfig, resolvedPlugins),
60
+ },
61
+ resolvedRefMap,
62
+ };
53
63
  }
54
64
  function getDefaultPluginPath(configDir) {
55
65
  for (const pluginPath of DEFAULT_PROJECT_PLUGIN_PATHS) {
@@ -68,7 +78,7 @@ export async function resolvePlugins(plugins, configDir = '') {
68
78
  if (isString(plugin)) {
69
79
  try {
70
80
  const maybeAbsolutePluginPath = path.resolve(configDir, plugin);
71
- const absolutePluginPath = fs.existsSync(maybeAbsolutePluginPath)
81
+ const absolutePluginPath = fs.existsSync(maybeAbsolutePluginPath) // TODO: replace with externalRefResolver.fs
72
82
  ? maybeAbsolutePluginPath
73
83
  : // For plugins imported from packages specifically
74
84
  module.createRequire(import.meta.url ?? __dirname).resolve(plugin, {
@@ -93,20 +103,26 @@ export async function resolvePlugins(plugins, configDir = '') {
93
103
  requiredPlugin = mod.default || mod;
94
104
  }
95
105
  const pluginCreatorOptions = { contentDir: configDir };
106
+ const requiredPluginInstances = Array.isArray(requiredPlugin)
107
+ ? requiredPlugin
108
+ : [requiredPlugin];
109
+ for (const requiredPluginInstance of requiredPluginInstances) {
110
+ if (requiredPluginInstance?.id && isDeprecatedPluginFormat(requiredPluginInstance)) {
111
+ logger.info(`Deprecated plugin format detected: ${requiredPluginInstance.id}\n`);
112
+ }
113
+ }
96
114
  const pluginModule = isDeprecatedPluginFormat(requiredPlugin)
97
115
  ? requiredPlugin
98
116
  : isCommonJsPlugin(requiredPlugin)
99
117
  ? await requiredPlugin(pluginCreatorOptions)
100
118
  : await requiredPlugin?.default?.(pluginCreatorOptions);
101
- if (pluginModule?.id && isDeprecatedPluginFormat(requiredPlugin)) {
102
- logger.info(`Deprecated plugin format detected: ${pluginModule.id}\n`);
103
- }
119
+ const pluginInstances = Array.isArray(pluginModule) ? pluginModule : [pluginModule];
104
120
  if (pluginModule) {
105
- pluginsCache.set(absolutePluginPath, {
106
- ...pluginModule,
121
+ pluginsCache.set(absolutePluginPath, pluginInstances.map((p) => ({
122
+ ...p,
107
123
  path: plugin,
108
124
  absolutePath: absolutePluginPath,
109
- });
125
+ })));
110
126
  }
111
127
  }
112
128
  return pluginsCache.get(absolutePluginPath);
@@ -136,194 +152,133 @@ export async function resolvePlugins(plugins, configDir = '') {
136
152
  }
137
153
  resolvedPlugins.add(p);
138
154
  }
139
- const pluginModule = await requireFunc(p);
140
- if (!pluginModule) {
155
+ const pluginInstanceOrInstances = await requireFunc(p);
156
+ if (!pluginInstanceOrInstances) {
141
157
  return;
142
158
  }
143
- const id = pluginModule.id;
144
- if (typeof id !== 'string') {
145
- throw new Error(colorize.red(`Plugin must define \`id\` property in ${colorize.blue(p.toString())}.`));
146
- }
147
- if (seenPluginIds.has(id)) {
148
- const pluginPath = seenPluginIds.get(id);
149
- throw new Error(colorize.red(`Plugin "id" must be unique. Plugin ${colorize.blue(p.toString())} uses id "${colorize.blue(id)}" already seen in ${colorize.blue(pluginPath)}`));
150
- }
151
- seenPluginIds.set(id, p.toString());
152
- const plugin = {
153
- id,
154
- ...(pluginModule.configs ? { configs: pluginModule.configs } : {}),
155
- ...(pluginModule.typeExtension ? { typeExtension: pluginModule.typeExtension } : {}),
156
- };
157
- if (pluginModule.rules) {
158
- if (!pluginModule.rules.oas3 &&
159
- !pluginModule.rules.oas2 &&
160
- !pluginModule.rules.async2 &&
161
- !pluginModule.rules.async3 &&
162
- !pluginModule.rules.arazzo1 &&
163
- !pluginModule.rules.overlay1) {
164
- throw new Error(`Plugin rules must have \`oas3\`, \`oas2\`, \`async2\`, \`async3\`, \`arazzo\`, or \`overlay1\` rules "${p}.`);
165
- }
166
- plugin.rules = {};
167
- if (pluginModule.rules.oas3) {
168
- plugin.rules.oas3 = prefixRules(pluginModule.rules.oas3, id);
169
- }
170
- if (pluginModule.rules.oas2) {
171
- plugin.rules.oas2 = prefixRules(pluginModule.rules.oas2, id);
172
- }
173
- if (pluginModule.rules.async2) {
174
- plugin.rules.async2 = prefixRules(pluginModule.rules.async2, id);
175
- }
176
- if (pluginModule.rules.async3) {
177
- plugin.rules.async3 = prefixRules(pluginModule.rules.async3, id);
178
- }
179
- if (pluginModule.rules.arazzo1) {
180
- plugin.rules.arazzo1 = prefixRules(pluginModule.rules.arazzo1, id);
181
- }
182
- if (pluginModule.rules.overlay1) {
183
- plugin.rules.overlay1 = prefixRules(pluginModule.rules.overlay1, id);
184
- }
185
- }
186
- if (pluginModule.preprocessors) {
187
- if (!pluginModule.preprocessors.oas3 &&
188
- !pluginModule.preprocessors.oas2 &&
189
- !pluginModule.preprocessors.async2 &&
190
- !pluginModule.preprocessors.async3 &&
191
- !pluginModule.preprocessors.arazzo1 &&
192
- !pluginModule.preprocessors.overlay1) {
193
- throw new Error(`Plugin \`preprocessors\` must have \`oas3\`, \`oas2\`, \`async2\`, \`async3\`, \`arazzo1\`, or \`overlay1\` preprocessors "${p}.`);
194
- }
195
- plugin.preprocessors = {};
196
- if (pluginModule.preprocessors.oas3) {
197
- plugin.preprocessors.oas3 = prefixRules(pluginModule.preprocessors.oas3, id);
198
- }
199
- if (pluginModule.preprocessors.oas2) {
200
- plugin.preprocessors.oas2 = prefixRules(pluginModule.preprocessors.oas2, id);
201
- }
202
- if (pluginModule.preprocessors.async2) {
203
- plugin.preprocessors.async2 = prefixRules(pluginModule.preprocessors.async2, id);
204
- }
205
- if (pluginModule.preprocessors.async3) {
206
- plugin.preprocessors.async3 = prefixRules(pluginModule.preprocessors.async3, id);
207
- }
208
- if (pluginModule.preprocessors.arazzo1) {
209
- plugin.preprocessors.arazzo1 = prefixRules(pluginModule.preprocessors.arazzo1, id);
210
- }
211
- if (pluginModule.preprocessors.overlay1) {
212
- plugin.preprocessors.overlay1 = prefixRules(pluginModule.preprocessors.overlay1, id);
213
- }
214
- }
215
- if (pluginModule.decorators) {
216
- if (!pluginModule.decorators.oas3 &&
217
- !pluginModule.decorators.oas2 &&
218
- !pluginModule.decorators.async2 &&
219
- !pluginModule.decorators.async3 &&
220
- !pluginModule.decorators.arazzo1 &&
221
- !pluginModule.decorators.overlay1) {
222
- throw new Error(`Plugin \`decorators\` must have \`oas3\`, \`oas2\`, \`async2\`, \`async3\`, \`arazzo1\`, or \`overlay1\` decorators "${p}.`);
223
- }
224
- plugin.decorators = {};
225
- if (pluginModule.decorators.oas3) {
226
- plugin.decorators.oas3 = prefixRules(pluginModule.decorators.oas3, id);
159
+ const pluginInstances = Array.isArray(pluginInstanceOrInstances)
160
+ ? pluginInstanceOrInstances
161
+ : [pluginInstanceOrInstances];
162
+ return (await Promise.all(pluginInstances.map(async (pluginInstance) => {
163
+ if (!pluginInstance)
164
+ return;
165
+ const id = pluginInstance.id;
166
+ if (typeof id !== 'string') {
167
+ throw new Error(colorize.red(`Plugin must define \`id\` property in ${colorize.blue(p.toString())}.`));
227
168
  }
228
- if (pluginModule.decorators.oas2) {
229
- plugin.decorators.oas2 = prefixRules(pluginModule.decorators.oas2, id);
169
+ const pluginPath = pluginInstance.absolutePath ?? p.toString();
170
+ const existingPluginPath = seenPluginIds.get(id);
171
+ if (existingPluginPath) {
172
+ if (pluginPath !== existingPluginPath) {
173
+ throw new Error(colorize.red(`Plugin "id" must be unique. Plugin ${colorize.blue(pluginPath)} uses id "${colorize.blue(id)}" already seen in ${colorize.blue(pluginPath)}`));
174
+ }
175
+ return undefined;
230
176
  }
231
- if (pluginModule.decorators.async2) {
232
- plugin.decorators.async2 = prefixRules(pluginModule.decorators.async2, id);
177
+ seenPluginIds.set(id, pluginPath);
178
+ const plugin = {
179
+ id,
180
+ ...(pluginInstance.configs ? { configs: pluginInstance.configs } : {}),
181
+ ...(pluginInstance.typeExtension
182
+ ? { typeExtension: pluginInstance.typeExtension }
183
+ : {}),
184
+ };
185
+ if (pluginInstance.rules) {
186
+ if (!pluginInstance.rules.oas3 &&
187
+ !pluginInstance.rules.oas2 &&
188
+ !pluginInstance.rules.async2 &&
189
+ !pluginInstance.rules.async3 &&
190
+ !pluginInstance.rules.arazzo1 &&
191
+ !pluginInstance.rules.overlay1) {
192
+ throw new Error(`Plugin rules must have \`oas3\`, \`oas2\`, \`async2\`, \`async3\`, \`arazzo\`, or \`overlay1\` rules "${p}.`);
193
+ }
194
+ plugin.rules = {};
195
+ if (pluginInstance.rules.oas3) {
196
+ plugin.rules.oas3 = prefixRules(pluginInstance.rules.oas3, id);
197
+ }
198
+ if (pluginInstance.rules.oas2) {
199
+ plugin.rules.oas2 = prefixRules(pluginInstance.rules.oas2, id);
200
+ }
201
+ if (pluginInstance.rules.async2) {
202
+ plugin.rules.async2 = prefixRules(pluginInstance.rules.async2, id);
203
+ }
204
+ if (pluginInstance.rules.async3) {
205
+ plugin.rules.async3 = prefixRules(pluginInstance.rules.async3, id);
206
+ }
207
+ if (pluginInstance.rules.arazzo1) {
208
+ plugin.rules.arazzo1 = prefixRules(pluginInstance.rules.arazzo1, id);
209
+ }
210
+ if (pluginInstance.rules.overlay1) {
211
+ plugin.rules.overlay1 = prefixRules(pluginInstance.rules.overlay1, id);
212
+ }
233
213
  }
234
- if (pluginModule.decorators.async3) {
235
- plugin.decorators.async3 = prefixRules(pluginModule.decorators.async3, id);
214
+ if (pluginInstance.preprocessors) {
215
+ if (!pluginInstance.preprocessors.oas3 &&
216
+ !pluginInstance.preprocessors.oas2 &&
217
+ !pluginInstance.preprocessors.async2 &&
218
+ !pluginInstance.preprocessors.async3 &&
219
+ !pluginInstance.preprocessors.arazzo1 &&
220
+ !pluginInstance.preprocessors.overlay1) {
221
+ throw new Error(`Plugin \`preprocessors\` must have \`oas3\`, \`oas2\`, \`async2\`, \`async3\`, \`arazzo1\`, or \`overlay1\` preprocessors "${p}.`);
222
+ }
223
+ plugin.preprocessors = {};
224
+ if (pluginInstance.preprocessors.oas3) {
225
+ plugin.preprocessors.oas3 = prefixRules(pluginInstance.preprocessors.oas3, id);
226
+ }
227
+ if (pluginInstance.preprocessors.oas2) {
228
+ plugin.preprocessors.oas2 = prefixRules(pluginInstance.preprocessors.oas2, id);
229
+ }
230
+ if (pluginInstance.preprocessors.async2) {
231
+ plugin.preprocessors.async2 = prefixRules(pluginInstance.preprocessors.async2, id);
232
+ }
233
+ if (pluginInstance.preprocessors.async3) {
234
+ plugin.preprocessors.async3 = prefixRules(pluginInstance.preprocessors.async3, id);
235
+ }
236
+ if (pluginInstance.preprocessors.arazzo1) {
237
+ plugin.preprocessors.arazzo1 = prefixRules(pluginInstance.preprocessors.arazzo1, id);
238
+ }
239
+ if (pluginInstance.preprocessors.overlay1) {
240
+ plugin.preprocessors.overlay1 = prefixRules(pluginInstance.preprocessors.overlay1, id);
241
+ }
236
242
  }
237
- if (pluginModule.decorators.arazzo1) {
238
- plugin.decorators.arazzo1 = prefixRules(pluginModule.decorators.arazzo1, id);
243
+ if (pluginInstance.decorators) {
244
+ if (!pluginInstance.decorators.oas3 &&
245
+ !pluginInstance.decorators.oas2 &&
246
+ !pluginInstance.decorators.async2 &&
247
+ !pluginInstance.decorators.async3 &&
248
+ !pluginInstance.decorators.arazzo1 &&
249
+ !pluginInstance.decorators.overlay1) {
250
+ throw new Error(`Plugin \`decorators\` must have \`oas3\`, \`oas2\`, \`async2\`, \`async3\`, \`arazzo1\`, or \`overlay1\` decorators "${p}.`);
251
+ }
252
+ plugin.decorators = {};
253
+ if (pluginInstance.decorators.oas3) {
254
+ plugin.decorators.oas3 = prefixRules(pluginInstance.decorators.oas3, id);
255
+ }
256
+ if (pluginInstance.decorators.oas2) {
257
+ plugin.decorators.oas2 = prefixRules(pluginInstance.decorators.oas2, id);
258
+ }
259
+ if (pluginInstance.decorators.async2) {
260
+ plugin.decorators.async2 = prefixRules(pluginInstance.decorators.async2, id);
261
+ }
262
+ if (pluginInstance.decorators.async3) {
263
+ plugin.decorators.async3 = prefixRules(pluginInstance.decorators.async3, id);
264
+ }
265
+ if (pluginInstance.decorators.arazzo1) {
266
+ plugin.decorators.arazzo1 = prefixRules(pluginInstance.decorators.arazzo1, id);
267
+ }
268
+ if (pluginInstance.decorators.overlay1) {
269
+ plugin.decorators.overlay1 = prefixRules(pluginInstance.decorators.overlay1, id);
270
+ }
239
271
  }
240
- if (pluginModule.decorators.overlay1) {
241
- plugin.decorators.overlay1 = prefixRules(pluginModule.decorators.overlay1, id);
272
+ if (pluginInstance.assertions) {
273
+ plugin.assertions = pluginInstance.assertions;
242
274
  }
243
- }
244
- if (pluginModule.assertions) {
245
- plugin.assertions = pluginModule.assertions;
246
- }
247
- return {
248
- ...pluginModule,
249
- ...plugin,
250
- };
275
+ return {
276
+ ...pluginInstance,
277
+ ...plugin,
278
+ };
279
+ }))).filter(isDefined);
251
280
  }));
252
- return instances.filter(isDefined);
253
- }
254
- export async function resolveApis({ rawConfig, configPath = '', resolver, }) {
255
- const { apis = {}, styleguide: styleguideConfig = {} } = rawConfig;
256
- const resolvedApis = {};
257
- for (const [apiName, apiContent] of Object.entries(apis || {})) {
258
- if (apiContent.styleguide?.extends?.some(isNotString)) {
259
- throw new Error(`Error configuration format not detected in extends value must contain strings`);
260
- }
261
- const rawStyleguideConfig = getMergedRawStyleguideConfig(styleguideConfig, apiContent.styleguide);
262
- const resolvedApiConfig = await resolveStyleguideConfig({
263
- styleguideConfig: rawStyleguideConfig,
264
- configPath,
265
- resolver,
266
- });
267
- resolvedApis[apiName] = { ...apiContent, styleguide: resolvedApiConfig };
268
- }
269
- return resolvedApis;
270
- }
271
- async function resolveAndMergeNestedStyleguideConfig({ styleguideConfig, configPath = '', resolver = new BaseResolver(), parentConfigPaths = [], extendPaths = [], }) {
272
- if (parentConfigPaths.includes(configPath)) {
273
- throw new Error(`Circular dependency in config file: "${configPath}"`);
274
- }
275
- const plugins = isBrowser
276
- ? // In browser, we don't support plugins from config file yet
277
- [defaultPlugin]
278
- : getUniquePlugins(await resolvePlugins([...(styleguideConfig?.plugins || []), defaultPlugin], path.dirname(configPath)));
279
- const pluginPaths = styleguideConfig?.plugins
280
- ?.filter(isString)
281
- .map((p) => path.resolve(path.dirname(configPath), p));
282
- const resolvedConfigPath = isAbsoluteUrl(configPath)
283
- ? configPath
284
- : configPath && path.resolve(configPath);
285
- const extendConfigs = await Promise.all(styleguideConfig?.extends?.map(async (presetItem) => {
286
- if (!isAbsoluteUrl(presetItem) && !path.extname(presetItem)) {
287
- return resolvePreset(presetItem, plugins);
288
- }
289
- const pathItem = isAbsoluteUrl(presetItem)
290
- ? presetItem
291
- : isAbsoluteUrl(configPath)
292
- ? new URL(presetItem, configPath).href
293
- : path.resolve(path.dirname(configPath), presetItem);
294
- const extendedStyleguideConfig = await loadExtendStyleguideConfig(pathItem, resolver);
295
- return await resolveAndMergeNestedStyleguideConfig({
296
- styleguideConfig: extendedStyleguideConfig,
297
- configPath: pathItem,
298
- resolver,
299
- parentConfigPaths: [...parentConfigPaths, resolvedConfigPath],
300
- extendPaths,
301
- });
302
- }) || []);
303
- const { plugins: mergedPlugins = [], ...styleguide } = mergeExtends([
304
- ...extendConfigs,
305
- {
306
- ...styleguideConfig,
307
- plugins,
308
- extends: undefined,
309
- extendPaths: [...parentConfigPaths, resolvedConfigPath],
310
- pluginPaths,
311
- },
312
- ]);
313
- return {
314
- ...styleguide,
315
- extendPaths: styleguide.extendPaths?.filter((path) => path && !isAbsoluteUrl(path)),
316
- plugins: getUniquePlugins(mergedPlugins),
317
- recommendedFallback: styleguideConfig?.recommendedFallback,
318
- doNotResolveExamples: styleguideConfig?.doNotResolveExamples,
319
- };
320
- }
321
- export async function resolveStyleguideConfig(opts) {
322
- const resolvedStyleguideConfig = await resolveAndMergeNestedStyleguideConfig(opts);
323
- return {
324
- ...resolvedStyleguideConfig,
325
- rules: resolvedStyleguideConfig.rules && groupStyleguideAssertionRules(resolvedStyleguideConfig),
326
- };
281
+ return instances.filter(isDefined).flat();
327
282
  }
328
283
  export function resolvePreset(presetName, plugins) {
329
284
  const { pluginId, configName } = parsePresetName(presetName);
@@ -339,86 +294,15 @@ export function resolvePreset(presetName, plugins) {
339
294
  }
340
295
  return preset;
341
296
  }
342
- async function loadExtendStyleguideConfig(filePath, resolver) {
343
- try {
344
- const { parsed } = (await resolver.resolveDocument(null, filePath));
345
- const rawConfig = transformConfig(parsed);
346
- if (!rawConfig.styleguide) {
347
- throw new Error(`Styleguide configuration format not detected: "${filePath}"`);
348
- }
349
- return rawConfig.styleguide;
350
- }
351
- catch (error) {
352
- throw new Error(`Failed to load "${filePath}": ${error.message}`);
353
- }
354
- }
355
- function getMergedRawStyleguideConfig(rootStyleguideConfig, apiStyleguideConfig) {
356
- const resultLint = {
357
- ...rootStyleguideConfig,
358
- ...pickDefined(apiStyleguideConfig),
359
- rules: { ...rootStyleguideConfig?.rules, ...apiStyleguideConfig?.rules },
360
- oas2Rules: { ...rootStyleguideConfig?.oas2Rules, ...apiStyleguideConfig?.oas2Rules },
361
- oas3_0Rules: { ...rootStyleguideConfig?.oas3_0Rules, ...apiStyleguideConfig?.oas3_0Rules },
362
- oas3_1Rules: { ...rootStyleguideConfig?.oas3_1Rules, ...apiStyleguideConfig?.oas3_1Rules },
363
- async2Rules: { ...rootStyleguideConfig?.async2Rules, ...apiStyleguideConfig?.async2Rules },
364
- async3Rules: { ...rootStyleguideConfig?.async3Rules, ...apiStyleguideConfig?.async3Rules },
365
- arazzo1Rules: { ...rootStyleguideConfig?.arazzo1Rules, ...apiStyleguideConfig?.arazzo1Rules },
366
- overlay1Rules: {
367
- ...rootStyleguideConfig?.overlay1Rules,
368
- ...apiStyleguideConfig?.overlay1Rules,
369
- },
370
- preprocessors: {
371
- ...rootStyleguideConfig?.preprocessors,
372
- ...apiStyleguideConfig?.preprocessors,
373
- },
374
- oas2Preprocessors: {
375
- ...rootStyleguideConfig?.oas2Preprocessors,
376
- ...apiStyleguideConfig?.oas2Preprocessors,
377
- },
378
- oas3_0Preprocessors: {
379
- ...rootStyleguideConfig?.oas3_0Preprocessors,
380
- ...apiStyleguideConfig?.oas3_0Preprocessors,
381
- },
382
- oas3_1Preprocessors: {
383
- ...rootStyleguideConfig?.oas3_1Preprocessors,
384
- ...apiStyleguideConfig?.oas3_1Preprocessors,
385
- },
386
- overlay1Preprocessors: {
387
- ...rootStyleguideConfig?.overlay1Preprocessors,
388
- ...apiStyleguideConfig?.overlay1Preprocessors,
389
- },
390
- decorators: { ...rootStyleguideConfig?.decorators, ...apiStyleguideConfig?.decorators },
391
- oas2Decorators: {
392
- ...rootStyleguideConfig?.oas2Decorators,
393
- ...apiStyleguideConfig?.oas2Decorators,
394
- },
395
- oas3_0Decorators: {
396
- ...rootStyleguideConfig?.oas3_0Decorators,
397
- ...apiStyleguideConfig?.oas3_0Decorators,
398
- },
399
- oas3_1Decorators: {
400
- ...rootStyleguideConfig?.oas3_1Decorators,
401
- ...apiStyleguideConfig?.oas3_1Decorators,
402
- },
403
- overlay1Decorators: {
404
- ...rootStyleguideConfig?.overlay1Decorators,
405
- ...apiStyleguideConfig?.overlay1Decorators,
406
- },
407
- recommendedFallback: apiStyleguideConfig?.extends
408
- ? false
409
- : rootStyleguideConfig.recommendedFallback,
410
- };
411
- return resultLint;
412
- }
413
- function groupStyleguideAssertionRules({ rules, plugins, }) {
414
- if (!rules) {
415
- return rules;
297
+ function groupAssertionRules(config, plugins) {
298
+ if (!config.rules) {
299
+ return {};
416
300
  }
417
301
  // Create a new record to avoid mutating original
418
302
  const transformedRules = {};
419
303
  // Collect assertion rules
420
304
  const assertions = [];
421
- for (const [ruleKey, rule] of Object.entries(rules)) {
305
+ for (const [ruleKey, rule] of Object.entries(config.rules)) {
422
306
  if (ruleKey.startsWith('rule/') && typeof rule === 'object' && rule !== null) {
423
307
  const assertion = rule;
424
308
  if (plugins) {
@@ -1 +1 @@
1
- {"version":3,"file":"config-resolvers.js","sourceRoot":"","sources":["../../src/config/config-resolvers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config-resolvers.js","sourceRoot":"","sources":["../../src/config/config-resolvers.ts"],"names":[],"mappings":"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"}