@hey-api/shared 0.0.0-next-20260304003321 → 0.0.0-next-20260304144531

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -5651,7 +5651,6 @@ const parseAllOf$1 = ({ context, schema, state }) => {
5651
5651
  const schemaType = getSchemaType({ schema });
5652
5652
  const compositionSchemas = schema.allOf;
5653
5653
  const discriminatorsToAdd = [];
5654
- const addedDiscriminators = /* @__PURE__ */ new Set();
5655
5654
  for (const compositionSchema of compositionSchemas) {
5656
5655
  const originalInAllOf = state.inAllOf;
5657
5656
  if (!("$ref" in compositionSchema)) state.inAllOf = true;
@@ -5673,19 +5672,21 @@ const parseAllOf$1 = ({ context, schema, state }) => {
5673
5672
  schema: ref$1
5674
5673
  });
5675
5674
  for (const { discriminator, oneOf } of discriminators) {
5676
- if (addedDiscriminators.has(discriminator.propertyName)) continue;
5677
5675
  const values = discriminatorValues(state.$ref, discriminator.mapping, oneOf ? () => oneOf.some((o) => "$ref" in o && o.$ref === state.$ref) : void 0);
5678
- if (values.length > 0) {
5679
- const isRequired = discriminators.some((d) => d.discriminator.propertyName === discriminator.propertyName && (ref$1.required?.includes(d.discriminator.propertyName) || ref$1.allOf && ref$1.allOf.some((item) => {
5680
- return ("$ref" in item ? context.resolveRef(item.$ref) : item).required?.includes(d.discriminator.propertyName);
5681
- })));
5682
- discriminatorsToAdd.push({
5683
- discriminator,
5684
- isRequired,
5685
- values
5686
- });
5687
- addedDiscriminators.add(discriminator.propertyName);
5688
- }
5676
+ if (values.length === 0) continue;
5677
+ const isExplicitMapping = discriminator.mapping !== void 0 && Object.values(discriminator.mapping).includes(state.$ref);
5678
+ const existingIndex = discriminatorsToAdd.findIndex((d) => d.discriminator.propertyName === discriminator.propertyName);
5679
+ if (existingIndex !== -1) if (isExplicitMapping && !discriminatorsToAdd[existingIndex].isExplicitMapping) discriminatorsToAdd.splice(existingIndex, 1);
5680
+ else continue;
5681
+ const isRequired = discriminators.some((d) => d.discriminator.propertyName === discriminator.propertyName && (ref$1.required?.includes(d.discriminator.propertyName) || ref$1.allOf && ref$1.allOf.some((item) => {
5682
+ return ("$ref" in item ? context.resolveRef(item.$ref) : item).required?.includes(d.discriminator.propertyName);
5683
+ })));
5684
+ discriminatorsToAdd.push({
5685
+ discriminator,
5686
+ isExplicitMapping,
5687
+ isRequired,
5688
+ values
5689
+ });
5689
5690
  }
5690
5691
  }
5691
5692
  }
@@ -7027,7 +7028,6 @@ const parseAllOf = ({ context, schema, state }) => {
7027
7028
  const schemaTypes = getSchemaTypes({ schema });
7028
7029
  const compositionSchemas = schema.allOf;
7029
7030
  const discriminatorsToAdd = [];
7030
- const addedDiscriminators = /* @__PURE__ */ new Set();
7031
7031
  for (const compositionSchema of compositionSchemas) {
7032
7032
  const originalInAllOf = state.inAllOf;
7033
7033
  if (!("$ref" in compositionSchema)) state.inAllOf = true;
@@ -7049,19 +7049,21 @@ const parseAllOf = ({ context, schema, state }) => {
7049
7049
  schema: ref$1
7050
7050
  });
7051
7051
  for (const { discriminator, oneOf } of discriminators) {
7052
- if (addedDiscriminators.has(discriminator.propertyName)) continue;
7053
7052
  const values = discriminatorValues(state.$ref, discriminator.mapping, oneOf ? () => oneOf.some((o) => "$ref" in o && o.$ref === state.$ref) : void 0);
7054
- if (values.length > 0) {
7055
- const isRequired = discriminators.some((d) => d.discriminator.propertyName === discriminator.propertyName && (ref$1.required?.includes(d.discriminator.propertyName) || ref$1.allOf && ref$1.allOf.some((item) => {
7056
- return (item.$ref ? context.resolveRef(item.$ref) : item).required?.includes(d.discriminator.propertyName);
7057
- })));
7058
- discriminatorsToAdd.push({
7059
- discriminator,
7060
- isRequired,
7061
- values
7062
- });
7063
- addedDiscriminators.add(discriminator.propertyName);
7064
- }
7053
+ if (values.length === 0) continue;
7054
+ const isExplicitMapping = discriminator.mapping !== void 0 && Object.values(discriminator.mapping).includes(state.$ref);
7055
+ const existingIndex = discriminatorsToAdd.findIndex((d) => d.discriminator.propertyName === discriminator.propertyName);
7056
+ if (existingIndex !== -1) if (isExplicitMapping && !discriminatorsToAdd[existingIndex].isExplicitMapping) discriminatorsToAdd.splice(existingIndex, 1);
7057
+ else continue;
7058
+ const isRequired = discriminators.some((d) => d.discriminator.propertyName === discriminator.propertyName && (ref$1.required?.includes(d.discriminator.propertyName) || ref$1.allOf && ref$1.allOf.some((item) => {
7059
+ return (item.$ref ? context.resolveRef(item.$ref) : item).required?.includes(d.discriminator.propertyName);
7060
+ })));
7061
+ discriminatorsToAdd.push({
7062
+ discriminator,
7063
+ isExplicitMapping,
7064
+ isRequired,
7065
+ values
7066
+ });
7065
7067
  }
7066
7068
  }
7067
7069
  }