@speclynx/apidom-overlay 4.12.1 → 4.14.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.
- package/CHANGELOG.md +8 -0
- package/dist/apidom-overlay.browser.js +2360 -302
- package/dist/apidom-overlay.browser.min.js +1 -1
- package/package.json +8 -8
|
@@ -64982,6 +64982,199 @@ const refractSecurityRequirement = (value, options = {}) => refract(value, {
|
|
|
64982
64982
|
});
|
|
64983
64983
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (refract);
|
|
64984
64984
|
|
|
64985
|
+
/***/ },
|
|
64986
|
+
|
|
64987
|
+
/***/ 60574
|
|
64988
|
+
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
64989
|
+
|
|
64990
|
+
"use strict";
|
|
64991
|
+
__webpack_require__.r(__webpack_exports__);
|
|
64992
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
64993
|
+
/* harmony export */ ContactElement: () => (/* reexport safe */ _elements_Contact_mjs__WEBPACK_IMPORTED_MODULE_5__["default"]),
|
|
64994
|
+
/* harmony export */ DefinitionsElement: () => (/* reexport safe */ _elements_Definitions_mjs__WEBPACK_IMPORTED_MODULE_22__["default"]),
|
|
64995
|
+
/* harmony export */ ExampleElement: () => (/* reexport safe */ _elements_Example_mjs__WEBPACK_IMPORTED_MODULE_16__["default"]),
|
|
64996
|
+
/* harmony export */ ExternalDocumentationElement: () => (/* reexport safe */ _elements_ExternalDocumentation_mjs__WEBPACK_IMPORTED_MODULE_10__["default"]),
|
|
64997
|
+
/* harmony export */ HeaderElement: () => (/* reexport safe */ _elements_Header_mjs__WEBPACK_IMPORTED_MODULE_17__["default"]),
|
|
64998
|
+
/* harmony export */ HeadersElement: () => (/* reexport safe */ _elements_Headers_mjs__WEBPACK_IMPORTED_MODULE_15__["default"]),
|
|
64999
|
+
/* harmony export */ InfoElement: () => (/* reexport safe */ _elements_Info_mjs__WEBPACK_IMPORTED_MODULE_4__["default"]),
|
|
65000
|
+
/* harmony export */ ItemsElement: () => (/* reexport safe */ _elements_Items_mjs__WEBPACK_IMPORTED_MODULE_12__["default"]),
|
|
65001
|
+
/* harmony export */ LicenseElement: () => (/* reexport safe */ _elements_License_mjs__WEBPACK_IMPORTED_MODULE_6__["default"]),
|
|
65002
|
+
/* harmony export */ OperationElement: () => (/* reexport safe */ _elements_Operation_mjs__WEBPACK_IMPORTED_MODULE_9__["default"]),
|
|
65003
|
+
/* harmony export */ ParameterElement: () => (/* reexport safe */ _elements_Parameter_mjs__WEBPACK_IMPORTED_MODULE_11__["default"]),
|
|
65004
|
+
/* harmony export */ ParametersDefinitionsElement: () => (/* reexport safe */ _elements_ParametersDefinitions_mjs__WEBPACK_IMPORTED_MODULE_23__["default"]),
|
|
65005
|
+
/* harmony export */ PathItemElement: () => (/* reexport safe */ _elements_PathItem_mjs__WEBPACK_IMPORTED_MODULE_8__["default"]),
|
|
65006
|
+
/* harmony export */ PathsElement: () => (/* reexport safe */ _elements_Paths_mjs__WEBPACK_IMPORTED_MODULE_7__["default"]),
|
|
65007
|
+
/* harmony export */ ReferenceElement: () => (/* reexport safe */ _elements_Reference_mjs__WEBPACK_IMPORTED_MODULE_19__["default"]),
|
|
65008
|
+
/* harmony export */ ResponseElement: () => (/* reexport safe */ _elements_Response_mjs__WEBPACK_IMPORTED_MODULE_14__["default"]),
|
|
65009
|
+
/* harmony export */ ResponsesDefinitionsElement: () => (/* reexport safe */ _elements_ResponsesDefinitions_mjs__WEBPACK_IMPORTED_MODULE_24__["default"]),
|
|
65010
|
+
/* harmony export */ ResponsesElement: () => (/* reexport safe */ _elements_Responses_mjs__WEBPACK_IMPORTED_MODULE_13__["default"]),
|
|
65011
|
+
/* harmony export */ SchemaElement: () => (/* reexport safe */ _elements_Schema_mjs__WEBPACK_IMPORTED_MODULE_20__["default"]),
|
|
65012
|
+
/* harmony export */ ScopesElement: () => (/* reexport safe */ _elements_Scopes_mjs__WEBPACK_IMPORTED_MODULE_27__["default"]),
|
|
65013
|
+
/* harmony export */ SecurityDefinitionsElement: () => (/* reexport safe */ _elements_SecurityDefinitions_mjs__WEBPACK_IMPORTED_MODULE_25__["default"]),
|
|
65014
|
+
/* harmony export */ SecurityRequirementElement: () => (/* reexport safe */ _elements_SecurityRequirement_mjs__WEBPACK_IMPORTED_MODULE_28__["default"]),
|
|
65015
|
+
/* harmony export */ SecuritySchemeElement: () => (/* reexport safe */ _elements_SecurityScheme_mjs__WEBPACK_IMPORTED_MODULE_26__["default"]),
|
|
65016
|
+
/* harmony export */ SwaggerElement: () => (/* reexport safe */ _elements_Swagger_mjs__WEBPACK_IMPORTED_MODULE_2__["default"]),
|
|
65017
|
+
/* harmony export */ SwaggerVersionElement: () => (/* reexport safe */ _elements_SwaggerVersion_mjs__WEBPACK_IMPORTED_MODULE_3__["default"]),
|
|
65018
|
+
/* harmony export */ TagElement: () => (/* reexport safe */ _elements_Tag_mjs__WEBPACK_IMPORTED_MODULE_18__["default"]),
|
|
65019
|
+
/* harmony export */ XmlElement: () => (/* reexport safe */ _elements_Xml_mjs__WEBPACK_IMPORTED_MODULE_21__["default"])
|
|
65020
|
+
/* harmony export */ });
|
|
65021
|
+
/* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(60572);
|
|
65022
|
+
/* harmony import */ var ramda_adjunct__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(34606);
|
|
65023
|
+
/* harmony import */ var _elements_Swagger_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(25077);
|
|
65024
|
+
/* harmony import */ var _elements_SwaggerVersion_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(85263);
|
|
65025
|
+
/* harmony import */ var _elements_Info_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(60135);
|
|
65026
|
+
/* harmony import */ var _elements_Contact_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(22389);
|
|
65027
|
+
/* harmony import */ var _elements_License_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(67684);
|
|
65028
|
+
/* harmony import */ var _elements_Paths_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(38253);
|
|
65029
|
+
/* harmony import */ var _elements_PathItem_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(83419);
|
|
65030
|
+
/* harmony import */ var _elements_Operation_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(87162);
|
|
65031
|
+
/* harmony import */ var _elements_ExternalDocumentation_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(65292);
|
|
65032
|
+
/* harmony import */ var _elements_Parameter_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(52508);
|
|
65033
|
+
/* harmony import */ var _elements_Items_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(52445);
|
|
65034
|
+
/* harmony import */ var _elements_Responses_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(31297);
|
|
65035
|
+
/* harmony import */ var _elements_Response_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(96730);
|
|
65036
|
+
/* harmony import */ var _elements_Headers_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(35811);
|
|
65037
|
+
/* harmony import */ var _elements_Example_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(523);
|
|
65038
|
+
/* harmony import */ var _elements_Header_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(53188);
|
|
65039
|
+
/* harmony import */ var _elements_Tag_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(19561);
|
|
65040
|
+
/* harmony import */ var _elements_Reference_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(94170);
|
|
65041
|
+
/* harmony import */ var _elements_Schema_mjs__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(89750);
|
|
65042
|
+
/* harmony import */ var _elements_Xml_mjs__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(73418);
|
|
65043
|
+
/* harmony import */ var _elements_Definitions_mjs__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(50703);
|
|
65044
|
+
/* harmony import */ var _elements_ParametersDefinitions_mjs__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(15783);
|
|
65045
|
+
/* harmony import */ var _elements_ResponsesDefinitions_mjs__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(23133);
|
|
65046
|
+
/* harmony import */ var _elements_SecurityDefinitions_mjs__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(35553);
|
|
65047
|
+
/* harmony import */ var _elements_SecurityScheme_mjs__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(63100);
|
|
65048
|
+
/* harmony import */ var _elements_Scopes_mjs__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(91408);
|
|
65049
|
+
/* harmony import */ var _elements_SecurityRequirement_mjs__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(66234);
|
|
65050
|
+
/* harmony import */ var _specification_mjs__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(59845);
|
|
65051
|
+
|
|
65052
|
+
|
|
65053
|
+
|
|
65054
|
+
/**
|
|
65055
|
+
* OpenAPI 2.0 specification elements.
|
|
65056
|
+
*/
|
|
65057
|
+
|
|
65058
|
+
|
|
65059
|
+
|
|
65060
|
+
|
|
65061
|
+
|
|
65062
|
+
|
|
65063
|
+
|
|
65064
|
+
|
|
65065
|
+
|
|
65066
|
+
|
|
65067
|
+
|
|
65068
|
+
|
|
65069
|
+
|
|
65070
|
+
|
|
65071
|
+
|
|
65072
|
+
|
|
65073
|
+
|
|
65074
|
+
|
|
65075
|
+
|
|
65076
|
+
|
|
65077
|
+
|
|
65078
|
+
|
|
65079
|
+
|
|
65080
|
+
|
|
65081
|
+
|
|
65082
|
+
|
|
65083
|
+
|
|
65084
|
+
|
|
65085
|
+
/**
|
|
65086
|
+
* @public
|
|
65087
|
+
*/
|
|
65088
|
+
// Resolve specification to dereference $ref pointers
|
|
65089
|
+
const resolvedSpec = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_0__.resolveSpecification)(_specification_mjs__WEBPACK_IMPORTED_MODULE_29__["default"]);
|
|
65090
|
+
|
|
65091
|
+
// Extract fixed fields as list of { name, alias?, $visitor }
|
|
65092
|
+
const getFixedFields = fixedFieldsSpec => {
|
|
65093
|
+
return Object.entries(fixedFieldsSpec).map(([name, fieldSpec]) => {
|
|
65094
|
+
if ((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_1__["default"])(fieldSpec)) {
|
|
65095
|
+
return {
|
|
65096
|
+
name,
|
|
65097
|
+
...fieldSpec
|
|
65098
|
+
};
|
|
65099
|
+
}
|
|
65100
|
+
return {
|
|
65101
|
+
name,
|
|
65102
|
+
$visitor: fieldSpec
|
|
65103
|
+
};
|
|
65104
|
+
});
|
|
65105
|
+
};
|
|
65106
|
+
|
|
65107
|
+
// OpenAPI 2.0 specification elements
|
|
65108
|
+
Object.defineProperty(_elements_Swagger_mjs__WEBPACK_IMPORTED_MODULE_2__["default"], 'fixedFields', {
|
|
65109
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Swagger.fixedFields),
|
|
65110
|
+
enumerable: true
|
|
65111
|
+
});
|
|
65112
|
+
Object.defineProperty(_elements_Info_mjs__WEBPACK_IMPORTED_MODULE_4__["default"], 'fixedFields', {
|
|
65113
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Info.fixedFields),
|
|
65114
|
+
enumerable: true
|
|
65115
|
+
});
|
|
65116
|
+
Object.defineProperty(_elements_Contact_mjs__WEBPACK_IMPORTED_MODULE_5__["default"], 'fixedFields', {
|
|
65117
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Contact.fixedFields),
|
|
65118
|
+
enumerable: true
|
|
65119
|
+
});
|
|
65120
|
+
Object.defineProperty(_elements_License_mjs__WEBPACK_IMPORTED_MODULE_6__["default"], 'fixedFields', {
|
|
65121
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.License.fixedFields),
|
|
65122
|
+
enumerable: true
|
|
65123
|
+
});
|
|
65124
|
+
Object.defineProperty(_elements_PathItem_mjs__WEBPACK_IMPORTED_MODULE_8__["default"], 'fixedFields', {
|
|
65125
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.PathItem.fixedFields),
|
|
65126
|
+
enumerable: true
|
|
65127
|
+
});
|
|
65128
|
+
Object.defineProperty(_elements_Operation_mjs__WEBPACK_IMPORTED_MODULE_9__["default"], 'fixedFields', {
|
|
65129
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Operation.fixedFields),
|
|
65130
|
+
enumerable: true
|
|
65131
|
+
});
|
|
65132
|
+
Object.defineProperty(_elements_ExternalDocumentation_mjs__WEBPACK_IMPORTED_MODULE_10__["default"], 'fixedFields', {
|
|
65133
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.ExternalDocumentation.fixedFields),
|
|
65134
|
+
enumerable: true
|
|
65135
|
+
});
|
|
65136
|
+
Object.defineProperty(_elements_Parameter_mjs__WEBPACK_IMPORTED_MODULE_11__["default"], 'fixedFields', {
|
|
65137
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Parameter.fixedFields),
|
|
65138
|
+
enumerable: true
|
|
65139
|
+
});
|
|
65140
|
+
Object.defineProperty(_elements_Items_mjs__WEBPACK_IMPORTED_MODULE_12__["default"], 'fixedFields', {
|
|
65141
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Items.fixedFields),
|
|
65142
|
+
enumerable: true
|
|
65143
|
+
});
|
|
65144
|
+
Object.defineProperty(_elements_Responses_mjs__WEBPACK_IMPORTED_MODULE_13__["default"], 'fixedFields', {
|
|
65145
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Responses.fixedFields),
|
|
65146
|
+
enumerable: true
|
|
65147
|
+
});
|
|
65148
|
+
Object.defineProperty(_elements_Response_mjs__WEBPACK_IMPORTED_MODULE_14__["default"], 'fixedFields', {
|
|
65149
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Response.fixedFields),
|
|
65150
|
+
enumerable: true
|
|
65151
|
+
});
|
|
65152
|
+
Object.defineProperty(_elements_Header_mjs__WEBPACK_IMPORTED_MODULE_17__["default"], 'fixedFields', {
|
|
65153
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Header.fixedFields),
|
|
65154
|
+
enumerable: true
|
|
65155
|
+
});
|
|
65156
|
+
Object.defineProperty(_elements_Tag_mjs__WEBPACK_IMPORTED_MODULE_18__["default"], 'fixedFields', {
|
|
65157
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Tag.fixedFields),
|
|
65158
|
+
enumerable: true
|
|
65159
|
+
});
|
|
65160
|
+
Object.defineProperty(_elements_Reference_mjs__WEBPACK_IMPORTED_MODULE_19__["default"], 'fixedFields', {
|
|
65161
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Reference.fixedFields),
|
|
65162
|
+
enumerable: true
|
|
65163
|
+
});
|
|
65164
|
+
Object.defineProperty(_elements_Schema_mjs__WEBPACK_IMPORTED_MODULE_20__["default"], 'fixedFields', {
|
|
65165
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Schema.fixedFields),
|
|
65166
|
+
enumerable: true
|
|
65167
|
+
});
|
|
65168
|
+
Object.defineProperty(_elements_Xml_mjs__WEBPACK_IMPORTED_MODULE_21__["default"], 'fixedFields', {
|
|
65169
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.XML.fixedFields),
|
|
65170
|
+
enumerable: true
|
|
65171
|
+
});
|
|
65172
|
+
Object.defineProperty(_elements_SecurityScheme_mjs__WEBPACK_IMPORTED_MODULE_26__["default"], 'fixedFields', {
|
|
65173
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.SecurityScheme.fixedFields),
|
|
65174
|
+
enumerable: true
|
|
65175
|
+
});
|
|
65176
|
+
|
|
65177
|
+
|
|
64985
65178
|
/***/ },
|
|
64986
65179
|
|
|
64987
65180
|
/***/ 72880
|
|
@@ -77507,6 +77700,254 @@ const refractJsonSchemaDialect = (value, options = {}) => refract(value, {
|
|
|
77507
77700
|
});
|
|
77508
77701
|
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (refract);
|
|
77509
77702
|
|
|
77703
|
+
/***/ },
|
|
77704
|
+
|
|
77705
|
+
/***/ 52645
|
|
77706
|
+
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
77707
|
+
|
|
77708
|
+
"use strict";
|
|
77709
|
+
__webpack_require__.r(__webpack_exports__);
|
|
77710
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
77711
|
+
/* harmony export */ CallbackElement: () => (/* reexport safe */ _elements_Callback_mjs__WEBPACK_IMPORTED_MODULE_2__["default"]),
|
|
77712
|
+
/* harmony export */ ComponentsElement: () => (/* reexport safe */ _elements_Components_mjs__WEBPACK_IMPORTED_MODULE_3__["default"]),
|
|
77713
|
+
/* harmony export */ ContactElement: () => (/* reexport safe */ _elements_Contact_mjs__WEBPACK_IMPORTED_MODULE_4__["default"]),
|
|
77714
|
+
/* harmony export */ DiscriminatorElement: () => (/* reexport safe */ _elements_Discriminator_mjs__WEBPACK_IMPORTED_MODULE_5__["default"]),
|
|
77715
|
+
/* harmony export */ EncodingElement: () => (/* reexport safe */ _elements_Encoding_mjs__WEBPACK_IMPORTED_MODULE_6__["default"]),
|
|
77716
|
+
/* harmony export */ ExampleElement: () => (/* reexport safe */ _elements_Example_mjs__WEBPACK_IMPORTED_MODULE_7__["default"]),
|
|
77717
|
+
/* harmony export */ ExternalDocumentationElement: () => (/* reexport safe */ _elements_ExternalDocumentation_mjs__WEBPACK_IMPORTED_MODULE_8__["default"]),
|
|
77718
|
+
/* harmony export */ HeaderElement: () => (/* reexport safe */ _elements_Header_mjs__WEBPACK_IMPORTED_MODULE_9__["default"]),
|
|
77719
|
+
/* harmony export */ InfoElement: () => (/* reexport safe */ _elements_Info_mjs__WEBPACK_IMPORTED_MODULE_10__["default"]),
|
|
77720
|
+
/* harmony export */ JsonSchemaDialectElement: () => (/* reexport safe */ _elements_JsonSchemaDialect_mjs__WEBPACK_IMPORTED_MODULE_11__["default"]),
|
|
77721
|
+
/* harmony export */ LicenseElement: () => (/* reexport safe */ _elements_License_mjs__WEBPACK_IMPORTED_MODULE_12__["default"]),
|
|
77722
|
+
/* harmony export */ LinkElement: () => (/* reexport safe */ _elements_Link_mjs__WEBPACK_IMPORTED_MODULE_13__["default"]),
|
|
77723
|
+
/* harmony export */ MediaTypeElement: () => (/* reexport safe */ _elements_MediaType_mjs__WEBPACK_IMPORTED_MODULE_14__["default"]),
|
|
77724
|
+
/* harmony export */ OAuthFlowElement: () => (/* reexport safe */ _elements_OAuthFlow_mjs__WEBPACK_IMPORTED_MODULE_15__["default"]),
|
|
77725
|
+
/* harmony export */ OAuthFlowsElement: () => (/* reexport safe */ _elements_OAuthFlows_mjs__WEBPACK_IMPORTED_MODULE_16__["default"]),
|
|
77726
|
+
/* harmony export */ OpenApi3_1Element: () => (/* reexport safe */ _elements_OpenApi3_1_mjs__WEBPACK_IMPORTED_MODULE_18__["default"]),
|
|
77727
|
+
/* harmony export */ OpenapiElement: () => (/* reexport safe */ _elements_Openapi_mjs__WEBPACK_IMPORTED_MODULE_17__["default"]),
|
|
77728
|
+
/* harmony export */ OperationElement: () => (/* reexport safe */ _elements_Operation_mjs__WEBPACK_IMPORTED_MODULE_19__["default"]),
|
|
77729
|
+
/* harmony export */ ParameterElement: () => (/* reexport safe */ _elements_Parameter_mjs__WEBPACK_IMPORTED_MODULE_20__["default"]),
|
|
77730
|
+
/* harmony export */ PathItemElement: () => (/* reexport safe */ _elements_PathItem_mjs__WEBPACK_IMPORTED_MODULE_21__["default"]),
|
|
77731
|
+
/* harmony export */ PathsElement: () => (/* reexport safe */ _elements_Paths_mjs__WEBPACK_IMPORTED_MODULE_22__["default"]),
|
|
77732
|
+
/* harmony export */ ReferenceElement: () => (/* reexport safe */ _elements_Reference_mjs__WEBPACK_IMPORTED_MODULE_23__["default"]),
|
|
77733
|
+
/* harmony export */ RequestBodyElement: () => (/* reexport safe */ _elements_RequestBody_mjs__WEBPACK_IMPORTED_MODULE_24__["default"]),
|
|
77734
|
+
/* harmony export */ ResponseElement: () => (/* reexport safe */ _elements_Response_mjs__WEBPACK_IMPORTED_MODULE_25__["default"]),
|
|
77735
|
+
/* harmony export */ ResponsesElement: () => (/* reexport safe */ _elements_Responses_mjs__WEBPACK_IMPORTED_MODULE_26__["default"]),
|
|
77736
|
+
/* harmony export */ SchemaElement: () => (/* reexport safe */ _elements_Schema_mjs__WEBPACK_IMPORTED_MODULE_27__["default"]),
|
|
77737
|
+
/* harmony export */ SecurityRequirementElement: () => (/* reexport safe */ _elements_SecurityRequirement_mjs__WEBPACK_IMPORTED_MODULE_28__["default"]),
|
|
77738
|
+
/* harmony export */ SecuritySchemeElement: () => (/* reexport safe */ _elements_SecurityScheme_mjs__WEBPACK_IMPORTED_MODULE_29__["default"]),
|
|
77739
|
+
/* harmony export */ ServerElement: () => (/* reexport safe */ _elements_Server_mjs__WEBPACK_IMPORTED_MODULE_30__["default"]),
|
|
77740
|
+
/* harmony export */ ServerVariableElement: () => (/* reexport safe */ _elements_ServerVariable_mjs__WEBPACK_IMPORTED_MODULE_31__["default"]),
|
|
77741
|
+
/* harmony export */ TagElement: () => (/* reexport safe */ _elements_Tag_mjs__WEBPACK_IMPORTED_MODULE_32__["default"]),
|
|
77742
|
+
/* harmony export */ XmlElement: () => (/* reexport safe */ _elements_Xml_mjs__WEBPACK_IMPORTED_MODULE_33__["default"])
|
|
77743
|
+
/* harmony export */ });
|
|
77744
|
+
/* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(60572);
|
|
77745
|
+
/* harmony import */ var ramda_adjunct__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(34606);
|
|
77746
|
+
/* harmony import */ var _elements_Callback_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(30422);
|
|
77747
|
+
/* harmony import */ var _elements_Components_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(68772);
|
|
77748
|
+
/* harmony import */ var _elements_Contact_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(16368);
|
|
77749
|
+
/* harmony import */ var _elements_Discriminator_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(13456);
|
|
77750
|
+
/* harmony import */ var _elements_Encoding_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(67071);
|
|
77751
|
+
/* harmony import */ var _elements_Example_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(91210);
|
|
77752
|
+
/* harmony import */ var _elements_ExternalDocumentation_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(82753);
|
|
77753
|
+
/* harmony import */ var _elements_Header_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(10391);
|
|
77754
|
+
/* harmony import */ var _elements_Info_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(80064);
|
|
77755
|
+
/* harmony import */ var _elements_JsonSchemaDialect_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(66035);
|
|
77756
|
+
/* harmony import */ var _elements_License_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(10673);
|
|
77757
|
+
/* harmony import */ var _elements_Link_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(64720);
|
|
77758
|
+
/* harmony import */ var _elements_MediaType_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(91784);
|
|
77759
|
+
/* harmony import */ var _elements_OAuthFlow_mjs__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(73645);
|
|
77760
|
+
/* harmony import */ var _elements_OAuthFlows_mjs__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(28308);
|
|
77761
|
+
/* harmony import */ var _elements_Openapi_mjs__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(14540);
|
|
77762
|
+
/* harmony import */ var _elements_OpenApi3_1_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(81793);
|
|
77763
|
+
/* harmony import */ var _elements_Operation_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(54427);
|
|
77764
|
+
/* harmony import */ var _elements_Parameter_mjs__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(5849);
|
|
77765
|
+
/* harmony import */ var _elements_PathItem_mjs__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(43360);
|
|
77766
|
+
/* harmony import */ var _elements_Paths_mjs__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(85652);
|
|
77767
|
+
/* harmony import */ var _elements_Reference_mjs__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(36539);
|
|
77768
|
+
/* harmony import */ var _elements_RequestBody_mjs__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(71387);
|
|
77769
|
+
/* harmony import */ var _elements_Response_mjs__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(51193);
|
|
77770
|
+
/* harmony import */ var _elements_Responses_mjs__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(77080);
|
|
77771
|
+
/* harmony import */ var _elements_Schema_mjs__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(26385);
|
|
77772
|
+
/* harmony import */ var _elements_SecurityRequirement_mjs__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(87051);
|
|
77773
|
+
/* harmony import */ var _elements_SecurityScheme_mjs__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(3719);
|
|
77774
|
+
/* harmony import */ var _elements_Server_mjs__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(93497);
|
|
77775
|
+
/* harmony import */ var _elements_ServerVariable_mjs__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(7929);
|
|
77776
|
+
/* harmony import */ var _elements_Tag_mjs__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(24224);
|
|
77777
|
+
/* harmony import */ var _elements_Xml_mjs__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(10931);
|
|
77778
|
+
/* harmony import */ var _specification_mjs__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(56110);
|
|
77779
|
+
|
|
77780
|
+
|
|
77781
|
+
|
|
77782
|
+
/**
|
|
77783
|
+
* OpenAPI 3.1 specification elements.
|
|
77784
|
+
*/
|
|
77785
|
+
|
|
77786
|
+
|
|
77787
|
+
|
|
77788
|
+
|
|
77789
|
+
|
|
77790
|
+
|
|
77791
|
+
|
|
77792
|
+
|
|
77793
|
+
|
|
77794
|
+
|
|
77795
|
+
|
|
77796
|
+
|
|
77797
|
+
|
|
77798
|
+
|
|
77799
|
+
|
|
77800
|
+
|
|
77801
|
+
|
|
77802
|
+
|
|
77803
|
+
|
|
77804
|
+
|
|
77805
|
+
|
|
77806
|
+
|
|
77807
|
+
|
|
77808
|
+
|
|
77809
|
+
|
|
77810
|
+
|
|
77811
|
+
|
|
77812
|
+
|
|
77813
|
+
|
|
77814
|
+
|
|
77815
|
+
|
|
77816
|
+
|
|
77817
|
+
|
|
77818
|
+
/**
|
|
77819
|
+
* @public
|
|
77820
|
+
*/
|
|
77821
|
+
// Resolve specification to dereference $ref pointers
|
|
77822
|
+
const resolvedSpec = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_0__.resolveSpecification)(_specification_mjs__WEBPACK_IMPORTED_MODULE_34__["default"]);
|
|
77823
|
+
|
|
77824
|
+
// Extract fixed fields as list of { name, alias?, $visitor }
|
|
77825
|
+
const getFixedFields = fixedFieldsSpec => {
|
|
77826
|
+
return Object.entries(fixedFieldsSpec).map(([name, fieldSpec]) => {
|
|
77827
|
+
if ((0,ramda_adjunct__WEBPACK_IMPORTED_MODULE_1__["default"])(fieldSpec)) {
|
|
77828
|
+
return {
|
|
77829
|
+
name,
|
|
77830
|
+
...fieldSpec
|
|
77831
|
+
};
|
|
77832
|
+
}
|
|
77833
|
+
return {
|
|
77834
|
+
name,
|
|
77835
|
+
$visitor: fieldSpec
|
|
77836
|
+
};
|
|
77837
|
+
});
|
|
77838
|
+
};
|
|
77839
|
+
|
|
77840
|
+
// OpenAPI 3.1 specification elements
|
|
77841
|
+
Object.defineProperty(_elements_OpenApi3_1_mjs__WEBPACK_IMPORTED_MODULE_18__["default"], 'fixedFields', {
|
|
77842
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.OpenApi.fixedFields),
|
|
77843
|
+
enumerable: true
|
|
77844
|
+
});
|
|
77845
|
+
Object.defineProperty(_elements_Info_mjs__WEBPACK_IMPORTED_MODULE_10__["default"], 'fixedFields', {
|
|
77846
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Info.fixedFields),
|
|
77847
|
+
enumerable: true
|
|
77848
|
+
});
|
|
77849
|
+
Object.defineProperty(_elements_Contact_mjs__WEBPACK_IMPORTED_MODULE_4__["default"], 'fixedFields', {
|
|
77850
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Contact.fixedFields),
|
|
77851
|
+
enumerable: true
|
|
77852
|
+
});
|
|
77853
|
+
Object.defineProperty(_elements_License_mjs__WEBPACK_IMPORTED_MODULE_12__["default"], 'fixedFields', {
|
|
77854
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.License.fixedFields),
|
|
77855
|
+
enumerable: true
|
|
77856
|
+
});
|
|
77857
|
+
Object.defineProperty(_elements_Server_mjs__WEBPACK_IMPORTED_MODULE_30__["default"], 'fixedFields', {
|
|
77858
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Server.fixedFields),
|
|
77859
|
+
enumerable: true
|
|
77860
|
+
});
|
|
77861
|
+
Object.defineProperty(_elements_ServerVariable_mjs__WEBPACK_IMPORTED_MODULE_31__["default"], 'fixedFields', {
|
|
77862
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.ServerVariable.fixedFields),
|
|
77863
|
+
enumerable: true
|
|
77864
|
+
});
|
|
77865
|
+
Object.defineProperty(_elements_Components_mjs__WEBPACK_IMPORTED_MODULE_3__["default"], 'fixedFields', {
|
|
77866
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Components.fixedFields),
|
|
77867
|
+
enumerable: true
|
|
77868
|
+
});
|
|
77869
|
+
Object.defineProperty(_elements_PathItem_mjs__WEBPACK_IMPORTED_MODULE_21__["default"], 'fixedFields', {
|
|
77870
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.PathItem.fixedFields),
|
|
77871
|
+
enumerable: true
|
|
77872
|
+
});
|
|
77873
|
+
Object.defineProperty(_elements_Operation_mjs__WEBPACK_IMPORTED_MODULE_19__["default"], 'fixedFields', {
|
|
77874
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Operation.fixedFields),
|
|
77875
|
+
enumerable: true
|
|
77876
|
+
});
|
|
77877
|
+
Object.defineProperty(_elements_ExternalDocumentation_mjs__WEBPACK_IMPORTED_MODULE_8__["default"], 'fixedFields', {
|
|
77878
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.ExternalDocumentation.fixedFields),
|
|
77879
|
+
enumerable: true
|
|
77880
|
+
});
|
|
77881
|
+
Object.defineProperty(_elements_Parameter_mjs__WEBPACK_IMPORTED_MODULE_20__["default"], 'fixedFields', {
|
|
77882
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Parameter.fixedFields),
|
|
77883
|
+
enumerable: true
|
|
77884
|
+
});
|
|
77885
|
+
Object.defineProperty(_elements_RequestBody_mjs__WEBPACK_IMPORTED_MODULE_24__["default"], 'fixedFields', {
|
|
77886
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.RequestBody.fixedFields),
|
|
77887
|
+
enumerable: true
|
|
77888
|
+
});
|
|
77889
|
+
Object.defineProperty(_elements_MediaType_mjs__WEBPACK_IMPORTED_MODULE_14__["default"], 'fixedFields', {
|
|
77890
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.MediaType.fixedFields),
|
|
77891
|
+
enumerable: true
|
|
77892
|
+
});
|
|
77893
|
+
Object.defineProperty(_elements_Encoding_mjs__WEBPACK_IMPORTED_MODULE_6__["default"], 'fixedFields', {
|
|
77894
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Encoding.fixedFields),
|
|
77895
|
+
enumerable: true
|
|
77896
|
+
});
|
|
77897
|
+
Object.defineProperty(_elements_Responses_mjs__WEBPACK_IMPORTED_MODULE_26__["default"], 'fixedFields', {
|
|
77898
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Responses.fixedFields),
|
|
77899
|
+
enumerable: true
|
|
77900
|
+
});
|
|
77901
|
+
Object.defineProperty(_elements_Response_mjs__WEBPACK_IMPORTED_MODULE_25__["default"], 'fixedFields', {
|
|
77902
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Response.fixedFields),
|
|
77903
|
+
enumerable: true
|
|
77904
|
+
});
|
|
77905
|
+
Object.defineProperty(_elements_Example_mjs__WEBPACK_IMPORTED_MODULE_7__["default"], 'fixedFields', {
|
|
77906
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Example.fixedFields),
|
|
77907
|
+
enumerable: true
|
|
77908
|
+
});
|
|
77909
|
+
Object.defineProperty(_elements_Link_mjs__WEBPACK_IMPORTED_MODULE_13__["default"], 'fixedFields', {
|
|
77910
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Link.fixedFields),
|
|
77911
|
+
enumerable: true
|
|
77912
|
+
});
|
|
77913
|
+
Object.defineProperty(_elements_Header_mjs__WEBPACK_IMPORTED_MODULE_9__["default"], 'fixedFields', {
|
|
77914
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Header.fixedFields),
|
|
77915
|
+
enumerable: true
|
|
77916
|
+
});
|
|
77917
|
+
Object.defineProperty(_elements_Tag_mjs__WEBPACK_IMPORTED_MODULE_32__["default"], 'fixedFields', {
|
|
77918
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Tag.fixedFields),
|
|
77919
|
+
enumerable: true
|
|
77920
|
+
});
|
|
77921
|
+
Object.defineProperty(_elements_Reference_mjs__WEBPACK_IMPORTED_MODULE_23__["default"], 'fixedFields', {
|
|
77922
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Reference.fixedFields),
|
|
77923
|
+
enumerable: true
|
|
77924
|
+
});
|
|
77925
|
+
Object.defineProperty(_elements_Schema_mjs__WEBPACK_IMPORTED_MODULE_27__["default"], 'fixedFields', {
|
|
77926
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Schema.fixedFields),
|
|
77927
|
+
enumerable: true
|
|
77928
|
+
});
|
|
77929
|
+
Object.defineProperty(_elements_Discriminator_mjs__WEBPACK_IMPORTED_MODULE_5__["default"], 'fixedFields', {
|
|
77930
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.Discriminator.fixedFields),
|
|
77931
|
+
enumerable: true
|
|
77932
|
+
});
|
|
77933
|
+
Object.defineProperty(_elements_Xml_mjs__WEBPACK_IMPORTED_MODULE_33__["default"], 'fixedFields', {
|
|
77934
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.XML.fixedFields),
|
|
77935
|
+
enumerable: true
|
|
77936
|
+
});
|
|
77937
|
+
Object.defineProperty(_elements_SecurityScheme_mjs__WEBPACK_IMPORTED_MODULE_29__["default"], 'fixedFields', {
|
|
77938
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.SecurityScheme.fixedFields),
|
|
77939
|
+
enumerable: true
|
|
77940
|
+
});
|
|
77941
|
+
Object.defineProperty(_elements_OAuthFlows_mjs__WEBPACK_IMPORTED_MODULE_16__["default"], 'fixedFields', {
|
|
77942
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.OAuthFlows.fixedFields),
|
|
77943
|
+
enumerable: true
|
|
77944
|
+
});
|
|
77945
|
+
Object.defineProperty(_elements_OAuthFlow_mjs__WEBPACK_IMPORTED_MODULE_15__["default"], 'fixedFields', {
|
|
77946
|
+
get: () => getFixedFields(resolvedSpec.visitors.document.objects.OAuthFlow.fixedFields),
|
|
77947
|
+
enumerable: true
|
|
77948
|
+
});
|
|
77949
|
+
|
|
77950
|
+
|
|
77510
77951
|
/***/ },
|
|
77511
77952
|
|
|
77512
77953
|
/***/ 68201
|
|
@@ -91670,23 +92111,23 @@ class BundleStrategy {
|
|
|
91670
92111
|
|
|
91671
92112
|
/***/ },
|
|
91672
92113
|
|
|
91673
|
-
/***/
|
|
92114
|
+
/***/ 95416
|
|
91674
92115
|
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
91675
92116
|
|
|
91676
92117
|
"use strict";
|
|
91677
92118
|
__webpack_require__.r(__webpack_exports__);
|
|
91678
92119
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
91679
|
-
/* harmony export */
|
|
92120
|
+
/* harmony export */ OpenAPI2BundleVisitor: () => (/* reexport safe */ _visitor_mjs__WEBPACK_IMPORTED_MODULE_7__["default"]),
|
|
91680
92121
|
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
91681
92122
|
/* harmony export */ });
|
|
91682
92123
|
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12111);
|
|
91683
92124
|
/* harmony import */ var _speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(80796);
|
|
91684
|
-
/* harmony import */ var
|
|
91685
|
-
/* harmony import */ var
|
|
92125
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3677);
|
|
92126
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(26365);
|
|
91686
92127
|
/* harmony import */ var _Reference_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(82302);
|
|
91687
92128
|
/* harmony import */ var _ReferenceSet_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(88526);
|
|
91688
92129
|
/* harmony import */ var _BundleStrategy_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(73723);
|
|
91689
|
-
/* harmony import */ var _visitor_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(
|
|
92130
|
+
/* harmony import */ var _visitor_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(61210);
|
|
91690
92131
|
|
|
91691
92132
|
|
|
91692
92133
|
|
|
@@ -91700,21 +92141,21 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
91700
92141
|
/**
|
|
91701
92142
|
* @public
|
|
91702
92143
|
*/
|
|
91703
|
-
class
|
|
92144
|
+
class OpenAPI2BundleStrategy extends _BundleStrategy_mjs__WEBPACK_IMPORTED_MODULE_6__["default"] {
|
|
91704
92145
|
constructor(options) {
|
|
91705
92146
|
super({
|
|
91706
92147
|
...(options ?? {}),
|
|
91707
|
-
name: 'openapi-
|
|
92148
|
+
name: 'openapi-2'
|
|
91708
92149
|
});
|
|
91709
92150
|
}
|
|
91710
92151
|
canBundle(file) {
|
|
91711
92152
|
// assert by media type
|
|
91712
92153
|
if (file.mediaType !== 'text/plain') {
|
|
91713
|
-
return
|
|
92154
|
+
return _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_2__["default"].includes(file.mediaType);
|
|
91714
92155
|
}
|
|
91715
92156
|
|
|
91716
92157
|
// assert by inspecting ApiDOM
|
|
91717
|
-
return (0,
|
|
92158
|
+
return (0,_speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_3__.isSwaggerElement)(file.parseResult?.result);
|
|
91718
92159
|
}
|
|
91719
92160
|
async bundle(file, options) {
|
|
91720
92161
|
const immutableRefSet = options.bundle.refSet ?? new _ReferenceSet_mjs__WEBPACK_IMPORTED_MODULE_5__["default"]();
|
|
@@ -91767,11 +92208,11 @@ class OpenAPI3_0BundleStrategy extends _BundleStrategy_mjs__WEBPACK_IMPORTED_MOD
|
|
|
91767
92208
|
}
|
|
91768
92209
|
}
|
|
91769
92210
|
|
|
91770
|
-
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (
|
|
92211
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OpenAPI2BundleStrategy);
|
|
91771
92212
|
|
|
91772
92213
|
/***/ },
|
|
91773
92214
|
|
|
91774
|
-
/***/
|
|
92215
|
+
/***/ 61210
|
|
91775
92216
|
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
91776
92217
|
|
|
91777
92218
|
"use strict";
|
|
@@ -91787,32 +92228,24 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
91787
92228
|
/* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(37205);
|
|
91788
92229
|
/* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(44673);
|
|
91789
92230
|
/* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(16280);
|
|
91790
|
-
/* harmony import */ var
|
|
91791
|
-
/* harmony import */ var
|
|
91792
|
-
/* harmony import */ var _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(
|
|
91793
|
-
/* harmony import */ var
|
|
91794
|
-
/* harmony import */ var
|
|
91795
|
-
/* harmony import */ var
|
|
91796
|
-
/* harmony import */ var
|
|
91797
|
-
/* harmony import */ var
|
|
91798
|
-
/* harmony import */ var
|
|
91799
|
-
/* harmony import */ var
|
|
91800
|
-
/* harmony import */ var
|
|
91801
|
-
/* harmony import */ var
|
|
91802
|
-
/* harmony import */ var
|
|
91803
|
-
/* harmony import */ var
|
|
91804
|
-
/* harmony import */ var
|
|
91805
|
-
/* harmony import */ var
|
|
91806
|
-
/* harmony import */ var
|
|
91807
|
-
/* harmony import */ var
|
|
91808
|
-
/* harmony import */ var _errors_UnresolvableReferenceError_mjs__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(34968);
|
|
91809
|
-
/* harmony import */ var _errors_MaximumBundleDepthError_mjs__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(55086);
|
|
91810
|
-
/* harmony import */ var _errors_MaximumResolveDepthError_mjs__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(10476);
|
|
91811
|
-
/* harmony import */ var _util_url_mjs__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(18917);
|
|
91812
|
-
/* harmony import */ var _parse_index_mjs__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(85533);
|
|
91813
|
-
/* harmony import */ var _Reference_mjs__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(82302);
|
|
91814
|
-
/* harmony import */ var _util_mjs__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(78814);
|
|
91815
|
-
|
|
92231
|
+
/* harmony import */ var _speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(80796);
|
|
92232
|
+
/* harmony import */ var _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(12020);
|
|
92233
|
+
/* harmony import */ var _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(61198);
|
|
92234
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(61500);
|
|
92235
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(86059);
|
|
92236
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(59014);
|
|
92237
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(3498);
|
|
92238
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(26365);
|
|
92239
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(72880);
|
|
92240
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(60574);
|
|
92241
|
+
/* harmony import */ var _errors_BundleError_mjs__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(89693);
|
|
92242
|
+
/* harmony import */ var _errors_UnresolvableReferenceError_mjs__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(34968);
|
|
92243
|
+
/* harmony import */ var _errors_MaximumBundleDepthError_mjs__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(55086);
|
|
92244
|
+
/* harmony import */ var _errors_MaximumResolveDepthError_mjs__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(10476);
|
|
92245
|
+
/* harmony import */ var _util_url_mjs__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(18917);
|
|
92246
|
+
/* harmony import */ var _parse_index_mjs__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(85533);
|
|
92247
|
+
/* harmony import */ var _Reference_mjs__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(82302);
|
|
92248
|
+
/* harmony import */ var _util_mjs__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(78814);
|
|
91816
92249
|
|
|
91817
92250
|
|
|
91818
92251
|
|
|
@@ -91829,41 +92262,31 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
91829
92262
|
|
|
91830
92263
|
/**
|
|
91831
92264
|
* Maps the `referenced-element` meta value (set during refraction) to the
|
|
91832
|
-
*
|
|
91833
|
-
*
|
|
91834
|
-
*
|
|
92265
|
+
* top-level Swagger Object field where the referenced element should be
|
|
92266
|
+
* hoisted. Unlike OpenAPI 3.x, OpenAPI 2.0 has no single Components Object;
|
|
92267
|
+
* reusable definitions live directly under the document root. Field names are
|
|
92268
|
+
* sourced from the Swagger Object fixed fields so they cannot drift from the
|
|
92269
|
+
* namespace definition.
|
|
91835
92270
|
*/
|
|
91836
|
-
const
|
|
92271
|
+
const sf = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_5__.fixedFields)(_speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_17__.SwaggerElement, {
|
|
91837
92272
|
indexed: true
|
|
91838
92273
|
});
|
|
91839
|
-
const
|
|
91840
|
-
schema:
|
|
91841
|
-
|
|
91842
|
-
|
|
91843
|
-
example: cf.examples.name,
|
|
91844
|
-
requestBody: cf.requestBodies.name,
|
|
91845
|
-
header: cf.headers.name,
|
|
91846
|
-
securityScheme: cf.securitySchemes.name,
|
|
91847
|
-
link: cf.links.name,
|
|
91848
|
-
callback: cf.callbacks.name
|
|
92274
|
+
const fieldByReferencedElement = {
|
|
92275
|
+
schema: sf.definitions.name,
|
|
92276
|
+
parameter: sf.parameters.name,
|
|
92277
|
+
response: sf.responses.name
|
|
91849
92278
|
};
|
|
91850
92279
|
|
|
91851
92280
|
/**
|
|
91852
|
-
* Maps a
|
|
91853
|
-
* uses for it, so a bundle-created field matches a parsed/refracted
|
|
91854
|
-
* (e.g. carries the `
|
|
92281
|
+
* Maps a top-level Swagger Object field to the named-content element the
|
|
92282
|
+
* namespace uses for it, so a bundle-created field matches a parsed/refracted
|
|
92283
|
+
* one (e.g. carries the `definitions` class) rather than being a generic
|
|
91855
92284
|
* object.
|
|
91856
92285
|
*/
|
|
91857
|
-
const
|
|
91858
|
-
[
|
|
91859
|
-
[
|
|
91860
|
-
[
|
|
91861
|
-
[cf.examples.name]: _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_17__["default"],
|
|
91862
|
-
[cf.requestBodies.name]: _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_21__["default"],
|
|
91863
|
-
[cf.headers.name]: _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_18__["default"],
|
|
91864
|
-
[cf.securitySchemes.name]: _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_24__["default"],
|
|
91865
|
-
[cf.links.name]: _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_19__["default"],
|
|
91866
|
-
[cf.callbacks.name]: _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_16__["default"]
|
|
92286
|
+
const fieldElementByField = {
|
|
92287
|
+
[sf.definitions.name]: _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_17__.DefinitionsElement,
|
|
92288
|
+
[sf.parameters.name]: _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_17__.ParametersDefinitionsElement,
|
|
92289
|
+
[sf.responses.name]: _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_17__.ResponsesDefinitionsElement
|
|
91867
92290
|
};
|
|
91868
92291
|
|
|
91869
92292
|
/**
|
|
@@ -91873,7 +92296,7 @@ const componentFieldElementByField = {
|
|
|
91873
92296
|
/**
|
|
91874
92297
|
* @public
|
|
91875
92298
|
*/
|
|
91876
|
-
class
|
|
92299
|
+
class OpenAPI2BundleVisitor {
|
|
91877
92300
|
reference;
|
|
91878
92301
|
options;
|
|
91879
92302
|
|
|
@@ -91883,7 +92306,7 @@ class OpenAPI3_0BundleVisitor {
|
|
|
91883
92306
|
* Derived from the shared refSet's root reference.
|
|
91884
92307
|
*/
|
|
91885
92308
|
get entryURI() {
|
|
91886
|
-
return
|
|
92309
|
+
return _util_url_mjs__WEBPACK_IMPORTED_MODULE_22__.stripHash(this.reference.refSet?.rootRef?.uri ?? '');
|
|
91887
92310
|
}
|
|
91888
92311
|
|
|
91889
92312
|
/**
|
|
@@ -91895,8 +92318,1508 @@ class OpenAPI3_0BundleVisitor {
|
|
|
91895
92318
|
|
|
91896
92319
|
/**
|
|
91897
92320
|
* The entry document element. Hoisted external fragments are placed into its
|
|
91898
|
-
*
|
|
91899
|
-
*
|
|
92321
|
+
* top-level definition fields. The `canBundle` guard guarantees it is a
|
|
92322
|
+
* SwaggerElement.
|
|
92323
|
+
*/
|
|
92324
|
+
get entryResult() {
|
|
92325
|
+
return this.entryParseResult.result;
|
|
92326
|
+
}
|
|
92327
|
+
|
|
92328
|
+
/**
|
|
92329
|
+
* Shared across the entry document and every external document visitor.
|
|
92330
|
+
* Guarantees each external fragment is hoisted exactly once and gives us a
|
|
92331
|
+
* stable internal pointer to rewrite every referencing element to.
|
|
92332
|
+
*/
|
|
92333
|
+
assignments;
|
|
92334
|
+
|
|
92335
|
+
/**
|
|
92336
|
+
* Component names already reserved per definition field. Reserved before
|
|
92337
|
+
* recursion so collision suffixing (`Pet`, `Pet-2`, ...) accounts for
|
|
92338
|
+
* components that are still being bundled.
|
|
92339
|
+
*/
|
|
92340
|
+
reservedNames;
|
|
92341
|
+
|
|
92342
|
+
/**
|
|
92343
|
+
* Caches refracted fragments keyed by source element and target element type.
|
|
92344
|
+
* The type is part of the key because the same source can be refracted into
|
|
92345
|
+
* different semantic elements depending on the referencing context (e.g. a
|
|
92346
|
+
* generic object referenced once as a Parameter and once as a Response).
|
|
92347
|
+
*/
|
|
92348
|
+
refractCache;
|
|
92349
|
+
|
|
92350
|
+
/**
|
|
92351
|
+
* Canonical URIs of Path Item Objects currently being inlined. Path Items
|
|
92352
|
+
* are not a top-level definition field in OpenAPI 2.0, so the `assignments`
|
|
92353
|
+
* map can't break their cycles. This stack guards against circular external
|
|
92354
|
+
* Path Item references.
|
|
92355
|
+
*/
|
|
92356
|
+
inlineStack;
|
|
92357
|
+
constructor({
|
|
92358
|
+
reference,
|
|
92359
|
+
options,
|
|
92360
|
+
assignments = new Map(),
|
|
92361
|
+
reservedNames = new Map(),
|
|
92362
|
+
refractCache = new WeakMap(),
|
|
92363
|
+
inlineStack = new Set()
|
|
92364
|
+
}) {
|
|
92365
|
+
this.reference = reference;
|
|
92366
|
+
this.options = options;
|
|
92367
|
+
this.inlineStack = inlineStack;
|
|
92368
|
+
this.assignments = assignments;
|
|
92369
|
+
this.reservedNames = reservedNames;
|
|
92370
|
+
this.refractCache = refractCache;
|
|
92371
|
+
}
|
|
92372
|
+
getRefracted(source, type) {
|
|
92373
|
+
return this.refractCache.get(source)?.get(type);
|
|
92374
|
+
}
|
|
92375
|
+
setRefracted(source, type, refracted) {
|
|
92376
|
+
let byType = this.refractCache.get(source);
|
|
92377
|
+
if (byType === undefined) {
|
|
92378
|
+
byType = new Map();
|
|
92379
|
+
this.refractCache.set(source, byType);
|
|
92380
|
+
}
|
|
92381
|
+
byType.set(type, refracted);
|
|
92382
|
+
}
|
|
92383
|
+
toBaseURI(uri) {
|
|
92384
|
+
return _util_url_mjs__WEBPACK_IMPORTED_MODULE_22__.resolve(this.reference.uri, _util_url_mjs__WEBPACK_IMPORTED_MODULE_22__.sanitize(_util_url_mjs__WEBPACK_IMPORTED_MODULE_22__.stripHash(uri)));
|
|
92385
|
+
}
|
|
92386
|
+
async toReference(uri) {
|
|
92387
|
+
// detect maximum depth of resolution
|
|
92388
|
+
if (this.reference.depth >= this.options.resolve.maxDepth) {
|
|
92389
|
+
throw new _errors_MaximumResolveDepthError_mjs__WEBPACK_IMPORTED_MODULE_21__["default"](`Maximum resolution depth of ${this.options.resolve.maxDepth} has been exceeded by file "${this.reference.uri}"`, {
|
|
92390
|
+
maxDepth: this.options.resolve.maxDepth,
|
|
92391
|
+
uri: this.reference.uri
|
|
92392
|
+
});
|
|
92393
|
+
}
|
|
92394
|
+
const baseURI = this.toBaseURI(uri);
|
|
92395
|
+
const {
|
|
92396
|
+
refSet
|
|
92397
|
+
} = this.reference;
|
|
92398
|
+
|
|
92399
|
+
// we've already processed this Reference in past
|
|
92400
|
+
if (refSet.has(baseURI)) {
|
|
92401
|
+
return refSet.find((0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])(baseURI, 'uri'));
|
|
92402
|
+
}
|
|
92403
|
+
const parseResult = await (0,_parse_index_mjs__WEBPACK_IMPORTED_MODULE_23__["default"])(_util_url_mjs__WEBPACK_IMPORTED_MODULE_22__.unsanitize(baseURI), {
|
|
92404
|
+
...this.options,
|
|
92405
|
+
parse: {
|
|
92406
|
+
...this.options.parse,
|
|
92407
|
+
mediaType: 'text/plain'
|
|
92408
|
+
}
|
|
92409
|
+
});
|
|
92410
|
+
const reference = new _Reference_mjs__WEBPACK_IMPORTED_MODULE_24__["default"]({
|
|
92411
|
+
uri: baseURI,
|
|
92412
|
+
value: parseResult,
|
|
92413
|
+
depth: this.reference.depth + 1
|
|
92414
|
+
});
|
|
92415
|
+
refSet.add(reference);
|
|
92416
|
+
return reference;
|
|
92417
|
+
}
|
|
92418
|
+
|
|
92419
|
+
/**
|
|
92420
|
+
* Normalizes a self-reference (e.g. `./root.json#/definitions/Pet`)
|
|
92421
|
+
* to a bare fragment (`#/definitions/Pet`) so the bundled document stays
|
|
92422
|
+
* transferable. Bare fragments are returned unchanged.
|
|
92423
|
+
*/
|
|
92424
|
+
normalizeSelfReference(ref) {
|
|
92425
|
+
return ref.startsWith('#') ? ref : _util_url_mjs__WEBPACK_IMPORTED_MODULE_22__.getHash(ref);
|
|
92426
|
+
}
|
|
92427
|
+
|
|
92428
|
+
/**
|
|
92429
|
+
* Handles an error according to the `bundle.continueOnError` option.
|
|
92430
|
+
*
|
|
92431
|
+
* For new errors: wraps in UnresolvableReferenceError with structured
|
|
92432
|
+
* context. For errors already wrapped by a nested visitor: prepends the
|
|
92433
|
+
* current hop to the trace.
|
|
92434
|
+
*
|
|
92435
|
+
* Inner/intermediate visitors always throw to let the trace accumulate. Only
|
|
92436
|
+
* the entry document visitor respects continueOnError (callback/swallow/throw).
|
|
92437
|
+
*/
|
|
92438
|
+
handleError(message, error, referencingElement, refFieldName, refFieldValue, visitorPath) {
|
|
92439
|
+
// a collision reported as `error` is a deliberate hard stop with no
|
|
92440
|
+
// resolution-failure analog, so pass it through unchanged. A maxDepth
|
|
92441
|
+
// breach (MaximumBundleDepthError, which also extends BundleError) is a
|
|
92442
|
+
// resolution failure and flows through below — wrapped and subject to
|
|
92443
|
+
// continueOnError, like dereferencing.
|
|
92444
|
+
if (error instanceof _errors_BundleError_mjs__WEBPACK_IMPORTED_MODULE_18__["default"] && !(error instanceof _errors_MaximumBundleDepthError_mjs__WEBPACK_IMPORTED_MODULE_20__["default"])) {
|
|
92445
|
+
throw error;
|
|
92446
|
+
}
|
|
92447
|
+
const {
|
|
92448
|
+
continueOnError
|
|
92449
|
+
} = this.options.bundle;
|
|
92450
|
+
const isEntryDocument = _util_url_mjs__WEBPACK_IMPORTED_MODULE_22__.stripHash(this.reference.refSet?.rootRef?.uri ?? '') === this.reference.uri;
|
|
92451
|
+
const uri = this.reference.uri;
|
|
92452
|
+
const type = referencingElement.element;
|
|
92453
|
+
const codeFrame = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(referencingElement);
|
|
92454
|
+
const location = visitorPath.formatPath();
|
|
92455
|
+
const hop = {
|
|
92456
|
+
uri,
|
|
92457
|
+
type,
|
|
92458
|
+
refFieldName,
|
|
92459
|
+
refFieldValue,
|
|
92460
|
+
location,
|
|
92461
|
+
codeFrame
|
|
92462
|
+
};
|
|
92463
|
+
let unresolvedError;
|
|
92464
|
+
if (error instanceof _errors_UnresolvableReferenceError_mjs__WEBPACK_IMPORTED_MODULE_19__["default"]) {
|
|
92465
|
+
// @ts-ignore
|
|
92466
|
+
error.trace = [hop, ...error.trace];
|
|
92467
|
+
unresolvedError = error;
|
|
92468
|
+
} else {
|
|
92469
|
+
unresolvedError = new _errors_UnresolvableReferenceError_mjs__WEBPACK_IMPORTED_MODULE_19__["default"](message, {
|
|
92470
|
+
cause: error,
|
|
92471
|
+
type,
|
|
92472
|
+
uri,
|
|
92473
|
+
location,
|
|
92474
|
+
codeFrame,
|
|
92475
|
+
refFieldName,
|
|
92476
|
+
refFieldValue,
|
|
92477
|
+
trace: []
|
|
92478
|
+
});
|
|
92479
|
+
}
|
|
92480
|
+
if (!isEntryDocument || continueOnError === false) throw unresolvedError;
|
|
92481
|
+
if (typeof continueOnError === 'function') continueOnError(unresolvedError);
|
|
92482
|
+
}
|
|
92483
|
+
|
|
92484
|
+
/**
|
|
92485
|
+
* Lazily creates the requested top-level definition field on the entry
|
|
92486
|
+
* document, returning the field where a fragment is hoisted.
|
|
92487
|
+
*/
|
|
92488
|
+
ensureField(field) {
|
|
92489
|
+
const entryResult = this.entryResult;
|
|
92490
|
+
let fieldElement = entryResult.get(field);
|
|
92491
|
+
if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isObjectElement)(fieldElement)) {
|
|
92492
|
+
const FieldElement = fieldElementByField[field] ?? _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__["default"];
|
|
92493
|
+
fieldElement = new FieldElement();
|
|
92494
|
+
entryResult.set(field, fieldElement);
|
|
92495
|
+
}
|
|
92496
|
+
return fieldElement;
|
|
92497
|
+
}
|
|
92498
|
+
|
|
92499
|
+
/**
|
|
92500
|
+
* Derives a component name from the referenced JSON Pointer's last token,
|
|
92501
|
+
* falling back to the referenced file's basename.
|
|
92502
|
+
*/
|
|
92503
|
+
basenameOf(jsonPointer, baseURI) {
|
|
92504
|
+
const tokens = (0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_10__.parse)(jsonPointer).tree;
|
|
92505
|
+
const lastToken = tokens.length > 0 ? tokens[tokens.length - 1] : '';
|
|
92506
|
+
return lastToken || _util_url_mjs__WEBPACK_IMPORTED_MODULE_22__.getBasename(baseURI) || 'Schema';
|
|
92507
|
+
}
|
|
92508
|
+
|
|
92509
|
+
/**
|
|
92510
|
+
* Computes the base component name (before collision suffixing) according to
|
|
92511
|
+
* the configured naming strategy.
|
|
92512
|
+
*/
|
|
92513
|
+
baseName(element, field, jsonPointer, baseURI) {
|
|
92514
|
+
// strategy specific options take precedence over the top-level bundle options
|
|
92515
|
+
const componentNamesStrategy = this.options.bundle.strategyOpts['openapi-2']?.componentNamesStrategy ?? this.options.bundle.componentNamesStrategy;
|
|
92516
|
+
if (typeof componentNamesStrategy === 'function') {
|
|
92517
|
+
const resolved = componentNamesStrategy({
|
|
92518
|
+
element,
|
|
92519
|
+
field,
|
|
92520
|
+
jsonPointer,
|
|
92521
|
+
baseURI
|
|
92522
|
+
});
|
|
92523
|
+
if (typeof resolved === 'string' && resolved !== '') {
|
|
92524
|
+
return resolved;
|
|
92525
|
+
}
|
|
92526
|
+
return this.basenameOf(jsonPointer, baseURI);
|
|
92527
|
+
}
|
|
92528
|
+
if (componentNamesStrategy === 'title') {
|
|
92529
|
+
const title = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isObjectElement)(element) ? (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(element.get('title')) : undefined;
|
|
92530
|
+
if (typeof title === 'string' && title.trim() !== '') {
|
|
92531
|
+
const name = (0,_util_mjs__WEBPACK_IMPORTED_MODULE_25__.sanitizeComponentName)((0,_util_mjs__WEBPACK_IMPORTED_MODULE_25__.toPascalCase)(title));
|
|
92532
|
+
if (name !== '') return name;
|
|
92533
|
+
}
|
|
92534
|
+
// fall back to basename when no usable title is present
|
|
92535
|
+
}
|
|
92536
|
+
return this.basenameOf(jsonPointer, baseURI);
|
|
92537
|
+
}
|
|
92538
|
+
|
|
92539
|
+
/**
|
|
92540
|
+
* Computes a collision-free component name within the target field. A name is
|
|
92541
|
+
* taken if it's already placed in the field or reserved by a component that
|
|
92542
|
+
* is still being bundled (reserved before recursion).
|
|
92543
|
+
*/
|
|
92544
|
+
uniqueName(candidate, field) {
|
|
92545
|
+
const fieldElement = this.ensureField(field);
|
|
92546
|
+
const reserved = this.reservedNames.get(field) ?? new Set();
|
|
92547
|
+
return (0,_util_mjs__WEBPACK_IMPORTED_MODULE_25__.uniqueName)(candidate, name => fieldElement.hasKey(name) || reserved.has(name));
|
|
92548
|
+
}
|
|
92549
|
+
|
|
92550
|
+
/**
|
|
92551
|
+
* Bundles a Reference Object (parameters/responses) or a JSON Reference
|
|
92552
|
+
* Object (schemas). The two reference flavors differ only in their predicate
|
|
92553
|
+
* and refraction helpers, so the shared logic is parameterized here.
|
|
92554
|
+
*/
|
|
92555
|
+
async bundleReference(path, referencingElement, isSemanticReference, isReferenceLike, refractReferenceFn, label) {
|
|
92556
|
+
const $ref = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(referencingElement.$ref);
|
|
92557
|
+
const retrievalURI = this.toBaseURI($ref);
|
|
92558
|
+
const isInternalReference = this.entryURI === retrievalURI;
|
|
92559
|
+
const isExternalReference = !isInternalReference;
|
|
92560
|
+
if (isInternalReference) {
|
|
92561
|
+
// normalize self-references to a bare fragment so the bundled
|
|
92562
|
+
// document stays transferable; bare fragments are left untouched
|
|
92563
|
+
referencingElement.set('$ref', this.normalizeSelfReference($ref));
|
|
92564
|
+
path.skip();
|
|
92565
|
+
return;
|
|
92566
|
+
}
|
|
92567
|
+
|
|
92568
|
+
// honor the resolve.external switch
|
|
92569
|
+
if (!this.options.resolve.external && isExternalReference) {
|
|
92570
|
+
path.skip();
|
|
92571
|
+
return;
|
|
92572
|
+
}
|
|
92573
|
+
const $refBaseURI = _util_url_mjs__WEBPACK_IMPORTED_MODULE_22__.resolve(retrievalURI, $ref);
|
|
92574
|
+
const jsonPointer = _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_10__.URIFragmentIdentifier.fromURIReference($refBaseURI);
|
|
92575
|
+
|
|
92576
|
+
// the target field depends on the referencing context, so it's part of the
|
|
92577
|
+
// identity: the same external target referenced as e.g. both a parameter and
|
|
92578
|
+
// a response must be hoisted into both fields. The refractor sets
|
|
92579
|
+
// `referenced-element` for every Reference Object position; the `schema`
|
|
92580
|
+
// fallback is a defensive default for the (unexpected) untagged case.
|
|
92581
|
+
const referencedElementType = referencingElement.meta.get('referenced-element');
|
|
92582
|
+
const field = fieldByReferencedElement[referencedElementType] ?? fieldByReferencedElement.schema;
|
|
92583
|
+
const canonicalKey = `${field}\t${retrievalURI}#${jsonPointer}`;
|
|
92584
|
+
|
|
92585
|
+
// already hoisted (or being hoisted) — just rewrite the pointer.
|
|
92586
|
+
//
|
|
92587
|
+
// this is also how circular references terminate: the assignment is
|
|
92588
|
+
// reserved BEFORE recursing into the fragment (see below), so a reference
|
|
92589
|
+
// that cycles back (directly or indirectly) finds its pointer already
|
|
92590
|
+
// reserved here and is rewritten without recursing. Cycles are deliberately
|
|
92591
|
+
// preserved as internal `$ref`s pointing at each other — that is valid,
|
|
92592
|
+
// serializable output; resolving the cycle (if desired) is dereferencing's
|
|
92593
|
+
// job, not bundling's.
|
|
92594
|
+
if (this.assignments.has(canonicalKey)) {
|
|
92595
|
+
referencingElement.set('$ref', this.assignments.get(canonicalKey));
|
|
92596
|
+
path.skip();
|
|
92597
|
+
return;
|
|
92598
|
+
}
|
|
92599
|
+
try {
|
|
92600
|
+
// detect maximum depth of bundling
|
|
92601
|
+
if (this.reference.depth >= this.options.bundle.maxDepth) {
|
|
92602
|
+
throw new _errors_MaximumBundleDepthError_mjs__WEBPACK_IMPORTED_MODULE_20__["default"](`Maximum bundle depth of "${this.options.bundle.maxDepth}" has been exceeded in file "${this.reference.uri}"`, {
|
|
92603
|
+
maxDepth: this.options.bundle.maxDepth,
|
|
92604
|
+
uri: this.reference.uri
|
|
92605
|
+
});
|
|
92606
|
+
}
|
|
92607
|
+
const reference = await this.toReference($ref);
|
|
92608
|
+
|
|
92609
|
+
// possibly non-semantic fragment
|
|
92610
|
+
let referencedElement = (0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_9__.evaluate)(reference.value.result, jsonPointer);
|
|
92611
|
+
|
|
92612
|
+
// apply semantics to the fragment so nested references become Reference Objects
|
|
92613
|
+
if (referencedElement.element !== referencedElementType && !isSemanticReference(referencedElement)) {
|
|
92614
|
+
const cached = this.getRefracted(referencedElement, referencedElementType);
|
|
92615
|
+
if (cached !== undefined) {
|
|
92616
|
+
referencedElement = cached;
|
|
92617
|
+
} else if (isReferenceLike(referencedElement)) {
|
|
92618
|
+
const sourceElement = referencedElement;
|
|
92619
|
+
referencedElement = refractReferenceFn(referencedElement);
|
|
92620
|
+
referencedElement.meta.set('referenced-element', referencedElementType);
|
|
92621
|
+
this.setRefracted(sourceElement, referencedElementType, referencedElement);
|
|
92622
|
+
} else {
|
|
92623
|
+
const sourceElement = referencedElement;
|
|
92624
|
+
referencedElement = (0,_speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_13__["default"])(referencedElement, {
|
|
92625
|
+
element: referencedElementType
|
|
92626
|
+
});
|
|
92627
|
+
this.setRefracted(sourceElement, referencedElementType, referencedElement);
|
|
92628
|
+
}
|
|
92629
|
+
}
|
|
92630
|
+
const preferredName = this.baseName(referencedElement, field, jsonPointer, retrievalURI);
|
|
92631
|
+
const componentName = this.uniqueName(preferredName, field);
|
|
92632
|
+
const internalPointer = `#/${field}/${(0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_10__.escape)(componentName)}`;
|
|
92633
|
+
|
|
92634
|
+
// a rename means two distinct targets resolved to the same name; each
|
|
92635
|
+
// keeps its own component (and origin), so report the rename per severity.
|
|
92636
|
+
// strategy specific options take precedence over the top-level bundle options
|
|
92637
|
+
const onComponentNameCollision = this.options.bundle.strategyOpts['openapi-2']?.onComponentNameCollision ?? this.options.bundle.onComponentNameCollision;
|
|
92638
|
+
if (componentName !== preferredName && onComponentNameCollision !== 'off') {
|
|
92639
|
+
const message = `Component "${preferredName}" in ${field} is referenced with the same name but different content. Renamed to "${componentName}".`;
|
|
92640
|
+
if (onComponentNameCollision === 'error') {
|
|
92641
|
+
throw new _errors_BundleError_mjs__WEBPACK_IMPORTED_MODULE_18__["default"](message);
|
|
92642
|
+
}
|
|
92643
|
+
const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__["default"](message);
|
|
92644
|
+
annotation.classes.push('warning');
|
|
92645
|
+
annotation.code = 'bundle-component-name-collision';
|
|
92646
|
+
// append (never prepend) so the result element stays ahead of annotations
|
|
92647
|
+
this.entryParseResult.content.push(annotation);
|
|
92648
|
+
}
|
|
92649
|
+
|
|
92650
|
+
// reserve the assignment and component name before recursing so cyclic
|
|
92651
|
+
// references terminate
|
|
92652
|
+
this.assignments.set(canonicalKey, internalPointer);
|
|
92653
|
+
if (!this.reservedNames.has(field)) this.reservedNames.set(field, new Set());
|
|
92654
|
+
this.reservedNames.get(field).add(componentName);
|
|
92655
|
+
|
|
92656
|
+
// own a copy of the fragment and bundle its own external references
|
|
92657
|
+
const hoistedElement = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.cloneDeep)(referencedElement);
|
|
92658
|
+
const visitor = new OpenAPI2BundleVisitor({
|
|
92659
|
+
reference,
|
|
92660
|
+
options: this.options,
|
|
92661
|
+
assignments: this.assignments,
|
|
92662
|
+
reservedNames: this.reservedNames,
|
|
92663
|
+
refractCache: this.refractCache,
|
|
92664
|
+
inlineStack: this.inlineStack
|
|
92665
|
+
});
|
|
92666
|
+
const bundledElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_8__.traverseAsync)(hoistedElement, visitor, {
|
|
92667
|
+
mutable: true
|
|
92668
|
+
});
|
|
92669
|
+
|
|
92670
|
+
// annotate the hoisted fragment with info about its origin
|
|
92671
|
+
if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isElement)(bundledElement)) {
|
|
92672
|
+
bundledElement.meta.set('ref-origin', reference.uri);
|
|
92673
|
+
}
|
|
92674
|
+
|
|
92675
|
+
// place the bundled fragment into the entry document's definitions
|
|
92676
|
+
this.ensureField(field).set(componentName, bundledElement);
|
|
92677
|
+
|
|
92678
|
+
// rewrite the referencing element to point at the hoisted fragment
|
|
92679
|
+
referencingElement.set('$ref', internalPointer);
|
|
92680
|
+
path.skip();
|
|
92681
|
+
} catch (error) {
|
|
92682
|
+
this.handleError(`Error while bundling ${label}. Cannot resolve $ref "${$ref}": ${error.message}`, error, referencingElement, '$ref', $ref, path);
|
|
92683
|
+
path.skip();
|
|
92684
|
+
}
|
|
92685
|
+
}
|
|
92686
|
+
|
|
92687
|
+
/**
|
|
92688
|
+
* Reference Object covers reusable Parameter and Response Objects, which are
|
|
92689
|
+
* hoisted into the top-level `parameters` and `responses` fields.
|
|
92690
|
+
*/
|
|
92691
|
+
async ReferenceElement(path) {
|
|
92692
|
+
await this.bundleReference(path, path.node, _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_15__.isReferenceElement, _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_16__.isReferenceLikeElement, _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_13__.refractReference, 'Reference Object');
|
|
92693
|
+
}
|
|
92694
|
+
|
|
92695
|
+
/**
|
|
92696
|
+
* JSON Reference Object covers reusable Schema Objects, which are hoisted
|
|
92697
|
+
* into the top-level `definitions` field.
|
|
92698
|
+
*/
|
|
92699
|
+
async JSONReferenceElement(path) {
|
|
92700
|
+
await this.bundleReference(path, path.node, _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_12__.isJSONReferenceElement, _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_14__.isJSONReferenceLikeElement, _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_11__.refractJSONReference, 'JSON Reference Object');
|
|
92701
|
+
}
|
|
92702
|
+
|
|
92703
|
+
/**
|
|
92704
|
+
* Path Item Object is not a top-level definition field in OpenAPI 2.0, so an
|
|
92705
|
+
* external Path Item reference cannot be hoisted; it is inlined in place
|
|
92706
|
+
* instead, after bundling its own external references.
|
|
92707
|
+
*/
|
|
92708
|
+
async PathItemElement(path) {
|
|
92709
|
+
const pathItemElement = path.node;
|
|
92710
|
+
|
|
92711
|
+
// ignore Path Item Objects without a $ref field
|
|
92712
|
+
if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isStringElement)(pathItemElement.$ref)) {
|
|
92713
|
+
return;
|
|
92714
|
+
}
|
|
92715
|
+
const $ref = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(pathItemElement.$ref);
|
|
92716
|
+
const retrievalURI = this.toBaseURI($ref);
|
|
92717
|
+
const isInternalReference = this.entryURI === retrievalURI;
|
|
92718
|
+
const isExternalReference = !isInternalReference;
|
|
92719
|
+
if (isInternalReference) {
|
|
92720
|
+
// normalize self-references to a bare fragment so the bundled
|
|
92721
|
+
// document stays transferable; bare fragments are left untouched
|
|
92722
|
+
pathItemElement.set('$ref', this.normalizeSelfReference($ref));
|
|
92723
|
+
return;
|
|
92724
|
+
}
|
|
92725
|
+
|
|
92726
|
+
// honor the resolve.external switch
|
|
92727
|
+
if (!this.options.resolve.external && isExternalReference) {
|
|
92728
|
+
return;
|
|
92729
|
+
}
|
|
92730
|
+
const $refBaseURI = _util_url_mjs__WEBPACK_IMPORTED_MODULE_22__.resolve(retrievalURI, $ref);
|
|
92731
|
+
const jsonPointer = _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_10__.URIFragmentIdentifier.fromURIReference($refBaseURI);
|
|
92732
|
+
const canonicalKey = `${retrievalURI}#${jsonPointer}`;
|
|
92733
|
+
|
|
92734
|
+
// a circular external Path Item reference cannot be inlined without
|
|
92735
|
+
// recursing forever; leave the $ref in place to break the cycle
|
|
92736
|
+
if (this.inlineStack.has(canonicalKey)) {
|
|
92737
|
+
return;
|
|
92738
|
+
}
|
|
92739
|
+
try {
|
|
92740
|
+
// detect maximum depth of bundling
|
|
92741
|
+
if (this.reference.depth >= this.options.bundle.maxDepth) {
|
|
92742
|
+
throw new _errors_MaximumBundleDepthError_mjs__WEBPACK_IMPORTED_MODULE_20__["default"](`Maximum bundle depth of "${this.options.bundle.maxDepth}" has been exceeded in file "${this.reference.uri}"`, {
|
|
92743
|
+
maxDepth: this.options.bundle.maxDepth,
|
|
92744
|
+
uri: this.reference.uri
|
|
92745
|
+
});
|
|
92746
|
+
}
|
|
92747
|
+
const reference = await this.toReference($ref);
|
|
92748
|
+
let referencedElement = (0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_9__.evaluate)(reference.value.result, jsonPointer);
|
|
92749
|
+
|
|
92750
|
+
// apply Path Item semantics to the referenced fragment
|
|
92751
|
+
if (!(0,_speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_15__.isPathItemElement)(referencedElement)) {
|
|
92752
|
+
const cached = this.getRefracted(referencedElement, 'pathItem');
|
|
92753
|
+
if (cached !== undefined) {
|
|
92754
|
+
referencedElement = cached;
|
|
92755
|
+
} else {
|
|
92756
|
+
const sourceElement = referencedElement;
|
|
92757
|
+
referencedElement = (0,_speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_13__.refractPathItem)(referencedElement);
|
|
92758
|
+
this.setRefracted(sourceElement, 'pathItem', referencedElement);
|
|
92759
|
+
}
|
|
92760
|
+
}
|
|
92761
|
+
|
|
92762
|
+
// own a copy and bundle the external references it contains
|
|
92763
|
+
const inlinedElement = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.cloneDeep)(referencedElement);
|
|
92764
|
+
this.inlineStack.add(canonicalKey);
|
|
92765
|
+
const visitor = new OpenAPI2BundleVisitor({
|
|
92766
|
+
reference,
|
|
92767
|
+
options: this.options,
|
|
92768
|
+
assignments: this.assignments,
|
|
92769
|
+
reservedNames: this.reservedNames,
|
|
92770
|
+
refractCache: this.refractCache,
|
|
92771
|
+
inlineStack: this.inlineStack
|
|
92772
|
+
});
|
|
92773
|
+
let bundledElement;
|
|
92774
|
+
try {
|
|
92775
|
+
bundledElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_8__.traverseAsync)(inlinedElement, visitor, {
|
|
92776
|
+
mutable: true
|
|
92777
|
+
});
|
|
92778
|
+
} finally {
|
|
92779
|
+
this.inlineStack.delete(canonicalKey);
|
|
92780
|
+
}
|
|
92781
|
+
|
|
92782
|
+
// merge sibling fields from the referencing Path Item over the referenced
|
|
92783
|
+
// one. The referencing `$ref` is being resolved away and is skipped; the
|
|
92784
|
+
// referenced element keeps its own `$ref` if one survived (i.e. it was
|
|
92785
|
+
// left in place to break a circular external Path Item chain).
|
|
92786
|
+
pathItemElement.forEach((_value, keyElement, item) => {
|
|
92787
|
+
const key = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(keyElement);
|
|
92788
|
+
if (key === '$ref') return;
|
|
92789
|
+
bundledElement.remove(key);
|
|
92790
|
+
bundledElement.content.push(item);
|
|
92791
|
+
});
|
|
92792
|
+
bundledElement.meta.set('ref-origin', reference.uri);
|
|
92793
|
+
path.replaceWith(bundledElement);
|
|
92794
|
+
} catch (error) {
|
|
92795
|
+
this.handleError(`Error while bundling Path Item Object. Cannot resolve $ref "${$ref}": ${error.message}`, error, pathItemElement, '$ref', $ref, path);
|
|
92796
|
+
}
|
|
92797
|
+
}
|
|
92798
|
+
}
|
|
92799
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OpenAPI2BundleVisitor);
|
|
92800
|
+
|
|
92801
|
+
/***/ },
|
|
92802
|
+
|
|
92803
|
+
/***/ 5138
|
|
92804
|
+
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
92805
|
+
|
|
92806
|
+
"use strict";
|
|
92807
|
+
__webpack_require__.r(__webpack_exports__);
|
|
92808
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
92809
|
+
/* harmony export */ OpenAPI3_0BundleVisitor: () => (/* reexport safe */ _visitor_mjs__WEBPACK_IMPORTED_MODULE_7__["default"]),
|
|
92810
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
92811
|
+
/* harmony export */ });
|
|
92812
|
+
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12111);
|
|
92813
|
+
/* harmony import */ var _speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(80796);
|
|
92814
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(43151);
|
|
92815
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(32131);
|
|
92816
|
+
/* harmony import */ var _Reference_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(82302);
|
|
92817
|
+
/* harmony import */ var _ReferenceSet_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(88526);
|
|
92818
|
+
/* harmony import */ var _BundleStrategy_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(73723);
|
|
92819
|
+
/* harmony import */ var _visitor_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(98968);
|
|
92820
|
+
|
|
92821
|
+
|
|
92822
|
+
|
|
92823
|
+
|
|
92824
|
+
|
|
92825
|
+
|
|
92826
|
+
|
|
92827
|
+
/**
|
|
92828
|
+
* @public
|
|
92829
|
+
*/
|
|
92830
|
+
/**
|
|
92831
|
+
* @public
|
|
92832
|
+
*/
|
|
92833
|
+
class OpenAPI3_0BundleStrategy extends _BundleStrategy_mjs__WEBPACK_IMPORTED_MODULE_6__["default"] {
|
|
92834
|
+
constructor(options) {
|
|
92835
|
+
super({
|
|
92836
|
+
...(options ?? {}),
|
|
92837
|
+
name: 'openapi-3-0'
|
|
92838
|
+
});
|
|
92839
|
+
}
|
|
92840
|
+
canBundle(file) {
|
|
92841
|
+
// assert by media type
|
|
92842
|
+
if (file.mediaType !== 'text/plain') {
|
|
92843
|
+
return _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_2__["default"].includes(file.mediaType);
|
|
92844
|
+
}
|
|
92845
|
+
|
|
92846
|
+
// assert by inspecting ApiDOM
|
|
92847
|
+
return (0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_3__.isOpenApi3_0Element)(file.parseResult?.result);
|
|
92848
|
+
}
|
|
92849
|
+
async bundle(file, options) {
|
|
92850
|
+
const immutableRefSet = options.bundle.refSet ?? new _ReferenceSet_mjs__WEBPACK_IMPORTED_MODULE_5__["default"]();
|
|
92851
|
+
const mutableRefSet = new _ReferenceSet_mjs__WEBPACK_IMPORTED_MODULE_5__["default"]();
|
|
92852
|
+
let refSet = immutableRefSet;
|
|
92853
|
+
let reference;
|
|
92854
|
+
|
|
92855
|
+
// determine the initial reference
|
|
92856
|
+
if (!immutableRefSet.has(file.uri)) {
|
|
92857
|
+
reference = new _Reference_mjs__WEBPACK_IMPORTED_MODULE_4__["default"]({
|
|
92858
|
+
uri: file.uri,
|
|
92859
|
+
value: file.parseResult
|
|
92860
|
+
});
|
|
92861
|
+
immutableRefSet.add(reference);
|
|
92862
|
+
} else {
|
|
92863
|
+
// pre-computed refSet was provided as configuration option
|
|
92864
|
+
reference = immutableRefSet.find(ref => ref.uri === file.uri);
|
|
92865
|
+
}
|
|
92866
|
+
|
|
92867
|
+
/**
|
|
92868
|
+
* Clone refSet due the bundling process being mutable.
|
|
92869
|
+
* We don't want to mutate the original refSet and the references.
|
|
92870
|
+
*/
|
|
92871
|
+
if (options.bundle.immutable) {
|
|
92872
|
+
immutableRefSet.refs.map(ref => new _Reference_mjs__WEBPACK_IMPORTED_MODULE_4__["default"]({
|
|
92873
|
+
...ref,
|
|
92874
|
+
value: (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.cloneDeep)(ref.value)
|
|
92875
|
+
})).forEach(ref => mutableRefSet.add(ref));
|
|
92876
|
+
reference = mutableRefSet.find(ref => ref.uri === file.uri);
|
|
92877
|
+
refSet = mutableRefSet;
|
|
92878
|
+
}
|
|
92879
|
+
const visitor = new _visitor_mjs__WEBPACK_IMPORTED_MODULE_7__["default"]({
|
|
92880
|
+
reference: reference,
|
|
92881
|
+
options
|
|
92882
|
+
});
|
|
92883
|
+
await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_1__.traverseAsync)(refSet.rootRef.value, visitor, {
|
|
92884
|
+
mutable: true
|
|
92885
|
+
});
|
|
92886
|
+
const parseResult = reference.value;
|
|
92887
|
+
|
|
92888
|
+
/**
|
|
92889
|
+
* Release all memory if this refSet was not provided as a configuration option.
|
|
92890
|
+
* If provided as configuration option, then provider is responsible for cleanup.
|
|
92891
|
+
*/
|
|
92892
|
+
if (options.bundle.refSet === null) {
|
|
92893
|
+
immutableRefSet.clean();
|
|
92894
|
+
}
|
|
92895
|
+
mutableRefSet.clean();
|
|
92896
|
+
return parseResult;
|
|
92897
|
+
}
|
|
92898
|
+
}
|
|
92899
|
+
|
|
92900
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OpenAPI3_0BundleStrategy);
|
|
92901
|
+
|
|
92902
|
+
/***/ },
|
|
92903
|
+
|
|
92904
|
+
/***/ 98968
|
|
92905
|
+
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
92906
|
+
|
|
92907
|
+
"use strict";
|
|
92908
|
+
__webpack_require__.r(__webpack_exports__);
|
|
92909
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
92910
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
92911
|
+
/* harmony export */ });
|
|
92912
|
+
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6352);
|
|
92913
|
+
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25162);
|
|
92914
|
+
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12111);
|
|
92915
|
+
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(97071);
|
|
92916
|
+
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(84660);
|
|
92917
|
+
/* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(37205);
|
|
92918
|
+
/* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(44673);
|
|
92919
|
+
/* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(16280);
|
|
92920
|
+
/* harmony import */ var _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(44641);
|
|
92921
|
+
/* harmony import */ var _speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(80796);
|
|
92922
|
+
/* harmony import */ var _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(12020);
|
|
92923
|
+
/* harmony import */ var _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(61198);
|
|
92924
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(30609);
|
|
92925
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(64708);
|
|
92926
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(32131);
|
|
92927
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(21314);
|
|
92928
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(29881);
|
|
92929
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(23806);
|
|
92930
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(23031);
|
|
92931
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(63842);
|
|
92932
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(87455);
|
|
92933
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(55122);
|
|
92934
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(71117);
|
|
92935
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(72257);
|
|
92936
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(69511);
|
|
92937
|
+
/* harmony import */ var _errors_BundleError_mjs__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(89693);
|
|
92938
|
+
/* harmony import */ var _errors_UnresolvableReferenceError_mjs__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(34968);
|
|
92939
|
+
/* harmony import */ var _errors_MaximumBundleDepthError_mjs__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(55086);
|
|
92940
|
+
/* harmony import */ var _errors_MaximumResolveDepthError_mjs__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(10476);
|
|
92941
|
+
/* harmony import */ var _util_url_mjs__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(18917);
|
|
92942
|
+
/* harmony import */ var _parse_index_mjs__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(85533);
|
|
92943
|
+
/* harmony import */ var _Reference_mjs__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(82302);
|
|
92944
|
+
/* harmony import */ var _util_mjs__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(78814);
|
|
92945
|
+
|
|
92946
|
+
|
|
92947
|
+
|
|
92948
|
+
|
|
92949
|
+
|
|
92950
|
+
|
|
92951
|
+
|
|
92952
|
+
|
|
92953
|
+
|
|
92954
|
+
|
|
92955
|
+
|
|
92956
|
+
|
|
92957
|
+
|
|
92958
|
+
|
|
92959
|
+
|
|
92960
|
+
/**
|
|
92961
|
+
* Maps the `referenced-element` meta value (set during refraction) to the
|
|
92962
|
+
* Components Object field where the referenced element should be hoisted.
|
|
92963
|
+
* Field names are sourced from the Components Object fixed fields so they
|
|
92964
|
+
* cannot drift from the namespace definition.
|
|
92965
|
+
*/
|
|
92966
|
+
const cf = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_5__.fixedFields)(_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_12__["default"], {
|
|
92967
|
+
indexed: true
|
|
92968
|
+
});
|
|
92969
|
+
const componentFieldByReferencedElement = {
|
|
92970
|
+
schema: cf.schemas.name,
|
|
92971
|
+
response: cf.responses.name,
|
|
92972
|
+
parameter: cf.parameters.name,
|
|
92973
|
+
example: cf.examples.name,
|
|
92974
|
+
requestBody: cf.requestBodies.name,
|
|
92975
|
+
header: cf.headers.name,
|
|
92976
|
+
securityScheme: cf.securitySchemes.name,
|
|
92977
|
+
link: cf.links.name,
|
|
92978
|
+
callback: cf.callbacks.name
|
|
92979
|
+
};
|
|
92980
|
+
|
|
92981
|
+
/**
|
|
92982
|
+
* Maps a Components Object field to the named-content element the namespace
|
|
92983
|
+
* uses for it, so a bundle-created field matches a parsed/refracted one
|
|
92984
|
+
* (e.g. carries the `components-schemas` class) rather than being a generic
|
|
92985
|
+
* object.
|
|
92986
|
+
*/
|
|
92987
|
+
const componentFieldElementByField = {
|
|
92988
|
+
[cf.schemas.name]: _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_23__["default"],
|
|
92989
|
+
[cf.responses.name]: _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_22__["default"],
|
|
92990
|
+
[cf.parameters.name]: _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_20__["default"],
|
|
92991
|
+
[cf.examples.name]: _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_17__["default"],
|
|
92992
|
+
[cf.requestBodies.name]: _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_21__["default"],
|
|
92993
|
+
[cf.headers.name]: _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_18__["default"],
|
|
92994
|
+
[cf.securitySchemes.name]: _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_24__["default"],
|
|
92995
|
+
[cf.links.name]: _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_19__["default"],
|
|
92996
|
+
[cf.callbacks.name]: _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_16__["default"]
|
|
92997
|
+
};
|
|
92998
|
+
|
|
92999
|
+
/**
|
|
93000
|
+
* @public
|
|
93001
|
+
*/
|
|
93002
|
+
|
|
93003
|
+
/**
|
|
93004
|
+
* @public
|
|
93005
|
+
*/
|
|
93006
|
+
class OpenAPI3_0BundleVisitor {
|
|
93007
|
+
reference;
|
|
93008
|
+
options;
|
|
93009
|
+
|
|
93010
|
+
/**
|
|
93011
|
+
* The base URI (without hash) of the entry document. A reference is
|
|
93012
|
+
* considered internal when it resolves to this URI and external otherwise.
|
|
93013
|
+
* Derived from the shared refSet's root reference.
|
|
93014
|
+
*/
|
|
93015
|
+
get entryURI() {
|
|
93016
|
+
return _util_url_mjs__WEBPACK_IMPORTED_MODULE_29__.stripHash(this.reference.refSet?.rootRef?.uri ?? '');
|
|
93017
|
+
}
|
|
93018
|
+
|
|
93019
|
+
/**
|
|
93020
|
+
* The entry parse result. Derived from the shared refSet's root reference.
|
|
93021
|
+
*/
|
|
93022
|
+
get entryParseResult() {
|
|
93023
|
+
return this.reference.refSet.rootRef.value;
|
|
93024
|
+
}
|
|
93025
|
+
|
|
93026
|
+
/**
|
|
93027
|
+
* The entry document element. Hoisted external fragments are placed into its
|
|
93028
|
+
* `components` object. The `canBundle` guard guarantees it is an
|
|
93029
|
+
* OpenApi3_0Element.
|
|
93030
|
+
*/
|
|
93031
|
+
get entryResult() {
|
|
93032
|
+
return this.entryParseResult.result;
|
|
93033
|
+
}
|
|
93034
|
+
|
|
93035
|
+
/**
|
|
93036
|
+
* Shared across the entry document and every external document visitor.
|
|
93037
|
+
* Guarantees each external fragment is hoisted exactly once and gives us a
|
|
93038
|
+
* stable internal pointer to rewrite every referencing element to.
|
|
93039
|
+
*/
|
|
93040
|
+
assignments;
|
|
93041
|
+
|
|
93042
|
+
/**
|
|
93043
|
+
* Component names already reserved per Components Object field. Reserved
|
|
93044
|
+
* before recursion so collision suffixing (`Pet`, `Pet-2`, ...) accounts for
|
|
93045
|
+
* components that are still being bundled.
|
|
93046
|
+
*/
|
|
93047
|
+
reservedNames;
|
|
93048
|
+
|
|
93049
|
+
/**
|
|
93050
|
+
* Caches refracted fragments keyed by source element and target element type.
|
|
93051
|
+
* The type is part of the key because the same source can be refracted into
|
|
93052
|
+
* different semantic elements depending on the referencing context (e.g. a
|
|
93053
|
+
* generic object referenced once as a Parameter and once as a Response).
|
|
93054
|
+
*/
|
|
93055
|
+
refractCache;
|
|
93056
|
+
|
|
93057
|
+
/**
|
|
93058
|
+
* Canonical URIs of Path Item Objects currently being inlined. Path Items
|
|
93059
|
+
* are not hoisted into Components Object (no `components.pathItems` in
|
|
93060
|
+
* OpenAPI 3.0), so the `assignments` map can't break their cycles. This
|
|
93061
|
+
* stack guards against circular external Path Item references.
|
|
93062
|
+
*/
|
|
93063
|
+
inlineStack;
|
|
93064
|
+
constructor({
|
|
93065
|
+
reference,
|
|
93066
|
+
options,
|
|
93067
|
+
assignments = new Map(),
|
|
93068
|
+
reservedNames = new Map(),
|
|
93069
|
+
refractCache = new WeakMap(),
|
|
93070
|
+
inlineStack = new Set()
|
|
93071
|
+
}) {
|
|
93072
|
+
this.reference = reference;
|
|
93073
|
+
this.options = options;
|
|
93074
|
+
this.inlineStack = inlineStack;
|
|
93075
|
+
this.assignments = assignments;
|
|
93076
|
+
this.reservedNames = reservedNames;
|
|
93077
|
+
this.refractCache = refractCache;
|
|
93078
|
+
}
|
|
93079
|
+
getRefracted(source, type) {
|
|
93080
|
+
return this.refractCache.get(source)?.get(type);
|
|
93081
|
+
}
|
|
93082
|
+
setRefracted(source, type, refracted) {
|
|
93083
|
+
let byType = this.refractCache.get(source);
|
|
93084
|
+
if (byType === undefined) {
|
|
93085
|
+
byType = new Map();
|
|
93086
|
+
this.refractCache.set(source, byType);
|
|
93087
|
+
}
|
|
93088
|
+
byType.set(type, refracted);
|
|
93089
|
+
}
|
|
93090
|
+
toBaseURI(uri) {
|
|
93091
|
+
return _util_url_mjs__WEBPACK_IMPORTED_MODULE_29__.resolve(this.reference.uri, _util_url_mjs__WEBPACK_IMPORTED_MODULE_29__.sanitize(_util_url_mjs__WEBPACK_IMPORTED_MODULE_29__.stripHash(uri)));
|
|
93092
|
+
}
|
|
93093
|
+
async toReference(uri) {
|
|
93094
|
+
// detect maximum depth of resolution
|
|
93095
|
+
if (this.reference.depth >= this.options.resolve.maxDepth) {
|
|
93096
|
+
throw new _errors_MaximumResolveDepthError_mjs__WEBPACK_IMPORTED_MODULE_28__["default"](`Maximum resolution depth of ${this.options.resolve.maxDepth} has been exceeded by file "${this.reference.uri}"`, {
|
|
93097
|
+
maxDepth: this.options.resolve.maxDepth,
|
|
93098
|
+
uri: this.reference.uri
|
|
93099
|
+
});
|
|
93100
|
+
}
|
|
93101
|
+
const baseURI = this.toBaseURI(uri);
|
|
93102
|
+
const {
|
|
93103
|
+
refSet
|
|
93104
|
+
} = this.reference;
|
|
93105
|
+
|
|
93106
|
+
// we've already processed this Reference in past
|
|
93107
|
+
if (refSet.has(baseURI)) {
|
|
93108
|
+
return refSet.find((0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])(baseURI, 'uri'));
|
|
93109
|
+
}
|
|
93110
|
+
const parseResult = await (0,_parse_index_mjs__WEBPACK_IMPORTED_MODULE_30__["default"])(_util_url_mjs__WEBPACK_IMPORTED_MODULE_29__.unsanitize(baseURI), {
|
|
93111
|
+
...this.options,
|
|
93112
|
+
parse: {
|
|
93113
|
+
...this.options.parse,
|
|
93114
|
+
mediaType: 'text/plain'
|
|
93115
|
+
}
|
|
93116
|
+
});
|
|
93117
|
+
const reference = new _Reference_mjs__WEBPACK_IMPORTED_MODULE_31__["default"]({
|
|
93118
|
+
uri: baseURI,
|
|
93119
|
+
value: parseResult,
|
|
93120
|
+
depth: this.reference.depth + 1
|
|
93121
|
+
});
|
|
93122
|
+
refSet.add(reference);
|
|
93123
|
+
return reference;
|
|
93124
|
+
}
|
|
93125
|
+
|
|
93126
|
+
/**
|
|
93127
|
+
* Normalizes a self-reference (e.g. `./root.json#/components/schemas/Pet`)
|
|
93128
|
+
* to a bare fragment (`#/components/schemas/Pet`) so the bundled document stays
|
|
93129
|
+
* transferable. Bare fragments are returned unchanged.
|
|
93130
|
+
*/
|
|
93131
|
+
normalizeSelfReference(ref) {
|
|
93132
|
+
return ref.startsWith('#') ? ref : _util_url_mjs__WEBPACK_IMPORTED_MODULE_29__.getHash(ref);
|
|
93133
|
+
}
|
|
93134
|
+
|
|
93135
|
+
/**
|
|
93136
|
+
* Handles an error according to the `bundle.continueOnError` option.
|
|
93137
|
+
*
|
|
93138
|
+
* For new errors: wraps in UnresolvableReferenceError with structured
|
|
93139
|
+
* context. For errors already wrapped by a nested visitor: prepends the
|
|
93140
|
+
* current hop to the trace.
|
|
93141
|
+
*
|
|
93142
|
+
* Inner/intermediate visitors always throw to let the trace accumulate. Only
|
|
93143
|
+
* the entry document visitor respects continueOnError (callback/swallow/throw).
|
|
93144
|
+
*/
|
|
93145
|
+
handleError(message, error, referencingElement, refFieldName, refFieldValue, visitorPath) {
|
|
93146
|
+
// a collision reported as `error` is a deliberate hard stop with no
|
|
93147
|
+
// resolution-failure analog, so pass it through unchanged. A maxDepth
|
|
93148
|
+
// breach (MaximumBundleDepthError, which also extends BundleError) is a
|
|
93149
|
+
// resolution failure and flows through below — wrapped and subject to
|
|
93150
|
+
// continueOnError, like dereferencing.
|
|
93151
|
+
if (error instanceof _errors_BundleError_mjs__WEBPACK_IMPORTED_MODULE_25__["default"] && !(error instanceof _errors_MaximumBundleDepthError_mjs__WEBPACK_IMPORTED_MODULE_27__["default"])) {
|
|
93152
|
+
throw error;
|
|
93153
|
+
}
|
|
93154
|
+
const {
|
|
93155
|
+
continueOnError
|
|
93156
|
+
} = this.options.bundle;
|
|
93157
|
+
const isEntryDocument = _util_url_mjs__WEBPACK_IMPORTED_MODULE_29__.stripHash(this.reference.refSet?.rootRef?.uri ?? '') === this.reference.uri;
|
|
93158
|
+
const uri = this.reference.uri;
|
|
93159
|
+
const type = referencingElement.element;
|
|
93160
|
+
const codeFrame = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(referencingElement);
|
|
93161
|
+
const location = visitorPath.formatPath();
|
|
93162
|
+
const hop = {
|
|
93163
|
+
uri,
|
|
93164
|
+
type,
|
|
93165
|
+
refFieldName,
|
|
93166
|
+
refFieldValue,
|
|
93167
|
+
location,
|
|
93168
|
+
codeFrame
|
|
93169
|
+
};
|
|
93170
|
+
let unresolvedError;
|
|
93171
|
+
if (error instanceof _errors_UnresolvableReferenceError_mjs__WEBPACK_IMPORTED_MODULE_26__["default"]) {
|
|
93172
|
+
// @ts-ignore
|
|
93173
|
+
error.trace = [hop, ...error.trace];
|
|
93174
|
+
unresolvedError = error;
|
|
93175
|
+
} else {
|
|
93176
|
+
unresolvedError = new _errors_UnresolvableReferenceError_mjs__WEBPACK_IMPORTED_MODULE_26__["default"](message, {
|
|
93177
|
+
cause: error,
|
|
93178
|
+
type,
|
|
93179
|
+
uri,
|
|
93180
|
+
location,
|
|
93181
|
+
codeFrame,
|
|
93182
|
+
refFieldName,
|
|
93183
|
+
refFieldValue,
|
|
93184
|
+
trace: []
|
|
93185
|
+
});
|
|
93186
|
+
}
|
|
93187
|
+
if (!isEntryDocument || continueOnError === false) throw unresolvedError;
|
|
93188
|
+
if (typeof continueOnError === 'function') continueOnError(unresolvedError);
|
|
93189
|
+
}
|
|
93190
|
+
|
|
93191
|
+
/**
|
|
93192
|
+
* Lazily creates the Components Object (and the requested field within it)
|
|
93193
|
+
* on the entry document, returning the field where a fragment is hoisted.
|
|
93194
|
+
*/
|
|
93195
|
+
ensureComponentsField(field) {
|
|
93196
|
+
const entryResult = this.entryResult;
|
|
93197
|
+
let components = entryResult.components;
|
|
93198
|
+
if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isObjectElement)(components)) {
|
|
93199
|
+
components = new _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_12__["default"]();
|
|
93200
|
+
entryResult.components = components;
|
|
93201
|
+
}
|
|
93202
|
+
let fieldElement = components.get(field);
|
|
93203
|
+
if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isObjectElement)(fieldElement)) {
|
|
93204
|
+
const FieldElement = componentFieldElementByField[field] ?? _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__["default"];
|
|
93205
|
+
fieldElement = new FieldElement();
|
|
93206
|
+
components.set(field, fieldElement);
|
|
93207
|
+
}
|
|
93208
|
+
return fieldElement;
|
|
93209
|
+
}
|
|
93210
|
+
|
|
93211
|
+
/**
|
|
93212
|
+
* Derives a component name from the referenced JSON Pointer's last token,
|
|
93213
|
+
* falling back to the referenced file's basename.
|
|
93214
|
+
*/
|
|
93215
|
+
basenameOf(jsonPointer, baseURI) {
|
|
93216
|
+
const tokens = (0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__.parse)(jsonPointer).tree;
|
|
93217
|
+
const lastToken = tokens.length > 0 ? tokens[tokens.length - 1] : '';
|
|
93218
|
+
return lastToken || _util_url_mjs__WEBPACK_IMPORTED_MODULE_29__.getBasename(baseURI) || 'Schema';
|
|
93219
|
+
}
|
|
93220
|
+
|
|
93221
|
+
/**
|
|
93222
|
+
* Computes the base component name (before collision suffixing) according to
|
|
93223
|
+
* the configured naming strategy.
|
|
93224
|
+
*/
|
|
93225
|
+
baseName(element, field, jsonPointer, baseURI) {
|
|
93226
|
+
// strategy specific options take precedence over the top-level bundle options
|
|
93227
|
+
const componentNamesStrategy = this.options.bundle.strategyOpts['openapi-3-0']?.componentNamesStrategy ?? this.options.bundle.componentNamesStrategy;
|
|
93228
|
+
if (typeof componentNamesStrategy === 'function') {
|
|
93229
|
+
const resolved = componentNamesStrategy({
|
|
93230
|
+
element,
|
|
93231
|
+
field,
|
|
93232
|
+
jsonPointer,
|
|
93233
|
+
baseURI
|
|
93234
|
+
});
|
|
93235
|
+
if (typeof resolved === 'string' && resolved !== '') {
|
|
93236
|
+
return resolved;
|
|
93237
|
+
}
|
|
93238
|
+
return this.basenameOf(jsonPointer, baseURI);
|
|
93239
|
+
}
|
|
93240
|
+
if (componentNamesStrategy === 'title') {
|
|
93241
|
+
const title = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isObjectElement)(element) ? (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(element.get('title')) : undefined;
|
|
93242
|
+
if (typeof title === 'string' && title.trim() !== '') {
|
|
93243
|
+
const name = (0,_util_mjs__WEBPACK_IMPORTED_MODULE_32__.sanitizeComponentName)((0,_util_mjs__WEBPACK_IMPORTED_MODULE_32__.toPascalCase)(title));
|
|
93244
|
+
if (name !== '') return name;
|
|
93245
|
+
}
|
|
93246
|
+
// fall back to basename when no usable title is present
|
|
93247
|
+
}
|
|
93248
|
+
return this.basenameOf(jsonPointer, baseURI);
|
|
93249
|
+
}
|
|
93250
|
+
|
|
93251
|
+
/**
|
|
93252
|
+
* Computes a collision-free component name within the target field. A name is
|
|
93253
|
+
* taken if it's already placed in components or reserved by a component that
|
|
93254
|
+
* is still being bundled (reserved before recursion).
|
|
93255
|
+
*/
|
|
93256
|
+
uniqueName(candidate, field) {
|
|
93257
|
+
const fieldElement = this.ensureComponentsField(field);
|
|
93258
|
+
const reserved = this.reservedNames.get(field) ?? new Set();
|
|
93259
|
+
return (0,_util_mjs__WEBPACK_IMPORTED_MODULE_32__.uniqueName)(candidate, name => fieldElement.hasKey(name) || reserved.has(name));
|
|
93260
|
+
}
|
|
93261
|
+
async ReferenceElement(path) {
|
|
93262
|
+
const referencingElement = path.node;
|
|
93263
|
+
const $ref = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(referencingElement.$ref);
|
|
93264
|
+
const retrievalURI = this.toBaseURI($ref);
|
|
93265
|
+
const isInternalReference = this.entryURI === retrievalURI;
|
|
93266
|
+
const isExternalReference = !isInternalReference;
|
|
93267
|
+
if (isInternalReference) {
|
|
93268
|
+
// normalize self-references to a bare fragment so the bundled
|
|
93269
|
+
// document stays transferable; bare fragments are left untouched
|
|
93270
|
+
referencingElement.set('$ref', this.normalizeSelfReference($ref));
|
|
93271
|
+
path.skip();
|
|
93272
|
+
return;
|
|
93273
|
+
}
|
|
93274
|
+
|
|
93275
|
+
// honor the resolve.external switch
|
|
93276
|
+
if (!this.options.resolve.external && isExternalReference) {
|
|
93277
|
+
path.skip();
|
|
93278
|
+
return;
|
|
93279
|
+
}
|
|
93280
|
+
const $refBaseURI = _util_url_mjs__WEBPACK_IMPORTED_MODULE_29__.resolve(retrievalURI, $ref);
|
|
93281
|
+
const jsonPointer = _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__.URIFragmentIdentifier.fromURIReference($refBaseURI);
|
|
93282
|
+
|
|
93283
|
+
// the target bucket depends on the referencing context, so it's part of the
|
|
93284
|
+
// identity: the same external target referenced as e.g. both a parameter and
|
|
93285
|
+
// a response must be hoisted into both components fields. The refractor sets
|
|
93286
|
+
// `referenced-element` for every Reference Object position; the `schemas`
|
|
93287
|
+
// fallback is a defensive default for the (unexpected) untagged case.
|
|
93288
|
+
const referencedElementType = referencingElement.meta.get('referenced-element');
|
|
93289
|
+
const field = componentFieldByReferencedElement[referencedElementType] ?? componentFieldByReferencedElement.schema;
|
|
93290
|
+
const canonicalKey = `${field}\t${retrievalURI}#${jsonPointer}`;
|
|
93291
|
+
|
|
93292
|
+
// already hoisted (or being hoisted) — just rewrite the pointer.
|
|
93293
|
+
//
|
|
93294
|
+
// this is also how circular references terminate: the assignment is
|
|
93295
|
+
// reserved BEFORE recursing into the fragment (see below), so a reference
|
|
93296
|
+
// that cycles back (directly or indirectly) finds its pointer already
|
|
93297
|
+
// reserved here and is rewritten without recursing. Cycles are deliberately
|
|
93298
|
+
// preserved as internal `$ref`s pointing at each other — that is valid,
|
|
93299
|
+
// serializable output; resolving the cycle (if desired) is dereferencing's
|
|
93300
|
+
// job, not bundling's.
|
|
93301
|
+
if (this.assignments.has(canonicalKey)) {
|
|
93302
|
+
referencingElement.set('$ref', this.assignments.get(canonicalKey));
|
|
93303
|
+
path.skip();
|
|
93304
|
+
return;
|
|
93305
|
+
}
|
|
93306
|
+
try {
|
|
93307
|
+
// detect maximum depth of bundling
|
|
93308
|
+
if (this.reference.depth >= this.options.bundle.maxDepth) {
|
|
93309
|
+
throw new _errors_MaximumBundleDepthError_mjs__WEBPACK_IMPORTED_MODULE_27__["default"](`Maximum bundle depth of "${this.options.bundle.maxDepth}" has been exceeded in file "${this.reference.uri}"`, {
|
|
93310
|
+
maxDepth: this.options.bundle.maxDepth,
|
|
93311
|
+
uri: this.reference.uri
|
|
93312
|
+
});
|
|
93313
|
+
}
|
|
93314
|
+
const reference = await this.toReference($ref);
|
|
93315
|
+
|
|
93316
|
+
// possibly non-semantic fragment
|
|
93317
|
+
let referencedElement = (0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_10__.evaluate)(reference.value.result, jsonPointer);
|
|
93318
|
+
|
|
93319
|
+
// apply semantics to the fragment so nested references become Reference Objects
|
|
93320
|
+
if (referencedElement.element !== referencedElementType && !(0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_14__.isReferenceElement)(referencedElement)) {
|
|
93321
|
+
const cached = this.getRefracted(referencedElement, referencedElementType);
|
|
93322
|
+
if (cached !== undefined) {
|
|
93323
|
+
referencedElement = cached;
|
|
93324
|
+
} else if ((0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_15__.isReferenceLikeElement)(referencedElement)) {
|
|
93325
|
+
const sourceElement = referencedElement;
|
|
93326
|
+
referencedElement = (0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_13__.refractReference)(referencedElement);
|
|
93327
|
+
referencedElement.meta.set('referenced-element', referencedElementType);
|
|
93328
|
+
this.setRefracted(sourceElement, referencedElementType, referencedElement);
|
|
93329
|
+
} else {
|
|
93330
|
+
const sourceElement = referencedElement;
|
|
93331
|
+
referencedElement = (0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_13__["default"])(referencedElement, {
|
|
93332
|
+
element: referencedElementType
|
|
93333
|
+
});
|
|
93334
|
+
this.setRefracted(sourceElement, referencedElementType, referencedElement);
|
|
93335
|
+
}
|
|
93336
|
+
}
|
|
93337
|
+
const preferredName = this.baseName(referencedElement, field, jsonPointer, retrievalURI);
|
|
93338
|
+
const componentName = this.uniqueName(preferredName, field);
|
|
93339
|
+
const internalPointer = `#/components/${field}/${(0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__.escape)(componentName)}`;
|
|
93340
|
+
|
|
93341
|
+
// a rename means two distinct targets resolved to the same name; each
|
|
93342
|
+
// keeps its own component (and origin), so report the rename per severity.
|
|
93343
|
+
// strategy specific options take precedence over the top-level bundle options
|
|
93344
|
+
const onComponentNameCollision = this.options.bundle.strategyOpts['openapi-3-0']?.onComponentNameCollision ?? this.options.bundle.onComponentNameCollision;
|
|
93345
|
+
if (componentName !== preferredName && onComponentNameCollision !== 'off') {
|
|
93346
|
+
const message = `Component "${preferredName}" in components/${field} is referenced with the same name but different content. Renamed to "${componentName}".`;
|
|
93347
|
+
if (onComponentNameCollision === 'error') {
|
|
93348
|
+
throw new _errors_BundleError_mjs__WEBPACK_IMPORTED_MODULE_25__["default"](message);
|
|
93349
|
+
}
|
|
93350
|
+
const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__["default"](message);
|
|
93351
|
+
annotation.classes.push('warning');
|
|
93352
|
+
annotation.code = 'bundle-component-name-collision';
|
|
93353
|
+
// append (never prepend) so the result element stays ahead of annotations
|
|
93354
|
+
this.entryParseResult.content.push(annotation);
|
|
93355
|
+
}
|
|
93356
|
+
|
|
93357
|
+
// reserve the assignment and component name before recursing so cyclic
|
|
93358
|
+
// references terminate
|
|
93359
|
+
this.assignments.set(canonicalKey, internalPointer);
|
|
93360
|
+
if (!this.reservedNames.has(field)) this.reservedNames.set(field, new Set());
|
|
93361
|
+
this.reservedNames.get(field).add(componentName);
|
|
93362
|
+
|
|
93363
|
+
// own a copy of the fragment and bundle its own external references
|
|
93364
|
+
const hoistedElement = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.cloneDeep)(referencedElement);
|
|
93365
|
+
const visitor = new OpenAPI3_0BundleVisitor({
|
|
93366
|
+
reference,
|
|
93367
|
+
options: this.options,
|
|
93368
|
+
assignments: this.assignments,
|
|
93369
|
+
reservedNames: this.reservedNames,
|
|
93370
|
+
refractCache: this.refractCache,
|
|
93371
|
+
inlineStack: this.inlineStack
|
|
93372
|
+
});
|
|
93373
|
+
const bundledElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_9__.traverseAsync)(hoistedElement, visitor, {
|
|
93374
|
+
mutable: true
|
|
93375
|
+
});
|
|
93376
|
+
|
|
93377
|
+
// annotate the hoisted fragment with info about its origin
|
|
93378
|
+
if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isElement)(bundledElement)) {
|
|
93379
|
+
bundledElement.meta.set('ref-origin', reference.uri);
|
|
93380
|
+
}
|
|
93381
|
+
|
|
93382
|
+
// place the bundled fragment into the entry document's components
|
|
93383
|
+
this.ensureComponentsField(field).set(componentName, bundledElement);
|
|
93384
|
+
|
|
93385
|
+
// rewrite the referencing element to point at the hoisted fragment
|
|
93386
|
+
referencingElement.set('$ref', internalPointer);
|
|
93387
|
+
path.skip();
|
|
93388
|
+
} catch (error) {
|
|
93389
|
+
this.handleError(`Error while bundling Reference Object. Cannot resolve $ref "${$ref}": ${error.message}`, error, referencingElement, '$ref', $ref, path);
|
|
93390
|
+
path.skip();
|
|
93391
|
+
}
|
|
93392
|
+
}
|
|
93393
|
+
|
|
93394
|
+
/**
|
|
93395
|
+
* Path Item Object is not a Components Object field in OpenAPI 3.0
|
|
93396
|
+
* (unlike 3.1 which has `components.pathItems`). An external Path Item
|
|
93397
|
+
* reference therefore cannot be hoisted; it is inlined in place instead,
|
|
93398
|
+
* after bundling its own external references.
|
|
93399
|
+
*/
|
|
93400
|
+
async PathItemElement(path) {
|
|
93401
|
+
const pathItemElement = path.node;
|
|
93402
|
+
|
|
93403
|
+
// ignore Path Item Objects without a $ref field
|
|
93404
|
+
if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isStringElement)(pathItemElement.$ref)) {
|
|
93405
|
+
return;
|
|
93406
|
+
}
|
|
93407
|
+
const $ref = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(pathItemElement.$ref);
|
|
93408
|
+
const retrievalURI = this.toBaseURI($ref);
|
|
93409
|
+
const isInternalReference = this.entryURI === retrievalURI;
|
|
93410
|
+
const isExternalReference = !isInternalReference;
|
|
93411
|
+
if (isInternalReference) {
|
|
93412
|
+
// normalize self-references to a bare fragment so the bundled
|
|
93413
|
+
// document stays transferable; bare fragments are left untouched
|
|
93414
|
+
pathItemElement.set('$ref', this.normalizeSelfReference($ref));
|
|
93415
|
+
return;
|
|
93416
|
+
}
|
|
93417
|
+
|
|
93418
|
+
// honor the resolve.external switch
|
|
93419
|
+
if (!this.options.resolve.external && isExternalReference) {
|
|
93420
|
+
return;
|
|
93421
|
+
}
|
|
93422
|
+
const $refBaseURI = _util_url_mjs__WEBPACK_IMPORTED_MODULE_29__.resolve(retrievalURI, $ref);
|
|
93423
|
+
const jsonPointer = _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__.URIFragmentIdentifier.fromURIReference($refBaseURI);
|
|
93424
|
+
const canonicalKey = `${retrievalURI}#${jsonPointer}`;
|
|
93425
|
+
|
|
93426
|
+
// a circular external Path Item reference cannot be inlined without
|
|
93427
|
+
// recursing forever; leave the $ref in place to break the cycle
|
|
93428
|
+
if (this.inlineStack.has(canonicalKey)) {
|
|
93429
|
+
return;
|
|
93430
|
+
}
|
|
93431
|
+
try {
|
|
93432
|
+
// detect maximum depth of bundling
|
|
93433
|
+
if (this.reference.depth >= this.options.bundle.maxDepth) {
|
|
93434
|
+
throw new _errors_MaximumBundleDepthError_mjs__WEBPACK_IMPORTED_MODULE_27__["default"](`Maximum bundle depth of "${this.options.bundle.maxDepth}" has been exceeded in file "${this.reference.uri}"`, {
|
|
93435
|
+
maxDepth: this.options.bundle.maxDepth,
|
|
93436
|
+
uri: this.reference.uri
|
|
93437
|
+
});
|
|
93438
|
+
}
|
|
93439
|
+
const reference = await this.toReference($ref);
|
|
93440
|
+
let referencedElement = (0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_10__.evaluate)(reference.value.result, jsonPointer);
|
|
93441
|
+
|
|
93442
|
+
// apply Path Item semantics to the referenced fragment
|
|
93443
|
+
if (!(0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_14__.isPathItemElement)(referencedElement)) {
|
|
93444
|
+
const cached = this.getRefracted(referencedElement, 'pathItem');
|
|
93445
|
+
if (cached !== undefined) {
|
|
93446
|
+
referencedElement = cached;
|
|
93447
|
+
} else {
|
|
93448
|
+
const sourceElement = referencedElement;
|
|
93449
|
+
referencedElement = (0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_13__.refractPathItem)(referencedElement);
|
|
93450
|
+
this.setRefracted(sourceElement, 'pathItem', referencedElement);
|
|
93451
|
+
}
|
|
93452
|
+
}
|
|
93453
|
+
|
|
93454
|
+
// own a copy and bundle the external references it contains
|
|
93455
|
+
const inlinedElement = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.cloneDeep)(referencedElement);
|
|
93456
|
+
this.inlineStack.add(canonicalKey);
|
|
93457
|
+
const visitor = new OpenAPI3_0BundleVisitor({
|
|
93458
|
+
reference,
|
|
93459
|
+
options: this.options,
|
|
93460
|
+
assignments: this.assignments,
|
|
93461
|
+
reservedNames: this.reservedNames,
|
|
93462
|
+
refractCache: this.refractCache,
|
|
93463
|
+
inlineStack: this.inlineStack
|
|
93464
|
+
});
|
|
93465
|
+
let bundledElement;
|
|
93466
|
+
try {
|
|
93467
|
+
bundledElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_9__.traverseAsync)(inlinedElement, visitor, {
|
|
93468
|
+
mutable: true
|
|
93469
|
+
});
|
|
93470
|
+
} finally {
|
|
93471
|
+
this.inlineStack.delete(canonicalKey);
|
|
93472
|
+
}
|
|
93473
|
+
|
|
93474
|
+
// merge sibling fields from the referencing Path Item over the referenced
|
|
93475
|
+
// one. The referencing `$ref` is being resolved away and is skipped; the
|
|
93476
|
+
// referenced element keeps its own `$ref` if one survived (i.e. it was
|
|
93477
|
+
// left in place to break a circular external Path Item chain).
|
|
93478
|
+
pathItemElement.forEach((_value, keyElement, item) => {
|
|
93479
|
+
const key = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(keyElement);
|
|
93480
|
+
if (key === '$ref') return;
|
|
93481
|
+
bundledElement.remove(key);
|
|
93482
|
+
bundledElement.content.push(item);
|
|
93483
|
+
});
|
|
93484
|
+
bundledElement.meta.set('ref-origin', reference.uri);
|
|
93485
|
+
path.replaceWith(bundledElement);
|
|
93486
|
+
} catch (error) {
|
|
93487
|
+
this.handleError(`Error while bundling Path Item Object. Cannot resolve $ref "${$ref}": ${error.message}`, error, pathItemElement, '$ref', $ref, path);
|
|
93488
|
+
}
|
|
93489
|
+
}
|
|
93490
|
+
|
|
93491
|
+
/**
|
|
93492
|
+
* Example Object `externalValue` points at arbitrary external content that
|
|
93493
|
+
* has no place in the Components Object. The referenced value is inlined into
|
|
93494
|
+
* the Example's `value` field.
|
|
93495
|
+
*/
|
|
93496
|
+
async ExampleElement(path) {
|
|
93497
|
+
const exampleElement = path.node;
|
|
93498
|
+
|
|
93499
|
+
// ignore Example Objects without an externalValue field
|
|
93500
|
+
if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isStringElement)(exampleElement.externalValue)) {
|
|
93501
|
+
return;
|
|
93502
|
+
}
|
|
93503
|
+
|
|
93504
|
+
// value and externalValue fields are mutually exclusive
|
|
93505
|
+
if (exampleElement.hasKey('value') && (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isStringElement)(exampleElement.externalValue)) {
|
|
93506
|
+
throw new _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_8__["default"]('ExampleElement value and externalValue fields are mutually exclusive', {
|
|
93507
|
+
value: (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(exampleElement.value),
|
|
93508
|
+
externalValue: (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(exampleElement.externalValue)
|
|
93509
|
+
});
|
|
93510
|
+
}
|
|
93511
|
+
const externalValue = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(exampleElement.externalValue);
|
|
93512
|
+
const retrievalURI = this.toBaseURI(externalValue);
|
|
93513
|
+
const isInternalReference = this.entryURI === retrievalURI;
|
|
93514
|
+
const isExternalReference = !isInternalReference;
|
|
93515
|
+
|
|
93516
|
+
// honor the resolve.external switch
|
|
93517
|
+
if (!this.options.resolve.external && isExternalReference) {
|
|
93518
|
+
return;
|
|
93519
|
+
}
|
|
93520
|
+
try {
|
|
93521
|
+
const reference = await this.toReference(externalValue);
|
|
93522
|
+
const valueElement = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.cloneShallow)(reference.value.result);
|
|
93523
|
+
valueElement.meta.set('ref-origin', reference.uri);
|
|
93524
|
+
const exampleElementCopy = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.cloneShallow)(exampleElement);
|
|
93525
|
+
exampleElementCopy.value = valueElement;
|
|
93526
|
+
exampleElementCopy.remove('externalValue');
|
|
93527
|
+
path.replaceWith(exampleElementCopy);
|
|
93528
|
+
} catch (error) {
|
|
93529
|
+
this.handleError(`Error while bundling Example Object. Cannot resolve externalValue "${externalValue}": ${error.message}`, error, exampleElement, 'externalValue', externalValue, path);
|
|
93530
|
+
}
|
|
93531
|
+
}
|
|
93532
|
+
|
|
93533
|
+
/**
|
|
93534
|
+
* Link Object `operationRef` points at an Operation Object, which has no
|
|
93535
|
+
* Components Object field in OpenAPI 3.0 and therefore cannot be hoisted or
|
|
93536
|
+
* inlined. To keep the link resolvable from the bundled document, an external
|
|
93537
|
+
* `operationRef` is rewritten to its absolute URI. Internal `operationRef`
|
|
93538
|
+
* values and `operationId` links are left untouched.
|
|
93539
|
+
*/
|
|
93540
|
+
async LinkElement(path) {
|
|
93541
|
+
const linkElement = path.node;
|
|
93542
|
+
|
|
93543
|
+
// operationRef and operationId fields are mutually exclusive
|
|
93544
|
+
if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isStringElement)(linkElement.operationRef) && (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isStringElement)(linkElement.operationId)) {
|
|
93545
|
+
throw new _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_8__["default"]('LinkElement operationRef and operationId fields are mutually exclusive', {
|
|
93546
|
+
operationRef: (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(linkElement.operationRef),
|
|
93547
|
+
operationId: (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(linkElement.operationId)
|
|
93548
|
+
});
|
|
93549
|
+
}
|
|
93550
|
+
|
|
93551
|
+
// only external operationRef links need adjusting
|
|
93552
|
+
if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isStringElement)(linkElement.operationRef)) {
|
|
93553
|
+
return;
|
|
93554
|
+
}
|
|
93555
|
+
const operationRef = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__["default"])(linkElement.operationRef);
|
|
93556
|
+
const retrievalURI = this.toBaseURI(operationRef);
|
|
93557
|
+
const isInternalReference = this.entryURI === retrievalURI;
|
|
93558
|
+
if (isInternalReference) {
|
|
93559
|
+
// normalize a self-reference operationRef to a bare fragment so the bundled
|
|
93560
|
+
// document stays transferable; bare fragments are left untouched
|
|
93561
|
+
linkElement.set('operationRef', this.normalizeSelfReference(operationRef));
|
|
93562
|
+
return;
|
|
93563
|
+
}
|
|
93564
|
+
|
|
93565
|
+
// honor the resolve.external switch
|
|
93566
|
+
if (!this.options.resolve.external) {
|
|
93567
|
+
return;
|
|
93568
|
+
}
|
|
93569
|
+
|
|
93570
|
+
// rewrite to an absolute URI so the link keeps resolving once the document
|
|
93571
|
+
// is treated as self-contained
|
|
93572
|
+
const absoluteURI = _util_url_mjs__WEBPACK_IMPORTED_MODULE_29__.resolve(this.reference.uri, operationRef);
|
|
93573
|
+
if (absoluteURI !== operationRef) {
|
|
93574
|
+
linkElement.set('operationRef', absoluteURI);
|
|
93575
|
+
}
|
|
93576
|
+
}
|
|
93577
|
+
}
|
|
93578
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OpenAPI3_0BundleVisitor);
|
|
93579
|
+
|
|
93580
|
+
/***/ },
|
|
93581
|
+
|
|
93582
|
+
/***/ 58091
|
|
93583
|
+
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
93584
|
+
|
|
93585
|
+
"use strict";
|
|
93586
|
+
__webpack_require__.r(__webpack_exports__);
|
|
93587
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
93588
|
+
/* harmony export */ OpenAPI3_1BundleVisitor: () => (/* reexport safe */ _visitor_mjs__WEBPACK_IMPORTED_MODULE_7__["default"]),
|
|
93589
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
93590
|
+
/* harmony export */ });
|
|
93591
|
+
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12111);
|
|
93592
|
+
/* harmony import */ var _speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(80796);
|
|
93593
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7822);
|
|
93594
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(76332);
|
|
93595
|
+
/* harmony import */ var _Reference_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(82302);
|
|
93596
|
+
/* harmony import */ var _ReferenceSet_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(88526);
|
|
93597
|
+
/* harmony import */ var _BundleStrategy_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(73723);
|
|
93598
|
+
/* harmony import */ var _visitor_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(34081);
|
|
93599
|
+
|
|
93600
|
+
|
|
93601
|
+
|
|
93602
|
+
|
|
93603
|
+
|
|
93604
|
+
|
|
93605
|
+
|
|
93606
|
+
/**
|
|
93607
|
+
* @public
|
|
93608
|
+
*/
|
|
93609
|
+
/**
|
|
93610
|
+
* @public
|
|
93611
|
+
*/
|
|
93612
|
+
class OpenAPI3_1BundleStrategy extends _BundleStrategy_mjs__WEBPACK_IMPORTED_MODULE_6__["default"] {
|
|
93613
|
+
constructor(options) {
|
|
93614
|
+
super({
|
|
93615
|
+
...(options ?? {}),
|
|
93616
|
+
name: 'openapi-3-1'
|
|
93617
|
+
});
|
|
93618
|
+
}
|
|
93619
|
+
canBundle(file) {
|
|
93620
|
+
// assert by media type
|
|
93621
|
+
if (file.mediaType !== 'text/plain') {
|
|
93622
|
+
return _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_2__["default"].includes(file.mediaType);
|
|
93623
|
+
}
|
|
93624
|
+
|
|
93625
|
+
// assert by inspecting ApiDOM
|
|
93626
|
+
return (0,_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_3__.isOpenApi3_1Element)(file.parseResult?.result);
|
|
93627
|
+
}
|
|
93628
|
+
async bundle(file, options) {
|
|
93629
|
+
const immutableRefSet = options.bundle.refSet ?? new _ReferenceSet_mjs__WEBPACK_IMPORTED_MODULE_5__["default"]();
|
|
93630
|
+
const mutableRefSet = new _ReferenceSet_mjs__WEBPACK_IMPORTED_MODULE_5__["default"]();
|
|
93631
|
+
let refSet = immutableRefSet;
|
|
93632
|
+
let reference;
|
|
93633
|
+
|
|
93634
|
+
// determine the initial reference
|
|
93635
|
+
if (!immutableRefSet.has(file.uri)) {
|
|
93636
|
+
reference = new _Reference_mjs__WEBPACK_IMPORTED_MODULE_4__["default"]({
|
|
93637
|
+
uri: file.uri,
|
|
93638
|
+
value: file.parseResult
|
|
93639
|
+
});
|
|
93640
|
+
immutableRefSet.add(reference);
|
|
93641
|
+
} else {
|
|
93642
|
+
// pre-computed refSet was provided as configuration option
|
|
93643
|
+
reference = immutableRefSet.find(ref => ref.uri === file.uri);
|
|
93644
|
+
}
|
|
93645
|
+
|
|
93646
|
+
/**
|
|
93647
|
+
* Clone refSet due the bundling process being mutable.
|
|
93648
|
+
* We don't want to mutate the original refSet and the references.
|
|
93649
|
+
*/
|
|
93650
|
+
if (options.bundle.immutable) {
|
|
93651
|
+
immutableRefSet.refs.map(ref => new _Reference_mjs__WEBPACK_IMPORTED_MODULE_4__["default"]({
|
|
93652
|
+
...ref,
|
|
93653
|
+
value: (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.cloneDeep)(ref.value)
|
|
93654
|
+
})).forEach(ref => mutableRefSet.add(ref));
|
|
93655
|
+
reference = mutableRefSet.find(ref => ref.uri === file.uri);
|
|
93656
|
+
refSet = mutableRefSet;
|
|
93657
|
+
}
|
|
93658
|
+
const visitor = new _visitor_mjs__WEBPACK_IMPORTED_MODULE_7__["default"]({
|
|
93659
|
+
reference: reference,
|
|
93660
|
+
options
|
|
93661
|
+
});
|
|
93662
|
+
await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_1__.traverseAsync)(refSet.rootRef.value, visitor, {
|
|
93663
|
+
mutable: true
|
|
93664
|
+
});
|
|
93665
|
+
const parseResult = reference.value;
|
|
93666
|
+
|
|
93667
|
+
/**
|
|
93668
|
+
* Release all memory if this refSet was not provided as a configuration option.
|
|
93669
|
+
* If provided as configuration option, then provider is responsible for cleanup.
|
|
93670
|
+
*/
|
|
93671
|
+
if (options.bundle.refSet === null) {
|
|
93672
|
+
immutableRefSet.clean();
|
|
93673
|
+
}
|
|
93674
|
+
mutableRefSet.clean();
|
|
93675
|
+
return parseResult;
|
|
93676
|
+
}
|
|
93677
|
+
}
|
|
93678
|
+
|
|
93679
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OpenAPI3_1BundleStrategy);
|
|
93680
|
+
|
|
93681
|
+
/***/ },
|
|
93682
|
+
|
|
93683
|
+
/***/ 34081
|
|
93684
|
+
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
93685
|
+
|
|
93686
|
+
"use strict";
|
|
93687
|
+
__webpack_require__.r(__webpack_exports__);
|
|
93688
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
93689
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
93690
|
+
/* harmony export */ });
|
|
93691
|
+
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(87009);
|
|
93692
|
+
/* harmony import */ var ramda__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6352);
|
|
93693
|
+
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(25162);
|
|
93694
|
+
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12111);
|
|
93695
|
+
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(97071);
|
|
93696
|
+
/* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(84660);
|
|
93697
|
+
/* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(37205);
|
|
93698
|
+
/* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(44673);
|
|
93699
|
+
/* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(16280);
|
|
93700
|
+
/* harmony import */ var _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(44641);
|
|
93701
|
+
/* harmony import */ var _speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(80796);
|
|
93702
|
+
/* harmony import */ var _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(12020);
|
|
93703
|
+
/* harmony import */ var _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(61198);
|
|
93704
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(21314);
|
|
93705
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(24329);
|
|
93706
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(29881);
|
|
93707
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(76332);
|
|
93708
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(23806);
|
|
93709
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(52645);
|
|
93710
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(23031);
|
|
93711
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(63842);
|
|
93712
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(87455);
|
|
93713
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(16363);
|
|
93714
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(55122);
|
|
93715
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(71117);
|
|
93716
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(72257);
|
|
93717
|
+
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(69511);
|
|
93718
|
+
/* harmony import */ var _errors_BundleError_mjs__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(89693);
|
|
93719
|
+
/* harmony import */ var _errors_UnresolvableReferenceError_mjs__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(34968);
|
|
93720
|
+
/* harmony import */ var _errors_MaximumBundleDepthError_mjs__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(55086);
|
|
93721
|
+
/* harmony import */ var _errors_MaximumResolveDepthError_mjs__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(10476);
|
|
93722
|
+
/* harmony import */ var _errors_EvaluationJsonSchemaUriError_mjs__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(22820);
|
|
93723
|
+
/* harmony import */ var _util_url_mjs__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(18917);
|
|
93724
|
+
/* harmony import */ var _parse_index_mjs__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(85533);
|
|
93725
|
+
/* harmony import */ var _Reference_mjs__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(82302);
|
|
93726
|
+
/* harmony import */ var _File_mjs__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(29217);
|
|
93727
|
+
/* harmony import */ var _dereference_strategies_openapi_3_1_selectors_$anchor_mjs__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(10533);
|
|
93728
|
+
/* harmony import */ var _dereference_strategies_openapi_3_1_selectors_uri_mjs__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(92500);
|
|
93729
|
+
/* harmony import */ var _dereference_strategies_openapi_3_1_util_mjs__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(29587);
|
|
93730
|
+
/* harmony import */ var _util_mjs__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(78814);
|
|
93731
|
+
|
|
93732
|
+
|
|
93733
|
+
|
|
93734
|
+
|
|
93735
|
+
|
|
93736
|
+
|
|
93737
|
+
|
|
93738
|
+
|
|
93739
|
+
|
|
93740
|
+
|
|
93741
|
+
|
|
93742
|
+
|
|
93743
|
+
|
|
93744
|
+
|
|
93745
|
+
|
|
93746
|
+
|
|
93747
|
+
|
|
93748
|
+
|
|
93749
|
+
|
|
93750
|
+
|
|
93751
|
+
/**
|
|
93752
|
+
* Maps the `referenced-element` meta value (set during refraction) to the
|
|
93753
|
+
* Components Object field where the referenced element should be hoisted.
|
|
93754
|
+
* Field names are sourced from the Components Object fixed fields so they
|
|
93755
|
+
* cannot drift from the namespace definition.
|
|
93756
|
+
*/
|
|
93757
|
+
const cf = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_6__.fixedFields)(_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_18__.ComponentsElement, {
|
|
93758
|
+
indexed: true
|
|
93759
|
+
});
|
|
93760
|
+
const componentFieldByReferencedElement = {
|
|
93761
|
+
schema: cf.schemas.name,
|
|
93762
|
+
response: cf.responses.name,
|
|
93763
|
+
parameter: cf.parameters.name,
|
|
93764
|
+
example: cf.examples.name,
|
|
93765
|
+
requestBody: cf.requestBodies.name,
|
|
93766
|
+
header: cf.headers.name,
|
|
93767
|
+
securityScheme: cf.securitySchemes.name,
|
|
93768
|
+
link: cf.links.name,
|
|
93769
|
+
callback: cf.callbacks.name,
|
|
93770
|
+
pathItem: cf.pathItems.name
|
|
93771
|
+
};
|
|
93772
|
+
|
|
93773
|
+
/**
|
|
93774
|
+
* Maps a Components Object field to the named-content element the namespace
|
|
93775
|
+
* uses for it, so a bundle-created field matches a parsed/refracted one
|
|
93776
|
+
* (e.g. carries the `components-schemas` class) rather than being a generic
|
|
93777
|
+
* object.
|
|
93778
|
+
*/
|
|
93779
|
+
const componentFieldElementByField = {
|
|
93780
|
+
[cf.schemas.name]: _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_25__["default"],
|
|
93781
|
+
[cf.responses.name]: _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_24__["default"],
|
|
93782
|
+
[cf.parameters.name]: _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_21__["default"],
|
|
93783
|
+
[cf.examples.name]: _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_17__["default"],
|
|
93784
|
+
[cf.requestBodies.name]: _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_23__["default"],
|
|
93785
|
+
[cf.headers.name]: _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_19__["default"],
|
|
93786
|
+
[cf.securitySchemes.name]: _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_26__["default"],
|
|
93787
|
+
[cf.links.name]: _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_20__["default"],
|
|
93788
|
+
[cf.callbacks.name]: _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_15__["default"],
|
|
93789
|
+
[cf.pathItems.name]: _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_22__["default"]
|
|
93790
|
+
};
|
|
93791
|
+
|
|
93792
|
+
/**
|
|
93793
|
+
* @public
|
|
93794
|
+
*/
|
|
93795
|
+
|
|
93796
|
+
/**
|
|
93797
|
+
* @public
|
|
93798
|
+
*/
|
|
93799
|
+
class OpenAPI3_1BundleVisitor {
|
|
93800
|
+
reference;
|
|
93801
|
+
options;
|
|
93802
|
+
|
|
93803
|
+
/**
|
|
93804
|
+
* The base URI (without hash) of the entry document. A reference is
|
|
93805
|
+
* considered internal when it resolves to this URI and external otherwise.
|
|
93806
|
+
* Derived from the shared refSet's root reference.
|
|
93807
|
+
*/
|
|
93808
|
+
get entryURI() {
|
|
93809
|
+
return _util_url_mjs__WEBPACK_IMPORTED_MODULE_32__.stripHash(this.reference.refSet?.rootRef?.uri ?? '');
|
|
93810
|
+
}
|
|
93811
|
+
|
|
93812
|
+
/**
|
|
93813
|
+
* The entry parse result. Derived from the shared refSet's root reference.
|
|
93814
|
+
*/
|
|
93815
|
+
get entryParseResult() {
|
|
93816
|
+
return this.reference.refSet.rootRef.value;
|
|
93817
|
+
}
|
|
93818
|
+
|
|
93819
|
+
/**
|
|
93820
|
+
* The entry document element. Hoisted external fragments are placed into its
|
|
93821
|
+
* `components` object. The `canBundle` guard guarantees it is an
|
|
93822
|
+
* OpenApi3_1Element.
|
|
91900
93823
|
*/
|
|
91901
93824
|
get entryResult() {
|
|
91902
93825
|
return this.entryParseResult.result;
|
|
@@ -91923,25 +93846,15 @@ class OpenAPI3_0BundleVisitor {
|
|
|
91923
93846
|
* generic object referenced once as a Parameter and once as a Response).
|
|
91924
93847
|
*/
|
|
91925
93848
|
refractCache;
|
|
91926
|
-
|
|
91927
|
-
/**
|
|
91928
|
-
* Canonical URIs of Path Item Objects currently being inlined. Path Items
|
|
91929
|
-
* are not hoisted into Components Object (no `components.pathItems` in
|
|
91930
|
-
* OpenAPI 3.0), so the `assignments` map can't break their cycles. This
|
|
91931
|
-
* stack guards against circular external Path Item references.
|
|
91932
|
-
*/
|
|
91933
|
-
inlineStack;
|
|
91934
93849
|
constructor({
|
|
91935
93850
|
reference,
|
|
91936
93851
|
options,
|
|
91937
93852
|
assignments = new Map(),
|
|
91938
93853
|
reservedNames = new Map(),
|
|
91939
|
-
refractCache = new WeakMap()
|
|
91940
|
-
inlineStack = new Set()
|
|
93854
|
+
refractCache = new WeakMap()
|
|
91941
93855
|
}) {
|
|
91942
93856
|
this.reference = reference;
|
|
91943
93857
|
this.options = options;
|
|
91944
|
-
this.inlineStack = inlineStack;
|
|
91945
93858
|
this.assignments = assignments;
|
|
91946
93859
|
this.reservedNames = reservedNames;
|
|
91947
93860
|
this.refractCache = refractCache;
|
|
@@ -91958,12 +93871,12 @@ class OpenAPI3_0BundleVisitor {
|
|
|
91958
93871
|
byType.set(type, refracted);
|
|
91959
93872
|
}
|
|
91960
93873
|
toBaseURI(uri) {
|
|
91961
|
-
return
|
|
93874
|
+
return _util_url_mjs__WEBPACK_IMPORTED_MODULE_32__.resolve(this.reference.uri, _util_url_mjs__WEBPACK_IMPORTED_MODULE_32__.sanitize(_util_url_mjs__WEBPACK_IMPORTED_MODULE_32__.stripHash(uri)));
|
|
91962
93875
|
}
|
|
91963
93876
|
async toReference(uri) {
|
|
91964
93877
|
// detect maximum depth of resolution
|
|
91965
93878
|
if (this.reference.depth >= this.options.resolve.maxDepth) {
|
|
91966
|
-
throw new
|
|
93879
|
+
throw new _errors_MaximumResolveDepthError_mjs__WEBPACK_IMPORTED_MODULE_30__["default"](`Maximum resolution depth of ${this.options.resolve.maxDepth} has been exceeded by file "${this.reference.uri}"`, {
|
|
91967
93880
|
maxDepth: this.options.resolve.maxDepth,
|
|
91968
93881
|
uri: this.reference.uri
|
|
91969
93882
|
});
|
|
@@ -91975,16 +93888,16 @@ class OpenAPI3_0BundleVisitor {
|
|
|
91975
93888
|
|
|
91976
93889
|
// we've already processed this Reference in past
|
|
91977
93890
|
if (refSet.has(baseURI)) {
|
|
91978
|
-
return refSet.find((0,
|
|
93891
|
+
return refSet.find((0,ramda__WEBPACK_IMPORTED_MODULE_1__["default"])(baseURI, 'uri'));
|
|
91979
93892
|
}
|
|
91980
|
-
const parseResult = await (0,
|
|
93893
|
+
const parseResult = await (0,_parse_index_mjs__WEBPACK_IMPORTED_MODULE_33__["default"])(_util_url_mjs__WEBPACK_IMPORTED_MODULE_32__.unsanitize(baseURI), {
|
|
91981
93894
|
...this.options,
|
|
91982
93895
|
parse: {
|
|
91983
93896
|
...this.options.parse,
|
|
91984
93897
|
mediaType: 'text/plain'
|
|
91985
93898
|
}
|
|
91986
93899
|
});
|
|
91987
|
-
const reference = new
|
|
93900
|
+
const reference = new _Reference_mjs__WEBPACK_IMPORTED_MODULE_34__["default"]({
|
|
91988
93901
|
uri: baseURI,
|
|
91989
93902
|
value: parseResult,
|
|
91990
93903
|
depth: this.reference.depth + 1
|
|
@@ -91994,12 +93907,12 @@ class OpenAPI3_0BundleVisitor {
|
|
|
91994
93907
|
}
|
|
91995
93908
|
|
|
91996
93909
|
/**
|
|
91997
|
-
* Normalizes a self-
|
|
93910
|
+
* Normalizes a self-reference (e.g. `./root.json#/components/schemas/Pet`)
|
|
91998
93911
|
* to a bare fragment (`#/components/schemas/Pet`) so the bundled document stays
|
|
91999
93912
|
* transferable. Bare fragments are returned unchanged.
|
|
92000
93913
|
*/
|
|
92001
|
-
|
|
92002
|
-
return ref.startsWith('#') ? ref :
|
|
93914
|
+
normalizeSelfReference(ref) {
|
|
93915
|
+
return ref.startsWith('#') ? ref : _util_url_mjs__WEBPACK_IMPORTED_MODULE_32__.getHash(ref);
|
|
92003
93916
|
}
|
|
92004
93917
|
|
|
92005
93918
|
/**
|
|
@@ -92018,16 +93931,16 @@ class OpenAPI3_0BundleVisitor {
|
|
|
92018
93931
|
// breach (MaximumBundleDepthError, which also extends BundleError) is a
|
|
92019
93932
|
// resolution failure and flows through below — wrapped and subject to
|
|
92020
93933
|
// continueOnError, like dereferencing.
|
|
92021
|
-
if (error instanceof
|
|
93934
|
+
if (error instanceof _errors_BundleError_mjs__WEBPACK_IMPORTED_MODULE_27__["default"] && !(error instanceof _errors_MaximumBundleDepthError_mjs__WEBPACK_IMPORTED_MODULE_29__["default"])) {
|
|
92022
93935
|
throw error;
|
|
92023
93936
|
}
|
|
92024
93937
|
const {
|
|
92025
93938
|
continueOnError
|
|
92026
93939
|
} = this.options.bundle;
|
|
92027
|
-
const isEntryDocument =
|
|
93940
|
+
const isEntryDocument = _util_url_mjs__WEBPACK_IMPORTED_MODULE_32__.stripHash(this.reference.refSet?.rootRef?.uri ?? '') === this.reference.uri;
|
|
92028
93941
|
const uri = this.reference.uri;
|
|
92029
93942
|
const type = referencingElement.element;
|
|
92030
|
-
const codeFrame = (0,
|
|
93943
|
+
const codeFrame = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_8__["default"])(referencingElement);
|
|
92031
93944
|
const location = visitorPath.formatPath();
|
|
92032
93945
|
const hop = {
|
|
92033
93946
|
uri,
|
|
@@ -92038,12 +93951,12 @@ class OpenAPI3_0BundleVisitor {
|
|
|
92038
93951
|
codeFrame
|
|
92039
93952
|
};
|
|
92040
93953
|
let unresolvedError;
|
|
92041
|
-
if (error instanceof
|
|
93954
|
+
if (error instanceof _errors_UnresolvableReferenceError_mjs__WEBPACK_IMPORTED_MODULE_28__["default"]) {
|
|
92042
93955
|
// @ts-ignore
|
|
92043
93956
|
error.trace = [hop, ...error.trace];
|
|
92044
93957
|
unresolvedError = error;
|
|
92045
93958
|
} else {
|
|
92046
|
-
unresolvedError = new
|
|
93959
|
+
unresolvedError = new _errors_UnresolvableReferenceError_mjs__WEBPACK_IMPORTED_MODULE_28__["default"](message, {
|
|
92047
93960
|
cause: error,
|
|
92048
93961
|
type,
|
|
92049
93962
|
uri,
|
|
@@ -92065,13 +93978,13 @@ class OpenAPI3_0BundleVisitor {
|
|
|
92065
93978
|
ensureComponentsField(field) {
|
|
92066
93979
|
const entryResult = this.entryResult;
|
|
92067
93980
|
let components = entryResult.components;
|
|
92068
|
-
if (!(0,
|
|
92069
|
-
components = new
|
|
93981
|
+
if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isObjectElement)(components)) {
|
|
93982
|
+
components = new _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_18__.ComponentsElement();
|
|
92070
93983
|
entryResult.components = components;
|
|
92071
93984
|
}
|
|
92072
93985
|
let fieldElement = components.get(field);
|
|
92073
|
-
if (!(0,
|
|
92074
|
-
const FieldElement = componentFieldElementByField[field] ??
|
|
93986
|
+
if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isObjectElement)(fieldElement)) {
|
|
93987
|
+
const FieldElement = componentFieldElementByField[field] ?? _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__["default"];
|
|
92075
93988
|
fieldElement = new FieldElement();
|
|
92076
93989
|
components.set(field, fieldElement);
|
|
92077
93990
|
}
|
|
@@ -92083,17 +93996,9 @@ class OpenAPI3_0BundleVisitor {
|
|
|
92083
93996
|
* falling back to the referenced file's basename.
|
|
92084
93997
|
*/
|
|
92085
93998
|
basenameOf(jsonPointer, baseURI) {
|
|
92086
|
-
const tokens = (0,
|
|
92087
|
-
|
|
92088
|
-
|
|
92089
|
-
const lastSlash = baseURI.lastIndexOf('/');
|
|
92090
|
-
const lastDot = baseURI.lastIndexOf('.');
|
|
92091
|
-
const fileName = baseURI.slice(lastSlash + 1);
|
|
92092
|
-
// strip the extension only when the last dot belongs to the file name
|
|
92093
|
-
candidate = lastDot > lastSlash ? baseURI.slice(lastSlash + 1, lastDot) : fileName;
|
|
92094
|
-
}
|
|
92095
|
-
if (candidate === '') candidate = 'Schema';
|
|
92096
|
-
return candidate;
|
|
93999
|
+
const tokens = (0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__.parse)(jsonPointer).tree;
|
|
94000
|
+
const lastToken = tokens.length > 0 ? tokens[tokens.length - 1] : '';
|
|
94001
|
+
return lastToken || _util_url_mjs__WEBPACK_IMPORTED_MODULE_32__.getBasename(baseURI) || 'Schema';
|
|
92097
94002
|
}
|
|
92098
94003
|
|
|
92099
94004
|
/**
|
|
@@ -92102,7 +94007,7 @@ class OpenAPI3_0BundleVisitor {
|
|
|
92102
94007
|
*/
|
|
92103
94008
|
baseName(element, field, jsonPointer, baseURI) {
|
|
92104
94009
|
// strategy specific options take precedence over the top-level bundle options
|
|
92105
|
-
const componentNamesStrategy = this.options.bundle.strategyOpts['openapi-3-
|
|
94010
|
+
const componentNamesStrategy = this.options.bundle.strategyOpts['openapi-3-1']?.componentNamesStrategy ?? this.options.bundle.componentNamesStrategy;
|
|
92106
94011
|
if (typeof componentNamesStrategy === 'function') {
|
|
92107
94012
|
const resolved = componentNamesStrategy({
|
|
92108
94013
|
element,
|
|
@@ -92116,9 +94021,9 @@ class OpenAPI3_0BundleVisitor {
|
|
|
92116
94021
|
return this.basenameOf(jsonPointer, baseURI);
|
|
92117
94022
|
}
|
|
92118
94023
|
if (componentNamesStrategy === 'title') {
|
|
92119
|
-
const title = (0,
|
|
94024
|
+
const title = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isObjectElement)(element) ? (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(element.get('title')) : undefined;
|
|
92120
94025
|
if (typeof title === 'string' && title.trim() !== '') {
|
|
92121
|
-
const name = (0,
|
|
94026
|
+
const name = (0,_util_mjs__WEBPACK_IMPORTED_MODULE_39__.sanitizeComponentName)((0,_util_mjs__WEBPACK_IMPORTED_MODULE_39__.toPascalCase)(title));
|
|
92122
94027
|
if (name !== '') return name;
|
|
92123
94028
|
}
|
|
92124
94029
|
// fall back to basename when no usable title is present
|
|
@@ -92134,18 +94039,40 @@ class OpenAPI3_0BundleVisitor {
|
|
|
92134
94039
|
uniqueName(candidate, field) {
|
|
92135
94040
|
const fieldElement = this.ensureComponentsField(field);
|
|
92136
94041
|
const reserved = this.reservedNames.get(field) ?? new Set();
|
|
92137
|
-
return (0,
|
|
94042
|
+
return (0,_util_mjs__WEBPACK_IMPORTED_MODULE_39__.uniqueName)(candidate, name => fieldElement.hasKey(name) || reserved.has(name));
|
|
94043
|
+
}
|
|
94044
|
+
|
|
94045
|
+
/**
|
|
94046
|
+
* Reports a collision-forced rename according to the configured severity.
|
|
94047
|
+
* A rename means two distinct targets resolved to the same name; each keeps
|
|
94048
|
+
* its own component (and origin), so report the rename per severity.
|
|
94049
|
+
*/
|
|
94050
|
+
reportNameCollision(preferredName, componentName, field) {
|
|
94051
|
+
// strategy specific options take precedence over the top-level bundle options
|
|
94052
|
+
const onComponentNameCollision = this.options.bundle.strategyOpts['openapi-3-1']?.onComponentNameCollision ?? this.options.bundle.onComponentNameCollision;
|
|
94053
|
+
if (componentName === preferredName || onComponentNameCollision === 'off') {
|
|
94054
|
+
return;
|
|
94055
|
+
}
|
|
94056
|
+
const message = `Component "${preferredName}" in components/${field} is referenced with the same name but different content. Renamed to "${componentName}".`;
|
|
94057
|
+
if (onComponentNameCollision === 'error') {
|
|
94058
|
+
throw new _errors_BundleError_mjs__WEBPACK_IMPORTED_MODULE_27__["default"](message);
|
|
94059
|
+
}
|
|
94060
|
+
const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_5__["default"](message);
|
|
94061
|
+
annotation.classes.push('warning');
|
|
94062
|
+
annotation.code = 'bundle-component-name-collision';
|
|
94063
|
+
// append (never prepend) so the result element stays ahead of annotations
|
|
94064
|
+
this.entryParseResult.content.push(annotation);
|
|
92138
94065
|
}
|
|
92139
94066
|
async ReferenceElement(path) {
|
|
92140
94067
|
const referencingElement = path.node;
|
|
92141
|
-
const $ref = (0,
|
|
94068
|
+
const $ref = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(referencingElement.$ref);
|
|
92142
94069
|
const retrievalURI = this.toBaseURI($ref);
|
|
92143
94070
|
const isInternalReference = this.entryURI === retrievalURI;
|
|
92144
94071
|
const isExternalReference = !isInternalReference;
|
|
92145
94072
|
if (isInternalReference) {
|
|
92146
|
-
// normalize self-
|
|
94073
|
+
// normalize self-references to a bare fragment so the bundled
|
|
92147
94074
|
// document stays transferable; bare fragments are left untouched
|
|
92148
|
-
referencingElement.set('$ref', this.
|
|
94075
|
+
referencingElement.set('$ref', this.normalizeSelfReference($ref));
|
|
92149
94076
|
path.skip();
|
|
92150
94077
|
return;
|
|
92151
94078
|
}
|
|
@@ -92155,8 +94082,8 @@ class OpenAPI3_0BundleVisitor {
|
|
|
92155
94082
|
path.skip();
|
|
92156
94083
|
return;
|
|
92157
94084
|
}
|
|
92158
|
-
const $refBaseURI =
|
|
92159
|
-
const jsonPointer =
|
|
94085
|
+
const $refBaseURI = _util_url_mjs__WEBPACK_IMPORTED_MODULE_32__.resolve(retrievalURI, $ref);
|
|
94086
|
+
const jsonPointer = _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__.URIFragmentIdentifier.fromURIReference($refBaseURI);
|
|
92160
94087
|
|
|
92161
94088
|
// the target bucket depends on the referencing context, so it's part of the
|
|
92162
94089
|
// identity: the same external target referenced as e.g. both a parameter and
|
|
@@ -92184,7 +94111,7 @@ class OpenAPI3_0BundleVisitor {
|
|
|
92184
94111
|
try {
|
|
92185
94112
|
// detect maximum depth of bundling
|
|
92186
94113
|
if (this.reference.depth >= this.options.bundle.maxDepth) {
|
|
92187
|
-
throw new
|
|
94114
|
+
throw new _errors_MaximumBundleDepthError_mjs__WEBPACK_IMPORTED_MODULE_29__["default"](`Maximum bundle depth of "${this.options.bundle.maxDepth}" has been exceeded in file "${this.reference.uri}"`, {
|
|
92188
94115
|
maxDepth: this.options.bundle.maxDepth,
|
|
92189
94116
|
uri: this.reference.uri
|
|
92190
94117
|
});
|
|
@@ -92192,21 +94119,21 @@ class OpenAPI3_0BundleVisitor {
|
|
|
92192
94119
|
const reference = await this.toReference($ref);
|
|
92193
94120
|
|
|
92194
94121
|
// possibly non-semantic fragment
|
|
92195
|
-
let referencedElement = (0,
|
|
94122
|
+
let referencedElement = (0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__.evaluate)(reference.value.result, jsonPointer);
|
|
92196
94123
|
|
|
92197
94124
|
// apply semantics to the fragment so nested references become Reference Objects
|
|
92198
|
-
if (referencedElement.element !== referencedElementType && !(0,
|
|
94125
|
+
if (referencedElement.element !== referencedElementType && !(0,_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_16__.isReferenceElement)(referencedElement)) {
|
|
92199
94126
|
const cached = this.getRefracted(referencedElement, referencedElementType);
|
|
92200
94127
|
if (cached !== undefined) {
|
|
92201
94128
|
referencedElement = cached;
|
|
92202
|
-
} else if ((0,
|
|
94129
|
+
} else if ((0,_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_13__.isReferenceLikeElement)(referencedElement)) {
|
|
92203
94130
|
const sourceElement = referencedElement;
|
|
92204
|
-
referencedElement = (0,
|
|
94131
|
+
referencedElement = (0,_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_14__.refractReference)(referencedElement);
|
|
92205
94132
|
referencedElement.meta.set('referenced-element', referencedElementType);
|
|
92206
94133
|
this.setRefracted(sourceElement, referencedElementType, referencedElement);
|
|
92207
94134
|
} else {
|
|
92208
94135
|
const sourceElement = referencedElement;
|
|
92209
|
-
referencedElement = (0,
|
|
94136
|
+
referencedElement = (0,_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_14__["default"])(referencedElement, {
|
|
92210
94137
|
element: referencedElementType
|
|
92211
94138
|
});
|
|
92212
94139
|
this.setRefracted(sourceElement, referencedElementType, referencedElement);
|
|
@@ -92214,23 +94141,8 @@ class OpenAPI3_0BundleVisitor {
|
|
|
92214
94141
|
}
|
|
92215
94142
|
const preferredName = this.baseName(referencedElement, field, jsonPointer, retrievalURI);
|
|
92216
94143
|
const componentName = this.uniqueName(preferredName, field);
|
|
92217
|
-
const internalPointer = `#/components/${field}/${(0,
|
|
92218
|
-
|
|
92219
|
-
// a rename means two distinct targets resolved to the same name; each
|
|
92220
|
-
// keeps its own component (and origin), so report the rename per severity.
|
|
92221
|
-
// strategy specific options take precedence over the top-level bundle options
|
|
92222
|
-
const onComponentNameCollision = this.options.bundle.strategyOpts['openapi-3-0']?.onComponentNameCollision ?? this.options.bundle.onComponentNameCollision;
|
|
92223
|
-
if (componentName !== preferredName && onComponentNameCollision !== 'off') {
|
|
92224
|
-
const message = `Component "${preferredName}" in components/${field} is referenced with the same name but different content. Renamed to "${componentName}".`;
|
|
92225
|
-
if (onComponentNameCollision === 'error') {
|
|
92226
|
-
throw new _errors_BundleError_mjs__WEBPACK_IMPORTED_MODULE_25__["default"](message);
|
|
92227
|
-
}
|
|
92228
|
-
const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_4__["default"](message);
|
|
92229
|
-
annotation.classes.push('warning');
|
|
92230
|
-
annotation.code = 'bundle-component-name-collision';
|
|
92231
|
-
// append (never prepend) so the result element stays ahead of annotations
|
|
92232
|
-
this.entryParseResult.content.push(annotation);
|
|
92233
|
-
}
|
|
94144
|
+
const internalPointer = `#/components/${field}/${(0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__.escape)(componentName)}`;
|
|
94145
|
+
this.reportNameCollision(preferredName, componentName, field);
|
|
92234
94146
|
|
|
92235
94147
|
// reserve the assignment and component name before recursing so cyclic
|
|
92236
94148
|
// references terminate
|
|
@@ -92239,21 +94151,20 @@ class OpenAPI3_0BundleVisitor {
|
|
|
92239
94151
|
this.reservedNames.get(field).add(componentName);
|
|
92240
94152
|
|
|
92241
94153
|
// own a copy of the fragment and bundle its own external references
|
|
92242
|
-
const hoistedElement = (0,
|
|
92243
|
-
const visitor = new
|
|
94154
|
+
const hoistedElement = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__.cloneDeep)(referencedElement);
|
|
94155
|
+
const visitor = new OpenAPI3_1BundleVisitor({
|
|
92244
94156
|
reference,
|
|
92245
94157
|
options: this.options,
|
|
92246
94158
|
assignments: this.assignments,
|
|
92247
94159
|
reservedNames: this.reservedNames,
|
|
92248
|
-
refractCache: this.refractCache
|
|
92249
|
-
inlineStack: this.inlineStack
|
|
94160
|
+
refractCache: this.refractCache
|
|
92250
94161
|
});
|
|
92251
|
-
const bundledElement = await (0,
|
|
94162
|
+
const bundledElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_10__.traverseAsync)(hoistedElement, visitor, {
|
|
92252
94163
|
mutable: true
|
|
92253
94164
|
});
|
|
92254
94165
|
|
|
92255
94166
|
// annotate the hoisted fragment with info about its origin
|
|
92256
|
-
if ((0,
|
|
94167
|
+
if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isElement)(bundledElement)) {
|
|
92257
94168
|
bundledElement.meta.set('ref-origin', reference.uri);
|
|
92258
94169
|
}
|
|
92259
94170
|
|
|
@@ -92270,99 +94181,265 @@ class OpenAPI3_0BundleVisitor {
|
|
|
92270
94181
|
}
|
|
92271
94182
|
|
|
92272
94183
|
/**
|
|
92273
|
-
*
|
|
92274
|
-
*
|
|
92275
|
-
*
|
|
92276
|
-
*
|
|
94184
|
+
* Unlike OpenAPI 3.0 (which has no `components.pathItems` field and therefore
|
|
94185
|
+
* inlines external Path Items in place), OpenAPI 3.1 hoists an external Path
|
|
94186
|
+
* Item Object into `components.pathItems` and rewrites the referencing `$ref`
|
|
94187
|
+
* to an internal pointer — mirroring how Reference Objects are bundled.
|
|
94188
|
+
* Sibling fields next to the `$ref` (e.g. `summary`, `description`) are kept
|
|
94189
|
+
* on the referencing element.
|
|
92277
94190
|
*/
|
|
92278
94191
|
async PathItemElement(path) {
|
|
92279
94192
|
const pathItemElement = path.node;
|
|
92280
94193
|
|
|
92281
94194
|
// ignore Path Item Objects without a $ref field
|
|
92282
|
-
if (!(0,
|
|
94195
|
+
if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(pathItemElement.$ref)) {
|
|
92283
94196
|
return;
|
|
92284
94197
|
}
|
|
92285
|
-
const $ref = (0,
|
|
94198
|
+
const $ref = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(pathItemElement.$ref);
|
|
92286
94199
|
const retrievalURI = this.toBaseURI($ref);
|
|
92287
94200
|
const isInternalReference = this.entryURI === retrievalURI;
|
|
92288
94201
|
const isExternalReference = !isInternalReference;
|
|
92289
94202
|
if (isInternalReference) {
|
|
92290
|
-
// normalize self-
|
|
94203
|
+
// normalize self-references to a bare fragment so the bundled
|
|
92291
94204
|
// document stays transferable; bare fragments are left untouched
|
|
92292
|
-
pathItemElement.set('$ref', this.
|
|
94205
|
+
pathItemElement.set('$ref', this.normalizeSelfReference($ref));
|
|
94206
|
+
path.skip();
|
|
92293
94207
|
return;
|
|
92294
94208
|
}
|
|
92295
94209
|
|
|
92296
94210
|
// honor the resolve.external switch
|
|
92297
94211
|
if (!this.options.resolve.external && isExternalReference) {
|
|
94212
|
+
path.skip();
|
|
92298
94213
|
return;
|
|
92299
94214
|
}
|
|
92300
|
-
const $refBaseURI =
|
|
92301
|
-
const jsonPointer =
|
|
92302
|
-
const
|
|
94215
|
+
const $refBaseURI = _util_url_mjs__WEBPACK_IMPORTED_MODULE_32__.resolve(retrievalURI, $ref);
|
|
94216
|
+
const jsonPointer = _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__.URIFragmentIdentifier.fromURIReference($refBaseURI);
|
|
94217
|
+
const field = cf.pathItems.name;
|
|
94218
|
+
const canonicalKey = `${field}\t${retrievalURI}#${jsonPointer}`;
|
|
92303
94219
|
|
|
92304
|
-
//
|
|
92305
|
-
//
|
|
92306
|
-
|
|
94220
|
+
// already hoisted (or being hoisted) — just rewrite the pointer. The
|
|
94221
|
+
// assignment is reserved BEFORE recursing, so a circular Path Item chain
|
|
94222
|
+
// terminates here with an internal pointer instead of recursing forever.
|
|
94223
|
+
if (this.assignments.has(canonicalKey)) {
|
|
94224
|
+
pathItemElement.set('$ref', this.assignments.get(canonicalKey));
|
|
94225
|
+
path.skip();
|
|
92307
94226
|
return;
|
|
92308
94227
|
}
|
|
92309
94228
|
try {
|
|
92310
94229
|
// detect maximum depth of bundling
|
|
92311
94230
|
if (this.reference.depth >= this.options.bundle.maxDepth) {
|
|
92312
|
-
throw new
|
|
94231
|
+
throw new _errors_MaximumBundleDepthError_mjs__WEBPACK_IMPORTED_MODULE_29__["default"](`Maximum bundle depth of "${this.options.bundle.maxDepth}" has been exceeded in file "${this.reference.uri}"`, {
|
|
92313
94232
|
maxDepth: this.options.bundle.maxDepth,
|
|
92314
94233
|
uri: this.reference.uri
|
|
92315
94234
|
});
|
|
92316
94235
|
}
|
|
92317
94236
|
const reference = await this.toReference($ref);
|
|
92318
|
-
let referencedElement = (0,
|
|
94237
|
+
let referencedElement = (0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__.evaluate)(reference.value.result, jsonPointer);
|
|
92319
94238
|
|
|
92320
94239
|
// apply Path Item semantics to the referenced fragment
|
|
92321
|
-
if (!(0,
|
|
94240
|
+
if (!(0,_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_16__.isPathItemElement)(referencedElement)) {
|
|
92322
94241
|
const cached = this.getRefracted(referencedElement, 'pathItem');
|
|
92323
94242
|
if (cached !== undefined) {
|
|
92324
94243
|
referencedElement = cached;
|
|
92325
94244
|
} else {
|
|
92326
94245
|
const sourceElement = referencedElement;
|
|
92327
|
-
referencedElement = (0,
|
|
94246
|
+
referencedElement = (0,_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_14__.refractPathItem)(referencedElement);
|
|
92328
94247
|
this.setRefracted(sourceElement, 'pathItem', referencedElement);
|
|
92329
94248
|
}
|
|
92330
94249
|
}
|
|
94250
|
+
const preferredName = this.baseName(referencedElement, field, jsonPointer, retrievalURI);
|
|
94251
|
+
const componentName = this.uniqueName(preferredName, field);
|
|
94252
|
+
const internalPointer = `#/components/${field}/${(0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__.escape)(componentName)}`;
|
|
94253
|
+
this.reportNameCollision(preferredName, componentName, field);
|
|
92331
94254
|
|
|
92332
|
-
//
|
|
92333
|
-
|
|
92334
|
-
this.
|
|
92335
|
-
|
|
94255
|
+
// reserve the assignment and component name before recursing so cyclic
|
|
94256
|
+
// references terminate
|
|
94257
|
+
this.assignments.set(canonicalKey, internalPointer);
|
|
94258
|
+
if (!this.reservedNames.has(field)) this.reservedNames.set(field, new Set());
|
|
94259
|
+
this.reservedNames.get(field).add(componentName);
|
|
94260
|
+
|
|
94261
|
+
// own a copy of the fragment and bundle its own external references
|
|
94262
|
+
const hoistedElement = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__.cloneDeep)(referencedElement);
|
|
94263
|
+
const visitor = new OpenAPI3_1BundleVisitor({
|
|
92336
94264
|
reference,
|
|
92337
94265
|
options: this.options,
|
|
92338
94266
|
assignments: this.assignments,
|
|
92339
94267
|
reservedNames: this.reservedNames,
|
|
92340
|
-
refractCache: this.refractCache
|
|
92341
|
-
inlineStack: this.inlineStack
|
|
94268
|
+
refractCache: this.refractCache
|
|
92342
94269
|
});
|
|
92343
|
-
|
|
92344
|
-
|
|
92345
|
-
|
|
92346
|
-
|
|
94270
|
+
const bundledElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_10__.traverseAsync)(hoistedElement, visitor, {
|
|
94271
|
+
mutable: true
|
|
94272
|
+
});
|
|
94273
|
+
|
|
94274
|
+
// a `$ref` surviving on the hoisted Path Item means it pointed at another
|
|
94275
|
+
// Path Item (a chain or cycle); it has already been rewritten to an
|
|
94276
|
+
// internal `#/components/pathItems/...` pointer by the child traversal
|
|
94277
|
+
bundledElement.meta.set('ref-origin', reference.uri);
|
|
94278
|
+
|
|
94279
|
+
// place the bundled Path Item into the entry document's components
|
|
94280
|
+
this.ensureComponentsField(field).set(componentName, bundledElement);
|
|
94281
|
+
|
|
94282
|
+
// rewrite the referencing Path Item to point at the hoisted one, keeping
|
|
94283
|
+
// any sibling fields (e.g. summary, description) next to the $ref
|
|
94284
|
+
pathItemElement.set('$ref', internalPointer);
|
|
94285
|
+
path.skip();
|
|
94286
|
+
} catch (error) {
|
|
94287
|
+
this.handleError(`Error while bundling Path Item Object. Cannot resolve $ref "${$ref}": ${error.message}`, error, pathItemElement, '$ref', $ref, path);
|
|
94288
|
+
path.skip();
|
|
94289
|
+
}
|
|
94290
|
+
}
|
|
94291
|
+
|
|
94292
|
+
/**
|
|
94293
|
+
* Schema Objects in OpenAPI 3.1 are a JSON Schema 2020-12 dialect, so they are
|
|
94294
|
+
* bundled per the JSON Schema Compound Document rules: the external schema
|
|
94295
|
+
* RESOURCE is embedded verbatim into `components.schemas` (carrying its `$id`),
|
|
94296
|
+
* and the referencing `$ref` is left UNCHANGED — it keeps resolving against the
|
|
94297
|
+
* embedded resource's `$id`. This mirrors the canonical hyperjump
|
|
94298
|
+
* `json-schema-bundle` behavior (the whole resource is embedded once, keyed by
|
|
94299
|
+
* its `$id`; references are not rewritten).
|
|
94300
|
+
*/
|
|
94301
|
+
async SchemaElement(path) {
|
|
94302
|
+
const referencingElement = path.node;
|
|
94303
|
+
|
|
94304
|
+
// skip current referencing schema as $ref keyword was not defined
|
|
94305
|
+
if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(referencingElement.$ref)) {
|
|
94306
|
+
return;
|
|
94307
|
+
}
|
|
94308
|
+
const $ref = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(referencingElement.$ref);
|
|
94309
|
+
try {
|
|
94310
|
+
// compute baseURI using rules around $id and $ref keywords. The current
|
|
94311
|
+
// document's URI is the retrieval URI — derive it directly (not via
|
|
94312
|
+
// toReference) so an internal $ref needs no resolution and never trips the
|
|
94313
|
+
// resolve.maxDepth guard, matching how ReferenceElement returns early.
|
|
94314
|
+
const retrievalURI = this.reference.uri;
|
|
94315
|
+
const $refBaseURI = (0,_dereference_strategies_openapi_3_1_util_mjs__WEBPACK_IMPORTED_MODULE_38__.resolveSchema$refField)(retrievalURI, referencingElement);
|
|
94316
|
+
const $refBaseURIStrippedHash = _util_url_mjs__WEBPACK_IMPORTED_MODULE_32__.stripHash($refBaseURI);
|
|
94317
|
+
const file = new _File_mjs__WEBPACK_IMPORTED_MODULE_35__["default"]({
|
|
94318
|
+
uri: $refBaseURIStrippedHash
|
|
94319
|
+
});
|
|
94320
|
+
const isUnknownURI = (0,ramda__WEBPACK_IMPORTED_MODULE_0__["default"])(r => r.canRead(file), this.options.resolve.resolvers);
|
|
94321
|
+
const isURL = !isUnknownURI;
|
|
94322
|
+
const isInternalReference = _util_url_mjs__WEBPACK_IMPORTED_MODULE_32__.stripHash(this.reference.uri) === $refBaseURIStrippedHash;
|
|
94323
|
+
const isExternalReference = !isInternalReference;
|
|
94324
|
+
|
|
94325
|
+
// internal Schema Object $refs resolve against the in-document $id graph;
|
|
94326
|
+
// leaving them untouched keeps that resolution valid. Unlike Reference
|
|
94327
|
+
// Objects, a JSON Schema $ref is NOT normalized to a bare fragment.
|
|
94328
|
+
if (isInternalReference) {
|
|
94329
|
+
return;
|
|
94330
|
+
}
|
|
94331
|
+
|
|
94332
|
+
// honor the resolve.external switch
|
|
94333
|
+
if (!this.options.resolve.external && isExternalReference) {
|
|
94334
|
+
return;
|
|
94335
|
+
}
|
|
94336
|
+
|
|
94337
|
+
// detect maximum depth of bundling before fetching the external resource,
|
|
94338
|
+
// matching ReferenceElement/PathItemElement (which check before toReference)
|
|
94339
|
+
if (this.reference.depth >= this.options.bundle.maxDepth) {
|
|
94340
|
+
throw new _errors_MaximumBundleDepthError_mjs__WEBPACK_IMPORTED_MODULE_29__["default"](`Maximum bundle depth of "${this.options.bundle.maxDepth}" has been exceeded in file "${this.reference.uri}"`, {
|
|
94341
|
+
maxDepth: this.options.bundle.maxDepth,
|
|
94342
|
+
uri: this.reference.uri
|
|
92347
94343
|
});
|
|
92348
|
-
} finally {
|
|
92349
|
-
this.inlineStack.delete(canonicalKey);
|
|
92350
94344
|
}
|
|
92351
94345
|
|
|
92352
|
-
//
|
|
92353
|
-
//
|
|
92354
|
-
//
|
|
92355
|
-
//
|
|
92356
|
-
|
|
92357
|
-
|
|
92358
|
-
|
|
92359
|
-
|
|
92360
|
-
|
|
94346
|
+
// locate the external schema resource the $ref targets, reusing the
|
|
94347
|
+
// dereference strategy's classification. First try to resolve the target
|
|
94348
|
+
// as a canonical URI / URL against the current document's $id graph; if
|
|
94349
|
+
// that fails, fall back to fetching the external document and resolving
|
|
94350
|
+
// the fragment there as a $anchor or JSON Pointer.
|
|
94351
|
+
let schemaReference = this.reference;
|
|
94352
|
+
try {
|
|
94353
|
+
const referenceAsSchema = (0,_dereference_strategies_openapi_3_1_util_mjs__WEBPACK_IMPORTED_MODULE_38__.maybeRefractToSchemaElement)(schemaReference.value.result);
|
|
94354
|
+
(0,_dereference_strategies_openapi_3_1_selectors_uri_mjs__WEBPACK_IMPORTED_MODULE_37__.evaluate)($refBaseURI, referenceAsSchema);
|
|
94355
|
+
} catch (error) {
|
|
94356
|
+
if (isURL && error instanceof _errors_EvaluationJsonSchemaUriError_mjs__WEBPACK_IMPORTED_MODULE_31__["default"]) {
|
|
94357
|
+
if ((0,_dereference_strategies_openapi_3_1_selectors_$anchor_mjs__WEBPACK_IMPORTED_MODULE_36__.isAnchor)((0,_dereference_strategies_openapi_3_1_selectors_$anchor_mjs__WEBPACK_IMPORTED_MODULE_36__.uriToAnchor)($refBaseURI))) {
|
|
94358
|
+
schemaReference = await this.toReference(_util_url_mjs__WEBPACK_IMPORTED_MODULE_32__.unsanitize($refBaseURI));
|
|
94359
|
+
const selector = (0,_dereference_strategies_openapi_3_1_selectors_$anchor_mjs__WEBPACK_IMPORTED_MODULE_36__.uriToAnchor)($refBaseURI);
|
|
94360
|
+
const referenceAsSchema = (0,_dereference_strategies_openapi_3_1_util_mjs__WEBPACK_IMPORTED_MODULE_38__.maybeRefractToSchemaElement)(schemaReference.value.result);
|
|
94361
|
+
(0,_dereference_strategies_openapi_3_1_selectors_$anchor_mjs__WEBPACK_IMPORTED_MODULE_36__.evaluate)(selector, referenceAsSchema);
|
|
94362
|
+
} else {
|
|
94363
|
+
schemaReference = await this.toReference(_util_url_mjs__WEBPACK_IMPORTED_MODULE_32__.unsanitize($refBaseURI));
|
|
94364
|
+
const selector = _speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__.URIFragmentIdentifier.fromURIReference($refBaseURI);
|
|
94365
|
+
const referenceAsSchema = (0,_dereference_strategies_openapi_3_1_util_mjs__WEBPACK_IMPORTED_MODULE_38__.maybeRefractToSchemaElement)(schemaReference.value.result);
|
|
94366
|
+
(0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_11__.evaluate)(referenceAsSchema, selector);
|
|
94367
|
+
}
|
|
94368
|
+
} else {
|
|
94369
|
+
throw error;
|
|
94370
|
+
}
|
|
94371
|
+
}
|
|
94372
|
+
|
|
94373
|
+
// a $ref that resolves (by $id/$anchor/pointer) within the current document
|
|
94374
|
+
// is internal even when its URI form (e.g. a URN or absolute $id) is not a
|
|
94375
|
+
// bare fragment. Leave it untouched — it resolves against the in-document
|
|
94376
|
+
// $id graph, and embedding the current document into itself would be wrong.
|
|
94377
|
+
if (_util_url_mjs__WEBPACK_IMPORTED_MODULE_32__.stripHash(schemaReference.uri) === _util_url_mjs__WEBPACK_IMPORTED_MODULE_32__.stripHash(this.reference.uri)) {
|
|
94378
|
+
return;
|
|
94379
|
+
}
|
|
94380
|
+
|
|
94381
|
+
// the resource to embed is the WHOLE external document (its root schema),
|
|
94382
|
+
// identified by its $id. A $ref into a fragment of the document embeds the
|
|
94383
|
+
// entire document resource once; the fragment keeps resolving against the
|
|
94384
|
+
// embedded $id.
|
|
94385
|
+
const resourceRoot = (0,_dereference_strategies_openapi_3_1_util_mjs__WEBPACK_IMPORTED_MODULE_38__.maybeRefractToSchemaElement)(schemaReference.value.result);
|
|
94386
|
+
const resourceBaseURI = (0,_dereference_strategies_openapi_3_1_util_mjs__WEBPACK_IMPORTED_MODULE_38__.resolveSchema$idField)(_util_url_mjs__WEBPACK_IMPORTED_MODULE_32__.stripHash(schemaReference.uri), resourceRoot) ?? _util_url_mjs__WEBPACK_IMPORTED_MODULE_32__.stripHash(schemaReference.uri);
|
|
94387
|
+
const field = cf.schemas.name;
|
|
94388
|
+
const canonicalKey = `${field}\t${resourceBaseURI}`;
|
|
94389
|
+
|
|
94390
|
+
// resource already embedded (or being embedded) — leave the referencing
|
|
94391
|
+
// $ref untouched and stop. This also terminates circular external schema
|
|
94392
|
+
// references, since the assignment is reserved BEFORE recursion.
|
|
94393
|
+
if (this.assignments.has(canonicalKey)) {
|
|
94394
|
+
path.skip();
|
|
94395
|
+
return;
|
|
94396
|
+
}
|
|
94397
|
+
|
|
94398
|
+
// own a copy of the resource and ensure it carries a $id so the unchanged
|
|
94399
|
+
// $ref still resolves against it once embedded
|
|
94400
|
+
const embeddedElement = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__.cloneDeep)(resourceRoot);
|
|
94401
|
+
if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(embeddedElement.$id)) {
|
|
94402
|
+
embeddedElement.set('$id', resourceBaseURI);
|
|
94403
|
+
}
|
|
94404
|
+
|
|
94405
|
+
// the embedded thing is the WHOLE resource (keyed by its $id), so its name
|
|
94406
|
+
// is derived from the resource URI, not the $ref fragment — passing a root
|
|
94407
|
+
// pointer makes baseName fall back to the resource basename
|
|
94408
|
+
const preferredName = this.baseName(embeddedElement, field, '', resourceBaseURI);
|
|
94409
|
+
const componentName = this.uniqueName(preferredName, field);
|
|
94410
|
+
this.reportNameCollision(preferredName, componentName, field);
|
|
94411
|
+
|
|
94412
|
+
// reserve the assignment and component name before recursing so circular
|
|
94413
|
+
// external schema references terminate
|
|
94414
|
+
this.assignments.set(canonicalKey, `#/components/${field}/${(0,_speclynx_apidom_json_pointer__WEBPACK_IMPORTED_MODULE_12__.escape)(componentName)}`);
|
|
94415
|
+
if (!this.reservedNames.has(field)) this.reservedNames.set(field, new Set());
|
|
94416
|
+
this.reservedNames.get(field).add(componentName);
|
|
94417
|
+
|
|
94418
|
+
// bundle external references contained within the embedded resource;
|
|
94419
|
+
// nested external resources land flat in the same components.schemas
|
|
94420
|
+
const visitor = new OpenAPI3_1BundleVisitor({
|
|
94421
|
+
reference: schemaReference,
|
|
94422
|
+
options: this.options,
|
|
94423
|
+
assignments: this.assignments,
|
|
94424
|
+
reservedNames: this.reservedNames,
|
|
94425
|
+
refractCache: this.refractCache
|
|
92361
94426
|
});
|
|
92362
|
-
bundledElement.
|
|
92363
|
-
|
|
94427
|
+
const bundledElement = await (0,_speclynx_apidom_traverse__WEBPACK_IMPORTED_MODULE_10__.traverseAsync)(embeddedElement, visitor, {
|
|
94428
|
+
mutable: true
|
|
94429
|
+
});
|
|
94430
|
+
|
|
94431
|
+
// annotate the embedded resource with info about its origin
|
|
94432
|
+
bundledElement.meta.set('ref-origin', schemaReference.uri);
|
|
94433
|
+
|
|
94434
|
+
// place the embedded resource into the entry document's components
|
|
94435
|
+
this.ensureComponentsField(field).set(componentName, bundledElement);
|
|
94436
|
+
|
|
94437
|
+
// the referencing $ref is left UNCHANGED — it resolves against the
|
|
94438
|
+
// embedded resource's $id
|
|
94439
|
+
path.skip();
|
|
92364
94440
|
} catch (error) {
|
|
92365
|
-
this.handleError(`Error while bundling
|
|
94441
|
+
this.handleError(`Error while bundling Schema Object. Cannot resolve $ref "${$ref}": ${error.message}`, error, referencingElement, '$ref', $ref, path);
|
|
94442
|
+
path.skip();
|
|
92366
94443
|
}
|
|
92367
94444
|
}
|
|
92368
94445
|
|
|
@@ -92375,18 +94452,18 @@ class OpenAPI3_0BundleVisitor {
|
|
|
92375
94452
|
const exampleElement = path.node;
|
|
92376
94453
|
|
|
92377
94454
|
// ignore Example Objects without an externalValue field
|
|
92378
|
-
if (!(0,
|
|
94455
|
+
if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(exampleElement.externalValue)) {
|
|
92379
94456
|
return;
|
|
92380
94457
|
}
|
|
92381
94458
|
|
|
92382
94459
|
// value and externalValue fields are mutually exclusive
|
|
92383
|
-
if (exampleElement.hasKey('value') && (0,
|
|
92384
|
-
throw new
|
|
92385
|
-
value: (0,
|
|
92386
|
-
externalValue: (0,
|
|
94460
|
+
if (exampleElement.hasKey('value') && (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(exampleElement.externalValue)) {
|
|
94461
|
+
throw new _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_9__["default"]('ExampleElement value and externalValue fields are mutually exclusive', {
|
|
94462
|
+
value: (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(exampleElement.value),
|
|
94463
|
+
externalValue: (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(exampleElement.externalValue)
|
|
92387
94464
|
});
|
|
92388
94465
|
}
|
|
92389
|
-
const externalValue = (0,
|
|
94466
|
+
const externalValue = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(exampleElement.externalValue);
|
|
92390
94467
|
const retrievalURI = this.toBaseURI(externalValue);
|
|
92391
94468
|
const isInternalReference = this.entryURI === retrievalURI;
|
|
92392
94469
|
const isExternalReference = !isInternalReference;
|
|
@@ -92397,9 +94474,9 @@ class OpenAPI3_0BundleVisitor {
|
|
|
92397
94474
|
}
|
|
92398
94475
|
try {
|
|
92399
94476
|
const reference = await this.toReference(externalValue);
|
|
92400
|
-
const valueElement = (0,
|
|
94477
|
+
const valueElement = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__.cloneShallow)(reference.value.result);
|
|
92401
94478
|
valueElement.meta.set('ref-origin', reference.uri);
|
|
92402
|
-
const exampleElementCopy = (0,
|
|
94479
|
+
const exampleElementCopy = (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__.cloneShallow)(exampleElement);
|
|
92403
94480
|
exampleElementCopy.value = valueElement;
|
|
92404
94481
|
exampleElementCopy.remove('externalValue');
|
|
92405
94482
|
path.replaceWith(exampleElementCopy);
|
|
@@ -92410,7 +94487,7 @@ class OpenAPI3_0BundleVisitor {
|
|
|
92410
94487
|
|
|
92411
94488
|
/**
|
|
92412
94489
|
* Link Object `operationRef` points at an Operation Object, which has no
|
|
92413
|
-
* Components Object field in OpenAPI 3.
|
|
94490
|
+
* Components Object field in OpenAPI 3.1 and therefore cannot be hoisted or
|
|
92414
94491
|
* inlined. To keep the link resolvable from the bundled document, an external
|
|
92415
94492
|
* `operationRef` is rewritten to its absolute URI. Internal `operationRef`
|
|
92416
94493
|
* values and `operationId` links are left untouched.
|
|
@@ -92419,24 +94496,24 @@ class OpenAPI3_0BundleVisitor {
|
|
|
92419
94496
|
const linkElement = path.node;
|
|
92420
94497
|
|
|
92421
94498
|
// operationRef and operationId fields are mutually exclusive
|
|
92422
|
-
if ((0,
|
|
92423
|
-
throw new
|
|
92424
|
-
operationRef: (0,
|
|
92425
|
-
operationId: (0,
|
|
94499
|
+
if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(linkElement.operationRef) && (0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(linkElement.operationId)) {
|
|
94500
|
+
throw new _speclynx_apidom_error__WEBPACK_IMPORTED_MODULE_9__["default"]('LinkElement operationRef and operationId fields are mutually exclusive', {
|
|
94501
|
+
operationRef: (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(linkElement.operationRef),
|
|
94502
|
+
operationId: (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(linkElement.operationId)
|
|
92426
94503
|
});
|
|
92427
94504
|
}
|
|
92428
94505
|
|
|
92429
94506
|
// only external operationRef links need adjusting
|
|
92430
|
-
if (!(0,
|
|
94507
|
+
if (!(0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__.isStringElement)(linkElement.operationRef)) {
|
|
92431
94508
|
return;
|
|
92432
94509
|
}
|
|
92433
|
-
const operationRef = (0,
|
|
94510
|
+
const operationRef = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(linkElement.operationRef);
|
|
92434
94511
|
const retrievalURI = this.toBaseURI(operationRef);
|
|
92435
94512
|
const isInternalReference = this.entryURI === retrievalURI;
|
|
92436
94513
|
if (isInternalReference) {
|
|
92437
|
-
// normalize self-
|
|
94514
|
+
// normalize a self-reference operationRef to a bare fragment so the bundled
|
|
92438
94515
|
// document stays transferable; bare fragments are left untouched
|
|
92439
|
-
linkElement.set('operationRef', this.
|
|
94516
|
+
linkElement.set('operationRef', this.normalizeSelfReference(operationRef));
|
|
92440
94517
|
return;
|
|
92441
94518
|
}
|
|
92442
94519
|
|
|
@@ -92447,56 +94524,13 @@ class OpenAPI3_0BundleVisitor {
|
|
|
92447
94524
|
|
|
92448
94525
|
// rewrite to an absolute URI so the link keeps resolving once the document
|
|
92449
94526
|
// is treated as self-contained
|
|
92450
|
-
const absoluteURI =
|
|
94527
|
+
const absoluteURI = _util_url_mjs__WEBPACK_IMPORTED_MODULE_32__.resolve(this.reference.uri, operationRef);
|
|
92451
94528
|
if (absoluteURI !== operationRef) {
|
|
92452
94529
|
linkElement.set('operationRef', absoluteURI);
|
|
92453
94530
|
}
|
|
92454
94531
|
}
|
|
92455
94532
|
}
|
|
92456
|
-
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (
|
|
92457
|
-
|
|
92458
|
-
/***/ },
|
|
92459
|
-
|
|
92460
|
-
/***/ 58091
|
|
92461
|
-
(__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
|
|
92462
|
-
|
|
92463
|
-
"use strict";
|
|
92464
|
-
__webpack_require__.r(__webpack_exports__);
|
|
92465
|
-
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
92466
|
-
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
92467
|
-
/* harmony export */ });
|
|
92468
|
-
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7822);
|
|
92469
|
-
/* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(76332);
|
|
92470
|
-
/* harmony import */ var _BundleStrategy_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(73723);
|
|
92471
|
-
|
|
92472
|
-
|
|
92473
|
-
/**
|
|
92474
|
-
* @public
|
|
92475
|
-
*/
|
|
92476
|
-
/**
|
|
92477
|
-
* @public
|
|
92478
|
-
*/
|
|
92479
|
-
class OpenAPI3_1BundleStrategy extends _BundleStrategy_mjs__WEBPACK_IMPORTED_MODULE_2__["default"] {
|
|
92480
|
-
constructor(options) {
|
|
92481
|
-
super({
|
|
92482
|
-
...(options ?? {}),
|
|
92483
|
-
name: 'openapi-3-1'
|
|
92484
|
-
});
|
|
92485
|
-
}
|
|
92486
|
-
canBundle(file) {
|
|
92487
|
-
// assert by media type
|
|
92488
|
-
if (file.mediaType !== 'text/plain') {
|
|
92489
|
-
return _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_0__["default"].includes(file.mediaType);
|
|
92490
|
-
}
|
|
92491
|
-
|
|
92492
|
-
// assert by inspecting ApiDOM
|
|
92493
|
-
return (0,_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_1__.isOpenApi3_1Element)(file.parseResult?.result);
|
|
92494
|
-
}
|
|
92495
|
-
async bundle(file) {
|
|
92496
|
-
return file.parseResult;
|
|
92497
|
-
}
|
|
92498
|
-
}
|
|
92499
|
-
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OpenAPI3_1BundleStrategy);
|
|
94533
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (OpenAPI3_1BundleVisitor);
|
|
92500
94534
|
|
|
92501
94535
|
/***/ },
|
|
92502
94536
|
|
|
@@ -92552,48 +94586,48 @@ const uniqueName = (candidate, isTaken) => {
|
|
|
92552
94586
|
"use strict";
|
|
92553
94587
|
__webpack_require__.r(__webpack_exports__);
|
|
92554
94588
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
92555
|
-
/* harmony export */ BundleError: () => (/* reexport safe */
|
|
92556
|
-
/* harmony export */ BundleStrategy: () => (/* reexport safe */
|
|
92557
|
-
/* harmony export */ DereferenceAncestorLineage: () => (/* reexport safe */
|
|
92558
|
-
/* harmony export */ DereferenceError: () => (/* reexport safe */
|
|
92559
|
-
/* harmony export */ DereferenceStrategy: () => (/* reexport safe */
|
|
92560
|
-
/* harmony export */ EvaluationElementIdError: () => (/* reexport safe */
|
|
92561
|
-
/* harmony export */ EvaluationJsonSchema$anchorError: () => (/* reexport safe */
|
|
92562
|
-
/* harmony export */ EvaluationJsonSchemaUriError: () => (/* reexport safe */
|
|
92563
|
-
/* harmony export */ File: () => (/* reexport safe */
|
|
92564
|
-
/* harmony export */ HTTPResolver: () => (/* reexport safe */
|
|
92565
|
-
/* harmony export */ InvalidJsonSchema$anchorError: () => (/* reexport safe */
|
|
92566
|
-
/* harmony export */ JsonSchema$anchorError: () => (/* reexport safe */
|
|
92567
|
-
/* harmony export */ JsonSchemaURIError: () => (/* reexport safe */
|
|
92568
|
-
/* harmony export */ MaximumBundleDepthError: () => (/* reexport safe */
|
|
92569
|
-
/* harmony export */ MaximumDereferenceDepthError: () => (/* reexport safe */
|
|
92570
|
-
/* harmony export */ MaximumResolveDepthError: () => (/* reexport safe */
|
|
92571
|
-
/* harmony export */ ParseError: () => (/* reexport safe */
|
|
92572
|
-
/* harmony export */ Parser: () => (/* reexport safe */
|
|
92573
|
-
/* harmony export */ ParserError: () => (/* reexport safe */
|
|
92574
|
-
/* harmony export */ PluginError: () => (/* reexport safe */
|
|
92575
|
-
/* harmony export */ Reference: () => (/* reexport safe */
|
|
92576
|
-
/* harmony export */ ReferenceSet: () => (/* reexport safe */
|
|
92577
|
-
/* harmony export */ ResolveError: () => (/* reexport safe */
|
|
92578
|
-
/* harmony export */ ResolveStrategy: () => (/* reexport safe */
|
|
92579
|
-
/* harmony export */ Resolver: () => (/* reexport safe */
|
|
92580
|
-
/* harmony export */ ResolverError: () => (/* reexport safe */
|
|
92581
|
-
/* harmony export */ UnmatchedBundleStrategyError: () => (/* reexport safe */
|
|
92582
|
-
/* harmony export */ UnmatchedDereferenceStrategyError: () => (/* reexport safe */
|
|
92583
|
-
/* harmony export */ UnmatchedParserError: () => (/* reexport safe */
|
|
92584
|
-
/* harmony export */ UnmatchedResolveStrategyError: () => (/* reexport safe */
|
|
92585
|
-
/* harmony export */ UnmatchedResolverError: () => (/* reexport safe */
|
|
92586
|
-
/* harmony export */ UnresolvableReferenceError: () => (/* reexport safe */
|
|
92587
|
-
/* harmony export */ bundle: () => (/* reexport safe */
|
|
92588
|
-
/* harmony export */ dereference: () => (/* reexport safe */
|
|
92589
|
-
/* harmony export */ dereferenceApiDOM: () => (/* reexport safe */
|
|
92590
|
-
/* harmony export */ mergeOptions: () => (/* reexport safe */
|
|
92591
|
-
/* harmony export */ options: () => (/* reexport safe */
|
|
92592
|
-
/* harmony export */ parse: () => (/* reexport safe */
|
|
92593
|
-
/* harmony export */ readFile: () => (/* reexport safe */
|
|
92594
|
-
/* harmony export */ resolve: () => (/* reexport safe */
|
|
92595
|
-
/* harmony export */ resolveApiDOM: () => (/* reexport safe */
|
|
92596
|
-
/* harmony export */ url: () => (/* reexport safe */
|
|
94589
|
+
/* harmony export */ BundleError: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.BundleError),
|
|
94590
|
+
/* harmony export */ BundleStrategy: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.BundleStrategy),
|
|
94591
|
+
/* harmony export */ DereferenceAncestorLineage: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.DereferenceAncestorLineage),
|
|
94592
|
+
/* harmony export */ DereferenceError: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.DereferenceError),
|
|
94593
|
+
/* harmony export */ DereferenceStrategy: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.DereferenceStrategy),
|
|
94594
|
+
/* harmony export */ EvaluationElementIdError: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.EvaluationElementIdError),
|
|
94595
|
+
/* harmony export */ EvaluationJsonSchema$anchorError: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.EvaluationJsonSchema$anchorError),
|
|
94596
|
+
/* harmony export */ EvaluationJsonSchemaUriError: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.EvaluationJsonSchemaUriError),
|
|
94597
|
+
/* harmony export */ File: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.File),
|
|
94598
|
+
/* harmony export */ HTTPResolver: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.HTTPResolver),
|
|
94599
|
+
/* harmony export */ InvalidJsonSchema$anchorError: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.InvalidJsonSchema$anchorError),
|
|
94600
|
+
/* harmony export */ JsonSchema$anchorError: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.JsonSchema$anchorError),
|
|
94601
|
+
/* harmony export */ JsonSchemaURIError: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.JsonSchemaURIError),
|
|
94602
|
+
/* harmony export */ MaximumBundleDepthError: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.MaximumBundleDepthError),
|
|
94603
|
+
/* harmony export */ MaximumDereferenceDepthError: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.MaximumDereferenceDepthError),
|
|
94604
|
+
/* harmony export */ MaximumResolveDepthError: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.MaximumResolveDepthError),
|
|
94605
|
+
/* harmony export */ ParseError: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.ParseError),
|
|
94606
|
+
/* harmony export */ Parser: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.Parser),
|
|
94607
|
+
/* harmony export */ ParserError: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.ParserError),
|
|
94608
|
+
/* harmony export */ PluginError: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.PluginError),
|
|
94609
|
+
/* harmony export */ Reference: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.Reference),
|
|
94610
|
+
/* harmony export */ ReferenceSet: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.ReferenceSet),
|
|
94611
|
+
/* harmony export */ ResolveError: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.ResolveError),
|
|
94612
|
+
/* harmony export */ ResolveStrategy: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.ResolveStrategy),
|
|
94613
|
+
/* harmony export */ Resolver: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.Resolver),
|
|
94614
|
+
/* harmony export */ ResolverError: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.ResolverError),
|
|
94615
|
+
/* harmony export */ UnmatchedBundleStrategyError: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.UnmatchedBundleStrategyError),
|
|
94616
|
+
/* harmony export */ UnmatchedDereferenceStrategyError: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.UnmatchedDereferenceStrategyError),
|
|
94617
|
+
/* harmony export */ UnmatchedParserError: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.UnmatchedParserError),
|
|
94618
|
+
/* harmony export */ UnmatchedResolveStrategyError: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.UnmatchedResolveStrategyError),
|
|
94619
|
+
/* harmony export */ UnmatchedResolverError: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.UnmatchedResolverError),
|
|
94620
|
+
/* harmony export */ UnresolvableReferenceError: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.UnresolvableReferenceError),
|
|
94621
|
+
/* harmony export */ bundle: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.bundle),
|
|
94622
|
+
/* harmony export */ dereference: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.dereference),
|
|
94623
|
+
/* harmony export */ dereferenceApiDOM: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.dereferenceApiDOM),
|
|
94624
|
+
/* harmony export */ mergeOptions: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.mergeOptions),
|
|
94625
|
+
/* harmony export */ options: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.options),
|
|
94626
|
+
/* harmony export */ parse: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.parse),
|
|
94627
|
+
/* harmony export */ readFile: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.readFile),
|
|
94628
|
+
/* harmony export */ resolve: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.resolve),
|
|
94629
|
+
/* harmony export */ resolveApiDOM: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.resolveApiDOM),
|
|
94630
|
+
/* harmony export */ url: () => (/* reexport safe */ _index_mjs__WEBPACK_IMPORTED_MODULE_36__.url)
|
|
92597
94631
|
/* harmony export */ });
|
|
92598
94632
|
/* harmony import */ var _resolve_resolvers_file_index_node_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79948);
|
|
92599
94633
|
/* harmony import */ var _resolve_resolvers_http_axios_index_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(352);
|
|
@@ -92627,10 +94661,12 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
92627
94661
|
/* harmony import */ var _dereference_strategies_asyncapi_2_index_mjs__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(35070);
|
|
92628
94662
|
/* harmony import */ var _dereference_strategies_arazzo_1_index_mjs__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(880);
|
|
92629
94663
|
/* harmony import */ var _dereference_strategies_overlay_1_index_mjs__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(67689);
|
|
92630
|
-
/* harmony import */ var
|
|
92631
|
-
/* harmony import */ var
|
|
92632
|
-
/* harmony import */ var
|
|
92633
|
-
/* harmony import */ var _index_mjs__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(
|
|
94664
|
+
/* harmony import */ var _bundle_strategies_openapi_2_index_mjs__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(95416);
|
|
94665
|
+
/* harmony import */ var _bundle_strategies_openapi_3_0_index_mjs__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(5138);
|
|
94666
|
+
/* harmony import */ var _bundle_strategies_openapi_3_1_index_mjs__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(58091);
|
|
94667
|
+
/* harmony import */ var _index_mjs__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(30306);
|
|
94668
|
+
/* harmony import */ var _index_mjs__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(37013);
|
|
94669
|
+
|
|
92634
94670
|
|
|
92635
94671
|
|
|
92636
94672
|
|
|
@@ -92666,7 +94702,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
92666
94702
|
|
|
92667
94703
|
|
|
92668
94704
|
|
|
92669
|
-
|
|
94705
|
+
_index_mjs__WEBPACK_IMPORTED_MODULE_35__["default"].parse.parsers = [new _parse_parsers_openapi_json_2_index_mjs__WEBPACK_IMPORTED_MODULE_9__["default"]({
|
|
92670
94706
|
allowEmpty: true,
|
|
92671
94707
|
sourceMap: false
|
|
92672
94708
|
}), new _parse_parsers_openapi_yaml_2_index_mjs__WEBPACK_IMPORTED_MODULE_10__["default"]({
|
|
@@ -92714,14 +94750,14 @@ _index_mjs__WEBPACK_IMPORTED_MODULE_34__["default"].parse.parsers = [new _parse_
|
|
|
92714
94750
|
}), new _parse_parsers_binary_index_node_mjs__WEBPACK_IMPORTED_MODULE_24__["default"]({
|
|
92715
94751
|
allowEmpty: true
|
|
92716
94752
|
})];
|
|
92717
|
-
|
|
94753
|
+
_index_mjs__WEBPACK_IMPORTED_MODULE_35__["default"].resolve.resolvers = [new _resolve_resolvers_file_index_node_mjs__WEBPACK_IMPORTED_MODULE_0__["default"](), new _resolve_resolvers_http_axios_index_mjs__WEBPACK_IMPORTED_MODULE_1__["default"]({
|
|
92718
94754
|
timeout: 5000,
|
|
92719
94755
|
redirects: 5,
|
|
92720
94756
|
withCredentials: false
|
|
92721
94757
|
})];
|
|
92722
|
-
|
|
92723
|
-
|
|
92724
|
-
|
|
94758
|
+
_index_mjs__WEBPACK_IMPORTED_MODULE_35__["default"].resolve.strategies = [new _resolve_strategies_openapi_2_index_mjs__WEBPACK_IMPORTED_MODULE_2__["default"](), new _resolve_strategies_openapi_3_0_index_mjs__WEBPACK_IMPORTED_MODULE_3__["default"](), new _resolve_strategies_openapi_3_1_index_mjs__WEBPACK_IMPORTED_MODULE_4__["default"](), new _resolve_strategies_asyncapi_2_index_mjs__WEBPACK_IMPORTED_MODULE_5__["default"](), new _resolve_strategies_arazzo_1_index_mjs__WEBPACK_IMPORTED_MODULE_6__["default"](), new _resolve_strategies_overlay_1_index_mjs__WEBPACK_IMPORTED_MODULE_7__["default"](), new _resolve_strategies_apidom_index_mjs__WEBPACK_IMPORTED_MODULE_8__["default"]()];
|
|
94759
|
+
_index_mjs__WEBPACK_IMPORTED_MODULE_35__["default"].dereference.strategies = [new _dereference_strategies_openapi_2_index_mjs__WEBPACK_IMPORTED_MODULE_26__["default"](), new _dereference_strategies_openapi_3_0_index_mjs__WEBPACK_IMPORTED_MODULE_27__["default"](), new _dereference_strategies_openapi_3_1_index_mjs__WEBPACK_IMPORTED_MODULE_28__["default"](), new _dereference_strategies_asyncapi_2_index_mjs__WEBPACK_IMPORTED_MODULE_29__["default"](), new _dereference_strategies_arazzo_1_index_mjs__WEBPACK_IMPORTED_MODULE_30__["default"](), new _dereference_strategies_overlay_1_index_mjs__WEBPACK_IMPORTED_MODULE_31__["default"](), new _dereference_strategies_apidom_index_mjs__WEBPACK_IMPORTED_MODULE_25__["default"]()];
|
|
94760
|
+
_index_mjs__WEBPACK_IMPORTED_MODULE_35__["default"].bundle.strategies = [new _bundle_strategies_openapi_2_index_mjs__WEBPACK_IMPORTED_MODULE_32__["default"](), new _bundle_strategies_openapi_3_0_index_mjs__WEBPACK_IMPORTED_MODULE_33__["default"](), new _bundle_strategies_openapi_3_1_index_mjs__WEBPACK_IMPORTED_MODULE_34__["default"]()];
|
|
92725
94761
|
|
|
92726
94762
|
|
|
92727
94763
|
/***/ },
|
|
@@ -101463,6 +103499,7 @@ __webpack_require__.r(__webpack_exports__);
|
|
|
101463
103499
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
101464
103500
|
/* harmony export */ cwd: () => (/* binding */ cwd),
|
|
101465
103501
|
/* harmony export */ fromFileSystemPath: () => (/* binding */ fromFileSystemPath),
|
|
103502
|
+
/* harmony export */ getBasename: () => (/* binding */ getBasename),
|
|
101466
103503
|
/* harmony export */ getExtension: () => (/* binding */ getExtension),
|
|
101467
103504
|
/* harmony export */ getHash: () => (/* binding */ getHash),
|
|
101468
103505
|
/* harmony export */ getProtocol: () => (/* binding */ getProtocol),
|
|
@@ -101521,19 +103558,40 @@ const getProtocol = url => {
|
|
|
101521
103558
|
*/
|
|
101522
103559
|
const hasProtocol = (0,ramda__WEBPACK_IMPORTED_MODULE_3__["default"])(getProtocol, ramda_adjunct__WEBPACK_IMPORTED_MODULE_6__["default"]);
|
|
101523
103560
|
|
|
103561
|
+
/**
|
|
103562
|
+
* Returns the final path segment of the given URI (the part after the last
|
|
103563
|
+
* `/`). Inputs are URIs, whose path separator is `/` — filesystem paths are
|
|
103564
|
+
* forward-slashed by `sanitize` before reaching here.
|
|
103565
|
+
*/
|
|
103566
|
+
const getFilename = uri => uri.slice(uri.lastIndexOf('/') + 1);
|
|
103567
|
+
|
|
101524
103568
|
/**
|
|
101525
103569
|
* Returns the lower-cased file extension of the given URL,
|
|
101526
103570
|
* or an empty string if it has no extension.
|
|
101527
103571
|
* @public
|
|
101528
103572
|
*/
|
|
101529
103573
|
const getExtension = url => {
|
|
101530
|
-
const
|
|
103574
|
+
const fileName = getFilename(url);
|
|
103575
|
+
const lastDotPosition = fileName.lastIndexOf('.');
|
|
101531
103576
|
if (lastDotPosition >= 0) {
|
|
101532
|
-
return
|
|
103577
|
+
return fileName.substring(lastDotPosition).toLowerCase();
|
|
101533
103578
|
}
|
|
101534
103579
|
return '';
|
|
101535
103580
|
};
|
|
101536
103581
|
|
|
103582
|
+
/**
|
|
103583
|
+
* Returns the final path segment of the given URI with its file extension
|
|
103584
|
+
* removed (e.g. `./schemas/Pet.json` -> `Pet`). Returns the whole segment when
|
|
103585
|
+
* there is no extension, and the whole URI when there is no path segment
|
|
103586
|
+
* (e.g. a URN).
|
|
103587
|
+
* @public
|
|
103588
|
+
*/
|
|
103589
|
+
const getBasename = uri => {
|
|
103590
|
+
const fileName = getFilename(uri);
|
|
103591
|
+
const extension = getExtension(uri);
|
|
103592
|
+
return extension === '' ? fileName : fileName.slice(0, -extension.length);
|
|
103593
|
+
};
|
|
103594
|
+
|
|
101537
103595
|
/**
|
|
101538
103596
|
* Determines whether the given path is a filesystem path.
|
|
101539
103597
|
* This includes "file://" URLs.
|