@redocly/cli 2.40.0 → 2.41.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.
@@ -5907,6 +5907,7 @@ var require_fast_uri = __commonJS({
5907
5907
  return uriTokens.join("");
5908
5908
  }
5909
5909
  var URI_PARSE = /^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;
5910
+ var AUTHORITY_PREFIX = /^(?:[^#/:?]+:)?\/\/([^/?#]*)/;
5910
5911
  function getParseError(parsed, matches) {
5911
5912
  if (matches[2] !== void 0 && parsed.path && parsed.path[0] !== "/") {
5912
5913
  return 'URI path must start with "/" when authority is present.';
@@ -5936,6 +5937,11 @@ var require_fast_uri = __commonJS({
5936
5937
  uri = "//" + uri;
5937
5938
  }
5938
5939
  }
5940
+ const authorityMatch = uri.match(AUTHORITY_PREFIX);
5941
+ if (authorityMatch !== null && authorityMatch[1].indexOf("\\") !== -1) {
5942
+ parsed.error = "URI authority must not contain a literal backslash.";
5943
+ malformedAuthorityOrPort = true;
5944
+ }
5939
5945
  const matches = uri.match(URI_PARSE);
5940
5946
  if (matches) {
5941
5947
  parsed.scheme = matches[1];
@@ -5979,7 +5985,7 @@ var require_fast_uri = __commonJS({
5979
5985
  if (!options2.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport)) {
5980
5986
  if (parsed.host && (options2.domainHost || schemeHandler && schemeHandler.domainHost) && isIP === false && nonSimpleDomain(parsed.host)) {
5981
5987
  try {
5982
- parsed.host = URL.domainToASCII(parsed.host.toLowerCase());
5988
+ parsed.host = new URL("http://" + parsed.host).hostname;
5983
5989
  } catch (e2) {
5984
5990
  parsed.error = parsed.error || "Host's domain name can not be converted to ASCII: " + e2;
5985
5991
  }
@@ -28139,6 +28145,7 @@ var builtInOAS2Rules = [
28139
28145
  "response-contains-header",
28140
28146
  "scalar-property-missing-example",
28141
28147
  "security-defined",
28148
+ "security-scopes-defined",
28142
28149
  "spec-strict-refs",
28143
28150
  "no-required-schema-properties-undefined",
28144
28151
  "no-schema-type-mismatch",
@@ -28183,6 +28190,7 @@ var builtInOAS3Rules = [
28183
28190
  "response-contains-header",
28184
28191
  "scalar-property-missing-example",
28185
28192
  "security-defined",
28193
+ "security-scopes-defined",
28186
28194
  "spec-strict-refs",
28187
28195
  "no-required-schema-properties-undefined",
28188
28196
  "no-schema-type-mismatch",
@@ -28223,7 +28231,8 @@ var builtInAsync2Rules = [
28223
28231
  "no-required-schema-properties-undefined",
28224
28232
  "no-enum-type-mismatch",
28225
28233
  "no-mixed-number-range-constraints",
28226
- "no-schema-type-mismatch"
28234
+ "no-schema-type-mismatch",
28235
+ "security-scopes-defined"
28227
28236
  ];
28228
28237
  var builtInAsync3Rules = [
28229
28238
  "info-contact",
@@ -28237,7 +28246,8 @@ var builtInAsync3Rules = [
28237
28246
  "no-required-schema-properties-undefined",
28238
28247
  "no-enum-type-mismatch",
28239
28248
  "no-mixed-number-range-constraints",
28240
- "no-schema-type-mismatch"
28249
+ "no-schema-type-mismatch",
28250
+ "security-scopes-defined"
28241
28251
  ];
28242
28252
  var builtInArazzo1Rules = [
28243
28253
  "sourceDescription-type",
@@ -31978,6 +31988,69 @@ var OperationOperationId = () => {
31978
31988
  };
31979
31989
  };
31980
31990
 
31991
+ // ../core/lib/rules/common/security-scopes-defined.js
31992
+ function getDefinedScopes(scheme, resolve7, schemeLocation) {
31993
+ if ("flows" in scheme && scheme.flows) {
31994
+ const { node: flows, location: flowsLocation } = isRef(scheme.flows) ? resolve7(scheme.flows, schemeLocation.source.absoluteRef) : { node: scheme.flows, location: schemeLocation };
31995
+ const flowsSource = (flowsLocation ?? schemeLocation).source.absoluteRef;
31996
+ const scopes = Object.values(flows ?? {}).flatMap((flow) => {
31997
+ const resolvedFlow = isRef(flow) ? resolve7(flow, flowsSource).node : flow;
31998
+ return Object.keys(resolvedFlow?.scopes || {});
31999
+ });
32000
+ return [...new Set(scopes)];
32001
+ }
32002
+ return Object.keys(scheme.scopes || {});
32003
+ }
32004
+ var SecurityScopesDefined = (opts) => {
32005
+ const definedSchemes = /* @__PURE__ */ new Map();
32006
+ const usedScopes = [];
32007
+ return {
32008
+ Root: {
32009
+ leave(_root, { report }) {
32010
+ for (const { schemeName, scopes, location } of usedScopes) {
32011
+ const scheme = definedSchemes.get(schemeName);
32012
+ if (scheme?.type !== "oauth2")
32013
+ continue;
32014
+ if (opts.requireScopes && scopes.length === 0) {
32015
+ report({
32016
+ message: `The "${schemeName}" security requirement must list at least one scope.`,
32017
+ location: location.key(),
32018
+ reference: "https://redocly.com/docs/cli/rules/common/security-scopes-defined"
32019
+ });
32020
+ continue;
32021
+ }
32022
+ for (let scopeIndex = 0; scopeIndex < scopes.length; scopeIndex++) {
32023
+ const scope = scopes[scopeIndex];
32024
+ if (!scheme.definedScopes.includes(scope)) {
32025
+ report({
32026
+ message: `The "${scope}" scope is not defined in the "${schemeName}" security scheme.`,
32027
+ location: location.child([scopeIndex]),
32028
+ suggest: getSuggest(scope, scheme.definedScopes),
32029
+ reference: "https://redocly.com/docs/cli/rules/common/security-scopes-defined"
32030
+ });
32031
+ }
32032
+ }
32033
+ }
32034
+ }
32035
+ },
32036
+ SecurityScheme(scheme, { key, resolve: resolve7, location }) {
32037
+ definedSchemes.set(key.toString(), {
32038
+ type: scheme.type,
32039
+ definedScopes: scheme.type === "oauth2" ? getDefinedScopes(scheme, resolve7, location) : []
32040
+ });
32041
+ },
32042
+ SecurityRequirement(requirement, { location }) {
32043
+ for (const [schemeName, scopes] of Object.entries(requirement)) {
32044
+ usedScopes.push({
32045
+ schemeName,
32046
+ scopes: scopes || [],
32047
+ location: location.child([schemeName])
32048
+ });
32049
+ }
32050
+ }
32051
+ };
32052
+ };
32053
+
31981
32054
  // ../core/lib/rules/common/tag-description.js
31982
32055
  var TagDescription = () => {
31983
32056
  return {
@@ -32058,7 +32131,8 @@ var rules2 = {
32058
32131
  "no-required-schema-properties-undefined": NoRequiredSchemaPropertiesUndefined,
32059
32132
  "no-enum-type-mismatch": NoEnumTypeMismatch,
32060
32133
  "no-mixed-number-range-constraints": NoMixedNumberRangeConstraints,
32061
- "no-schema-type-mismatch": NoSchemaTypeMismatch
32134
+ "no-schema-type-mismatch": NoSchemaTypeMismatch,
32135
+ "security-scopes-defined": SecurityScopesDefined
32062
32136
  };
32063
32137
  var preprocessors2 = {};
32064
32138
 
@@ -32093,6 +32167,65 @@ var NoChannelTrailingSlash2 = () => {
32093
32167
  };
32094
32168
  };
32095
32169
 
32170
+ // ../core/lib/rules/async3/security-scopes-defined.js
32171
+ function getAvailableScopes(scheme, resolve7, schemeLocation) {
32172
+ if (!scheme.flows)
32173
+ return [];
32174
+ const { node: flows, location: flowsLocation } = isRef(scheme.flows) ? resolve7(scheme.flows, schemeLocation.source.absoluteRef) : { node: scheme.flows, location: schemeLocation };
32175
+ const flowsSource = (flowsLocation ?? schemeLocation).source.absoluteRef;
32176
+ const scopeNames = Object.values(flows ?? {}).flatMap((flow) => {
32177
+ const resolvedFlow = isRef(flow) ? resolve7(flow, flowsSource).node : flow;
32178
+ return Object.keys(resolvedFlow?.availableScopes || {});
32179
+ });
32180
+ return [...new Set(scopeNames)];
32181
+ }
32182
+ var SecurityScopesDefined2 = (opts) => {
32183
+ const usedSchemes = /* @__PURE__ */ new Map();
32184
+ return {
32185
+ SecuritySchemeList(schemeList, { resolve: resolve7, location }) {
32186
+ for (let itemIndex = 0; itemIndex < schemeList.length; itemIndex++) {
32187
+ const item = schemeList[itemIndex];
32188
+ const resolved = isRef(item) ? resolve7(item) : { node: item, location: location.child([itemIndex]) };
32189
+ if (!resolved.node || !resolved.location)
32190
+ continue;
32191
+ usedSchemes.set(resolved.location.absolutePointer, {
32192
+ scheme: resolved.node,
32193
+ location: resolved.location,
32194
+ availableScopes: resolved.node.type === "oauth2" ? getAvailableScopes(resolved.node, resolve7, resolved.location) : []
32195
+ });
32196
+ }
32197
+ },
32198
+ Root: {
32199
+ leave(_root, { report }) {
32200
+ for (const { scheme, location, availableScopes } of usedSchemes.values()) {
32201
+ if (scheme.type !== "oauth2")
32202
+ continue;
32203
+ if (opts.requireScopes && !scheme.scopes?.length) {
32204
+ report({
32205
+ message: `The security scheme must list at least one scope.`,
32206
+ location: location.key(),
32207
+ reference: "https://redocly.com/docs/cli/rules/common/security-scopes-defined"
32208
+ });
32209
+ continue;
32210
+ }
32211
+ const usedScopes = scheme.scopes || [];
32212
+ for (let scopeIndex = 0; scopeIndex < usedScopes.length; scopeIndex++) {
32213
+ const scope = usedScopes[scopeIndex];
32214
+ if (!availableScopes.includes(scope)) {
32215
+ report({
32216
+ message: `The "${scope}" scope is not defined in the available scopes of the security scheme flows.`,
32217
+ location: location.child(["scopes", scopeIndex]),
32218
+ suggest: getSuggest(scope, availableScopes),
32219
+ reference: "https://redocly.com/docs/cli/rules/common/security-scopes-defined"
32220
+ });
32221
+ }
32222
+ }
32223
+ }
32224
+ }
32225
+ }
32226
+ };
32227
+ };
32228
+
32096
32229
  // ../core/lib/rules/async3/index.js
32097
32230
  var rules3 = {
32098
32231
  struct: Struct,
@@ -32109,7 +32242,8 @@ var rules3 = {
32109
32242
  "no-required-schema-properties-undefined": NoRequiredSchemaPropertiesUndefined,
32110
32243
  "no-enum-type-mismatch": NoEnumTypeMismatch,
32111
32244
  "no-mixed-number-range-constraints": NoMixedNumberRangeConstraints,
32112
- "no-schema-type-mismatch": NoSchemaTypeMismatch
32245
+ "no-schema-type-mismatch": NoSchemaTypeMismatch,
32246
+ "security-scopes-defined": SecurityScopesDefined2
32113
32247
  };
32114
32248
  var preprocessors3 = {};
32115
32249
 
@@ -33581,6 +33715,7 @@ var rules5 = {
33581
33715
  "parameter-description": ParameterDescription,
33582
33716
  "operation-singular-tag": OperationSingularTag,
33583
33717
  "security-defined": SecurityDefined,
33718
+ "security-scopes-defined": SecurityScopesDefined,
33584
33719
  "no-unresolved-refs": NoUnresolvedRefs,
33585
33720
  "no-identical-paths": NoIdenticalPaths,
33586
33721
  "no-ambiguous-paths": NoAmbiguousPaths,
@@ -34610,6 +34745,7 @@ var rules6 = {
34610
34745
  "parameter-description": ParameterDescription,
34611
34746
  "operation-singular-tag": OperationSingularTag,
34612
34747
  "security-defined": SecurityDefined,
34748
+ "security-scopes-defined": SecurityScopesDefined,
34613
34749
  "no-unresolved-refs": NoUnresolvedRefs,
34614
34750
  "paths-kebab-case": PathsKebabCase,
34615
34751
  "boolean-parameter-prefixes": BooleanParameterPrefixes2,
@@ -34861,6 +34997,7 @@ var all = {
34861
34997
  },
34862
34998
  "response-contains-property": "error",
34863
34999
  "security-defined": "error",
35000
+ "security-scopes-defined": "error",
34864
35001
  "spec-strict-refs": "error",
34865
35002
  "scalar-property-missing-example": "error",
34866
35003
  "tag-description": "error",
@@ -34923,6 +35060,7 @@ var all = {
34923
35060
  },
34924
35061
  "response-contains-property": "error",
34925
35062
  "security-defined": "error",
35063
+ "security-scopes-defined": "error",
34926
35064
  "spec-strict-refs": "error",
34927
35065
  "scalar-property-missing-example": "error",
34928
35066
  "spec-components-invalid-map-name": "error",
@@ -34987,6 +35125,7 @@ var all = {
34987
35125
  },
34988
35126
  "response-contains-property": "error",
34989
35127
  "security-defined": "error",
35128
+ "security-scopes-defined": "error",
34990
35129
  "spec-strict-refs": "error",
34991
35130
  "scalar-property-missing-example": "error",
34992
35131
  "spec-components-invalid-map-name": "error",
@@ -35050,6 +35189,7 @@ var all = {
35050
35189
  },
35051
35190
  "response-contains-property": "error",
35052
35191
  "security-defined": "error",
35192
+ "security-scopes-defined": "error",
35053
35193
  "spec-strict-refs": "error",
35054
35194
  "scalar-property-missing-example": "error",
35055
35195
  "spec-components-invalid-map-name": "error",
@@ -35068,6 +35208,7 @@ var all = {
35068
35208
  "info-license-strict": "error",
35069
35209
  "no-channel-trailing-slash": "error",
35070
35210
  "operation-operationId": "error",
35211
+ "security-scopes-defined": "error",
35071
35212
  "tag-description": "error",
35072
35213
  "tags-alphabetical": "error",
35073
35214
  "no-duplicated-tag-names": "error",
@@ -35082,6 +35223,7 @@ var all = {
35082
35223
  "info-license-strict": "error",
35083
35224
  "no-channel-trailing-slash": "error",
35084
35225
  "operation-operationId": "error",
35226
+ "security-scopes-defined": "error",
35085
35227
  "tag-description": "error",
35086
35228
  "tags-alphabetical": "error",
35087
35229
  "no-duplicated-tag-names": "error",
@@ -35201,6 +35343,7 @@ var minimal = {
35201
35343
  "response-mime-type": "off",
35202
35344
  "scalar-property-missing-example": "off",
35203
35345
  "security-defined": "warn",
35346
+ "security-scopes-defined": "off",
35204
35347
  "spec-strict-refs": "off",
35205
35348
  "tag-description": "warn",
35206
35349
  "tags-alphabetical": "off"
@@ -35260,6 +35403,7 @@ var minimal = {
35260
35403
  "response-mime-type": "off",
35261
35404
  "scalar-property-missing-example": "off",
35262
35405
  "security-defined": "warn",
35406
+ "security-scopes-defined": "off",
35263
35407
  "spec-components-invalid-map-name": "warn",
35264
35408
  "spec-example-values": "off",
35265
35409
  "spec-strict-refs": "off",
@@ -35318,6 +35462,7 @@ var minimal = {
35318
35462
  "response-mime-type": "off",
35319
35463
  "scalar-property-missing-example": "off",
35320
35464
  "security-defined": "warn",
35465
+ "security-scopes-defined": "off",
35321
35466
  "spec-components-invalid-map-name": "warn",
35322
35467
  "spec-example-values": "off",
35323
35468
  "spec-strict-refs": "off",
@@ -35375,6 +35520,7 @@ var minimal = {
35375
35520
  "response-mime-type": "off",
35376
35521
  "scalar-property-missing-example": "off",
35377
35522
  "security-defined": "warn",
35523
+ "security-scopes-defined": "off",
35378
35524
  "spec-components-invalid-map-name": "warn",
35379
35525
  "spec-discriminator-defaultMapping": "off",
35380
35526
  "spec-example-values": "off",
@@ -35396,6 +35542,7 @@ var minimal = {
35396
35542
  "no-required-schema-properties-undefined": "warn",
35397
35543
  "no-schema-type-mismatch": "warn",
35398
35544
  "operation-operationId": "warn",
35545
+ "security-scopes-defined": "off",
35399
35546
  "tag-description": "warn",
35400
35547
  "tags-alphabetical": "off"
35401
35548
  },
@@ -35410,6 +35557,7 @@ var minimal = {
35410
35557
  "no-required-schema-properties-undefined": "warn",
35411
35558
  "no-schema-type-mismatch": "warn",
35412
35559
  "operation-operationId": "warn",
35560
+ "security-scopes-defined": "off",
35413
35561
  "tag-description": "warn",
35414
35562
  "tags-alphabetical": "off"
35415
35563
  },
@@ -35524,6 +35672,7 @@ var recommendedStrict = {
35524
35672
  "response-mime-type": "off",
35525
35673
  "scalar-property-missing-example": "off",
35526
35674
  "security-defined": "error",
35675
+ "security-scopes-defined": "error",
35527
35676
  "spec-strict-refs": "off",
35528
35677
  "tag-description": "error",
35529
35678
  "tags-alphabetical": "off"
@@ -35583,6 +35732,7 @@ var recommendedStrict = {
35583
35732
  "response-mime-type": "off",
35584
35733
  "scalar-property-missing-example": "off",
35585
35734
  "security-defined": "error",
35735
+ "security-scopes-defined": "error",
35586
35736
  "spec-components-invalid-map-name": "error",
35587
35737
  "spec-example-values": "off",
35588
35738
  "spec-strict-refs": "off",
@@ -35641,6 +35791,7 @@ var recommendedStrict = {
35641
35791
  "response-mime-type": "off",
35642
35792
  "scalar-property-missing-example": "off",
35643
35793
  "security-defined": "error",
35794
+ "security-scopes-defined": "error",
35644
35795
  "spec-components-invalid-map-name": "error",
35645
35796
  "spec-example-values": "off",
35646
35797
  "spec-strict-refs": "off",
@@ -35698,6 +35849,7 @@ var recommendedStrict = {
35698
35849
  "response-mime-type": "off",
35699
35850
  "scalar-property-missing-example": "off",
35700
35851
  "security-defined": "error",
35852
+ "security-scopes-defined": "error",
35701
35853
  "spec-components-invalid-map-name": "error",
35702
35854
  "spec-discriminator-defaultMapping": "error",
35703
35855
  "spec-example-values": "error",
@@ -35719,6 +35871,7 @@ var recommendedStrict = {
35719
35871
  "no-required-schema-properties-undefined": "error",
35720
35872
  "no-schema-type-mismatch": "error",
35721
35873
  "operation-operationId": "error",
35874
+ "security-scopes-defined": "error",
35722
35875
  "tag-description": "error",
35723
35876
  "tags-alphabetical": "off"
35724
35877
  },
@@ -35733,6 +35886,7 @@ var recommendedStrict = {
35733
35886
  "no-required-schema-properties-undefined": "error",
35734
35887
  "no-schema-type-mismatch": "error",
35735
35888
  "operation-operationId": "error",
35889
+ "security-scopes-defined": "error",
35736
35890
  "tag-description": "error",
35737
35891
  "tags-alphabetical": "off"
35738
35892
  },
@@ -35847,6 +36001,7 @@ var recommended = {
35847
36001
  "response-mime-type": "off",
35848
36002
  "scalar-property-missing-example": "off",
35849
36003
  "security-defined": "error",
36004
+ "security-scopes-defined": "warn",
35850
36005
  "spec-strict-refs": "off",
35851
36006
  "tag-description": "warn",
35852
36007
  "tags-alphabetical": "off"
@@ -35906,6 +36061,7 @@ var recommended = {
35906
36061
  "response-mime-type": "off",
35907
36062
  "scalar-property-missing-example": "off",
35908
36063
  "security-defined": "error",
36064
+ "security-scopes-defined": "warn",
35909
36065
  "spec-components-invalid-map-name": "error",
35910
36066
  "spec-example-values": "off",
35911
36067
  "spec-strict-refs": "off",
@@ -35964,6 +36120,7 @@ var recommended = {
35964
36120
  "response-mime-type": "off",
35965
36121
  "scalar-property-missing-example": "off",
35966
36122
  "security-defined": "error",
36123
+ "security-scopes-defined": "warn",
35967
36124
  "spec-components-invalid-map-name": "error",
35968
36125
  "spec-example-values": "off",
35969
36126
  "spec-strict-refs": "off",
@@ -36021,6 +36178,7 @@ var recommended = {
36021
36178
  "response-mime-type": "off",
36022
36179
  "scalar-property-missing-example": "off",
36023
36180
  "security-defined": "error",
36181
+ "security-scopes-defined": "warn",
36024
36182
  "spec-components-invalid-map-name": "error",
36025
36183
  "spec-discriminator-defaultMapping": "warn",
36026
36184
  "spec-example-values": "error",
@@ -36042,6 +36200,7 @@ var recommended = {
36042
36200
  "no-required-schema-properties-undefined": "warn",
36043
36201
  "no-schema-type-mismatch": "error",
36044
36202
  "operation-operationId": "warn",
36203
+ "security-scopes-defined": "warn",
36045
36204
  "tag-description": "warn",
36046
36205
  "tags-alphabetical": "off"
36047
36206
  },
@@ -36056,6 +36215,7 @@ var recommended = {
36056
36215
  "no-required-schema-properties-undefined": "warn",
36057
36216
  "no-schema-type-mismatch": "error",
36058
36217
  "operation-operationId": "warn",
36218
+ "security-scopes-defined": "warn",
36059
36219
  "tag-description": "warn",
36060
36220
  "tags-alphabetical": "off"
36061
36221
  },
@@ -36170,6 +36330,7 @@ var spec = {
36170
36330
  "response-mime-type": "off",
36171
36331
  "scalar-property-missing-example": "off",
36172
36332
  "security-defined": "off",
36333
+ "security-scopes-defined": "off",
36173
36334
  "spec-strict-refs": "error",
36174
36335
  "tag-description": "off",
36175
36336
  "tags-alphabetical": "off"
@@ -36229,6 +36390,7 @@ var spec = {
36229
36390
  "response-mime-type": "off",
36230
36391
  "scalar-property-missing-example": "off",
36231
36392
  "security-defined": "off",
36393
+ "security-scopes-defined": "off",
36232
36394
  "spec-components-invalid-map-name": "error",
36233
36395
  "spec-example-values": "off",
36234
36396
  "spec-strict-refs": "error",
@@ -36287,6 +36449,7 @@ var spec = {
36287
36449
  "response-mime-type": "off",
36288
36450
  "scalar-property-missing-example": "off",
36289
36451
  "security-defined": "off",
36452
+ "security-scopes-defined": "off",
36290
36453
  "spec-components-invalid-map-name": "error",
36291
36454
  "spec-example-values": "off",
36292
36455
  "spec-strict-refs": "error",
@@ -36344,6 +36507,7 @@ var spec = {
36344
36507
  "response-mime-type": "off",
36345
36508
  "scalar-property-missing-example": "off",
36346
36509
  "security-defined": "off",
36510
+ "security-scopes-defined": "off",
36347
36511
  "spec-components-invalid-map-name": "error",
36348
36512
  "spec-discriminator-defaultMapping": "error",
36349
36513
  "spec-example-values": "error",
@@ -36365,6 +36529,7 @@ var spec = {
36365
36529
  "no-required-schema-properties-undefined": "off",
36366
36530
  "no-schema-type-mismatch": "off",
36367
36531
  "operation-operationId": "off",
36532
+ "security-scopes-defined": "off",
36368
36533
  "tag-description": "off",
36369
36534
  "tags-alphabetical": "off"
36370
36535
  },
@@ -36379,6 +36544,7 @@ var spec = {
36379
36544
  "no-required-schema-properties-undefined": "off",
36380
36545
  "no-schema-type-mismatch": "off",
36381
36546
  "operation-operationId": "off",
36547
+ "security-scopes-defined": "off",
36382
36548
  "tag-description": "off",
36383
36549
  "tags-alphabetical": "off"
36384
36550
  },
@@ -37988,7 +38154,7 @@ async function bundle(opts) {
37988
38154
  if (document instanceof Error) {
37989
38155
  throw document;
37990
38156
  }
37991
- opts.collectSpecData?.(document.parsed);
38157
+ opts.collectSpecData?.(document);
37992
38158
  return bundleDocument({
37993
38159
  document,
37994
38160
  ...opts,
@@ -38978,7 +39144,7 @@ var redoclyConfigSchemaWithoutTheme2 = {
38978
39144
  async function lint(opts) {
38979
39145
  const { ref, externalRefResolver = new BaseResolver(opts.config.resolve) } = opts;
38980
39146
  const document = await externalRefResolver.resolveDocument(null, ref, true);
38981
- opts.collectSpecData?.(document.parsed);
39147
+ opts.collectSpecData?.(document);
38982
39148
  return lintDocument({
38983
39149
  document,
38984
39150
  ...opts,
@@ -39131,6 +39297,7 @@ export {
39131
39297
  detectSpec,
39132
39298
  require_dist,
39133
39299
  isSupportedExtension,
39300
+ isGraphqlRef,
39134
39301
  ResolveError,
39135
39302
  BaseResolver,
39136
39303
  resolveDocument,