@speclynx/apidom-reference 5.2.1 → 5.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -4802,17 +4802,11 @@ __webpack_require__.r(__webpack_exports__);
4802
4802
  /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(84660);
4803
4803
  /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4823);
4804
4804
  /* harmony import */ var _speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(28839);
4805
- /* harmony import */ var _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(26365);
4806
- /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(32131);
4807
- /* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(76332);
4808
- /* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(44673);
4809
- /* harmony import */ var _util_url_ts__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(30658);
4810
- /* harmony import */ var _options_util_ts__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(86547);
4811
- /* harmony import */ var _index_ts__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(42037);
4812
- /* harmony import */ var _util_ts__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(91005);
4813
-
4814
-
4815
-
4805
+ /* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(44673);
4806
+ /* harmony import */ var _util_url_ts__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(30658);
4807
+ /* harmony import */ var _options_util_ts__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(86547);
4808
+ /* harmony import */ var _index_ts__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(42037);
4809
+ /* harmony import */ var _util_ts__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(91005);
4816
4810
 
4817
4811
 
4818
4812
 
@@ -4835,9 +4829,9 @@ async function dereferenceSourceDescription(sourceDescription, ctx) {
4835
4829
 
4836
4830
  // set class and metadata from source description element
4837
4831
  parseResult.classes.push('source-description');
4838
- if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isStringElement)(sourceDescription.name)) parseResult.setMetaProperty('name', (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_8__["default"])(sourceDescription.name));
4839
- if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isStringElement)(sourceDescription.type)) parseResult.setMetaProperty('type', (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_8__["default"])(sourceDescription.type));
4840
- const sourceDescriptionURI = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_8__["default"])(sourceDescription.url);
4832
+ if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isStringElement)(sourceDescription.name)) parseResult.setMetaProperty('name', (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(sourceDescription.name));
4833
+ if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isStringElement)(sourceDescription.type)) parseResult.setMetaProperty('type', (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(sourceDescription.type));
4834
+ const sourceDescriptionURI = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(sourceDescription.url);
4841
4835
  if (typeof sourceDescriptionURI !== 'string') {
4842
4836
  const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"]('Source description URL is missing or not a string. Skipping');
4843
4837
  annotation.classes.push('warning');
@@ -4846,17 +4840,28 @@ async function dereferenceSourceDescription(sourceDescription, ctx) {
4846
4840
  }
4847
4841
 
4848
4842
  // normalize URI for consistent cycle detection and refSet cache key matching
4849
- const retrievalURI = _util_url_ts__WEBPACK_IMPORTED_MODULE_9__.sanitize(_util_url_ts__WEBPACK_IMPORTED_MODULE_9__.stripHash(_util_url_ts__WEBPACK_IMPORTED_MODULE_9__.resolve(ctx.baseURI, sourceDescriptionURI)));
4843
+ const retrievalURI = _util_url_ts__WEBPACK_IMPORTED_MODULE_6__.sanitize(_util_url_ts__WEBPACK_IMPORTED_MODULE_6__.stripHash(_util_url_ts__WEBPACK_IMPORTED_MODULE_6__.resolve(ctx.baseURI, sourceDescriptionURI)));
4850
4844
  parseResult.setMetaProperty('retrievalURI', retrievalURI);
4851
4845
 
4852
- // skip if already visited (cycle detection)
4853
- if (ctx.visitedUrls.has(retrievalURI)) {
4846
+ // skip if the document is still being dereferenced higher up the chain (cycle detection)
4847
+ if (ctx.ancestors.includes(retrievalURI)) {
4854
4848
  const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"](`Source description "${retrievalURI}" has already been visited. Skipping to prevent cycle`);
4855
4849
  annotation.classes.push('warning');
4856
4850
  parseResult.push(annotation);
4857
4851
  return parseResult;
4858
4852
  }
4859
- ctx.visitedUrls.add(retrievalURI);
4853
+
4854
+ // a document reached again through a different path is a shared dependency, not a cycle;
4855
+ // point at the result where it was dereferenced instead of dereferencing it again
4856
+ const sharedDereferenceResult = ctx.dereferenced.get(retrievalURI);
4857
+ if (sharedDereferenceResult !== undefined) {
4858
+ const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"](`Source description "${retrievalURI}" has already been dereferenced. Reusing existing dereference result`);
4859
+ annotation.classes.push('info');
4860
+ parseResult.push(annotation);
4861
+ parseResult.meta.set('parseResult', sharedDereferenceResult);
4862
+ (0,_util_ts__WEBPACK_IMPORTED_MODULE_9__.validateSourceDescriptionAPI)(parseResult, sourceDescription, sharedDereferenceResult.api, retrievalURI);
4863
+ return parseResult;
4864
+ }
4860
4865
 
4861
4866
  // check if source description was already parsed (e.g., during parse phase with sourceDescriptions: true)
4862
4867
  const existingParseResult = sourceDescription.meta.get('parseResult');
@@ -4864,7 +4869,7 @@ async function dereferenceSourceDescription(sourceDescription, ctx) {
4864
4869
  let sourceDescriptionDereferenced;
4865
4870
  if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__.isParseResultElement)(existingParseResult)) {
4866
4871
  // use existing parsed result - just dereference it (no re-fetch/re-parse)
4867
- sourceDescriptionDereferenced = await (0,_index_ts__WEBPACK_IMPORTED_MODULE_11__.dereferenceApiDOM)(existingParseResult, (0,_options_util_ts__WEBPACK_IMPORTED_MODULE_10__.merge)(ctx.options, {
4872
+ sourceDescriptionDereferenced = await (0,_index_ts__WEBPACK_IMPORTED_MODULE_8__.dereferenceApiDOM)(existingParseResult, (0,_options_util_ts__WEBPACK_IMPORTED_MODULE_7__.merge)(ctx.options, {
4868
4873
  parse: {
4869
4874
  mediaType: 'text/plain' // allow dereference strategy detection via ApiDOM inspection
4870
4875
  },
@@ -4879,14 +4884,15 @@ async function dereferenceSourceDescription(sourceDescription, ctx) {
4879
4884
  [ctx.strategyName]: {
4880
4885
  sourceDescriptions: true,
4881
4886
  sourceDescriptionsDepth: ctx.currentDepth + 1,
4882
- sourceDescriptionsVisitedUrls: ctx.visitedUrls
4887
+ sourceDescriptionsAncestors: ctx.ancestors,
4888
+ sourceDescriptionsDereferenced: ctx.dereferenced
4883
4889
  }
4884
4890
  }
4885
4891
  }
4886
4892
  }));
4887
4893
  } else {
4888
4894
  // no existing parse result - fetch, parse, and dereference
4889
- sourceDescriptionDereferenced = await (0,_index_ts__WEBPACK_IMPORTED_MODULE_11__["default"])(retrievalURI, (0,_options_util_ts__WEBPACK_IMPORTED_MODULE_10__.merge)(ctx.options, {
4895
+ sourceDescriptionDereferenced = await (0,_index_ts__WEBPACK_IMPORTED_MODULE_8__["default"])(retrievalURI, (0,_options_util_ts__WEBPACK_IMPORTED_MODULE_7__.merge)(ctx.options, {
4890
4896
  parse: {
4891
4897
  mediaType: 'text/plain' // allow parser plugin detection
4892
4898
  },
@@ -4898,7 +4904,8 @@ async function dereferenceSourceDescription(sourceDescription, ctx) {
4898
4904
  [ctx.strategyName]: {
4899
4905
  sourceDescriptions: true,
4900
4906
  sourceDescriptionsDepth: ctx.currentDepth + 1,
4901
- sourceDescriptionsVisitedUrls: ctx.visitedUrls
4907
+ sourceDescriptionsAncestors: ctx.ancestors,
4908
+ sourceDescriptionsDereferenced: ctx.dereferenced
4902
4909
  }
4903
4910
  }
4904
4911
  }
@@ -4918,32 +4925,14 @@ async function dereferenceSourceDescription(sourceDescription, ctx) {
4918
4925
  return parseResult;
4919
4926
  }
4920
4927
 
4921
- // only allow OpenAPI and Arazzo as source descriptions
4928
+ // register dereferenced document for later references to it
4922
4929
  const {
4923
4930
  api: sourceDescriptionAPI
4924
4931
  } = parseResult;
4925
- const isOpenApi = (0,_speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_5__.isSwaggerElement)(sourceDescriptionAPI) || (0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_6__.isOpenApi3_0Element)(sourceDescriptionAPI) || (0,_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_7__.isOpenApi3_1Element)(sourceDescriptionAPI);
4926
- const isArazzo = (0,_speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_4__.isArazzoSpecification1Element)(sourceDescriptionAPI);
4927
- if (!isOpenApi && !isArazzo) {
4928
- const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"](`Source description "${retrievalURI}" is not an OpenAPI or Arazzo document`);
4929
- annotation.classes.push('warning');
4930
- parseResult.push(annotation);
4931
- return parseResult;
4932
- }
4933
-
4934
- // validate declared type matches actual dereferenced type
4935
- const declaredType = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_8__["default"])(sourceDescription.type);
4936
- if (typeof declaredType === 'string') {
4937
- if (declaredType === 'openapi' && !isOpenApi) {
4938
- const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"](`Source description "${retrievalURI}" declared as "openapi" but dereferenced as Arazzo document`);
4939
- annotation.classes.push('warning');
4940
- parseResult.push(annotation);
4941
- } else if (declaredType === 'arazzo' && !isArazzo) {
4942
- const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"](`Source description "${retrievalURI}" declared as "arazzo" but dereferenced as OpenAPI document`);
4943
- annotation.classes.push('warning');
4944
- parseResult.push(annotation);
4945
- }
4932
+ for (const documentURI of (0,_util_ts__WEBPACK_IMPORTED_MODULE_9__.arazzoDocumentURIs)(retrievalURI, sourceDescriptionAPI)) {
4933
+ ctx.dereferenced.set(documentURI, parseResult);
4946
4934
  }
4935
+ ;(0,_util_ts__WEBPACK_IMPORTED_MODULE_9__.validateSourceDescriptionAPI)(parseResult, sourceDescription, sourceDescriptionAPI, retrievalURI);
4947
4936
  return parseResult;
4948
4937
  }
4949
4938
 
@@ -4955,6 +4944,13 @@ async function dereferenceSourceDescription(sourceDescription, ctx) {
4955
4944
  * regardless of success or failure. On failure, the ParseResultElement
4956
4945
  * contains annotations explaining what went wrong.
4957
4946
  *
4947
+ * A document referenced from more than one place is dereferenced only once.
4948
+ * Every later source description referencing it gets its own result carrying
4949
+ * an 'info' annotation and a 'parseResult' meta pointing at the result where
4950
+ * the document was dereferenced; that result is also what gets attached to the
4951
+ * SourceDescriptionElement's meta. A document referencing one of its ancestors
4952
+ * forms a cycle and is skipped with a 'warning' annotation instead.
4953
+ *
4958
4954
  * @param parseResult - ParseResult containing a parsed (optionally dereferenced) Arazzo specification
4959
4955
  * @param parseResultRetrievalURI - URI from which the parseResult was retrieved
4960
4956
  * @param options - Full ReferenceOptions. Pass `sourceDescriptions` as an array of names
@@ -4989,7 +4985,7 @@ async function dereferenceSourceDescription(sourceDescription, ctx) {
4989
4985
  * @public
4990
4986
  */
4991
4987
  async function dereferenceSourceDescriptions(parseResult, parseResultRetrievalURI, options, strategyName = 'arazzo-1') {
4992
- const retrievalURI = _util_url_ts__WEBPACK_IMPORTED_MODULE_9__.sanitize(_util_url_ts__WEBPACK_IMPORTED_MODULE_9__.stripHash(parseResultRetrievalURI));
4988
+ const retrievalURI = _util_url_ts__WEBPACK_IMPORTED_MODULE_6__.sanitize(_util_url_ts__WEBPACK_IMPORTED_MODULE_6__.stripHash(parseResultRetrievalURI));
4993
4989
  const results = [];
4994
4990
 
4995
4991
  // get API from dereferenced parse result
@@ -5018,14 +5014,9 @@ async function dereferenceSourceDescriptions(parseResult, parseResultRetrievalUR
5018
5014
  // recursion state comes from strategy-specific options
5019
5015
  const sharedOpts = options?.dereference?.strategyOpts?.[strategyName] ?? {};
5020
5016
  const currentDepth = sharedOpts.sourceDescriptionsDepth ?? 0;
5021
- const visitedUrls = sharedOpts.sourceDescriptionsVisitedUrls ?? new Set();
5022
-
5023
- // base URI for resolving source description URLs honors Arazzo `$self` field
5024
- const baseURI = (0,_util_ts__WEBPACK_IMPORTED_MODULE_12__.resolveArazzo$selfField)(retrievalURI, api);
5025
-
5026
- // add current file to visited URLs to prevent cycles (by retrieval URI and by identity)
5027
- visitedUrls.add(retrievalURI);
5028
- visitedUrls.add(baseURI);
5017
+ const dereferenced = sharedOpts.sourceDescriptionsDereferenced ?? new Map();
5018
+ // current file is an ancestor of everything dereferenced below
5019
+ const ancestors = [...(sharedOpts.sourceDescriptionsAncestors ?? []), ...(0,_util_ts__WEBPACK_IMPORTED_MODULE_9__.arazzoDocumentURIs)(retrievalURI, api)];
5029
5020
  if (currentDepth >= maxDepth) {
5030
5021
  const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__["default"](`Maximum dereference depth of ${maxDepth} has been exceeded by file "${retrievalURI}"`);
5031
5022
  annotation.classes.push('error');
@@ -5034,26 +5025,29 @@ async function dereferenceSourceDescriptions(parseResult, parseResultRetrievalUR
5034
5025
  return [parseResult];
5035
5026
  }
5036
5027
  const ctx = {
5037
- baseURI,
5028
+ // base URI for resolving source description URLs honors Arazzo `$self` field
5029
+ baseURI: (0,_util_ts__WEBPACK_IMPORTED_MODULE_9__.resolveArazzo$selfField)(retrievalURI, api),
5038
5030
  options,
5039
5031
  strategyName,
5040
5032
  currentDepth,
5041
- visitedUrls
5033
+ ancestors,
5034
+ dereferenced
5042
5035
  };
5043
5036
 
5044
5037
  // determine which source descriptions to dereference (array filters by name)
5045
5038
  const sourceDescriptionsOption = options?.dereference?.strategyOpts?.[strategyName]?.sourceDescriptions ?? options?.dereference?.strategyOpts?.sourceDescriptions;
5046
5039
  const sourceDescriptions = Array.isArray(sourceDescriptionsOption) ? api.sourceDescriptions.filter(sd => {
5047
5040
  if (!(0,_speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_4__.isSourceDescriptionElement)(sd)) return false;
5048
- const name = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_8__["default"])(sd.name);
5041
+ const name = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_5__["default"])(sd.name);
5049
5042
  return typeof name === 'string' && sourceDescriptionsOption.includes(name);
5050
5043
  }) : api.sourceDescriptions;
5051
5044
 
5052
- // process sequentially to ensure proper cycle detection with shared visitedUrls
5045
+ // process sequentially to ensure proper cycle detection with shared state
5053
5046
  for (const sourceDescription of sourceDescriptions) {
5054
5047
  const sourceDescriptionDereferenceResult = await dereferenceSourceDescription(sourceDescription, ctx);
5055
- // always attach result (even on failure - contains annotations)
5056
- sourceDescription.meta.set('parseResult', sourceDescriptionDereferenceResult);
5048
+ // always attach result (even on failure - contains annotations);
5049
+ // a shared document attaches the result where it was dereferenced
5050
+ sourceDescription.meta.set('parseResult', sourceDescriptionDereferenceResult.meta.get('parseResult') ?? sourceDescriptionDereferenceResult);
5057
5051
  results.push(sourceDescriptionDereferenceResult);
5058
5052
  }
5059
5053
  return results;
@@ -5067,15 +5061,22 @@ async function dereferenceSourceDescriptions(parseResult, parseResultRetrievalUR
5067
5061
  "use strict";
5068
5062
  __webpack_require__.r(__webpack_exports__);
5069
5063
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
5070
- /* harmony export */ resolveSchema$idField: () => (/* reexport safe */ _openapi_3_1_util_ts__WEBPACK_IMPORTED_MODULE_5__.resolveSchema$idField),
5071
- /* harmony export */ resolveSchema$refField: () => (/* reexport safe */ _openapi_3_1_util_ts__WEBPACK_IMPORTED_MODULE_5__.resolveSchema$refField)
5064
+ /* harmony export */ resolveSchema$idField: () => (/* reexport safe */ _openapi_3_1_util_ts__WEBPACK_IMPORTED_MODULE_9__.resolveSchema$idField),
5065
+ /* harmony export */ resolveSchema$refField: () => (/* reexport safe */ _openapi_3_1_util_ts__WEBPACK_IMPORTED_MODULE_9__.resolveSchema$refField)
5072
5066
  /* harmony export */ });
5073
5067
  /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25162);
5074
- /* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44673);
5075
- /* harmony import */ var _speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7392);
5076
- /* harmony import */ var _speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(28839);
5077
- /* harmony import */ var _util_url_ts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(30658);
5078
- /* harmony import */ var _openapi_3_1_util_ts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(60888);
5068
+ /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(84660);
5069
+ /* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(44673);
5070
+ /* harmony import */ var _speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(7392);
5071
+ /* harmony import */ var _speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(28839);
5072
+ /* harmony import */ var _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(26365);
5073
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(32131);
5074
+ /* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(76332);
5075
+ /* harmony import */ var _util_url_ts__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(30658);
5076
+ /* harmony import */ var _openapi_3_1_util_ts__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(60888);
5077
+
5078
+
5079
+
5079
5080
 
5080
5081
 
5081
5082
 
@@ -5094,14 +5095,53 @@ __webpack_require__.r(__webpack_exports__);
5094
5095
  * @public
5095
5096
  */
5096
5097
  const resolveArazzo$selfField = (retrievalURI, element) => {
5097
- if (!(0,_speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_3__.isArazzoSpecification1Element)(element)) {
5098
+ if (!(0,_speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_4__.isArazzoSpecification1Element)(element)) {
5098
5099
  return retrievalURI;
5099
5100
  }
5100
- const $self = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_1__["default"])(element.$self);
5101
+ const $self = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_2__["default"])(element.$self);
5101
5102
  if (typeof $self !== 'string' || $self === '') {
5102
5103
  return retrievalURI;
5103
5104
  }
5104
- return _util_url_ts__WEBPACK_IMPORTED_MODULE_4__.resolve(retrievalURI, _util_url_ts__WEBPACK_IMPORTED_MODULE_4__.sanitize(_util_url_ts__WEBPACK_IMPORTED_MODULE_4__.stripHash($self)));
5105
+ return _util_url_ts__WEBPACK_IMPORTED_MODULE_8__.resolve(retrievalURI, _util_url_ts__WEBPACK_IMPORTED_MODULE_8__.sanitize(_util_url_ts__WEBPACK_IMPORTED_MODULE_8__.stripHash($self)));
5106
+ };
5107
+
5108
+ /**
5109
+ * URIs an Arazzo document is known by: its retrieval URI and, when the
5110
+ * document carries a `$self` field resolving elsewhere, its identity.
5111
+ */
5112
+ const arazzoDocumentURIs = (retrievalURI, element) => {
5113
+ const identity = resolveArazzo$selfField(retrievalURI, element);
5114
+ return identity === retrievalURI ? [retrievalURI] : [retrievalURI, identity];
5115
+ };
5116
+
5117
+ /**
5118
+ * Annotates a source description result when the document is not an OpenAPI
5119
+ * or Arazzo document, or does not match the type the source description declares.
5120
+ */
5121
+ const validateSourceDescriptionAPI = (parseResult, sourceDescription, sourceDescriptionAPI, retrievalURI) => {
5122
+ // only allow OpenAPI and Arazzo as source descriptions
5123
+ const isOpenApi = (0,_speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_5__.isSwaggerElement)(sourceDescriptionAPI) || (0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_6__.isOpenApi3_0Element)(sourceDescriptionAPI) || (0,_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_7__.isOpenApi3_1Element)(sourceDescriptionAPI);
5124
+ const isArazzo = (0,_speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_4__.isArazzoSpecification1Element)(sourceDescriptionAPI);
5125
+ if (!isOpenApi && !isArazzo) {
5126
+ const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__["default"](`Source description "${retrievalURI}" is not an OpenAPI or Arazzo document`);
5127
+ annotation.classes.push('warning');
5128
+ parseResult.push(annotation);
5129
+ return;
5130
+ }
5131
+
5132
+ // validate declared type matches actual type
5133
+ const declaredType = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_2__["default"])(sourceDescription.type);
5134
+ if (typeof declaredType === 'string') {
5135
+ if (declaredType === 'openapi' && !isOpenApi) {
5136
+ const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__["default"](`Source description "${retrievalURI}" declared as "openapi" but is an Arazzo document`);
5137
+ annotation.classes.push('warning');
5138
+ parseResult.push(annotation);
5139
+ } else if (declaredType === 'arazzo' && !isArazzo) {
5140
+ const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__["default"](`Source description "${retrievalURI}" declared as "arazzo" but is an OpenAPI document`);
5141
+ annotation.classes.push('warning');
5142
+ parseResult.push(annotation);
5143
+ }
5144
+ }
5105
5145
  };
5106
5146
 
5107
5147
  /**
@@ -5114,7 +5154,7 @@ const resolveArazzo$selfField = (retrievalURI, element) => {
5114
5154
  */
5115
5155
  const identifiedBy$self = uri => reference => {
5116
5156
  const result = reference.value?.result;
5117
- return (0,_speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_3__.isArazzoSpecification1Element)(result) && resolveArazzo$selfField(reference.uri, result) === uri;
5157
+ return (0,_speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_4__.isArazzoSpecification1Element)(result) && resolveArazzo$selfField(reference.uri, result) === uri;
5118
5158
  };
5119
5159
 
5120
5160
  /**
@@ -5124,7 +5164,7 @@ const refractToJSONSchemaElement = element => {
5124
5164
  if (refractToJSONSchemaElement.cache.has(element)) {
5125
5165
  return refractToJSONSchemaElement.cache.get(element);
5126
5166
  }
5127
- const refracted = (0,_speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_2__.refractJSONSchema)(element);
5167
+ const refracted = (0,_speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_3__.refractJSONSchema)(element);
5128
5168
  refractToJSONSchemaElement.cache.set(element, refracted);
5129
5169
  return refracted;
5130
5170
  };
@@ -5144,10 +5184,12 @@ const maybeRefractToJSONSchemaElement = element => {
5144
5184
  return element;
5145
5185
  };
5146
5186
  /* harmony export */ __webpack_require__.d(__webpack_exports__, [
5187
+ /* harmony export */ "arazzoDocumentURIs", 0, /* binding */ arazzoDocumentURIs,
5147
5188
  /* harmony export */ "identifiedBy$self", 0, /* binding */ identifiedBy$self,
5148
5189
  /* harmony export */ "maybeRefractToJSONSchemaElement", 0, /* binding */ maybeRefractToJSONSchemaElement,
5149
5190
  /* harmony export */ "refractToJSONSchemaElement", 0, /* binding */ refractToJSONSchemaElement,
5150
- /* harmony export */ "resolveArazzo$selfField", 0, /* binding */ resolveArazzo$selfField
5191
+ /* harmony export */ "resolveArazzo$selfField", 0, /* binding */ resolveArazzo$selfField,
5192
+ /* harmony export */ "validateSourceDescriptionAPI", 0, /* binding */ validateSourceDescriptionAPI
5151
5193
  /* harmony export */ ]);
5152
5194
 
5153
5195
 
@@ -10801,18 +10843,12 @@ __webpack_require__.r(__webpack_exports__);
10801
10843
  /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(84660);
10802
10844
  /* harmony import */ var _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4823);
10803
10845
  /* harmony import */ var _speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(28839);
10804
- /* harmony import */ var _speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(26365);
10805
- /* harmony import */ var _speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(32131);
10806
- /* harmony import */ var _speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(76332);
10807
- /* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(44673);
10808
- /* harmony import */ var _File_ts__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(10682);
10809
- /* harmony import */ var _util_url_ts__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(30658);
10810
- /* harmony import */ var _options_util_ts__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(86547);
10811
- /* harmony import */ var _index_ts__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(35014);
10812
- /* harmony import */ var _dereference_strategies_arazzo_1_util_ts__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(91005);
10813
-
10814
-
10815
-
10846
+ /* harmony import */ var _speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(44673);
10847
+ /* harmony import */ var _File_ts__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(10682);
10848
+ /* harmony import */ var _util_url_ts__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(30658);
10849
+ /* harmony import */ var _options_util_ts__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(86547);
10850
+ /* harmony import */ var _index_ts__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(35014);
10851
+ /* harmony import */ var _dereference_strategies_arazzo_1_util_ts__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(91005);
10816
10852
 
10817
10853
 
10818
10854
 
@@ -10839,9 +10875,9 @@ async function parseSourceDescription(sourceDescription, ctx) {
10839
10875
 
10840
10876
  // set class and metadata from source description element
10841
10877
  parseResult.classes.push('source-description');
10842
- if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isStringElement)(sourceDescription.name)) parseResult.setMetaProperty('name', (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(sourceDescription.name));
10843
- if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isStringElement)(sourceDescription.type)) parseResult.setMetaProperty('type', (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(sourceDescription.type));
10844
- const sourceDescriptionURI = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(sourceDescription.url);
10878
+ if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isStringElement)(sourceDescription.name)) parseResult.setMetaProperty('name', (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(sourceDescription.name));
10879
+ if ((0,_speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_0__.isStringElement)(sourceDescription.type)) parseResult.setMetaProperty('type', (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(sourceDescription.type));
10880
+ const sourceDescriptionURI = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(sourceDescription.url);
10845
10881
  if (typeof sourceDescriptionURI !== 'string') {
10846
10882
  const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__["default"]('Source description URL is missing or not a string. Skipping');
10847
10883
  annotation.classes.push('warning');
@@ -10850,19 +10886,30 @@ async function parseSourceDescription(sourceDescription, ctx) {
10850
10886
  }
10851
10887
 
10852
10888
  // normalize URI for consistent cycle detection and cache key matching
10853
- const retrievalURI = _util_url_ts__WEBPACK_IMPORTED_MODULE_9__.sanitize(_util_url_ts__WEBPACK_IMPORTED_MODULE_9__.stripHash(_util_url_ts__WEBPACK_IMPORTED_MODULE_9__.resolve(ctx.baseURI, sourceDescriptionURI)));
10889
+ const retrievalURI = _util_url_ts__WEBPACK_IMPORTED_MODULE_6__.sanitize(_util_url_ts__WEBPACK_IMPORTED_MODULE_6__.stripHash(_util_url_ts__WEBPACK_IMPORTED_MODULE_6__.resolve(ctx.baseURI, sourceDescriptionURI)));
10854
10890
  parseResult.setMetaProperty('retrievalURI', retrievalURI);
10855
10891
 
10856
- // skip if already visited (cycle detection)
10857
- if (ctx.visitedUrls.has(retrievalURI)) {
10892
+ // skip if the document is still being parsed higher up the chain (cycle detection)
10893
+ if (ctx.ancestors.includes(retrievalURI)) {
10858
10894
  const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__["default"](`Source description "${retrievalURI}" has already been visited. Skipping to prevent cycle`);
10859
10895
  annotation.classes.push('warning');
10860
10896
  parseResult.push(annotation);
10861
10897
  return parseResult;
10862
10898
  }
10863
- ctx.visitedUrls.add(retrievalURI);
10899
+
10900
+ // a document reached again through a different path is a shared dependency, not a cycle;
10901
+ // point at the result where it was parsed instead of parsing it again
10902
+ const sharedParseResult = ctx.parsed.get(retrievalURI);
10903
+ if (sharedParseResult !== undefined) {
10904
+ const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__["default"](`Source description "${retrievalURI}" has already been parsed. Reusing existing parse result`);
10905
+ annotation.classes.push('info');
10906
+ parseResult.push(annotation);
10907
+ parseResult.meta.set('parseResult', sharedParseResult);
10908
+ (0,_dereference_strategies_arazzo_1_util_ts__WEBPACK_IMPORTED_MODULE_9__.validateSourceDescriptionAPI)(parseResult, sourceDescription, sharedParseResult.api, retrievalURI);
10909
+ return parseResult;
10910
+ }
10864
10911
  try {
10865
- const sourceDescriptionParseResult = await (0,_index_ts__WEBPACK_IMPORTED_MODULE_11__["default"])(retrievalURI, (0,_options_util_ts__WEBPACK_IMPORTED_MODULE_10__.merge)(ctx.options, {
10912
+ const sourceDescriptionParseResult = await (0,_index_ts__WEBPACK_IMPORTED_MODULE_8__["default"])(retrievalURI, (0,_options_util_ts__WEBPACK_IMPORTED_MODULE_7__.merge)(ctx.options, {
10866
10913
  parse: {
10867
10914
  mediaType: 'text/plain',
10868
10915
  // allow parser plugin detection
@@ -10872,7 +10919,8 @@ async function parseSourceDescription(sourceDescription, ctx) {
10872
10919
  sourceDescriptions: true,
10873
10920
  [ARAZZO_RECURSION_KEY]: {
10874
10921
  sourceDescriptionsDepth: ctx.currentDepth + 1,
10875
- sourceDescriptionsVisitedUrls: ctx.visitedUrls
10922
+ sourceDescriptionsAncestors: ctx.ancestors,
10923
+ sourceDescriptionsParsed: ctx.parsed
10876
10924
  }
10877
10925
  }
10878
10926
  }
@@ -10890,32 +10938,14 @@ async function parseSourceDescription(sourceDescription, ctx) {
10890
10938
  return parseResult;
10891
10939
  }
10892
10940
 
10893
- // only allow OpenAPI and Arazzo as source descriptions
10941
+ // register parsed document for later references to it
10894
10942
  const {
10895
10943
  api: sourceDescriptionAPI
10896
10944
  } = parseResult;
10897
- const isOpenApi = (0,_speclynx_apidom_ns_openapi_2__WEBPACK_IMPORTED_MODULE_4__.isSwaggerElement)(sourceDescriptionAPI) || (0,_speclynx_apidom_ns_openapi_3_0__WEBPACK_IMPORTED_MODULE_5__.isOpenApi3_0Element)(sourceDescriptionAPI) || (0,_speclynx_apidom_ns_openapi_3_1__WEBPACK_IMPORTED_MODULE_6__.isOpenApi3_1Element)(sourceDescriptionAPI);
10898
- const isArazzo = (0,_speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_3__.isArazzoSpecification1Element)(sourceDescriptionAPI);
10899
- if (!isOpenApi && !isArazzo) {
10900
- const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__["default"](`Source description "${retrievalURI}" is not an OpenAPI or Arazzo document`);
10901
- annotation.classes.push('warning');
10902
- parseResult.push(annotation);
10903
- return parseResult;
10904
- }
10905
-
10906
- // validate declared type matches actual parsed type
10907
- const declaredType = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(sourceDescription.type);
10908
- if (typeof declaredType === 'string') {
10909
- if (declaredType === 'openapi' && !isOpenApi) {
10910
- const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__["default"](`Source description "${retrievalURI}" declared as "openapi" but parsed as Arazzo document`);
10911
- annotation.classes.push('warning');
10912
- parseResult.push(annotation);
10913
- } else if (declaredType === 'arazzo' && !isArazzo) {
10914
- const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__["default"](`Source description "${retrievalURI}" declared as "arazzo" but parsed as OpenAPI document`);
10915
- annotation.classes.push('warning');
10916
- parseResult.push(annotation);
10917
- }
10945
+ for (const documentURI of (0,_dereference_strategies_arazzo_1_util_ts__WEBPACK_IMPORTED_MODULE_9__.arazzoDocumentURIs)(retrievalURI, sourceDescriptionAPI)) {
10946
+ ctx.parsed.set(documentURI, parseResult);
10918
10947
  }
10948
+ ;(0,_dereference_strategies_arazzo_1_util_ts__WEBPACK_IMPORTED_MODULE_9__.validateSourceDescriptionAPI)(parseResult, sourceDescription, sourceDescriptionAPI, retrievalURI);
10919
10949
  return parseResult;
10920
10950
  }
10921
10951
 
@@ -10927,6 +10957,13 @@ async function parseSourceDescription(sourceDescription, ctx) {
10927
10957
  * regardless of success or failure. On failure, the ParseResultElement
10928
10958
  * contains annotations explaining what went wrong.
10929
10959
  *
10960
+ * A document referenced from more than one place is parsed only once.
10961
+ * Every later source description referencing it gets its own result carrying
10962
+ * an 'info' annotation and a 'parseResult' meta pointing at the result where
10963
+ * the document was parsed; that result is also what gets attached to the
10964
+ * SourceDescriptionElement's meta. A document referencing one of its ancestors
10965
+ * forms a cycle and is skipped with a 'warning' annotation instead.
10966
+ *
10930
10967
  * @param parseResult - ParseResult containing an Arazzo specification
10931
10968
  * @param parseResultRetrievalURI - URI from which the parseResult was retrieved
10932
10969
  * @param options - Full ReferenceOptions. Pass `sourceDescriptions` as an array of names
@@ -10966,8 +11003,8 @@ async function parseSourceDescriptions(parseResult, parseResultRetrievalURI, opt
10966
11003
  const {
10967
11004
  api
10968
11005
  } = parseResult;
10969
- const file = new _File_ts__WEBPACK_IMPORTED_MODULE_8__["default"]({
10970
- uri: _util_url_ts__WEBPACK_IMPORTED_MODULE_9__.sanitize(_util_url_ts__WEBPACK_IMPORTED_MODULE_9__.stripHash(parseResultRetrievalURI))
11006
+ const file = new _File_ts__WEBPACK_IMPORTED_MODULE_5__["default"]({
11007
+ uri: _util_url_ts__WEBPACK_IMPORTED_MODULE_6__.sanitize(_util_url_ts__WEBPACK_IMPORTED_MODULE_6__.stripHash(parseResultRetrievalURI))
10971
11008
  });
10972
11009
  const results = [];
10973
11010
 
@@ -10992,14 +11029,9 @@ async function parseSourceDescriptions(parseResult, parseResultRetrievalURI, opt
10992
11029
  // recursion state comes from shared key (works across JSON/YAML)
10993
11030
  const sharedOpts = options?.parse?.parserOpts?.[ARAZZO_RECURSION_KEY] ?? {};
10994
11031
  const currentDepth = sharedOpts.sourceDescriptionsDepth ?? 0;
10995
- const visitedUrls = sharedOpts.sourceDescriptionsVisitedUrls ?? new Set();
10996
-
10997
- // base URI for resolving source description URLs honors Arazzo `$self` field
10998
- const baseURI = (0,_dereference_strategies_arazzo_1_util_ts__WEBPACK_IMPORTED_MODULE_12__.resolveArazzo$selfField)(file.uri, api);
10999
-
11000
- // add current file to visited URLs to prevent cycles (by retrieval URI and by identity)
11001
- visitedUrls.add(file.uri);
11002
- visitedUrls.add(baseURI);
11032
+ const parsed = sharedOpts.sourceDescriptionsParsed ?? new Map();
11033
+ // current file is an ancestor of everything parsed below
11034
+ const ancestors = [...(sharedOpts.sourceDescriptionsAncestors ?? []), ...(0,_dereference_strategies_arazzo_1_util_ts__WEBPACK_IMPORTED_MODULE_9__.arazzoDocumentURIs)(file.uri, api)];
11003
11035
  if (currentDepth >= maxDepth) {
11004
11036
  const annotation = new _speclynx_apidom_datamodel__WEBPACK_IMPORTED_MODULE_1__["default"](`Maximum parse depth of ${maxDepth} has been exceeded by file "${file.uri}"`);
11005
11037
  annotation.classes.push('error');
@@ -11008,25 +11040,28 @@ async function parseSourceDescriptions(parseResult, parseResultRetrievalURI, opt
11008
11040
  return [parseResult];
11009
11041
  }
11010
11042
  const ctx = {
11011
- baseURI,
11043
+ // base URI for resolving source description URLs honors Arazzo `$self` field
11044
+ baseURI: (0,_dereference_strategies_arazzo_1_util_ts__WEBPACK_IMPORTED_MODULE_9__.resolveArazzo$selfField)(file.uri, api),
11012
11045
  options,
11013
11046
  currentDepth,
11014
- visitedUrls
11047
+ ancestors,
11048
+ parsed
11015
11049
  };
11016
11050
 
11017
11051
  // determine which source descriptions to parse (array filters by name)
11018
11052
  const sourceDescriptionsOption = options?.parse?.parserOpts?.[parserName]?.sourceDescriptions ?? options?.parse?.parserOpts?.sourceDescriptions;
11019
11053
  const sourceDescriptions = Array.isArray(sourceDescriptionsOption) ? api.sourceDescriptions.filter(sd => {
11020
11054
  if (!(0,_speclynx_apidom_ns_arazzo_1__WEBPACK_IMPORTED_MODULE_3__.isSourceDescriptionElement)(sd)) return false;
11021
- const name = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_7__["default"])(sd.name);
11055
+ const name = (0,_speclynx_apidom_core__WEBPACK_IMPORTED_MODULE_4__["default"])(sd.name);
11022
11056
  return typeof name === 'string' && sourceDescriptionsOption.includes(name);
11023
11057
  }) : api.sourceDescriptions;
11024
11058
 
11025
- // process sequentially to ensure proper cycle detection with shared visitedUrls
11059
+ // process sequentially to ensure proper cycle detection with shared state
11026
11060
  for (const sourceDescription of sourceDescriptions) {
11027
11061
  const sourceDescriptionParseResult = await parseSourceDescription(sourceDescription, ctx);
11028
- // always attach result (even on failure - contains annotations)
11029
- sourceDescription.meta.set('parseResult', sourceDescriptionParseResult);
11062
+ // always attach result (even on failure - contains annotations);
11063
+ // a shared document attaches the result where it was parsed
11064
+ sourceDescription.meta.set('parseResult', sourceDescriptionParseResult.meta.get('parseResult') ?? sourceDescriptionParseResult);
11030
11065
  results.push(sourceDescriptionParseResult);
11031
11066
  }
11032
11067
  return results;
@@ -14865,15 +14900,15 @@ __webpack_require__.r(__webpack_exports__);
14865
14900
  function grammar() {
14866
14901
  // ```
14867
14902
  // SUMMARY
14868
- // rules = 41
14903
+ // rules = 43
14869
14904
  // udts = 0
14870
- // opcodes = 214
14905
+ // opcodes = 222
14871
14906
  // --- ABNF original opcodes
14872
- // ALT = 17
14873
- // CAT = 31
14907
+ // ALT = 18
14908
+ // CAT = 33
14874
14909
  // REP = 15
14875
- // RNM = 60
14876
- // TLS = 66
14910
+ // RNM = 63
14911
+ // TLS = 68
14877
14912
  // TBS = 13
14878
14913
  // TRG = 12
14879
14914
  // --- SABNF superset opcodes
@@ -14972,165 +15007,177 @@ function grammar() {
14972
15007
  isBkr: false
14973
15008
  };
14974
15009
  this.rules[14] = {
14975
- name: 'workflow-id',
14976
- lower: 'workflow-id',
15010
+ name: 'workflows-value-reference',
15011
+ lower: 'workflows-value-reference',
14977
15012
  index: 14,
14978
15013
  isBkr: false
14979
15014
  };
14980
15015
  this.rules[15] = {
14981
- name: 'workflow-field',
14982
- lower: 'workflow-field',
15016
+ name: 'workflows-steps-reference',
15017
+ lower: 'workflows-steps-reference',
14983
15018
  index: 15,
14984
15019
  isBkr: false
14985
15020
  };
14986
15021
  this.rules[16] = {
14987
- name: 'workflow-field-name',
14988
- lower: 'workflow-field-name',
15022
+ name: 'workflow-id',
15023
+ lower: 'workflow-id',
14989
15024
  index: 16,
14990
15025
  isBkr: false
14991
15026
  };
14992
15027
  this.rules[17] = {
14993
- name: 'source-reference',
14994
- lower: 'source-reference',
15028
+ name: 'workflow-field',
15029
+ lower: 'workflow-field',
14995
15030
  index: 17,
14996
15031
  isBkr: false
14997
15032
  };
14998
15033
  this.rules[18] = {
14999
- name: 'source-name',
15000
- lower: 'source-name',
15034
+ name: 'workflow-field-name',
15035
+ lower: 'workflow-field-name',
15001
15036
  index: 18,
15002
15037
  isBkr: false
15003
15038
  };
15004
15039
  this.rules[19] = {
15005
- name: 'source-reference-id',
15006
- lower: 'source-reference-id',
15040
+ name: 'source-reference',
15041
+ lower: 'source-reference',
15007
15042
  index: 19,
15008
15043
  isBkr: false
15009
15044
  };
15010
15045
  this.rules[20] = {
15011
- name: 'components-reference',
15012
- lower: 'components-reference',
15046
+ name: 'source-name',
15047
+ lower: 'source-name',
15013
15048
  index: 20,
15014
15049
  isBkr: false
15015
15050
  };
15016
15051
  this.rules[21] = {
15017
- name: 'component-type',
15018
- lower: 'component-type',
15052
+ name: 'source-reference-id',
15053
+ lower: 'source-reference-id',
15019
15054
  index: 21,
15020
15055
  isBkr: false
15021
15056
  };
15022
15057
  this.rules[22] = {
15023
- name: 'component-name',
15024
- lower: 'component-name',
15058
+ name: 'components-reference',
15059
+ lower: 'components-reference',
15025
15060
  index: 22,
15026
15061
  isBkr: false
15027
15062
  };
15028
15063
  this.rules[23] = {
15029
- name: 'identifier-strict',
15030
- lower: 'identifier-strict',
15064
+ name: 'component-type',
15065
+ lower: 'component-type',
15031
15066
  index: 23,
15032
15067
  isBkr: false
15033
15068
  };
15034
15069
  this.rules[24] = {
15035
- name: 'identifier',
15036
- lower: 'identifier',
15070
+ name: 'component-name',
15071
+ lower: 'component-name',
15037
15072
  index: 24,
15038
15073
  isBkr: false
15039
15074
  };
15040
15075
  this.rules[25] = {
15041
- name: 'name',
15042
- lower: 'name',
15076
+ name: 'identifier-strict',
15077
+ lower: 'identifier-strict',
15043
15078
  index: 25,
15044
15079
  isBkr: false
15045
15080
  };
15046
15081
  this.rules[26] = {
15047
- name: 'json-pointer',
15048
- lower: 'json-pointer',
15082
+ name: 'identifier',
15083
+ lower: 'identifier',
15049
15084
  index: 26,
15050
15085
  isBkr: false
15051
15086
  };
15052
15087
  this.rules[27] = {
15053
- name: 'reference-token',
15054
- lower: 'reference-token',
15088
+ name: 'name',
15089
+ lower: 'name',
15055
15090
  index: 27,
15056
15091
  isBkr: false
15057
15092
  };
15058
15093
  this.rules[28] = {
15059
- name: 'unescaped',
15060
- lower: 'unescaped',
15094
+ name: 'json-pointer',
15095
+ lower: 'json-pointer',
15061
15096
  index: 28,
15062
15097
  isBkr: false
15063
15098
  };
15064
15099
  this.rules[29] = {
15065
- name: 'escaped',
15066
- lower: 'escaped',
15100
+ name: 'reference-token',
15101
+ lower: 'reference-token',
15067
15102
  index: 29,
15068
15103
  isBkr: false
15069
15104
  };
15070
15105
  this.rules[30] = {
15071
- name: 'token',
15072
- lower: 'token',
15106
+ name: 'unescaped',
15107
+ lower: 'unescaped',
15073
15108
  index: 30,
15074
15109
  isBkr: false
15075
15110
  };
15076
15111
  this.rules[31] = {
15077
- name: 'tchar',
15078
- lower: 'tchar',
15112
+ name: 'escaped',
15113
+ lower: 'escaped',
15079
15114
  index: 31,
15080
15115
  isBkr: false
15081
15116
  };
15082
15117
  this.rules[32] = {
15083
- name: 'CHAR',
15084
- lower: 'char',
15118
+ name: 'token',
15119
+ lower: 'token',
15085
15120
  index: 32,
15086
15121
  isBkr: false
15087
15122
  };
15088
15123
  this.rules[33] = {
15089
- name: 'escape',
15090
- lower: 'escape',
15124
+ name: 'tchar',
15125
+ lower: 'tchar',
15091
15126
  index: 33,
15092
15127
  isBkr: false
15093
15128
  };
15094
15129
  this.rules[34] = {
15095
- name: 'unescape',
15096
- lower: 'unescape',
15130
+ name: 'CHAR',
15131
+ lower: 'char',
15097
15132
  index: 34,
15098
15133
  isBkr: false
15099
15134
  };
15100
15135
  this.rules[35] = {
15101
- name: 'expression-string',
15102
- lower: 'expression-string',
15136
+ name: 'escape',
15137
+ lower: 'escape',
15103
15138
  index: 35,
15104
15139
  isBkr: false
15105
15140
  };
15106
15141
  this.rules[36] = {
15107
- name: 'embedded-expression',
15108
- lower: 'embedded-expression',
15142
+ name: 'unescape',
15143
+ lower: 'unescape',
15109
15144
  index: 36,
15110
15145
  isBkr: false
15111
15146
  };
15112
15147
  this.rules[37] = {
15113
- name: 'literal-char',
15114
- lower: 'literal-char',
15148
+ name: 'expression-string',
15149
+ lower: 'expression-string',
15115
15150
  index: 37,
15116
15151
  isBkr: false
15117
15152
  };
15118
15153
  this.rules[38] = {
15119
- name: 'ALPHA',
15120
- lower: 'alpha',
15154
+ name: 'embedded-expression',
15155
+ lower: 'embedded-expression',
15121
15156
  index: 38,
15122
15157
  isBkr: false
15123
15158
  };
15124
15159
  this.rules[39] = {
15125
- name: 'DIGIT',
15126
- lower: 'digit',
15160
+ name: 'literal-char',
15161
+ lower: 'literal-char',
15127
15162
  index: 39,
15128
15163
  isBkr: false
15129
15164
  };
15130
15165
  this.rules[40] = {
15166
+ name: 'ALPHA',
15167
+ lower: 'alpha',
15168
+ index: 40,
15169
+ isBkr: false
15170
+ };
15171
+ this.rules[41] = {
15172
+ name: 'DIGIT',
15173
+ lower: 'digit',
15174
+ index: 41,
15175
+ isBkr: false
15176
+ };
15177
+ this.rules[42] = {
15131
15178
  name: 'HEXDIG',
15132
15179
  lower: 'hexdig',
15133
- index: 40,
15180
+ index: 42,
15134
15181
  isBkr: false
15135
15182
  };
15136
15183
 
@@ -15250,7 +15297,7 @@ function grammar() {
15250
15297
  }; // TLS
15251
15298
  this.rules[0].opcodes[27] = {
15252
15299
  type: 4,
15253
- index: 17
15300
+ index: 19
15254
15301
  }; // RNM(source-reference)
15255
15302
  this.rules[0].opcodes[28] = {
15256
15303
  type: 2,
@@ -15262,7 +15309,7 @@ function grammar() {
15262
15309
  }; // TLS
15263
15310
  this.rules[0].opcodes[30] = {
15264
15311
  type: 4,
15265
- index: 20
15312
+ index: 22
15266
15313
  }; // RNM(components-reference)
15267
15314
  this.rules[0].opcodes[31] = {
15268
15315
  type: 7,
@@ -15308,7 +15355,7 @@ function grammar() {
15308
15355
  }; // TLS
15309
15356
  this.rules[2].opcodes[2] = {
15310
15357
  type: 4,
15311
- index: 30
15358
+ index: 32
15312
15359
  }; // RNM(token)
15313
15360
 
15314
15361
  /* query-reference */
@@ -15323,7 +15370,7 @@ function grammar() {
15323
15370
  }; // TLS
15324
15371
  this.rules[3].opcodes[2] = {
15325
15372
  type: 4,
15326
- index: 25
15373
+ index: 27
15327
15374
  }; // RNM(name)
15328
15375
 
15329
15376
  /* path-reference */
@@ -15338,7 +15385,7 @@ function grammar() {
15338
15385
  }; // TLS
15339
15386
  this.rules[4].opcodes[2] = {
15340
15387
  type: 4,
15341
- index: 25
15388
+ index: 27
15342
15389
  }; // RNM(name)
15343
15390
 
15344
15391
  /* body-reference */
@@ -15366,7 +15413,7 @@ function grammar() {
15366
15413
  }; // TLS
15367
15414
  this.rules[5].opcodes[5] = {
15368
15415
  type: 4,
15369
- index: 26
15416
+ index: 28
15370
15417
  }; // RNM(json-pointer)
15371
15418
 
15372
15419
  /* payload-reference */
@@ -15394,7 +15441,7 @@ function grammar() {
15394
15441
  }; // TLS
15395
15442
  this.rules[6].opcodes[5] = {
15396
15443
  type: 4,
15397
- index: 26
15444
+ index: 28
15398
15445
  }; // RNM(json-pointer)
15399
15446
 
15400
15447
  /* inputs-reference */
@@ -15422,7 +15469,7 @@ function grammar() {
15422
15469
  }; // TLS
15423
15470
  this.rules[7].opcodes[5] = {
15424
15471
  type: 4,
15425
- index: 26
15472
+ index: 28
15426
15473
  }; // RNM(json-pointer)
15427
15474
 
15428
15475
  /* outputs-reference */
@@ -15450,21 +15497,21 @@ function grammar() {
15450
15497
  }; // TLS
15451
15498
  this.rules[8].opcodes[5] = {
15452
15499
  type: 4,
15453
- index: 26
15500
+ index: 28
15454
15501
  }; // RNM(json-pointer)
15455
15502
 
15456
15503
  /* input-name */
15457
15504
  this.rules[9].opcodes = [];
15458
15505
  this.rules[9].opcodes[0] = {
15459
15506
  type: 4,
15460
- index: 24
15507
+ index: 26
15461
15508
  }; // RNM(identifier)
15462
15509
 
15463
15510
  /* output-name */
15464
15511
  this.rules[10].opcodes = [];
15465
15512
  this.rules[10].opcodes[0] = {
15466
15513
  type: 4,
15467
- index: 24
15514
+ index: 26
15468
15515
  }; // RNM(identifier)
15469
15516
 
15470
15517
  /* steps-reference */
@@ -15500,646 +15547,684 @@ function grammar() {
15500
15547
  }; // TLS
15501
15548
  this.rules[11].opcodes[7] = {
15502
15549
  type: 4,
15503
- index: 26
15550
+ index: 28
15504
15551
  }; // RNM(json-pointer)
15505
15552
 
15506
15553
  /* step-id */
15507
15554
  this.rules[12].opcodes = [];
15508
15555
  this.rules[12].opcodes[0] = {
15509
15556
  type: 4,
15510
- index: 23
15557
+ index: 25
15511
15558
  }; // RNM(identifier-strict)
15512
15559
 
15513
15560
  /* workflows-reference */
15514
15561
  this.rules[13].opcodes = [];
15515
15562
  this.rules[13].opcodes[0] = {
15516
15563
  type: 2,
15517
- children: [1, 2, 3, 4, 5, 6]
15564
+ children: [1, 2, 3]
15518
15565
  }; // CAT
15519
15566
  this.rules[13].opcodes[1] = {
15520
15567
  type: 4,
15521
- index: 14
15568
+ index: 16
15522
15569
  }; // RNM(workflow-id)
15523
15570
  this.rules[13].opcodes[2] = {
15524
15571
  type: 7,
15525
15572
  string: [46]
15526
15573
  }; // TLS
15527
15574
  this.rules[13].opcodes[3] = {
15575
+ type: 1,
15576
+ children: [4, 5]
15577
+ }; // ALT
15578
+ this.rules[13].opcodes[4] = {
15579
+ type: 4,
15580
+ index: 14
15581
+ }; // RNM(workflows-value-reference)
15582
+ this.rules[13].opcodes[5] = {
15528
15583
  type: 4,
15529
15584
  index: 15
15585
+ }; // RNM(workflows-steps-reference)
15586
+
15587
+ /* workflows-value-reference */
15588
+ this.rules[14].opcodes = [];
15589
+ this.rules[14].opcodes[0] = {
15590
+ type: 2,
15591
+ children: [1, 2, 3, 4]
15592
+ }; // CAT
15593
+ this.rules[14].opcodes[1] = {
15594
+ type: 4,
15595
+ index: 17
15530
15596
  }; // RNM(workflow-field)
15531
- this.rules[13].opcodes[4] = {
15597
+ this.rules[14].opcodes[2] = {
15532
15598
  type: 7,
15533
15599
  string: [46]
15534
15600
  }; // TLS
15535
- this.rules[13].opcodes[5] = {
15601
+ this.rules[14].opcodes[3] = {
15536
15602
  type: 4,
15537
- index: 16
15603
+ index: 18
15538
15604
  }; // RNM(workflow-field-name)
15539
- this.rules[13].opcodes[6] = {
15605
+ this.rules[14].opcodes[4] = {
15540
15606
  type: 3,
15541
15607
  min: 0,
15542
15608
  max: 1
15543
15609
  }; // REP
15544
- this.rules[13].opcodes[7] = {
15610
+ this.rules[14].opcodes[5] = {
15545
15611
  type: 2,
15546
- children: [8, 9]
15612
+ children: [6, 7]
15547
15613
  }; // CAT
15548
- this.rules[13].opcodes[8] = {
15614
+ this.rules[14].opcodes[6] = {
15549
15615
  type: 7,
15550
15616
  string: [35]
15551
15617
  }; // TLS
15552
- this.rules[13].opcodes[9] = {
15618
+ this.rules[14].opcodes[7] = {
15553
15619
  type: 4,
15554
- index: 26
15620
+ index: 28
15555
15621
  }; // RNM(json-pointer)
15556
15622
 
15623
+ /* workflows-steps-reference */
15624
+ this.rules[15].opcodes = [];
15625
+ this.rules[15].opcodes[0] = {
15626
+ type: 2,
15627
+ children: [1, 2, 3]
15628
+ }; // CAT
15629
+ this.rules[15].opcodes[1] = {
15630
+ type: 7,
15631
+ string: [115, 116, 101, 112, 115]
15632
+ }; // TLS
15633
+ this.rules[15].opcodes[2] = {
15634
+ type: 7,
15635
+ string: [46]
15636
+ }; // TLS
15637
+ this.rules[15].opcodes[3] = {
15638
+ type: 4,
15639
+ index: 12
15640
+ }; // RNM(step-id)
15641
+
15557
15642
  /* workflow-id */
15558
- this.rules[14].opcodes = [];
15559
- this.rules[14].opcodes[0] = {
15643
+ this.rules[16].opcodes = [];
15644
+ this.rules[16].opcodes[0] = {
15560
15645
  type: 4,
15561
- index: 23
15646
+ index: 25
15562
15647
  }; // RNM(identifier-strict)
15563
15648
 
15564
15649
  /* workflow-field */
15565
- this.rules[15].opcodes = [];
15566
- this.rules[15].opcodes[0] = {
15650
+ this.rules[17].opcodes = [];
15651
+ this.rules[17].opcodes[0] = {
15567
15652
  type: 1,
15568
15653
  children: [1, 2]
15569
15654
  }; // ALT
15570
- this.rules[15].opcodes[1] = {
15655
+ this.rules[17].opcodes[1] = {
15571
15656
  type: 7,
15572
15657
  string: [105, 110, 112, 117, 116, 115]
15573
15658
  }; // TLS
15574
- this.rules[15].opcodes[2] = {
15659
+ this.rules[17].opcodes[2] = {
15575
15660
  type: 7,
15576
15661
  string: [111, 117, 116, 112, 117, 116, 115]
15577
15662
  }; // TLS
15578
15663
 
15579
15664
  /* workflow-field-name */
15580
- this.rules[16].opcodes = [];
15581
- this.rules[16].opcodes[0] = {
15665
+ this.rules[18].opcodes = [];
15666
+ this.rules[18].opcodes[0] = {
15582
15667
  type: 4,
15583
- index: 24
15668
+ index: 26
15584
15669
  }; // RNM(identifier)
15585
15670
 
15586
15671
  /* source-reference */
15587
- this.rules[17].opcodes = [];
15588
- this.rules[17].opcodes[0] = {
15672
+ this.rules[19].opcodes = [];
15673
+ this.rules[19].opcodes[0] = {
15589
15674
  type: 2,
15590
15675
  children: [1, 2, 3]
15591
15676
  }; // CAT
15592
- this.rules[17].opcodes[1] = {
15677
+ this.rules[19].opcodes[1] = {
15593
15678
  type: 4,
15594
- index: 18
15679
+ index: 20
15595
15680
  }; // RNM(source-name)
15596
- this.rules[17].opcodes[2] = {
15681
+ this.rules[19].opcodes[2] = {
15597
15682
  type: 7,
15598
15683
  string: [46]
15599
15684
  }; // TLS
15600
- this.rules[17].opcodes[3] = {
15685
+ this.rules[19].opcodes[3] = {
15601
15686
  type: 4,
15602
- index: 19
15687
+ index: 21
15603
15688
  }; // RNM(source-reference-id)
15604
15689
 
15605
15690
  /* source-name */
15606
- this.rules[18].opcodes = [];
15607
- this.rules[18].opcodes[0] = {
15691
+ this.rules[20].opcodes = [];
15692
+ this.rules[20].opcodes[0] = {
15608
15693
  type: 4,
15609
- index: 23
15694
+ index: 25
15610
15695
  }; // RNM(identifier-strict)
15611
15696
 
15612
15697
  /* source-reference-id */
15613
- this.rules[19].opcodes = [];
15614
- this.rules[19].opcodes[0] = {
15698
+ this.rules[21].opcodes = [];
15699
+ this.rules[21].opcodes[0] = {
15615
15700
  type: 3,
15616
15701
  min: 1,
15617
15702
  max: Infinity
15618
15703
  }; // REP
15619
- this.rules[19].opcodes[1] = {
15704
+ this.rules[21].opcodes[1] = {
15620
15705
  type: 4,
15621
- index: 32
15706
+ index: 34
15622
15707
  }; // RNM(CHAR)
15623
15708
 
15624
15709
  /* components-reference */
15625
- this.rules[20].opcodes = [];
15626
- this.rules[20].opcodes[0] = {
15710
+ this.rules[22].opcodes = [];
15711
+ this.rules[22].opcodes[0] = {
15627
15712
  type: 2,
15628
15713
  children: [1, 2, 3]
15629
15714
  }; // CAT
15630
- this.rules[20].opcodes[1] = {
15715
+ this.rules[22].opcodes[1] = {
15631
15716
  type: 4,
15632
- index: 21
15717
+ index: 23
15633
15718
  }; // RNM(component-type)
15634
- this.rules[20].opcodes[2] = {
15719
+ this.rules[22].opcodes[2] = {
15635
15720
  type: 7,
15636
15721
  string: [46]
15637
15722
  }; // TLS
15638
- this.rules[20].opcodes[3] = {
15723
+ this.rules[22].opcodes[3] = {
15639
15724
  type: 4,
15640
- index: 22
15725
+ index: 24
15641
15726
  }; // RNM(component-name)
15642
15727
 
15643
15728
  /* component-type */
15644
- this.rules[21].opcodes = [];
15645
- this.rules[21].opcodes[0] = {
15729
+ this.rules[23].opcodes = [];
15730
+ this.rules[23].opcodes[0] = {
15646
15731
  type: 1,
15647
15732
  children: [1, 2, 3]
15648
15733
  }; // ALT
15649
- this.rules[21].opcodes[1] = {
15734
+ this.rules[23].opcodes[1] = {
15650
15735
  type: 7,
15651
15736
  string: [112, 97, 114, 97, 109, 101, 116, 101, 114, 115]
15652
15737
  }; // TLS
15653
- this.rules[21].opcodes[2] = {
15738
+ this.rules[23].opcodes[2] = {
15654
15739
  type: 7,
15655
15740
  string: [115, 117, 99, 99, 101, 115, 115, 97, 99, 116, 105, 111, 110, 115]
15656
15741
  }; // TLS
15657
- this.rules[21].opcodes[3] = {
15742
+ this.rules[23].opcodes[3] = {
15658
15743
  type: 7,
15659
15744
  string: [102, 97, 105, 108, 117, 114, 101, 97, 99, 116, 105, 111, 110, 115]
15660
15745
  }; // TLS
15661
15746
 
15662
15747
  /* component-name */
15663
- this.rules[22].opcodes = [];
15664
- this.rules[22].opcodes[0] = {
15748
+ this.rules[24].opcodes = [];
15749
+ this.rules[24].opcodes[0] = {
15665
15750
  type: 4,
15666
- index: 24
15751
+ index: 26
15667
15752
  }; // RNM(identifier)
15668
15753
 
15669
15754
  /* identifier-strict */
15670
- this.rules[23].opcodes = [];
15671
- this.rules[23].opcodes[0] = {
15755
+ this.rules[25].opcodes = [];
15756
+ this.rules[25].opcodes[0] = {
15672
15757
  type: 3,
15673
15758
  min: 1,
15674
15759
  max: Infinity
15675
15760
  }; // REP
15676
- this.rules[23].opcodes[1] = {
15761
+ this.rules[25].opcodes[1] = {
15677
15762
  type: 1,
15678
15763
  children: [2, 3, 4, 5]
15679
15764
  }; // ALT
15680
- this.rules[23].opcodes[2] = {
15765
+ this.rules[25].opcodes[2] = {
15681
15766
  type: 4,
15682
- index: 38
15767
+ index: 40
15683
15768
  }; // RNM(ALPHA)
15684
- this.rules[23].opcodes[3] = {
15769
+ this.rules[25].opcodes[3] = {
15685
15770
  type: 4,
15686
- index: 39
15771
+ index: 41
15687
15772
  }; // RNM(DIGIT)
15688
- this.rules[23].opcodes[4] = {
15773
+ this.rules[25].opcodes[4] = {
15689
15774
  type: 7,
15690
15775
  string: [45]
15691
15776
  }; // TLS
15692
- this.rules[23].opcodes[5] = {
15777
+ this.rules[25].opcodes[5] = {
15693
15778
  type: 7,
15694
15779
  string: [95]
15695
15780
  }; // TLS
15696
15781
 
15697
15782
  /* identifier */
15698
- this.rules[24].opcodes = [];
15699
- this.rules[24].opcodes[0] = {
15783
+ this.rules[26].opcodes = [];
15784
+ this.rules[26].opcodes[0] = {
15700
15785
  type: 3,
15701
15786
  min: 1,
15702
15787
  max: Infinity
15703
15788
  }; // REP
15704
- this.rules[24].opcodes[1] = {
15789
+ this.rules[26].opcodes[1] = {
15705
15790
  type: 1,
15706
15791
  children: [2, 3, 4, 5, 6]
15707
15792
  }; // ALT
15708
- this.rules[24].opcodes[2] = {
15793
+ this.rules[26].opcodes[2] = {
15709
15794
  type: 4,
15710
- index: 38
15795
+ index: 40
15711
15796
  }; // RNM(ALPHA)
15712
- this.rules[24].opcodes[3] = {
15797
+ this.rules[26].opcodes[3] = {
15713
15798
  type: 4,
15714
- index: 39
15799
+ index: 41
15715
15800
  }; // RNM(DIGIT)
15716
- this.rules[24].opcodes[4] = {
15801
+ this.rules[26].opcodes[4] = {
15717
15802
  type: 7,
15718
15803
  string: [46]
15719
15804
  }; // TLS
15720
- this.rules[24].opcodes[5] = {
15805
+ this.rules[26].opcodes[5] = {
15721
15806
  type: 7,
15722
15807
  string: [45]
15723
15808
  }; // TLS
15724
- this.rules[24].opcodes[6] = {
15809
+ this.rules[26].opcodes[6] = {
15725
15810
  type: 7,
15726
15811
  string: [95]
15727
15812
  }; // TLS
15728
15813
 
15729
15814
  /* name */
15730
- this.rules[25].opcodes = [];
15731
- this.rules[25].opcodes[0] = {
15815
+ this.rules[27].opcodes = [];
15816
+ this.rules[27].opcodes[0] = {
15732
15817
  type: 3,
15733
15818
  min: 0,
15734
15819
  max: Infinity
15735
15820
  }; // REP
15736
- this.rules[25].opcodes[1] = {
15821
+ this.rules[27].opcodes[1] = {
15737
15822
  type: 4,
15738
- index: 32
15823
+ index: 34
15739
15824
  }; // RNM(CHAR)
15740
15825
 
15741
15826
  /* json-pointer */
15742
- this.rules[26].opcodes = [];
15743
- this.rules[26].opcodes[0] = {
15827
+ this.rules[28].opcodes = [];
15828
+ this.rules[28].opcodes[0] = {
15744
15829
  type: 3,
15745
15830
  min: 0,
15746
15831
  max: Infinity
15747
15832
  }; // REP
15748
- this.rules[26].opcodes[1] = {
15833
+ this.rules[28].opcodes[1] = {
15749
15834
  type: 2,
15750
15835
  children: [2, 3]
15751
15836
  }; // CAT
15752
- this.rules[26].opcodes[2] = {
15837
+ this.rules[28].opcodes[2] = {
15753
15838
  type: 7,
15754
15839
  string: [47]
15755
15840
  }; // TLS
15756
- this.rules[26].opcodes[3] = {
15841
+ this.rules[28].opcodes[3] = {
15757
15842
  type: 4,
15758
- index: 27
15843
+ index: 29
15759
15844
  }; // RNM(reference-token)
15760
15845
 
15761
15846
  /* reference-token */
15762
- this.rules[27].opcodes = [];
15763
- this.rules[27].opcodes[0] = {
15847
+ this.rules[29].opcodes = [];
15848
+ this.rules[29].opcodes[0] = {
15764
15849
  type: 3,
15765
15850
  min: 0,
15766
15851
  max: Infinity
15767
15852
  }; // REP
15768
- this.rules[27].opcodes[1] = {
15853
+ this.rules[29].opcodes[1] = {
15769
15854
  type: 1,
15770
15855
  children: [2, 3]
15771
15856
  }; // ALT
15772
- this.rules[27].opcodes[2] = {
15857
+ this.rules[29].opcodes[2] = {
15773
15858
  type: 4,
15774
- index: 28
15859
+ index: 30
15775
15860
  }; // RNM(unescaped)
15776
- this.rules[27].opcodes[3] = {
15861
+ this.rules[29].opcodes[3] = {
15777
15862
  type: 4,
15778
- index: 29
15863
+ index: 31
15779
15864
  }; // RNM(escaped)
15780
15865
 
15781
15866
  /* unescaped */
15782
- this.rules[28].opcodes = [];
15783
- this.rules[28].opcodes[0] = {
15867
+ this.rules[30].opcodes = [];
15868
+ this.rules[30].opcodes[0] = {
15784
15869
  type: 1,
15785
15870
  children: [1, 2, 3, 4]
15786
15871
  }; // ALT
15787
- this.rules[28].opcodes[1] = {
15872
+ this.rules[30].opcodes[1] = {
15788
15873
  type: 5,
15789
15874
  min: 0,
15790
15875
  max: 46
15791
15876
  }; // TRG
15792
- this.rules[28].opcodes[2] = {
15877
+ this.rules[30].opcodes[2] = {
15793
15878
  type: 5,
15794
15879
  min: 48,
15795
15880
  max: 122
15796
15881
  }; // TRG
15797
- this.rules[28].opcodes[3] = {
15882
+ this.rules[30].opcodes[3] = {
15798
15883
  type: 6,
15799
15884
  string: [124]
15800
15885
  }; // TBS
15801
- this.rules[28].opcodes[4] = {
15886
+ this.rules[30].opcodes[4] = {
15802
15887
  type: 5,
15803
15888
  min: 127,
15804
15889
  max: 1114111
15805
15890
  }; // TRG
15806
15891
 
15807
15892
  /* escaped */
15808
- this.rules[29].opcodes = [];
15809
- this.rules[29].opcodes[0] = {
15893
+ this.rules[31].opcodes = [];
15894
+ this.rules[31].opcodes[0] = {
15810
15895
  type: 2,
15811
15896
  children: [1, 2]
15812
15897
  }; // CAT
15813
- this.rules[29].opcodes[1] = {
15898
+ this.rules[31].opcodes[1] = {
15814
15899
  type: 7,
15815
15900
  string: [126]
15816
15901
  }; // TLS
15817
- this.rules[29].opcodes[2] = {
15902
+ this.rules[31].opcodes[2] = {
15818
15903
  type: 1,
15819
15904
  children: [3, 4]
15820
15905
  }; // ALT
15821
- this.rules[29].opcodes[3] = {
15906
+ this.rules[31].opcodes[3] = {
15822
15907
  type: 7,
15823
15908
  string: [48]
15824
15909
  }; // TLS
15825
- this.rules[29].opcodes[4] = {
15910
+ this.rules[31].opcodes[4] = {
15826
15911
  type: 7,
15827
15912
  string: [49]
15828
15913
  }; // TLS
15829
15914
 
15830
15915
  /* token */
15831
- this.rules[30].opcodes = [];
15832
- this.rules[30].opcodes[0] = {
15916
+ this.rules[32].opcodes = [];
15917
+ this.rules[32].opcodes[0] = {
15833
15918
  type: 3,
15834
15919
  min: 1,
15835
15920
  max: Infinity
15836
15921
  }; // REP
15837
- this.rules[30].opcodes[1] = {
15922
+ this.rules[32].opcodes[1] = {
15838
15923
  type: 4,
15839
- index: 31
15924
+ index: 33
15840
15925
  }; // RNM(tchar)
15841
15926
 
15842
15927
  /* tchar */
15843
- this.rules[31].opcodes = [];
15844
- this.rules[31].opcodes[0] = {
15928
+ this.rules[33].opcodes = [];
15929
+ this.rules[33].opcodes[0] = {
15845
15930
  type: 1,
15846
15931
  children: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]
15847
15932
  }; // ALT
15848
- this.rules[31].opcodes[1] = {
15933
+ this.rules[33].opcodes[1] = {
15849
15934
  type: 7,
15850
15935
  string: [33]
15851
15936
  }; // TLS
15852
- this.rules[31].opcodes[2] = {
15937
+ this.rules[33].opcodes[2] = {
15853
15938
  type: 7,
15854
15939
  string: [35]
15855
15940
  }; // TLS
15856
- this.rules[31].opcodes[3] = {
15941
+ this.rules[33].opcodes[3] = {
15857
15942
  type: 7,
15858
15943
  string: [36]
15859
15944
  }; // TLS
15860
- this.rules[31].opcodes[4] = {
15945
+ this.rules[33].opcodes[4] = {
15861
15946
  type: 7,
15862
15947
  string: [37]
15863
15948
  }; // TLS
15864
- this.rules[31].opcodes[5] = {
15949
+ this.rules[33].opcodes[5] = {
15865
15950
  type: 7,
15866
15951
  string: [38]
15867
15952
  }; // TLS
15868
- this.rules[31].opcodes[6] = {
15953
+ this.rules[33].opcodes[6] = {
15869
15954
  type: 7,
15870
15955
  string: [39]
15871
15956
  }; // TLS
15872
- this.rules[31].opcodes[7] = {
15957
+ this.rules[33].opcodes[7] = {
15873
15958
  type: 7,
15874
15959
  string: [42]
15875
15960
  }; // TLS
15876
- this.rules[31].opcodes[8] = {
15961
+ this.rules[33].opcodes[8] = {
15877
15962
  type: 7,
15878
15963
  string: [43]
15879
15964
  }; // TLS
15880
- this.rules[31].opcodes[9] = {
15965
+ this.rules[33].opcodes[9] = {
15881
15966
  type: 7,
15882
15967
  string: [45]
15883
15968
  }; // TLS
15884
- this.rules[31].opcodes[10] = {
15969
+ this.rules[33].opcodes[10] = {
15885
15970
  type: 7,
15886
15971
  string: [46]
15887
15972
  }; // TLS
15888
- this.rules[31].opcodes[11] = {
15973
+ this.rules[33].opcodes[11] = {
15889
15974
  type: 7,
15890
15975
  string: [94]
15891
15976
  }; // TLS
15892
- this.rules[31].opcodes[12] = {
15977
+ this.rules[33].opcodes[12] = {
15893
15978
  type: 7,
15894
15979
  string: [95]
15895
15980
  }; // TLS
15896
- this.rules[31].opcodes[13] = {
15981
+ this.rules[33].opcodes[13] = {
15897
15982
  type: 7,
15898
15983
  string: [96]
15899
15984
  }; // TLS
15900
- this.rules[31].opcodes[14] = {
15985
+ this.rules[33].opcodes[14] = {
15901
15986
  type: 7,
15902
15987
  string: [124]
15903
15988
  }; // TLS
15904
- this.rules[31].opcodes[15] = {
15989
+ this.rules[33].opcodes[15] = {
15905
15990
  type: 7,
15906
15991
  string: [126]
15907
15992
  }; // TLS
15908
- this.rules[31].opcodes[16] = {
15993
+ this.rules[33].opcodes[16] = {
15909
15994
  type: 4,
15910
- index: 39
15995
+ index: 41
15911
15996
  }; // RNM(DIGIT)
15912
- this.rules[31].opcodes[17] = {
15997
+ this.rules[33].opcodes[17] = {
15913
15998
  type: 4,
15914
- index: 38
15999
+ index: 40
15915
16000
  }; // RNM(ALPHA)
15916
16001
 
15917
16002
  /* CHAR */
15918
- this.rules[32].opcodes = [];
15919
- this.rules[32].opcodes[0] = {
16003
+ this.rules[34].opcodes = [];
16004
+ this.rules[34].opcodes[0] = {
15920
16005
  type: 1,
15921
16006
  children: [1, 2]
15922
16007
  }; // ALT
15923
- this.rules[32].opcodes[1] = {
16008
+ this.rules[34].opcodes[1] = {
15924
16009
  type: 4,
15925
- index: 34
16010
+ index: 36
15926
16011
  }; // RNM(unescape)
15927
- this.rules[32].opcodes[2] = {
16012
+ this.rules[34].opcodes[2] = {
15928
16013
  type: 2,
15929
16014
  children: [3, 4]
15930
16015
  }; // CAT
15931
- this.rules[32].opcodes[3] = {
16016
+ this.rules[34].opcodes[3] = {
15932
16017
  type: 4,
15933
- index: 33
16018
+ index: 35
15934
16019
  }; // RNM(escape)
15935
- this.rules[32].opcodes[4] = {
16020
+ this.rules[34].opcodes[4] = {
15936
16021
  type: 1,
15937
16022
  children: [5, 6, 7, 8, 9, 10, 11, 12, 13]
15938
16023
  }; // ALT
15939
- this.rules[32].opcodes[5] = {
16024
+ this.rules[34].opcodes[5] = {
15940
16025
  type: 6,
15941
16026
  string: [34]
15942
16027
  }; // TBS
15943
- this.rules[32].opcodes[6] = {
16028
+ this.rules[34].opcodes[6] = {
15944
16029
  type: 6,
15945
16030
  string: [92]
15946
16031
  }; // TBS
15947
- this.rules[32].opcodes[7] = {
16032
+ this.rules[34].opcodes[7] = {
15948
16033
  type: 6,
15949
16034
  string: [47]
15950
16035
  }; // TBS
15951
- this.rules[32].opcodes[8] = {
16036
+ this.rules[34].opcodes[8] = {
15952
16037
  type: 6,
15953
16038
  string: [98]
15954
16039
  }; // TBS
15955
- this.rules[32].opcodes[9] = {
16040
+ this.rules[34].opcodes[9] = {
15956
16041
  type: 6,
15957
16042
  string: [102]
15958
16043
  }; // TBS
15959
- this.rules[32].opcodes[10] = {
16044
+ this.rules[34].opcodes[10] = {
15960
16045
  type: 6,
15961
16046
  string: [110]
15962
16047
  }; // TBS
15963
- this.rules[32].opcodes[11] = {
16048
+ this.rules[34].opcodes[11] = {
15964
16049
  type: 6,
15965
16050
  string: [114]
15966
16051
  }; // TBS
15967
- this.rules[32].opcodes[12] = {
16052
+ this.rules[34].opcodes[12] = {
15968
16053
  type: 6,
15969
16054
  string: [116]
15970
16055
  }; // TBS
15971
- this.rules[32].opcodes[13] = {
16056
+ this.rules[34].opcodes[13] = {
15972
16057
  type: 2,
15973
16058
  children: [14, 15]
15974
16059
  }; // CAT
15975
- this.rules[32].opcodes[14] = {
16060
+ this.rules[34].opcodes[14] = {
15976
16061
  type: 6,
15977
16062
  string: [117]
15978
16063
  }; // TBS
15979
- this.rules[32].opcodes[15] = {
16064
+ this.rules[34].opcodes[15] = {
15980
16065
  type: 3,
15981
16066
  min: 4,
15982
16067
  max: 4
15983
16068
  }; // REP
15984
- this.rules[32].opcodes[16] = {
16069
+ this.rules[34].opcodes[16] = {
15985
16070
  type: 4,
15986
- index: 40
16071
+ index: 42
15987
16072
  }; // RNM(HEXDIG)
15988
16073
 
15989
16074
  /* escape */
15990
- this.rules[33].opcodes = [];
15991
- this.rules[33].opcodes[0] = {
16075
+ this.rules[35].opcodes = [];
16076
+ this.rules[35].opcodes[0] = {
15992
16077
  type: 6,
15993
16078
  string: [92]
15994
16079
  }; // TBS
15995
16080
 
15996
16081
  /* unescape */
15997
- this.rules[34].opcodes = [];
15998
- this.rules[34].opcodes[0] = {
16082
+ this.rules[36].opcodes = [];
16083
+ this.rules[36].opcodes[0] = {
15999
16084
  type: 1,
16000
16085
  children: [1, 2, 3, 4, 5]
16001
16086
  }; // ALT
16002
- this.rules[34].opcodes[1] = {
16087
+ this.rules[36].opcodes[1] = {
16003
16088
  type: 5,
16004
16089
  min: 32,
16005
16090
  max: 33
16006
16091
  }; // TRG
16007
- this.rules[34].opcodes[2] = {
16092
+ this.rules[36].opcodes[2] = {
16008
16093
  type: 5,
16009
16094
  min: 35,
16010
16095
  max: 91
16011
16096
  }; // TRG
16012
- this.rules[34].opcodes[3] = {
16097
+ this.rules[36].opcodes[3] = {
16013
16098
  type: 5,
16014
16099
  min: 93,
16015
16100
  max: 122
16016
16101
  }; // TRG
16017
- this.rules[34].opcodes[4] = {
16102
+ this.rules[36].opcodes[4] = {
16018
16103
  type: 6,
16019
16104
  string: [124]
16020
16105
  }; // TBS
16021
- this.rules[34].opcodes[5] = {
16106
+ this.rules[36].opcodes[5] = {
16022
16107
  type: 5,
16023
16108
  min: 126,
16024
16109
  max: 1114111
16025
16110
  }; // TRG
16026
16111
 
16027
16112
  /* expression-string */
16028
- this.rules[35].opcodes = [];
16029
- this.rules[35].opcodes[0] = {
16113
+ this.rules[37].opcodes = [];
16114
+ this.rules[37].opcodes[0] = {
16030
16115
  type: 3,
16031
16116
  min: 0,
16032
16117
  max: Infinity
16033
16118
  }; // REP
16034
- this.rules[35].opcodes[1] = {
16119
+ this.rules[37].opcodes[1] = {
16035
16120
  type: 1,
16036
16121
  children: [2, 3]
16037
16122
  }; // ALT
16038
- this.rules[35].opcodes[2] = {
16123
+ this.rules[37].opcodes[2] = {
16039
16124
  type: 4,
16040
- index: 37
16125
+ index: 39
16041
16126
  }; // RNM(literal-char)
16042
- this.rules[35].opcodes[3] = {
16127
+ this.rules[37].opcodes[3] = {
16043
16128
  type: 4,
16044
- index: 36
16129
+ index: 38
16045
16130
  }; // RNM(embedded-expression)
16046
16131
 
16047
16132
  /* embedded-expression */
16048
- this.rules[36].opcodes = [];
16049
- this.rules[36].opcodes[0] = {
16133
+ this.rules[38].opcodes = [];
16134
+ this.rules[38].opcodes[0] = {
16050
16135
  type: 2,
16051
16136
  children: [1, 2, 3]
16052
16137
  }; // CAT
16053
- this.rules[36].opcodes[1] = {
16138
+ this.rules[38].opcodes[1] = {
16054
16139
  type: 7,
16055
16140
  string: [123]
16056
16141
  }; // TLS
16057
- this.rules[36].opcodes[2] = {
16142
+ this.rules[38].opcodes[2] = {
16058
16143
  type: 4,
16059
16144
  index: 0
16060
16145
  }; // RNM(expression)
16061
- this.rules[36].opcodes[3] = {
16146
+ this.rules[38].opcodes[3] = {
16062
16147
  type: 7,
16063
16148
  string: [125]
16064
16149
  }; // TLS
16065
16150
 
16066
16151
  /* literal-char */
16067
- this.rules[37].opcodes = [];
16068
- this.rules[37].opcodes[0] = {
16152
+ this.rules[39].opcodes = [];
16153
+ this.rules[39].opcodes[0] = {
16069
16154
  type: 1,
16070
16155
  children: [1, 2, 3]
16071
16156
  }; // ALT
16072
- this.rules[37].opcodes[1] = {
16157
+ this.rules[39].opcodes[1] = {
16073
16158
  type: 5,
16074
16159
  min: 0,
16075
16160
  max: 122
16076
16161
  }; // TRG
16077
- this.rules[37].opcodes[2] = {
16162
+ this.rules[39].opcodes[2] = {
16078
16163
  type: 6,
16079
16164
  string: [124]
16080
16165
  }; // TBS
16081
- this.rules[37].opcodes[3] = {
16166
+ this.rules[39].opcodes[3] = {
16082
16167
  type: 5,
16083
16168
  min: 126,
16084
16169
  max: 1114111
16085
16170
  }; // TRG
16086
16171
 
16087
16172
  /* ALPHA */
16088
- this.rules[38].opcodes = [];
16089
- this.rules[38].opcodes[0] = {
16173
+ this.rules[40].opcodes = [];
16174
+ this.rules[40].opcodes[0] = {
16090
16175
  type: 1,
16091
16176
  children: [1, 2]
16092
16177
  }; // ALT
16093
- this.rules[38].opcodes[1] = {
16178
+ this.rules[40].opcodes[1] = {
16094
16179
  type: 5,
16095
16180
  min: 65,
16096
16181
  max: 90
16097
16182
  }; // TRG
16098
- this.rules[38].opcodes[2] = {
16183
+ this.rules[40].opcodes[2] = {
16099
16184
  type: 5,
16100
16185
  min: 97,
16101
16186
  max: 122
16102
16187
  }; // TRG
16103
16188
 
16104
16189
  /* DIGIT */
16105
- this.rules[39].opcodes = [];
16106
- this.rules[39].opcodes[0] = {
16190
+ this.rules[41].opcodes = [];
16191
+ this.rules[41].opcodes[0] = {
16107
16192
  type: 5,
16108
16193
  min: 48,
16109
16194
  max: 57
16110
16195
  }; // TRG
16111
16196
 
16112
16197
  /* HEXDIG */
16113
- this.rules[40].opcodes = [];
16114
- this.rules[40].opcodes[0] = {
16198
+ this.rules[42].opcodes = [];
16199
+ this.rules[42].opcodes[0] = {
16115
16200
  type: 1,
16116
16201
  children: [1, 2, 3, 4, 5, 6, 7]
16117
16202
  }; // ALT
16118
- this.rules[40].opcodes[1] = {
16203
+ this.rules[42].opcodes[1] = {
16119
16204
  type: 4,
16120
- index: 39
16205
+ index: 41
16121
16206
  }; // RNM(DIGIT)
16122
- this.rules[40].opcodes[2] = {
16207
+ this.rules[42].opcodes[2] = {
16123
16208
  type: 7,
16124
16209
  string: [97]
16125
16210
  }; // TLS
16126
- this.rules[40].opcodes[3] = {
16211
+ this.rules[42].opcodes[3] = {
16127
16212
  type: 7,
16128
16213
  string: [98]
16129
16214
  }; // TLS
16130
- this.rules[40].opcodes[4] = {
16215
+ this.rules[42].opcodes[4] = {
16131
16216
  type: 7,
16132
16217
  string: [99]
16133
16218
  }; // TLS
16134
- this.rules[40].opcodes[5] = {
16219
+ this.rules[42].opcodes[5] = {
16135
16220
  type: 7,
16136
16221
  string: [100]
16137
16222
  }; // TLS
16138
- this.rules[40].opcodes[6] = {
16223
+ this.rules[42].opcodes[6] = {
16139
16224
  type: 7,
16140
16225
  string: [101]
16141
16226
  }; // TLS
16142
- this.rules[40].opcodes[7] = {
16227
+ this.rules[42].opcodes[7] = {
16143
16228
  type: 7,
16144
16229
  string: [102]
16145
16230
  }; // TLS
@@ -16186,10 +16271,12 @@ function grammar() {
16186
16271
  str += "step-id = identifier-strict\n";
16187
16272
  str += "\n";
16188
16273
  str += "; Workflows expressions\n";
16189
- str += "workflows-reference = workflow-id \".\" workflow-field \".\" workflow-field-name [ \"#\" json-pointer ]\n";
16190
- str += "workflow-id = identifier-strict\n";
16191
- str += "workflow-field = \"inputs\" / \"outputs\"\n";
16192
- str += "workflow-field-name = identifier\n";
16274
+ str += "workflows-reference = workflow-id \".\" ( workflows-value-reference / workflows-steps-reference )\n";
16275
+ str += "workflows-value-reference = workflow-field \".\" workflow-field-name [ \"#\" json-pointer ]\n";
16276
+ str += "workflows-steps-reference = \"steps\" \".\" step-id\n";
16277
+ str += "workflow-id = identifier-strict\n";
16278
+ str += "workflow-field = \"inputs\" / \"outputs\"\n";
16279
+ str += "workflow-field-name = identifier\n";
16193
16280
  str += "\n";
16194
16281
  str += "; Source descriptions expressions\n";
16195
16282
  str += "source-reference = source-name \".\" source-reference-id\n";
@@ -16564,6 +16651,13 @@ class ASTTranslator extends _CSTTranslator_mjs__WEBPACK_IMPORTED_MODULE_0__["def
16564
16651
 
16565
16652
  "use strict";
16566
16653
  __webpack_require__.r(__webpack_exports__);
16654
+ /* harmony import */ var apg_lite__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(51751);
16655
+ /* harmony import */ var _grammar_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(71652);
16656
+ /* harmony import */ var _CSTTranslator_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(35963);
16657
+
16658
+
16659
+
16660
+ const grammar = new _grammar_mjs__WEBPACK_IMPORTED_MODULE_1__["default"]();
16567
16661
  const transformCSTtoAST = (node, transformerMap) => {
16568
16662
  const transformer = transformerMap[node.type];
16569
16663
  if (!transformer) {
@@ -16571,6 +16665,35 @@ const transformCSTtoAST = (node, transformerMap) => {
16571
16665
  }
16572
16666
  return transformer(node);
16573
16667
  };
16668
+
16669
+ // Best-effort, non-committal detection of a `$workflows.<workflowId>.steps.<stepId>`-shaped
16670
+ // value nested inside an opaque `$sourceDescriptions.<name>.<reference>` reference (the
16671
+ // dependsOn cross-document step-reference syntax). This reuses the primary grammar's
16672
+ // `workflows-reference` rule as a secondary parse over just the `reference` substring — it
16673
+ // never affects whether the outer `$sourceDescriptions.` expression itself is valid, and only
16674
+ // enriches the AST when the opaque string happens to fully, unambiguously match the shape.
16675
+ const tryParseWorkflowsStepsReference = referenceText => {
16676
+ const parser = new apg_lite__WEBPACK_IMPORTED_MODULE_0__.Parser();
16677
+ parser.ast = new _CSTTranslator_mjs__WEBPACK_IMPORTED_MODULE_2__["default"]();
16678
+ let result;
16679
+ try {
16680
+ result = parser.parse(grammar, 'workflows-reference', referenceText);
16681
+ } catch {
16682
+ return undefined;
16683
+ }
16684
+ if (!result.success) return undefined;
16685
+ const tree = parser.ast.getTree();
16686
+ const stepsRefNode = tree.children.find(c => c.type === 'workflows-steps-reference');
16687
+ if (!stepsRefNode) return undefined; // matched, but as inputs/outputs, not steps
16688
+
16689
+ const workflowIdNode = tree.children.find(c => c.type === 'workflow-id');
16690
+ const stepIdNode = stepsRefNode.children.find(c => c.type === 'step-id');
16691
+ return {
16692
+ type: 'WorkflowsStepsExpression',
16693
+ workflowId: workflowIdNode.text,
16694
+ stepId: stepIdNode.text
16695
+ };
16696
+ };
16574
16697
  const transformers = {
16575
16698
  ['expression'](node) {
16576
16699
  const text = node.text;
@@ -16745,9 +16868,19 @@ const transformers = {
16745
16868
  },
16746
16869
  ['workflows-reference'](node) {
16747
16870
  const workflowIdNode = node.children.find(c => c.type === 'workflow-id');
16748
- const fieldNode = node.children.find(c => c.type === 'workflow-field');
16749
- const fieldNameNode = node.children.find(c => c.type === 'workflow-field-name');
16750
- const jsonPointerNode = node.children.find(c => c.type === 'json-pointer');
16871
+ const stepsRefNode = node.children.find(c => c.type === 'workflows-steps-reference');
16872
+ if (stepsRefNode) {
16873
+ const stepIdNode = stepsRefNode.children.find(c => c.type === 'step-id');
16874
+ return {
16875
+ type: 'WorkflowsStepsExpression',
16876
+ workflowId: workflowIdNode.text,
16877
+ stepId: stepIdNode.text
16878
+ };
16879
+ }
16880
+ const valueRefNode = node.children.find(c => c.type === 'workflows-value-reference');
16881
+ const fieldNode = valueRefNode.children.find(c => c.type === 'workflow-field');
16882
+ const fieldNameNode = valueRefNode.children.find(c => c.type === 'workflow-field-name');
16883
+ const jsonPointerNode = valueRefNode.children.find(c => c.type === 'json-pointer');
16751
16884
  const result = {
16752
16885
  type: 'WorkflowsExpression',
16753
16886
  workflowId: workflowIdNode.text,
@@ -16762,11 +16895,16 @@ const transformers = {
16762
16895
  ['source-reference'](node) {
16763
16896
  const sourceNameNode = node.children.find(c => c.type === 'source-name');
16764
16897
  const referenceNode = node.children.find(c => c.type === 'source-reference-id');
16765
- return {
16898
+ const result = {
16766
16899
  type: 'SourceDescriptionsExpression',
16767
16900
  sourceName: sourceNameNode.text,
16768
16901
  reference: referenceNode.text
16769
16902
  };
16903
+ const stepsReference = tryParseWorkflowsStepsReference(referenceNode.text);
16904
+ if (stepsReference) {
16905
+ result.stepsReference = stepsReference;
16906
+ }
16907
+ return result;
16770
16908
  },
16771
16909
  ['components-reference'](node) {
16772
16910
  const typeNode = node.children.find(c => c.type === 'component-type');
@@ -16820,6 +16958,8 @@ class CSTTranslator extends apg_lite__WEBPACK_IMPORTED_MODULE_0__.Ast {
16820
16958
  this.callbacks['output-name'] = (0,_callbacks_cst_mjs__WEBPACK_IMPORTED_MODULE_1__["default"])('output-name');
16821
16959
  this.callbacks['steps-reference'] = (0,_callbacks_cst_mjs__WEBPACK_IMPORTED_MODULE_1__["default"])('steps-reference');
16822
16960
  this.callbacks['workflows-reference'] = (0,_callbacks_cst_mjs__WEBPACK_IMPORTED_MODULE_1__["default"])('workflows-reference');
16961
+ this.callbacks['workflows-value-reference'] = (0,_callbacks_cst_mjs__WEBPACK_IMPORTED_MODULE_1__["default"])('workflows-value-reference');
16962
+ this.callbacks['workflows-steps-reference'] = (0,_callbacks_cst_mjs__WEBPACK_IMPORTED_MODULE_1__["default"])('workflows-steps-reference');
16823
16963
  this.callbacks['workflow-id'] = (0,_callbacks_cst_mjs__WEBPACK_IMPORTED_MODULE_1__["default"])('workflow-id');
16824
16964
  this.callbacks['workflow-field'] = (0,_callbacks_cst_mjs__WEBPACK_IMPORTED_MODULE_1__["default"])('workflow-field');
16825
16965
  this.callbacks['workflow-field-name'] = (0,_callbacks_cst_mjs__WEBPACK_IMPORTED_MODULE_1__["default"])('workflow-field-name');
@@ -36373,7 +36513,7 @@ var Language = class _Language {
36373
36513
  if (input instanceof Uint8Array) {
36374
36514
  binary2 = input;
36375
36515
  } else if (globalThis.process?.versions.node) {
36376
- const fs2 = await Promise.resolve(/* import() */).then(__webpack_require__.t.bind(__webpack_require__, 59167, 19));
36516
+ const fs2 = await Promise.resolve(/* import() */).then(() => (__webpack_require__.t(59167, 19)));
36377
36517
  binary2 = await fs2.readFile(input);
36378
36518
  } else {
36379
36519
  const response = await fetch(input);
@@ -36413,7 +36553,7 @@ async function Module2(moduleArg = {}) {
36413
36553
  var ENVIRONMENT_IS_WORKER = typeof WorkerGlobalScope != "undefined";
36414
36554
  var ENVIRONMENT_IS_NODE = typeof process == "object" && process.versions?.node && process.type != "renderer";
36415
36555
  if (ENVIRONMENT_IS_NODE) {
36416
- const { createRequire } = await Promise.resolve(/* import() */).then(__webpack_require__.t.bind(__webpack_require__, 19451, 19));
36556
+ const { createRequire } = await Promise.resolve(/* import() */).then(() => (__webpack_require__.t(19451, 19)));
36417
36557
  var require = createRequire("file:///home/runner/work/apidom/apidom/node_modules/web-tree-sitter/web-tree-sitter.js");
36418
36558
  }
36419
36559
  Module.currentQueryProgressCallback = null;
@@ -47942,6 +48082,7 @@ __webpack_require__.r(__webpack_exports__);
47942
48082
  /* harmony export */ YAMLParseError: () => (/* reexport safe */ _dist_index_js__WEBPACK_IMPORTED_MODULE_0__.YAMLParseError),
47943
48083
  /* harmony export */ YAMLSeq: () => (/* reexport safe */ _dist_index_js__WEBPACK_IMPORTED_MODULE_0__.YAMLSeq),
47944
48084
  /* harmony export */ YAMLWarning: () => (/* reexport safe */ _dist_index_js__WEBPACK_IMPORTED_MODULE_0__.YAMLWarning),
48085
+ /* harmony export */ "default": () => (/* reexport module object */ _dist_index_js__WEBPACK_IMPORTED_MODULE_0__),
47945
48086
  /* harmony export */ isAlias: () => (/* reexport safe */ _dist_index_js__WEBPACK_IMPORTED_MODULE_0__.isAlias),
47946
48087
  /* harmony export */ isCollection: () => (/* reexport safe */ _dist_index_js__WEBPACK_IMPORTED_MODULE_0__.isCollection),
47947
48088
  /* harmony export */ isDocument: () => (/* reexport safe */ _dist_index_js__WEBPACK_IMPORTED_MODULE_0__.isDocument),
@@ -47961,12 +48102,8 @@ __webpack_require__.r(__webpack_exports__);
47961
48102
  // `export * as default from ...` fails on Webpack v4
47962
48103
  // https://github.com/eemeli/yaml/issues/228
47963
48104
 
47964
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_dist_index_js__WEBPACK_IMPORTED_MODULE_0__);
47965
48105
 
47966
48106
 
47967
- /* harmony export */ __webpack_require__.d(__webpack_exports__, [
47968
- /* harmony export */ "default", 0, /* export default binding */ __WEBPACK_DEFAULT_EXPORT__
47969
- /* harmony export */ ]);
47970
48107
 
47971
48108
 
47972
48109
  /***/ },
@@ -103596,6 +103733,18 @@ __webpack_require__.r(__webpack_exports__);
103596
103733
 
103597
103734
  const DEFAULT_CHUNK_SIZE = 64 * 1024;
103598
103735
 
103736
+ const DEFAULT_REQUEST_OPTIONS = {
103737
+ cache: 'default',
103738
+ redirect: 'follow',
103739
+ referrer: 'about:client',
103740
+ referrerPolicy: '',
103741
+ mode: 'cors',
103742
+ integrity: '',
103743
+ keepalive: false,
103744
+ priority: 'auto',
103745
+ window: null,
103746
+ };
103747
+
103599
103748
  const { isFunction } = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"];
103600
103749
 
103601
103750
  /**
@@ -103646,9 +103795,7 @@ const maybeWithAuthCredentials = (url) => {
103646
103795
 
103647
103796
  const factory = (env) => {
103648
103797
  const globalObject =
103649
- _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].global !== undefined && _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].global !== null
103650
- ? _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].global
103651
- : globalThis;
103798
+ _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].global !== undefined && _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].global !== null ? _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].global : globalThis;
103652
103799
  const { ReadableStream, TextEncoder } = globalObject;
103653
103800
 
103654
103801
  env = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].merge.call(
@@ -103787,6 +103934,7 @@ const factory = (env) => {
103787
103934
  fetchOptions,
103788
103935
  maxContentLength,
103789
103936
  maxBodyLength,
103937
+ maxRedirects,
103790
103938
  } = (0,_helpers_resolveConfig_js__WEBPACK_IMPORTED_MODULE_7__["default"])(config);
103791
103939
 
103792
103940
  const hasMaxContentLength = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isNumber(maxContentLength) && maxContentLength > -1;
@@ -103837,7 +103985,7 @@ const factory = (env) => {
103837
103985
  const password = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].getSafeProp(configAuth, 'password') || '';
103838
103986
  auth = {
103839
103987
  username,
103840
- password
103988
+ password,
103841
103989
  };
103842
103990
  }
103843
103991
 
@@ -103849,7 +103997,7 @@ const factory = (env) => {
103849
103997
  const urlPassword = decodeURIComponentSafe(parsedURL.password);
103850
103998
  auth = {
103851
103999
  username: urlUsername,
103852
- password: urlPassword
104000
+ password: urlPassword,
103853
104001
  };
103854
104002
  }
103855
104003
 
@@ -103923,7 +104071,9 @@ const factory = (env) => {
103923
104071
  (onUploadProgress || mustEnforceStreamBody)
103924
104072
  ) {
103925
104073
  requestContentLength =
103926
- requestContentLength == null ? await resolveBodyLength(headers, data) : requestContentLength;
104074
+ requestContentLength == null
104075
+ ? await resolveBodyLength(headers, data)
104076
+ : requestContentLength;
103927
104077
 
103928
104078
  // A declared length of 0 is only trusted to skip the wrap when we are
103929
104079
  // not enforcing a stream limit (which must not rely on that header).
@@ -103936,7 +104086,10 @@ const factory = (env) => {
103936
104086
 
103937
104087
  let contentTypeHeader;
103938
104088
 
103939
- if (_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isFormData(data) && (contentTypeHeader = _request.headers.get('content-type'))) {
104089
+ if (
104090
+ _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isFormData(data) &&
104091
+ (contentTypeHeader = _request.headers.get('content-type'))
104092
+ ) {
103940
104093
  headers.setContentType(contentTypeHeader);
103941
104094
  }
103942
104095
 
@@ -103999,20 +104152,57 @@ const factory = (env) => {
103999
104152
  // Set User-Agent header if not already set (fetch defaults to 'node' in Node.js)
104000
104153
  headers.set('User-Agent', 'axios/' + _env_data_js__WEBPACK_IMPORTED_MODULE_10__.VERSION, false);
104001
104154
 
104002
- const resolvedOptions = {
104003
- ...fetchOptions,
104155
+ const safeFetchOptions =
104156
+ fetchOptions == null ? fetchOptions : Object.assign(Object.create(null), fetchOptions);
104157
+
104158
+ if (safeFetchOptions) {
104159
+ // These options are owned by Axios and are already reflected in the
104160
+ // resolved Request passed to fetch.
104161
+ delete safeFetchOptions.body;
104162
+ delete safeFetchOptions.headers;
104163
+ delete safeFetchOptions.method;
104164
+ delete safeFetchOptions.signal;
104165
+ delete safeFetchOptions.duplex;
104166
+ delete safeFetchOptions.credentials;
104167
+ }
104168
+
104169
+ const resolvedOptions = Object.assign(Object.create(null), safeFetchOptions, {
104004
104170
  signal: composedSignal,
104005
104171
  method: method.toUpperCase(),
104006
104172
  headers: (0,_helpers_sanitizeHeaderValue_js__WEBPACK_IMPORTED_MODULE_11__.toByteStringHeaderObject)(headers.normalize()),
104007
104173
  body: data,
104008
104174
  duplex: 'half',
104009
104175
  credentials: isCredentialsSupported ? withCredentials : undefined,
104010
- };
104176
+ });
104177
+
104178
+ if (isRequestSupported) {
104179
+ _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].forEach(DEFAULT_REQUEST_OPTIONS, (value, key) => {
104180
+ if (resolvedOptions[key] === undefined) {
104181
+ resolvedOptions[key] = value;
104182
+ }
104183
+ });
104184
+
104185
+ if (resolvedOptions.signal === undefined) {
104186
+ resolvedOptions.signal = null;
104187
+ }
104188
+
104189
+ if (resolvedOptions.body === undefined) {
104190
+ resolvedOptions.body = null;
104191
+ }
104192
+ }
104193
+
104194
+ if (maxRedirects === 0) {
104195
+ resolvedOptions.redirect = 'manual';
104196
+
104197
+ if (safeFetchOptions) {
104198
+ safeFetchOptions.redirect = 'manual';
104199
+ }
104200
+ }
104011
104201
 
104012
104202
  request = isRequestSupported && new Request(url, resolvedOptions);
104013
104203
 
104014
104204
  let response = await (isRequestSupported
104015
- ? _fetch(request, fetchOptions)
104205
+ ? _fetch(request, safeFetchOptions)
104016
104206
  : _fetch(url, resolvedOptions));
104017
104207
 
104018
104208
  const responseHeaders = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_5__["default"].from(response.headers);
@@ -104239,12 +104429,14 @@ __webpack_require__.r(__webpack_exports__);
104239
104429
  /* harmony import */ var _defaults_transitional_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(10807);
104240
104430
  /* harmony import */ var _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(74062);
104241
104431
  /* harmony import */ var _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(38458);
104242
- /* harmony import */ var _helpers_parseProtocol_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(55579);
104243
- /* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(63820);
104244
- /* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(84729);
104245
- /* harmony import */ var _helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(77837);
104246
- /* harmony import */ var _helpers_resolveConfig_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(88382);
104247
- /* harmony import */ var _helpers_sanitizeHeaderValue_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(68267);
104432
+ /* harmony import */ var _helpers_normalizeURLForProtocolCheck_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(17527);
104433
+ /* harmony import */ var _helpers_parseProtocol_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(55579);
104434
+ /* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(63820);
104435
+ /* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(84729);
104436
+ /* harmony import */ var _helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(77837);
104437
+ /* harmony import */ var _helpers_resolveConfig_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(88382);
104438
+ /* harmony import */ var _helpers_sanitizeHeaderValue_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(68267);
104439
+
104248
104440
 
104249
104441
 
104250
104442
 
@@ -104262,13 +104454,13 @@ const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';
104262
104454
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (isXHRAdapterSupported &&
104263
104455
  function (config) {
104264
104456
  return new Promise(function dispatchXhrRequest(resolve, reject) {
104265
- const _config = (0,_helpers_resolveConfig_js__WEBPACK_IMPORTED_MODULE_9__["default"])(config);
104457
+ const _config = (0,_helpers_resolveConfig_js__WEBPACK_IMPORTED_MODULE_10__["default"])(config);
104266
104458
  let requestData = _config.data;
104267
- const requestHeaders = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_7__["default"].from(_config.headers).normalize();
104459
+ const requestHeaders = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_8__["default"].from(_config.headers).normalize();
104268
104460
  let { responseType, onUploadProgress, onDownloadProgress } = _config;
104269
104461
  let onCanceled;
104270
104462
  let uploadThrottled, downloadThrottled;
104271
- let flushUpload, flushDownload;
104463
+ let flushUpload, flushDownload, flushDownloadWithEvent;
104272
104464
 
104273
104465
  function done() {
104274
104466
  flushUpload && flushUpload(); // flush events
@@ -104286,12 +104478,57 @@ const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';
104286
104478
  // Set the request timeout in MS
104287
104479
  request.timeout = _config.timeout;
104288
104480
 
104289
- function onloadend() {
104481
+ function onloadend(event) {
104290
104482
  if (!request) {
104291
104483
  return;
104292
104484
  }
104485
+
104486
+ // Status 0 means no response was received, which onerror and onabort normally
104487
+ // reject before this runs. Firefox 152 fires only readystatechange and loadend for
104488
+ // navigation-canceled requests (https://bugzilla.mozilla.org/show_bug.cgi?id=1505389),
104489
+ // leaving settle() to resolve them as an empty success. ECONNABORTED is the error
104490
+ // onabort raised on Firefox 151. Reads over file:, which some environments report as
104491
+ // status 0 on success, are excluded by the request URL's scheme after browser-style
104492
+ // preprocessing, by the page origin's scheme for relative URLs (which inherit it), or
104493
+ // by responseURL where implemented.
104494
+ if (
104495
+ request.status === 0 &&
104496
+ ((0,_helpers_parseProtocol_js__WEBPACK_IMPORTED_MODULE_6__["default"])((0,_helpers_normalizeURLForProtocolCheck_js__WEBPACK_IMPORTED_MODULE_5__["default"])(_config.url)) ||
104497
+ (0,_helpers_parseProtocol_js__WEBPACK_IMPORTED_MODULE_6__["default"])(_platform_index_js__WEBPACK_IMPORTED_MODULE_7__["default"].origin)) !== 'file' &&
104498
+ !(request.responseURL && request.responseURL.startsWith('file:'))
104499
+ ) {
104500
+ reject(new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"]('Request aborted', _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"].ECONNABORTED, config, request));
104501
+ done();
104502
+
104503
+ // Clean up request
104504
+ request = null;
104505
+ return;
104506
+ }
104507
+
104508
+ // When loadend is still dispatching, flushing with it gives progress
104509
+ // listeners a final delivery whose event has a live target. The legacy
104510
+ // ready-state fallback has no event, so replay its pending progress.
104511
+ // A throwing listener must not block settlement; rethrow asynchronously,
104512
+ // matching how listener errors surface on the throttle timer path.
104513
+ try {
104514
+ if (event) {
104515
+ flushDownloadWithEvent && flushDownloadWithEvent(event);
104516
+ } else {
104517
+ flushDownload && flushDownload();
104518
+ }
104519
+ } catch (err) {
104520
+ setTimeout(() => {
104521
+ throw err;
104522
+ });
104523
+ }
104524
+
104525
+ // A final progress callback can cancel the request synchronously.
104526
+ if (!request) {
104527
+ return;
104528
+ }
104529
+
104293
104530
  // Prepare the response
104294
- const responseHeaders = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_7__["default"].from(
104531
+ const responseHeaders = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_8__["default"].from(
104295
104532
  'getAllResponseHeaders' in request && request.getAllResponseHeaders()
104296
104533
  );
104297
104534
  const responseData =
@@ -104404,7 +104641,7 @@ const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';
104404
104641
 
104405
104642
  // Add headers to the request
104406
104643
  if ('setRequestHeader' in request) {
104407
- _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach((0,_helpers_sanitizeHeaderValue_js__WEBPACK_IMPORTED_MODULE_10__.toByteStringHeaderObject)(requestHeaders), function setRequestHeader(val, key) {
104644
+ _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach((0,_helpers_sanitizeHeaderValue_js__WEBPACK_IMPORTED_MODULE_11__.toByteStringHeaderObject)(requestHeaders), function setRequestHeader(val, key) {
104408
104645
  request.setRequestHeader(key, val);
104409
104646
  });
104410
104647
  }
@@ -104421,13 +104658,16 @@ const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';
104421
104658
 
104422
104659
  // Handle progress if needed
104423
104660
  if (onDownloadProgress) {
104424
- [downloadThrottled, flushDownload] = (0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_8__.progressEventReducer)(onDownloadProgress, true);
104661
+ [downloadThrottled, flushDownload, flushDownloadWithEvent] = (0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_9__.progressEventReducer)(
104662
+ onDownloadProgress,
104663
+ true
104664
+ );
104425
104665
  request.addEventListener('progress', downloadThrottled);
104426
104666
  }
104427
104667
 
104428
104668
  // Not all browsers support upload events
104429
104669
  if (onUploadProgress && request.upload) {
104430
- [uploadThrottled, flushUpload] = (0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_8__.progressEventReducer)(onUploadProgress);
104670
+ [uploadThrottled, flushUpload] = (0,_helpers_progressEventReducer_js__WEBPACK_IMPORTED_MODULE_9__.progressEventReducer)(onUploadProgress);
104431
104671
 
104432
104672
  request.upload.addEventListener('progress', uploadThrottled);
104433
104673
 
@@ -104455,9 +104695,9 @@ const isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';
104455
104695
  }
104456
104696
  }
104457
104697
 
104458
- const protocol = (0,_helpers_parseProtocol_js__WEBPACK_IMPORTED_MODULE_5__["default"])(_config.url);
104698
+ const protocol = (0,_helpers_parseProtocol_js__WEBPACK_IMPORTED_MODULE_6__["default"])(_config.url);
104459
104699
 
104460
- if (protocol && !_platform_index_js__WEBPACK_IMPORTED_MODULE_6__["default"].protocols.includes(protocol)) {
104700
+ if (protocol && !_platform_index_js__WEBPACK_IMPORTED_MODULE_7__["default"].protocols.includes(protocol)) {
104461
104701
  reject(
104462
104702
  new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_3__["default"](
104463
104703
  'Unsupported protocol ' + protocol + ':',
@@ -104813,9 +105053,11 @@ __webpack_require__.r(__webpack_exports__);
104813
105053
  /* harmony import */ var _dispatchRequest_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(48683);
104814
105054
  /* harmony import */ var _mergeConfig_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(44662);
104815
105055
  /* harmony import */ var _buildFullPath_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(88262);
104816
- /* harmony import */ var _helpers_validator_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(13390);
104817
- /* harmony import */ var _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(84729);
104818
- /* harmony import */ var _defaults_transitional_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(10807);
105056
+ /* harmony import */ var _methodList_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(52647);
105057
+ /* harmony import */ var _helpers_validator_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(13390);
105058
+ /* harmony import */ var _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(84729);
105059
+ /* harmony import */ var _defaults_transitional_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(10807);
105060
+
104819
105061
 
104820
105062
 
104821
105063
 
@@ -104828,7 +105070,7 @@ __webpack_require__.r(__webpack_exports__);
104828
105070
 
104829
105071
 
104830
105072
 
104831
- const validators = _helpers_validator_js__WEBPACK_IMPORTED_MODULE_6__["default"].validators;
105073
+ const validators = _helpers_validator_js__WEBPACK_IMPORTED_MODULE_7__["default"].validators;
104832
105074
 
104833
105075
  /**
104834
105076
  * Create a new instance of Axios
@@ -104859,21 +105101,21 @@ class Axios {
104859
105101
  return await this._request(configOrUrl, config);
104860
105102
  } catch (err) {
104861
105103
  if (err instanceof Error) {
104862
- let dummy = {};
105104
+ try {
105105
+ let dummy = {};
104863
105106
 
104864
- Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());
105107
+ Error.captureStackTrace ? Error.captureStackTrace(dummy) : (dummy = new Error());
104865
105108
 
104866
- // slice off the Error: ... line
104867
- const stack = (() => {
104868
- if (!dummy.stack) {
104869
- return '';
104870
- }
105109
+ const dummyStack = dummy.stack;
105110
+ let stack = '';
104871
105111
 
104872
- const firstNewlineIndex = dummy.stack.indexOf('\n');
105112
+ // slice off the Error: ... line
105113
+ if (typeof dummyStack === 'string') {
105114
+ const firstNewlineIndex = dummyStack.indexOf('\n');
105115
+
105116
+ stack = firstNewlineIndex === -1 ? '' : dummyStack.slice(firstNewlineIndex + 1);
105117
+ }
104873
105118
 
104874
- return firstNewlineIndex === -1 ? '' : dummy.stack.slice(firstNewlineIndex + 1);
104875
- })();
104876
- try {
104877
105119
  if (!err.stack) {
104878
105120
  err.stack = stack;
104879
105121
  // match without the 2 top stack lines
@@ -104889,7 +105131,7 @@ class Axios {
104889
105131
  }
104890
105132
  }
104891
105133
  } catch (e) {
104892
- // ignore the case where "stack" is an un-writable property
105134
+ // Ignore failures from custom stack hooks or un-writable stack properties.
104893
105135
  }
104894
105136
  }
104895
105137
 
@@ -104912,7 +105154,7 @@ class Axios {
104912
105154
  const { transitional, paramsSerializer, headers } = config;
104913
105155
 
104914
105156
  if (transitional !== undefined) {
104915
- _helpers_validator_js__WEBPACK_IMPORTED_MODULE_6__["default"].assertOptions(
105157
+ _helpers_validator_js__WEBPACK_IMPORTED_MODULE_7__["default"].assertOptions(
104916
105158
  transitional,
104917
105159
  {
104918
105160
  silentJSONParsing: validators.transitional(validators.boolean),
@@ -104932,7 +105174,7 @@ class Axios {
104932
105174
  serialize: paramsSerializer,
104933
105175
  };
104934
105176
  } else {
104935
- _helpers_validator_js__WEBPACK_IMPORTED_MODULE_6__["default"].assertOptions(
105177
+ _helpers_validator_js__WEBPACK_IMPORTED_MODULE_7__["default"].assertOptions(
104936
105178
  paramsSerializer,
104937
105179
  {
104938
105180
  encode: validators.function,
@@ -104952,7 +105194,7 @@ class Axios {
104952
105194
  config.allowAbsoluteUrls = true;
104953
105195
  }
104954
105196
 
104955
- _helpers_validator_js__WEBPACK_IMPORTED_MODULE_6__["default"].assertOptions(
105197
+ _helpers_validator_js__WEBPACK_IMPORTED_MODULE_7__["default"].assertOptions(
104956
105198
  config,
104957
105199
  {
104958
105200
  baseUrl: validators.spelling('baseURL'),
@@ -104962,17 +105204,21 @@ class Axios {
104962
105204
  );
104963
105205
 
104964
105206
  // Set config.method
104965
- config.method = (config.method || this.defaults.method || 'get').toLowerCase();
105207
+ config.method = (
105208
+ _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].getSafeProp(config, 'method') ||
105209
+ _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].getSafeProp(this.defaults, 'method') ||
105210
+ 'get'
105211
+ ).toLowerCase();
104966
105212
 
104967
105213
  // Flatten headers
104968
105214
  let contextHeaders = headers && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].merge(headers.common, headers[config.method]);
104969
105215
 
104970
105216
  headers &&
104971
- _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query', 'common'], (method) => {
105217
+ _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(_methodList_js__WEBPACK_IMPORTED_MODULE_6__["default"].concat('common'), (method) => {
104972
105218
  delete headers[method];
104973
105219
  });
104974
105220
 
104975
- config.headers = _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_7__["default"].concat(contextHeaders, headers);
105221
+ config.headers = _AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_8__["default"].concat(contextHeaders, headers);
104976
105222
 
104977
105223
  // filter out skipped interceptors
104978
105224
  const requestInterceptorChain = [];
@@ -104984,7 +105230,7 @@ class Axios {
104984
105230
 
104985
105231
  synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;
104986
105232
 
104987
- const transitional = config.transitional || _defaults_transitional_js__WEBPACK_IMPORTED_MODULE_8__["default"];
105233
+ const transitional = config.transitional || _defaults_transitional_js__WEBPACK_IMPORTED_MODULE_9__["default"];
104988
105234
  const legacyInterceptorReqResOrdering =
104989
105235
  transitional && transitional.legacyInterceptorReqResOrdering;
104990
105236
 
@@ -105860,9 +106106,57 @@ __webpack_require__.r(__webpack_exports__);
105860
106106
 
105861
106107
 
105862
106108
 
106109
+ const $internals = Symbol('internals');
106110
+
106111
+ // `handlers` is public and may be replaced with a nullish value by user code;
106112
+ // `clear()` has always tolerated that. Treat it as an empty stack rather than
106113
+ // dereferencing it.
106114
+ function countHandlers(handlers) {
106115
+ return handlers ? handlers.length : 0;
106116
+ }
106117
+
106118
+ function trimHandlers(handlers) {
106119
+ if (!handlers) {
106120
+ return;
106121
+ }
106122
+
106123
+ while (handlers.length && handlers[handlers.length - 1] === null) {
106124
+ handlers.pop();
106125
+ }
106126
+ }
106127
+
106128
+ function syncHandlerEntries(manager, internals) {
106129
+ const handlers = manager.handlers;
106130
+ const length = countHandlers(handlers);
106131
+
106132
+ if (handlers !== internals.handlersRef) {
106133
+ internals.handlersRef = handlers;
106134
+ internals.handlerEntries.clear();
106135
+ } else if (length !== internals.handlersLength) {
106136
+ if (!length) {
106137
+ internals.handlerEntries.clear();
106138
+ } else {
106139
+ internals.handlerEntries.forEach(function removeStaleEntry(entry, id) {
106140
+ if (handlers[entry.index] !== entry.handler) {
106141
+ internals.handlerEntries.delete(id);
106142
+ }
106143
+ });
106144
+ }
106145
+ }
106146
+
106147
+ internals.handlersLength = length;
106148
+ }
106149
+
105863
106150
  class InterceptorManager {
105864
106151
  constructor() {
105865
106152
  this.handlers = [];
106153
+ this[$internals] = {
106154
+ handlersRef: this.handlers,
106155
+ handlersLength: this.handlers.length,
106156
+ handlerEntries: new Map(),
106157
+ iterationDepth: 0,
106158
+ nextId: 0,
106159
+ };
105866
106160
  }
105867
106161
 
105868
106162
  /**
@@ -105875,13 +106169,30 @@ class InterceptorManager {
105875
106169
  * @return {Number} An ID used to remove interceptor later
105876
106170
  */
105877
106171
  use(fulfilled, rejected, options) {
105878
- this.handlers.push({
106172
+ const handler = {
105879
106173
  fulfilled,
105880
106174
  rejected,
105881
106175
  synchronous: options ? options.synchronous : false,
105882
106176
  runWhen: options ? options.runWhen : null,
106177
+ };
106178
+ const internals = this[$internals];
106179
+
106180
+ if (this.handlers == null) {
106181
+ this.handlers = [];
106182
+ }
106183
+
106184
+ syncHandlerEntries(this, internals);
106185
+
106186
+ const id = internals.nextId++;
106187
+
106188
+ this.handlers.push(handler);
106189
+ internals.handlerEntries.set(id, {
106190
+ handler,
106191
+ index: this.handlers.length - 1,
105883
106192
  });
105884
- return this.handlers.length - 1;
106193
+ internals.handlersLength = this.handlers.length;
106194
+
106195
+ return id;
105885
106196
  }
105886
106197
 
105887
106198
  /**
@@ -105892,8 +106203,27 @@ class InterceptorManager {
105892
106203
  * @returns {void}
105893
106204
  */
105894
106205
  eject(id) {
105895
- if (this.handlers[id]) {
105896
- this.handlers[id] = null;
106206
+ const internals = this[$internals];
106207
+
106208
+ syncHandlerEntries(this, internals);
106209
+
106210
+ const entry = internals.handlerEntries.get(id);
106211
+
106212
+ if (entry) {
106213
+ internals.handlerEntries.delete(id);
106214
+
106215
+ // Ignore IDs invalidated by clear or direct replacement of handlers.
106216
+ if (this.handlers[entry.index] !== entry.handler) {
106217
+ return;
106218
+ }
106219
+
106220
+ this.handlers[entry.index] = null;
106221
+
106222
+ // Do not reuse an index while forEach is walking its length snapshot.
106223
+ if (!internals.iterationDepth) {
106224
+ trimHandlers(this.handlers);
106225
+ internals.handlersLength = this.handlers.length;
106226
+ }
105897
106227
  }
105898
106228
  }
105899
106229
 
@@ -105905,6 +106235,7 @@ class InterceptorManager {
105905
106235
  clear() {
105906
106236
  if (this.handlers) {
105907
106237
  this.handlers = [];
106238
+ syncHandlerEntries(this, this[$internals]);
105908
106239
  }
105909
106240
  }
105910
106241
 
@@ -105919,11 +106250,25 @@ class InterceptorManager {
105919
106250
  * @returns {void}
105920
106251
  */
105921
106252
  forEach(fn) {
105922
- _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(this.handlers, function forEachHandler(h) {
105923
- if (h !== null) {
105924
- fn(h);
106253
+ const internals = this[$internals];
106254
+
106255
+ syncHandlerEntries(this, internals);
106256
+
106257
+ internals.iterationDepth++;
106258
+
106259
+ try {
106260
+ _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(this.handlers, function forEachHandler(h) {
106261
+ if (h !== null) {
106262
+ fn(h);
106263
+ }
106264
+ });
106265
+ } finally {
106266
+ if (!--internals.iterationDepth) {
106267
+ syncHandlerEntries(this, internals);
106268
+ trimHandlers(this.handlers);
106269
+ internals.handlersLength = countHandlers(this.handlers);
105925
106270
  }
105926
- });
106271
+ }
105927
106272
  }
105928
106273
  }
105929
106274
 
@@ -105947,26 +106292,15 @@ __webpack_require__.r(__webpack_exports__);
105947
106292
  /* harmony import */ var _AxiosError_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(74062);
105948
106293
  /* harmony import */ var _helpers_isAbsoluteURL_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(99034);
105949
106294
  /* harmony import */ var _helpers_combineURLs_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(76787);
106295
+ /* harmony import */ var _helpers_normalizeURLForProtocolCheck_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(17527);
105950
106296
 
105951
106297
 
105952
106298
 
105953
106299
 
105954
106300
 
105955
106301
 
105956
- const malformedHttpProtocol = /^https?:(?!\/\/)/i;
105957
- const httpProtocolControlCharacters = /[\t\n\r]/g;
105958
-
105959
- function stripLeadingC0ControlOrSpace(url) {
105960
- let i = 0;
105961
- while (i < url.length && url.charCodeAt(i) <= 0x20) {
105962
- i++;
105963
- }
105964
- return url.slice(i);
105965
- }
105966
106302
 
105967
- function normalizeURLForProtocolCheck(url) {
105968
- return stripLeadingC0ControlOrSpace(url).replace(httpProtocolControlCharacters, '');
105969
- }
106303
+ const malformedHttpProtocol = /^https?:(?!\/\/)/i;
105970
106304
 
105971
106305
  // Redact the parts of a URL that can carry secrets before it is embedded in an
105972
106306
  // error message. AxiosError.toJSON() serializes `message` verbatim and errors
@@ -106005,7 +106339,7 @@ function redactSensitiveURLParts(url) {
106005
106339
 
106006
106340
  function assertValidHttpProtocolURL(url, config) {
106007
106341
  if (typeof url === 'string') {
106008
- const normalizedURL = normalizeURLForProtocolCheck(url);
106342
+ const normalizedURL = (0,_helpers_normalizeURLForProtocolCheck_js__WEBPACK_IMPORTED_MODULE_3__["default"])(url);
106009
106343
  if (malformedHttpProtocol.test(normalizedURL)) {
106010
106344
  throw new _AxiosError_js__WEBPACK_IMPORTED_MODULE_0__["default"](
106011
106345
  `Invalid URL ${JSON.stringify(redactSensitiveURLParts(normalizedURL))}: missing "//" after protocol`,
@@ -106053,6 +106387,8 @@ __webpack_require__.r(__webpack_exports__);
106053
106387
  /* harmony import */ var _cancel_CanceledError_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(38458);
106054
106388
  /* harmony import */ var _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(84729);
106055
106389
  /* harmony import */ var _adapters_adapters_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(36263);
106390
+ /* harmony import */ var _utils_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(17275);
106391
+
106056
106392
 
106057
106393
 
106058
106394
 
@@ -106086,10 +106422,15 @@ function throwIfCancellationRequested(config) {
106086
106422
  *
106087
106423
  * @returns {Promise} The Promise to be fulfilled
106088
106424
  */
106089
- function dispatchRequest(config) {
106425
+ function dispatchRequest(_config) {
106426
+ // Interceptors may replace the merged config with an ordinary object. Flatten
106427
+ // it at the dispatch boundary so shared prototype members cannot become
106428
+ // request behavior, while preserving intentional template/class members.
106429
+ const config = _utils_js__WEBPACK_IMPORTED_MODULE_6__["default"].toSafeFlatObject(_config);
106430
+
106090
106431
  throwIfCancellationRequested(config);
106091
106432
 
106092
- config.headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_4__["default"].from(config.headers);
106433
+ config.headers = _core_AxiosHeaders_js__WEBPACK_IMPORTED_MODULE_4__["default"].from(_utils_js__WEBPACK_IMPORTED_MODULE_6__["default"].getSafeProp(config, 'headers'));
106093
106434
 
106094
106435
  // Transform request data
106095
106436
  config.data = _transformData_js__WEBPACK_IMPORTED_MODULE_0__["default"].call(config, config.transformRequest);
@@ -106282,7 +106623,7 @@ function mergeConfig(config1, config2) {
106282
106623
  transformResponse: defaultToConfig2,
106283
106624
  paramsSerializer: defaultToConfig2,
106284
106625
  timeout: defaultToConfig2,
106285
- timeoutMessage: defaultToConfig2,
106626
+ timeoutErrorMessage: defaultToConfig2,
106286
106627
  withCredentials: defaultToConfig2,
106287
106628
  withXSRFToken: defaultToConfig2,
106288
106629
  adapter: defaultToConfig2,
@@ -106332,6 +106673,36 @@ function mergeConfig(config1, config2) {
106332
106673
  }
106333
106674
 
106334
106675
 
106676
+ /***/ },
106677
+
106678
+ /***/ 52647
106679
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
106680
+
106681
+ "use strict";
106682
+ __webpack_require__.r(__webpack_exports__);
106683
+
106684
+
106685
+ const methodList = Object.freeze([
106686
+ 'get',
106687
+ 'delete',
106688
+ 'head',
106689
+ 'options',
106690
+ 'post',
106691
+ 'put',
106692
+ 'patch',
106693
+ 'purge',
106694
+ 'link',
106695
+ 'unlink',
106696
+ 'query',
106697
+ ]);
106698
+
106699
+ /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (methodList);
106700
+
106701
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, [
106702
+ /* harmony export */ "default", 0, /* export default binding */ __WEBPACK_DEFAULT_EXPORT__
106703
+ /* harmony export */ ]);
106704
+
106705
+
106335
106706
  /***/ },
106336
106707
 
106337
106708
  /***/ 958
@@ -106468,6 +106839,8 @@ __webpack_require__.r(__webpack_exports__);
106468
106839
  /* harmony import */ var _helpers_toURLEncodedForm_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(31076);
106469
106840
  /* harmony import */ var _platform_index_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(63820);
106470
106841
  /* harmony import */ var _helpers_formDataToJSON_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(77887);
106842
+ /* harmony import */ var _core_methodList_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(52647);
106843
+
106471
106844
 
106472
106845
 
106473
106846
 
@@ -106640,7 +107013,7 @@ const defaults = {
106640
107013
  },
106641
107014
  };
106642
107015
 
106643
- _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'query'], (method) => {
107016
+ _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].forEach(_core_methodList_js__WEBPACK_IMPORTED_MODULE_7__["default"], (method) => {
106644
107017
  defaults.headers[method] = {};
106645
107018
  });
106646
107019
 
@@ -106681,7 +107054,7 @@ __webpack_require__.r(__webpack_exports__);
106681
107054
 
106682
107055
  "use strict";
106683
107056
  __webpack_require__.r(__webpack_exports__);
106684
- const VERSION = "1.19.0";
107057
+ const VERSION = "1.20.0";
106685
107058
  /* harmony export */ __webpack_require__.d(__webpack_exports__, [
106686
107059
  /* harmony export */ "VERSION", 0, /* binding */ VERSION
106687
107060
  /* harmony export */ ]);
@@ -106804,14 +107177,22 @@ const HttpStatusCode = {
106804
107177
  Gone: 410,
106805
107178
  LengthRequired: 411,
106806
107179
  PreconditionFailed: 412,
107180
+ /**
107181
+ * @deprecated Use `ContentTooLarge` instead.
107182
+ */
106807
107183
  PayloadTooLarge: 413,
107184
+ ContentTooLarge: 413,
106808
107185
  UriTooLong: 414,
106809
107186
  UnsupportedMediaType: 415,
106810
107187
  RangeNotSatisfiable: 416,
106811
107188
  ExpectationFailed: 417,
106812
107189
  ImATeapot: 418,
106813
107190
  MisdirectedRequest: 421,
107191
+ /**
107192
+ * @deprecated Use `UnprocessableContent` instead.
107193
+ */
106814
107194
  UnprocessableEntity: 422,
107195
+ UnprocessableContent: 422,
106815
107196
  Locked: 423,
106816
107197
  FailedDependency: 424,
106817
107198
  TooEarly: 425,
@@ -106841,7 +107222,9 @@ const HttpStatusCode = {
106841
107222
  };
106842
107223
 
106843
107224
  Object.entries(HttpStatusCode).forEach(([key, value]) => {
106844
- HttpStatusCode[value] = key;
107225
+ if (HttpStatusCode[value] === undefined) {
107226
+ HttpStatusCode[value] = key;
107227
+ }
106845
107228
  });
106846
107229
 
106847
107230
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (HttpStatusCode);
@@ -107567,6 +107950,42 @@ __webpack_require__.r(__webpack_exports__);
107567
107950
  /* harmony export */ ]);
107568
107951
 
107569
107952
 
107953
+ /***/ },
107954
+
107955
+ /***/ 17527
107956
+ (__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) {
107957
+
107958
+ "use strict";
107959
+ __webpack_require__.r(__webpack_exports__);
107960
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
107961
+ /* harmony export */ "default": () => (/* binding */ normalizeURLForProtocolCheck)
107962
+ /* harmony export */ });
107963
+
107964
+
107965
+ const urlParserControlCharacters = /[\t\n\r]/g;
107966
+
107967
+ /**
107968
+ * Match WHATWG URL preprocessing before checking a URL's protocol.
107969
+ *
107970
+ * @param {string} url
107971
+ *
107972
+ * @returns {string}
107973
+ */
107974
+ function normalizeURLForProtocolCheck(url) {
107975
+ if (typeof url !== 'string') {
107976
+ return url;
107977
+ }
107978
+
107979
+ let start = 0;
107980
+
107981
+ while (start < url.length && url.charCodeAt(start) <= 0x20) {
107982
+ start++;
107983
+ }
107984
+
107985
+ return url.slice(start).replace(urlParserControlCharacters, '');
107986
+ }
107987
+
107988
+
107570
107989
  /***/ },
107571
107990
 
107572
107991
  /***/ 73119
@@ -107704,7 +108123,7 @@ const progressEventReducer = (listener, isDownloadStream, freq = 3) => {
107704
108123
  const _speedometer = (0,_speedometer_js__WEBPACK_IMPORTED_MODULE_0__["default"])(50, 250);
107705
108124
 
107706
108125
  return (0,_throttle_js__WEBPACK_IMPORTED_MODULE_1__["default"])((e) => {
107707
- if (!e || typeof e.loaded !== 'number') {
108126
+ if (!e || !_utils_js__WEBPACK_IMPORTED_MODULE_2__["default"].isNumber(e.loaded)) {
107708
108127
  return;
107709
108128
  }
107710
108129
  const rawLoaded = e.loaded;
@@ -107839,15 +108258,17 @@ function resolveConfig(config) {
107839
108258
  }
107840
108259
 
107841
108260
  if (_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isFormData(data)) {
108261
+ const getHeaders = _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].getSafeProp(data, 'getHeaders');
108262
+
107842
108263
  if (
107843
108264
  _platform_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasStandardBrowserEnv ||
107844
108265
  _platform_index_js__WEBPACK_IMPORTED_MODULE_0__["default"].hasStandardBrowserWebWorkerEnv ||
107845
108266
  _utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isReactNative(data)
107846
108267
  ) {
107847
108268
  headers.setContentType(undefined); // browser/web worker/RN handles it
107848
- } else if (_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isFunction(data.getHeaders)) {
108269
+ } else if (_utils_js__WEBPACK_IMPORTED_MODULE_1__["default"].isFunction(getHeaders)) {
107849
108270
  // Node.js FormData (like form-data package)
107850
- (0,_core_setFormDataHeaders_js__WEBPACK_IMPORTED_MODULE_8__["default"])(headers, data.getHeaders(), own('formDataHeaderPolicy'));
108271
+ (0,_core_setFormDataHeaders_js__WEBPACK_IMPORTED_MODULE_8__["default"])(headers, getHeaders.call(data), own('formDataHeaderPolicy'));
107851
108272
  }
107852
108273
  }
107853
108274
 
@@ -108082,7 +108503,7 @@ __webpack_require__.r(__webpack_exports__);
108082
108503
  * Throttle decorator
108083
108504
  * @param {Function} fn
108084
108505
  * @param {Number} freq
108085
- * @return {Function}
108506
+ * @return {Array<Function>}
108086
108507
  */
108087
108508
  function throttle(fn, freq) {
108088
108509
  let timestamp = 0;
@@ -108117,8 +108538,9 @@ function throttle(fn, freq) {
108117
108538
  };
108118
108539
 
108119
108540
  const flush = () => lastArgs && invoke(lastArgs);
108541
+ const flushWith = (...args) => invoke(args);
108120
108542
 
108121
- return [throttled, flush];
108543
+ return [throttled, flush, flushWith];
108122
108544
  }
108123
108545
 
108124
108546
  /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (throttle);
@@ -108239,28 +108661,18 @@ function toFormData(obj, formData, options) {
108239
108661
  // eslint-disable-next-line no-param-reassign
108240
108662
  formData = formData || new (_platform_node_classes_FormData_js__WEBPACK_IMPORTED_MODULE_2__["default"] || FormData)();
108241
108663
 
108242
- // eslint-disable-next-line no-param-reassign
108243
- options = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].toFlatObject(
108244
- options,
108245
- {
108246
- metaTokens: true,
108247
- dots: false,
108248
- indexes: false,
108249
- },
108250
- false,
108251
- function defined(option, source) {
108252
- // eslint-disable-next-line no-eq-null,eqeqeq
108253
- return !_utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefined(source[option]);
108254
- }
108255
- );
108664
+ const option = (name, fallback) => {
108665
+ const value = _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].getSafeProp(options, name);
108666
+ return _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isUndefined(value) ? fallback : value;
108667
+ };
108256
108668
 
108257
- const metaTokens = options.metaTokens;
108669
+ const metaTokens = option('metaTokens', true);
108258
108670
  // eslint-disable-next-line no-use-before-define
108259
- const visitor = options.visitor || defaultVisitor;
108260
- const dots = options.dots;
108261
- const indexes = options.indexes;
108262
- const _Blob = options.Blob || (typeof Blob !== 'undefined' && Blob);
108263
- const maxDepth = options.maxDepth === undefined ? DEFAULT_FORM_DATA_MAX_DEPTH : options.maxDepth;
108671
+ const visitor = option('visitor') || defaultVisitor;
108672
+ const dots = option('dots', false);
108673
+ const indexes = option('indexes', false);
108674
+ const _Blob = option('Blob') || (typeof Blob !== 'undefined' && Blob);
108675
+ const maxDepth = option('maxDepth', DEFAULT_FORM_DATA_MAX_DEPTH);
108264
108676
  const useBlob = _Blob && _utils_js__WEBPACK_IMPORTED_MODULE_0__["default"].isSpecCompliantForm(formData);
108265
108677
  const stack = [];
108266
108678
 
@@ -108290,7 +108702,10 @@ function toFormData(obj, formData, options) {
108290
108702
  if (_platform_node_classes_FormData_js__WEBPACK_IMPORTED_MODULE_2__["default"] && _platform_node_classes_FormData_js__WEBPACK_IMPORTED_MODULE_2__["default"].isBufferAvailable()) {
108291
108703
  return _platform_node_classes_FormData_js__WEBPACK_IMPORTED_MODULE_2__["default"].from(value);
108292
108704
  }
108293
- throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"]('Blob is not supported. Use a Buffer instead.', _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"].ERR_NOT_SUPPORT);
108705
+ throw new _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"](
108706
+ 'Blob is not supported. Use a Buffer instead.',
108707
+ _core_AxiosError_js__WEBPACK_IMPORTED_MODULE_1__["default"].ERR_NOT_SUPPORT
108708
+ );
108294
108709
  }
108295
108710
 
108296
108711
  return value;
@@ -108885,12 +109300,65 @@ const hasOwnProperty = (
108885
109300
  hasOwnProperty.call(obj, prop)
108886
109301
  )(Object.prototype);
108887
109302
 
109303
+ const isUnsafeObjectKey = (prop) =>
109304
+ typeof prop === 'string' &&
109305
+ (prop === '__proto__' || prop === 'constructor' || prop === 'prototype');
109306
+
109307
+ /**
109308
+ * Determine whether an inherited object must be treated as a shared-prototype
109309
+ * boundary. Cross-realm Object.prototype objects cannot be distinguished
109310
+ * reliably from application-created null-prototype objects because their
109311
+ * properties are mutable, so all inherited terminal prototypes are excluded
109312
+ * as a fail-closed boundary. A null-prototype source still keeps its own
109313
+ * properties, as produced by mergeConfig and other safe materialization paths.
109314
+ *
109315
+ * @param {*} obj The object to inspect
109316
+ * @param {*} prototype The object's prototype
109317
+ * @param {boolean} source Whether obj is the original traversal source
109318
+ *
109319
+ * @returns {boolean} True when obj is a safe prototype traversal boundary
109320
+ */
109321
+ const isPrototypeBoundary = (obj, prototype, source) =>
109322
+ obj === Object.prototype || (!source && prototype === null);
109323
+
109324
+ /**
109325
+ * Determine whether an object can retain its identity through code paths that
109326
+ * add, replace, and remove config properties without bypassing unsafe-key
109327
+ * filtering. Immutable objects, unsafe-key-bearing objects, and objects with
109328
+ * accessor or restricted data properties must be materialized instead.
109329
+ *
109330
+ * @param {*} obj The object to inspect
109331
+ *
109332
+ * @returns {boolean} True when every own property is safe and fully mutable
109333
+ */
109334
+ const isSafeAndFullyMutable = (obj) => {
109335
+ if (!Object.isExtensible(obj)) {
109336
+ return false;
109337
+ }
109338
+
109339
+ const props = Object.getOwnPropertyNames(obj);
109340
+
109341
+ if (Object.getOwnPropertySymbols) {
109342
+ props.push(...Object.getOwnPropertySymbols(obj));
109343
+ }
109344
+
109345
+ return props.every((prop) => {
109346
+ if (isUnsafeObjectKey(prop)) {
109347
+ return false;
109348
+ }
109349
+
109350
+ const descriptor = Object.getOwnPropertyDescriptor(obj, prop);
109351
+
109352
+ return !!descriptor && descriptor.configurable && descriptor.writable === true;
109353
+ });
109354
+ };
109355
+
108888
109356
  /**
108889
- * Walk the prototype chain (excluding the shared Object.prototype) looking for
108890
- * an own `prop`. This distinguishes genuine own/inherited members — including
108891
- * class accessors and template prototypes — from members injected via
108892
- * Object.prototype pollution (e.g. `Object.prototype.username = '...'`), which
108893
- * live on Object.prototype itself and are therefore never matched.
109357
+ * Walk the prototype chain (excluding the source realm's Object.prototype)
109358
+ * looking for an own `prop`. This distinguishes genuine own/inherited members
109359
+ * — including class accessors and template prototypes — from members injected
109360
+ * via Object.prototype pollution (e.g. `Object.prototype.username = '...'`),
109361
+ * which live on Object.prototype itself and are therefore never matched.
108894
109362
  *
108895
109363
  * @param {*} thing The value whose chain to inspect
108896
109364
  * @param {string|symbol} prop The property key to look for
@@ -108901,16 +109369,22 @@ const hasOwnInPrototypeChain = (thing, prop) => {
108901
109369
  let obj = thing;
108902
109370
  const seen = [];
108903
109371
 
108904
- while (obj != null && obj !== Object.prototype) {
109372
+ while (obj != null) {
108905
109373
  if (seen.indexOf(obj) !== -1) {
108906
109374
  return false;
108907
109375
  }
108908
109376
  seen.push(obj);
108909
109377
 
109378
+ const prototype = getPrototypeOf(obj);
109379
+
109380
+ if (isPrototypeBoundary(obj, prototype, obj === thing)) {
109381
+ return false;
109382
+ }
109383
+
108910
109384
  if (hasOwnProperty(obj, prop)) {
108911
109385
  return true;
108912
109386
  }
108913
- obj = getPrototypeOf(obj);
109387
+ obj = prototype;
108914
109388
  }
108915
109389
  return false;
108916
109390
  };
@@ -108929,6 +109403,69 @@ const hasOwnInPrototypeChain = (thing, prop) => {
108929
109403
  const getSafeProp = (obj, prop) =>
108930
109404
  obj != null && hasOwnInPrototypeChain(obj, prop) ? obj[prop] : undefined;
108931
109405
 
109406
+ /**
109407
+ * Flatten an object and its application-defined prototype chain into a
109408
+ * null-prototype object. Members inherited only from the source realm's
109409
+ * Object.prototype are deliberately excluded, while class/template members
109410
+ * below that boundary are preserved.
109411
+ *
109412
+ * @param {*} thing The value to flatten
109413
+ *
109414
+ * @returns {*} A null-prototype copy, or the original value when it is already
109415
+ * structurally safe or is not an object
109416
+ */
109417
+ const toSafeFlatObject = (thing) => {
109418
+ if (thing == null || (typeof thing !== 'object' && typeof thing !== 'function')) {
109419
+ return thing;
109420
+ }
109421
+
109422
+ const sourcePrototype = getPrototypeOf(thing);
109423
+
109424
+ if (sourcePrototype === null && isSafeAndFullyMutable(thing)) {
109425
+ return thing;
109426
+ }
109427
+
109428
+ const result = Object.create(null);
109429
+ const merged = Object.create(null);
109430
+ const seen = [];
109431
+ let current = thing;
109432
+
109433
+ while (current != null) {
109434
+ if (seen.indexOf(current) !== -1) {
109435
+ break;
109436
+ }
109437
+
109438
+ seen.push(current);
109439
+
109440
+ const prototype = current === thing ? sourcePrototype : getPrototypeOf(current);
109441
+
109442
+ if (isPrototypeBoundary(current, prototype, current === thing)) {
109443
+ break;
109444
+ }
109445
+
109446
+ const props = Object.getOwnPropertyNames(current);
109447
+
109448
+ if (Object.getOwnPropertySymbols) {
109449
+ props.push(...Object.getOwnPropertySymbols(current));
109450
+ }
109451
+
109452
+ for (const prop of props) {
109453
+ if (isUnsafeObjectKey(prop)) {
109454
+ continue;
109455
+ }
109456
+
109457
+ if (!hasOwnProperty(merged, prop)) {
109458
+ result[prop] = thing[prop];
109459
+ merged[prop] = true;
109460
+ }
109461
+ }
109462
+
109463
+ current = prototype;
109464
+ }
109465
+
109466
+ return result;
109467
+ };
109468
+
108932
109469
  const kindOf = ((cache) => (thing) => {
108933
109470
  const str = toString.call(thing);
108934
109471
  return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());
@@ -109060,12 +109597,10 @@ const isPlainObject = (val) => {
109060
109597
 
109061
109598
  const prototype = getPrototypeOf(val);
109062
109599
  return (
109063
- (prototype === null ||
109064
- prototype === Object.prototype ||
109065
- getPrototypeOf(prototype) === null) &&
109066
- // Treat any genuine (non-Object.prototype-polluted) Symbol.toStringTag or
109067
- // Symbol.iterator as evidence the value is a tagged/iterable type rather
109068
- // than a plain object, while ignoring keys injected onto Object.prototype.
109600
+ (prototype === null || prototype === Object.prototype || getPrototypeOf(prototype) === null) &&
109601
+ // Treat safe own/inherited Symbol.toStringTag or Symbol.iterator members as
109602
+ // evidence the value is tagged/iterable, while ignoring members reachable
109603
+ // only through shared or terminal prototype boundaries.
109069
109604
  !hasOwnInPrototypeChain(val, toStringTag) &&
109070
109605
  !hasOwnInPrototypeChain(val, iterator)
109071
109606
  );
@@ -109879,6 +110414,7 @@ const isSafeIterable = (thing) =>
109879
110414
  hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection
109880
110415
  hasOwnInPrototypeChain,
109881
110416
  getSafeProp,
110417
+ toSafeFlatObject,
109882
110418
  reduceDescriptors,
109883
110419
  freezeMethods,
109884
110420
  toObjectSet,
@@ -109931,25 +110467,20 @@ const isSafeIterable = (thing) =>
109931
110467
  /******/ return module.exports;
109932
110468
  /******/ }
109933
110469
  /******/
109934
- /******/ // expose the modules object (__webpack_modules__)
109935
- /******/ __webpack_require__.m = __webpack_modules__;
109936
- /******/
109937
110470
  /************************************************************************/
109938
110471
  /******/ /* webpack/runtime/compat get default export */
109939
- /******/ (() => {
109940
- /******/ // getDefaultExport function for compatibility with non-harmony modules
109941
- /******/ __webpack_require__.n = (module) => {
109942
- /******/ const getter = module && module.__esModule ?
109943
- /******/ () => (module['default']) :
109944
- /******/ () => (module);
109945
- /******/ __webpack_require__.d(getter, { a: getter });
109946
- /******/ return getter;
109947
- /******/ };
109948
- /******/ })();
110472
+ /******/ // getDefaultExport function for compatibility with non-harmony modules
110473
+ /******/ __webpack_require__.n = (module) => {
110474
+ /******/ const getter = module && module.__esModule ?
110475
+ /******/ () => (module['default']) :
110476
+ /******/ () => (module);
110477
+ /******/ __webpack_require__.d(getter, { a: getter });
110478
+ /******/ return getter;
110479
+ /******/ };
109949
110480
  /******/
109950
110481
  /******/ /* webpack/runtime/create fake namespace object */
109951
110482
  /******/ (() => {
109952
- /******/ const getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);
110483
+ /******/ const getProto = Object.getPrototypeOf;
109953
110484
  /******/ let leafPrototypes;
109954
110485
  /******/ // create a fake namespace object
109955
110486
  /******/ // mode & 1: value is a module id, require it
@@ -109978,70 +110509,50 @@ const isSafeIterable = (thing) =>
109978
110509
  /******/ })();
109979
110510
  /******/
109980
110511
  /******/ /* webpack/runtime/define property getters */
109981
- /******/ (() => {
109982
- /******/ // define getter/value functions for harmony exports
109983
- /******/ __webpack_require__.d = (exports, definition) => {
109984
- /******/ if(Array.isArray(definition)) {
109985
- /******/ var i = 0;
109986
- /******/ while(i < definition.length) {
109987
- /******/ var key = definition[i++];
109988
- /******/ var binding = definition[i++];
109989
- /******/ if(!__webpack_require__.o(exports, key)) {
109990
- /******/ if(binding === 0) {
109991
- /******/ Object.defineProperty(exports, key, { enumerable: true, value: definition[i++] });
109992
- /******/ } else {
109993
- /******/ Object.defineProperty(exports, key, { enumerable: true, get: binding });
109994
- /******/ }
109995
- /******/ } else if(binding === 0) { i++; }
109996
- /******/ }
109997
- /******/ } else {
109998
- /******/ for(var key in definition) {
109999
- /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
110000
- /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
110001
- /******/ }
110512
+ /******/ // define getter/value functions for harmony exports
110513
+ /******/ __webpack_require__.d = (exports, definition) => {
110514
+ /******/ if(Array.isArray(definition)) {
110515
+ /******/ var i = 0;
110516
+ /******/ while(i < definition.length) {
110517
+ /******/ var key = definition[i++];
110518
+ /******/ var binding = definition[i++];
110519
+ /******/ var descriptor = binding === 0 ? { enumerable: true, value: definition[i++] } : { enumerable: true, get: binding };
110520
+ /******/ if(!__webpack_require__.o(exports, key)) Object.defineProperty(exports, key, descriptor);
110521
+ /******/ }
110522
+ /******/ } else {
110523
+ /******/ for(var key in definition) {
110524
+ /******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {
110525
+ /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
110002
110526
  /******/ }
110003
110527
  /******/ }
110004
- /******/ };
110005
- /******/ })();
110528
+ /******/ }
110529
+ /******/ };
110006
110530
  /******/
110007
110531
  /******/ /* webpack/runtime/global */
110008
- /******/ (() => {
110009
- /******/ __webpack_require__.g = (function() {
110010
- /******/ if (typeof globalThis === 'object') return globalThis;
110011
- /******/ try {
110012
- /******/ return this || new Function('return this')();
110013
- /******/ } catch (e) {
110014
- /******/ if (typeof window === 'object') return window;
110015
- /******/ }
110016
- /******/ })();
110532
+ /******/ __webpack_require__.g = (function() {
110533
+ /******/ if (typeof globalThis === 'object') return globalThis;
110534
+ /******/ try {
110535
+ /******/ return this || new Function('return this')();
110536
+ /******/ } catch (e) {
110537
+ /******/ if (typeof window === 'object') return window;
110538
+ /******/ }
110017
110539
  /******/ })();
110018
110540
  /******/
110019
110541
  /******/ /* webpack/runtime/hasOwnProperty shorthand */
110020
- /******/ (() => {
110021
- /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
110022
- /******/ })();
110542
+ /******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop));
110023
110543
  /******/
110024
110544
  /******/ /* webpack/runtime/make namespace object */
110025
- /******/ (() => {
110026
- /******/ // define __esModule on exports
110027
- /******/ __webpack_require__.r = (exports) => {
110028
- /******/ if(Symbol.toStringTag) {
110029
- /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
110030
- /******/ }
110031
- /******/ Object.defineProperty(exports, '__esModule', { value: true });
110032
- /******/ };
110033
- /******/ })();
110545
+ /******/ // define __esModule on exports
110546
+ /******/ __webpack_require__.r = (exports) => {
110547
+ /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
110548
+ /******/ Object.defineProperty(exports, '__esModule', { value: true });
110549
+ /******/ };
110034
110550
  /******/
110035
110551
  /******/ /* webpack/runtime/jsonp chunk loading */
110036
110552
  /******/ (() => {
110037
110553
  /******/ __webpack_require__.b = (typeof document !== 'undefined' && document.baseURI) || self.location.href;
110038
110554
  /******/
110039
- /******/ // object to store loaded and loading chunks
110040
- /******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched
110041
- /******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded
110042
- /******/ const installedChunks = {
110043
- /******/ 792: 0
110044
- /******/ };
110555
+ /******/ // no installed chunks
110045
110556
  /******/
110046
110557
  /******/ // no chunk on demand loading
110047
110558
  /******/