From fc9878500cb9b4324da11e0f114936a9d73ea30e Mon Sep 17 00:00:00 2001 From: Ville Penttinen Date: Sun, 22 Dec 2024 07:17:09 +0200 Subject: [PATCH 01/14] fix: anyOf/oneOf missing properties for intersection/inheritance --- CHANGELOG.md | 1 + .../Extensions/IListExtensions.cs | 29 + .../Extensions/OpenApiSchemaExtensions.cs | 60 +- src/Kiota.Builder/KiotaBuilder.cs | 20 +- .../Kiota.Builder.Tests/KiotaBuilderTests.cs | 516 +++++++++++++++++- 5 files changed, 603 insertions(+), 23 deletions(-) create mode 100644 src/Kiota.Builder/Extensions/IListExtensions.cs diff --git a/CHANGELOG.md b/CHANGELOG.md index 68607e75e9..1a4befd77e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Fixed a bug in generation when a referenced schema in an allOf was a primitive [#5701](https://github.com/microsoft/kiota/issues/5701). - Fixed a bug where inherited error models would be missing interface declarations. [#5888](https://github.com/microsoft/kiota/issues/5888) +- Fixed a bug where oneOf/anyOf schemas with single references to inheritance or intersections would be missing properties. [#5921](https://github.com/microsoft/kiota/issues/5921) ## [1.21.0] - 2024-12-05 diff --git a/src/Kiota.Builder/Extensions/IListExtensions.cs b/src/Kiota.Builder/Extensions/IListExtensions.cs new file mode 100644 index 0000000000..ec2aed7711 --- /dev/null +++ b/src/Kiota.Builder/Extensions/IListExtensions.cs @@ -0,0 +1,29 @@ +using System.Collections.Generic; + +namespace Kiota.Builder.Extensions; + +public static class IListExtensions +{ + /// + /// Returns the only element of this list when it has count of exactly 1 + /// + /// The contained item type. + /// The items. + /// The only element or null. + internal static T? OnlyOneOrDefault(this IList items) => + items.Count == 1 ? items[0] : default; + + /// + /// Adds the provided to this list. + /// + /// The contained item type. + /// The items. + /// The values to add. + internal static void AddRange(this IList items, IEnumerable values) + { + foreach (var item in values) + { + items.Add(item); + } + } +} diff --git a/src/Kiota.Builder/Extensions/OpenApiSchemaExtensions.cs b/src/Kiota.Builder/Extensions/OpenApiSchemaExtensions.cs index cec1a3cf2b..ec9d9d2f6a 100644 --- a/src/Kiota.Builder/Extensions/OpenApiSchemaExtensions.cs +++ b/src/Kiota.Builder/Extensions/OpenApiSchemaExtensions.cs @@ -98,13 +98,7 @@ public static bool IsInherited(this OpenApiSchema? schema) if (schema is null || !schema.IsInclusiveUnion(0)) return null; var result = new OpenApiSchema(schema); result.AnyOf.Clear(); - foreach (var subSchema in schema.AnyOf) - { - foreach (var property in subSchema.Properties) - { - result.Properties.TryAdd(property.Key, property.Value); - } - } + result.TryAddProperties(schema.AnyOf.SelectMany(static x => x.Properties)); return result; } @@ -113,14 +107,42 @@ public static bool IsInherited(this OpenApiSchema? schema) if (schema is null || !schema.IsExclusiveUnion(0)) return null; var result = new OpenApiSchema(schema); result.OneOf.Clear(); - foreach (var subSchema in schema.OneOf) + result.TryAddProperties(schema.OneOf.SelectMany(static x => x.Properties)); + return result; + } + + internal static OpenApiSchema? MergeSingleInclusiveUnionInheritanceOrIntersectionSchemaEntries(this OpenApiSchema? schema) + { + if (schema is not null + && schema.IsInclusiveUnion(0) + && schema.AnyOf.OnlyOneOrDefault() is OpenApiSchema subSchema + && (subSchema.IsInherited() || subSchema.IsIntersection())) { - foreach (var property in subSchema.Properties) - { - result.Properties.TryAdd(property.Key, property.Value); - } + var result = new OpenApiSchema(schema); + result.AnyOf.Clear(); + result.TryAddProperties(subSchema.Properties); + result.AllOf.AddRange(subSchema.AllOf); + return result; } - return result; + + return null; + } + + internal static OpenApiSchema? MergeSingleExclusiveUnionInheritanceOrIntersectionSchemaEntries(this OpenApiSchema? schema) + { + if (schema is not null + && schema.IsExclusiveUnion(0) + && schema.OneOf.OnlyOneOrDefault() is OpenApiSchema subSchema + && (subSchema.IsInherited() || subSchema.IsIntersection())) + { + var result = new OpenApiSchema(schema); + result.OneOf.Clear(); + result.TryAddProperties(subSchema.Properties); + result.AllOf.AddRange(subSchema.AllOf); + return result; + } + + return null; } internal static OpenApiSchema? MergeIntersectionSchemaEntries(this OpenApiSchema? schema, HashSet? schemasToExclude = default, bool overrideIntersection = false, Func? filter = default) @@ -144,11 +166,17 @@ public static bool IsInherited(this OpenApiSchema? schema) else if (discriminator.Mapping?.Any() ?? false) result.Discriminator.Mapping = discriminator.Mapping.ToDictionary(static x => x.Key, static x => x.Value); - foreach (var propertyToMerge in entriesToMerge.SelectMany(static x => x.Properties)) + result.TryAddProperties(entriesToMerge.SelectMany(static x => x.Properties)); + + return result; + } + + internal static void TryAddProperties(this OpenApiSchema schema, IEnumerable> properties) + { + foreach (var property in properties) { - result.Properties.TryAdd(propertyToMerge.Key, propertyToMerge.Value); + schema.Properties.TryAdd(property.Key, property.Value); } - return result; } public static bool IsIntersection(this OpenApiSchema? schema) diff --git a/src/Kiota.Builder/KiotaBuilder.cs b/src/Kiota.Builder/KiotaBuilder.cs index b4466a5bf0..450e392103 100644 --- a/src/Kiota.Builder/KiotaBuilder.cs +++ b/src/Kiota.Builder/KiotaBuilder.cs @@ -958,7 +958,7 @@ x.Parent is CodeIndexer || var parentNS = x.Parent?.Parent?.Parent as CodeNamespace; CodeClass[] exceptions = x.Parent?.Parent is CodeClass parentClass ? [parentClass] : []; x.TypeDefinition = parentNS?.FindChildrenByName(x.Name) - .Except(exceptions)// the property method should not reference itself as a return type. + .Except(exceptions)// the property method should not reference itself as a return type. .MinBy(shortestNamespaceOrder); // searching down first because most request builder properties on a request builder are just sub paths on the API if (x.TypeDefinition == null) @@ -1833,6 +1833,18 @@ private CodeTypeBase CreateModelDeclarations(OpenApiUrlTreeNode currentNode, Ope return CreateComposedModelDeclaration(currentNode, schema, operation, suffix, codeNamespace, isRequestBody, typeNameForInlineSchema); } + // type: object with single oneOf referring to inheritance or intersection + if (schema.IsObjectType() && schema.MergeSingleExclusiveUnionInheritanceOrIntersectionSchemaEntries() is OpenApiSchema mergedExclusiveUnionSchema) + { + return CreateModelDeclarations(currentNode, mergedExclusiveUnionSchema, operation, parentElement, suffixForInlineSchema, response, typeNameForInlineSchema, isRequestBody); + } + + // type: object with single anyOf referring to inheritance or intersection + if (schema.IsObjectType() && schema.MergeSingleInclusiveUnionInheritanceOrIntersectionSchemaEntries() is OpenApiSchema mergedInclusiveUnionSchema) + { + return CreateModelDeclarations(currentNode, mergedInclusiveUnionSchema, operation, parentElement, suffixForInlineSchema, response, typeNameForInlineSchema, isRequestBody); + } + if (schema.IsObjectType() || schema.HasAnyProperty() || schema.IsEnum() || !string.IsNullOrEmpty(schema.AdditionalProperties?.Type)) { // no inheritance or union type, often empty definitions with only additional properties are used as property bags. @@ -1840,7 +1852,7 @@ private CodeTypeBase CreateModelDeclarations(OpenApiUrlTreeNode currentNode, Ope } if (schema.IsArray() && - !schema.Items.IsArray()) // Only handle collections of primitives and complex types. Otherwise, multi-dimensional arrays would be recursively unwrapped undesirably to lead to incorrect serialization types. + !schema.Items.IsArray()) // Only handle collections of primitives and complex types. Otherwise, multi-dimensional arrays would be recursively unwrapped undesirably to lead to incorrect serialization types. { // collections at root return CreateCollectionModelDeclaration(currentNode, schema, operation, codeNamespace, typeNameForInlineSchema, isRequestBody); @@ -2230,7 +2242,7 @@ internal static void AddDiscriminatorMethod(CodeClass newClass, string discrimin logger.LogWarning("Discriminator {ComponentKey} not found in the OpenAPI document.", componentKey); return null; } - // Call CreateModelDeclarations with isViaDiscriminator=true. This is for a special case where we always generate a base class when types are referenced via a oneOf discriminator. + // Call CreateModelDeclarations with isViaDiscriminator=true. This is for a special case where we always generate a base class when types are referenced via a oneOf discriminator. if (CreateModelDeclarations(currentNode, discriminatorSchema, currentOperation, GetShortestNamespace(currentNamespace, discriminatorSchema), string.Empty, null, string.Empty, false, true) is not CodeType result) { logger.LogWarning("Discriminator {ComponentKey} is not a valid model and points to a union type.", componentKey); @@ -2238,7 +2250,7 @@ internal static void AddDiscriminatorMethod(CodeClass newClass, string discrimin } if (baseClass is not null && (result.TypeDefinition is not CodeClass codeClass || codeClass.StartBlock.Inherits is null)) { - if (!baseClass.Equals(result.TypeDefinition))// don't log warning if the discriminator points to the base type itself as this is implicitly the default case. + if (!baseClass.Equals(result.TypeDefinition))// don't log warning if the discriminator points to the base type itself as this is implicitly the default case. logger.LogWarning("Discriminator {ComponentKey} is not inherited from {ClassName}.", componentKey, baseClass.Name); return null; } diff --git a/tests/Kiota.Builder.Tests/KiotaBuilderTests.cs b/tests/Kiota.Builder.Tests/KiotaBuilderTests.cs index a62089926f..bd7caa00c5 100644 --- a/tests/Kiota.Builder.Tests/KiotaBuilderTests.cs +++ b/tests/Kiota.Builder.Tests/KiotaBuilderTests.cs @@ -8619,11 +8619,266 @@ public async Task ExclusiveUnionSingleEntriesMergingAsync() Assert.NotNull(oneProperty); var withoutObjectClass = codeModel.FindChildByName("Component2"); - Assert.NotNull(withObjectClass); + Assert.NotNull(withoutObjectClass); var twoProperty = withoutObjectClass.FindChildByName("two", false); Assert.NotNull(twoProperty); } + [Fact] + public async Task ExclusiveUnionInheritanceEntriesMergingAsync() + { + var tempFilePath = Path.Combine(Path.GetTempPath(), Path.GetTempFileName()); + await using var fs = await GetDocumentStreamAsync( +""" +openapi: 3.0.0 +info: + title: "Generator not generating oneOf if the containing schema has type: object" + version: "1.0.0" +servers: + - url: https://mytodos.doesnotexist/ +paths: + /uses-components: + post: + description: Return something + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/UsesComponents" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/UsesComponents" +components: + schemas: + ExampleWithSingleOneOfWithTypeObject: + description: "ExampleWithSingleOneOfWithTypeObject" + type: object + oneOf: + - $ref: "#/components/schemas/Component1" + discriminator: + propertyName: objectType + + ExampleWithSingleOneOfWithoutTypeObject: + description: "ExampleWithSingleOneOfWithoutTypeObject" + oneOf: + - $ref: "#/components/schemas/Component2" + discriminator: + propertyName: objectType + + UsesComponents: + type: object + properties: + component_with_single_oneof_with_type_object: + $ref: "#/components/schemas/ExampleWithSingleOneOfWithTypeObject" + component_with_single_oneof_without_type_object: + $ref: "#/components/schemas/ExampleWithSingleOneOfWithoutTypeObject" + + ComponentCommon: + description: "ComponentCommon" + type: object + required: + - objectType + properties: + objectType: + type: string + common: + type: string + + Component1: + description: "Component1" + type: object + allOf: + - $ref: "#/components/schemas/ComponentCommon" + - type: object + description: "Component1Inner" + properties: + one: + type: string + properties: + anotherOne: + type: string + + Component2: + description: "Component2" + type: object + allOf: + - $ref: "#/components/schemas/ComponentCommon" + - type: object + description: "Component2Inner" + properties: + two: + type: string + properties: + anotherTwo: + type: string +"""); + var mockLogger = new Mock>(); + var builder = new KiotaBuilder(mockLogger.Object, new GenerationConfiguration { ClientClassName = "Graph", OpenAPIFilePath = tempFilePath }, _httpClient); + var document = await builder.CreateOpenApiDocumentAsync(fs); + var node = builder.CreateUriSpace(document); + var codeModel = builder.CreateSourceModel(node); + + // Verify that all three classes referenced by the discriminator inherit from baseDirectoryObject + var withObjectClass = codeModel.FindChildByName("ExampleWithSingleOneOfWithTypeObject"); + Assert.NotNull(withObjectClass); + // ExampleWithSingleOneOfWithTypeObject inherits from ComponentCommon + Assert.Equal("ComponentCommon", withObjectClass.BaseClass?.Name); + var withObjectClassOneProperty = withObjectClass.FindChildByName("one", false); + Assert.NotNull(withObjectClassOneProperty); + var withObjectClassAnotherOneProperty = withObjectClass.FindChildByName("anotherOne", false); + Assert.NotNull(withObjectClassAnotherOneProperty); + + var withoutObjectClass = codeModel.FindChildByName("Component2"); + Assert.NotNull(withoutObjectClass); + // Component2 inherits from ComponentCommon + Assert.Equal("ComponentCommon", withoutObjectClass.BaseClass?.Name); + var withoutObjectClassTwoProperty = withoutObjectClass.FindChildByName("two", false); + Assert.NotNull(withoutObjectClassTwoProperty); + var withoutObjectClassClassAnotherTwoProperty = withoutObjectClass.FindChildByName("anotherTwo", false); + Assert.NotNull(withoutObjectClassClassAnotherTwoProperty); + } + + [Fact] + public async Task ExclusiveUnionIntersectionEntriesMergingAsync() + { + var tempFilePath = Path.Combine(Path.GetTempPath(), Path.GetTempFileName()); + await using var fs = await GetDocumentStreamAsync( +""" +openapi: 3.0.0 +info: + title: "Generator not generating oneOf if the containing schema has type: object" + version: "1.0.0" +servers: + - url: https://mytodos.doesnotexist/ +paths: + /uses-components: + post: + description: Return something + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/UsesComponents" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/UsesComponents" +components: + schemas: + ExampleWithSingleOneOfWithTypeObject: + description: "ExampleWithSingleOneOfWithTypeObject" + type: object + oneOf: + - $ref: "#/components/schemas/Component1" + discriminator: + propertyName: objectType + + ExampleWithSingleOneOfWithoutTypeObject: + description: "ExampleWithSingleOneOfWithoutTypeObject" + oneOf: + - $ref: "#/components/schemas/Component2" + discriminator: + propertyName: objectType + + UsesComponents: + type: object + properties: + component_with_single_oneof_with_type_object: + $ref: "#/components/schemas/ExampleWithSingleOneOfWithTypeObject" + component_with_single_oneof_without_type_object: + $ref: "#/components/schemas/ExampleWithSingleOneOfWithoutTypeObject" + + ComponentCommon: + description: "ComponentCommon" + type: object + required: + - objectType + properties: + objectType: + type: string + common: + type: string + + ComponentCommon2: + description: "ComponentCommon2" + type: object + properties: + common2: + type: string + + Component1: + description: "Component1" + type: object + allOf: + - $ref: "#/components/schemas/ComponentCommon" + - $ref: "#/components/schemas/ComponentCommon2" + - type: object + description: "Component1Self" + properties: + one: + type: string + properties: + anotherOne: + type: string + + Component2: + description: "Component2" + type: object + required: + - objectType + allOf: + - $ref: "#/components/schemas/ComponentCommon" + - $ref: "#/components/schemas/ComponentCommon2" + - type: object + description: "Component2Self" + properties: + two: + type: string + properties: + anotherTwo: + type: string +"""); + var mockLogger = new Mock>(); + var builder = new KiotaBuilder(mockLogger.Object, new GenerationConfiguration { ClientClassName = "Graph", OpenAPIFilePath = tempFilePath }, _httpClient); + var document = await builder.CreateOpenApiDocumentAsync(fs); + var node = builder.CreateUriSpace(document); + var codeModel = builder.CreateSourceModel(node); + + // Verify both scenarios have all the properties available from all schemas + var withObjectClass = codeModel.FindChildByName("ExampleWithSingleOneOfWithTypeObject"); + Assert.NotNull(withObjectClass); + var withObjectClassOneProperty = withObjectClass.FindChildByName("one", false); + Assert.NotNull(withObjectClassOneProperty); + var withObjectClassCommonProperty = withObjectClass.FindChildByName("common", false); + Assert.NotNull(withObjectClassCommonProperty); + var withObjectClassCommon2Property = withObjectClass.FindChildByName("common2", false); + Assert.NotNull(withObjectClassCommon2Property); + var withObjectClassObjectTypeProperty = withObjectClass.FindChildByName("objectType", false); + Assert.NotNull(withObjectClassObjectTypeProperty); + var withObjectClassAnotherOneProperty = withObjectClass.FindChildByName("anotherOne", false); + Assert.NotNull(withObjectClassAnotherOneProperty); + + var withoutObjectClass = codeModel.FindChildByName("Component2"); + Assert.NotNull(withoutObjectClass); + var withoutObjectClassTwoProperty = withoutObjectClass.FindChildByName("two", false); + Assert.NotNull(withoutObjectClassTwoProperty); + var withoutObjectClassCommonProperty = withoutObjectClass.FindChildByName("common", false); + Assert.NotNull(withoutObjectClassCommonProperty ); + var withoutObjectClassCommon2Property = withoutObjectClass.FindChildByName("common2", false); + Assert.NotNull(withoutObjectClassCommon2Property); + var withoutObjectClassObjectTypeProperty = withoutObjectClass.FindChildByName("objectType", false); + Assert.NotNull(withoutObjectClassObjectTypeProperty); + var withoutObjectClassClassAnotherTwoProperty = withoutObjectClass.FindChildByName("anotherTwo", false); + Assert.NotNull(withoutObjectClassClassAnotherTwoProperty); + } + [Fact] public async Task InclusiveUnionSingleEntriesMergingAsync() { @@ -8712,6 +8967,261 @@ public async Task InclusiveUnionSingleEntriesMergingAsync() Assert.NotNull(twoProperty); } + [Fact] + public async Task InclusiveUnionInheritanceEntriesMergingAsync() + { + var tempFilePath = Path.Combine(Path.GetTempPath(), Path.GetTempFileName()); + await using var fs = await GetDocumentStreamAsync( +""" +openapi: 3.0.0 +info: + title: "Generator not generating oneOf if the containing schema has type: object" + version: "1.0.0" +servers: + - url: https://mytodos.doesnotexist/ +paths: + /uses-components: + post: + description: Return something + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/UsesComponents" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/UsesComponents" +components: + schemas: + ExampleWithSingleOneOfWithTypeObject: + description: "ExampleWithSingleOneOfWithTypeObject" + type: object + anyOf: + - $ref: "#/components/schemas/Component1" + discriminator: + propertyName: objectType + + ExampleWithSingleOneOfWithoutTypeObject: + description: "ExampleWithSingleOneOfWithoutTypeObject" + anyOf: + - $ref: "#/components/schemas/Component2" + discriminator: + propertyName: objectType + + UsesComponents: + type: object + properties: + component_with_single_oneof_with_type_object: + $ref: "#/components/schemas/ExampleWithSingleOneOfWithTypeObject" + component_with_single_oneof_without_type_object: + $ref: "#/components/schemas/ExampleWithSingleOneOfWithoutTypeObject" + + ComponentCommon: + description: "ComponentCommon" + type: object + required: + - objectType + properties: + objectType: + type: string + common: + type: string + + Component1: + description: "Component1" + type: object + allOf: + - $ref: "#/components/schemas/ComponentCommon" + - type: object + description: "Component1Inner" + properties: + one: + type: string + properties: + anotherOne: + type: string + + Component2: + description: "Component2" + type: object + allOf: + - $ref: "#/components/schemas/ComponentCommon" + - type: object + description: "Component2Inner" + properties: + two: + type: string + properties: + anotherTwo: + type: string +"""); + var mockLogger = new Mock>(); + var builder = new KiotaBuilder(mockLogger.Object, new GenerationConfiguration { ClientClassName = "Graph", OpenAPIFilePath = tempFilePath }, _httpClient); + var document = await builder.CreateOpenApiDocumentAsync(fs); + var node = builder.CreateUriSpace(document); + var codeModel = builder.CreateSourceModel(node); + + // Verify that all three classes referenced by the discriminator inherit from baseDirectoryObject + var withObjectClass = codeModel.FindChildByName("ExampleWithSingleOneOfWithTypeObject"); + Assert.NotNull(withObjectClass); + // ExampleWithSingleOneOfWithTypeObject inherits from ComponentCommon + Assert.Equal("ComponentCommon", withObjectClass.BaseClass?.Name); + var withObjectClassOneProperty = withObjectClass.FindChildByName("one", false); + Assert.NotNull(withObjectClassOneProperty); + var withObjectClassAnotherOneProperty = withObjectClass.FindChildByName("anotherOne", false); + Assert.NotNull(withObjectClassAnotherOneProperty); + + var withoutObjectClass = codeModel.FindChildByName("Component2"); + Assert.NotNull(withoutObjectClass); + // Component2 inherits from ComponentCommon + Assert.Equal("ComponentCommon", withoutObjectClass.BaseClass?.Name); + var withoutObjectClassTwoProperty = withoutObjectClass.FindChildByName("two", false); + Assert.NotNull(withoutObjectClassTwoProperty); + var withoutObjectClassClassAnotherTwoProperty = withoutObjectClass.FindChildByName("anotherTwo", false); + Assert.NotNull(withoutObjectClassClassAnotherTwoProperty); + } + + [Fact] + public async Task InclusiveUnionIntersectionEntriesMergingAsync() + { + var tempFilePath = Path.Combine(Path.GetTempPath(), Path.GetTempFileName()); + await using var fs = await GetDocumentStreamAsync( +""" +openapi: 3.0.0 +info: + title: "Generator not generating oneOf if the containing schema has type: object" + version: "1.0.0" +servers: + - url: https://mytodos.doesnotexist/ +paths: + /uses-components: + post: + description: Return something + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/UsesComponents" + requestBody: + content: + application/json: + schema: + $ref: "#/components/schemas/UsesComponents" +components: + schemas: + ExampleWithSingleOneOfWithTypeObject: + description: "ExampleWithSingleOneOfWithTypeObject" + type: object + anyOf: + - $ref: "#/components/schemas/Component1" + discriminator: + propertyName: objectType + + ExampleWithSingleOneOfWithoutTypeObject: + description: "ExampleWithSingleOneOfWithoutTypeObject" + anyOf: + - $ref: "#/components/schemas/Component2" + discriminator: + propertyName: objectType + + UsesComponents: + type: object + properties: + component_with_single_oneof_with_type_object: + $ref: "#/components/schemas/ExampleWithSingleOneOfWithTypeObject" + component_with_single_oneof_without_type_object: + $ref: "#/components/schemas/ExampleWithSingleOneOfWithoutTypeObject" + + ComponentCommon: + description: "ComponentCommon" + type: object + required: + - objectType + properties: + objectType: + type: string + common: + type: string + + ComponentCommon2: + description: "ComponentCommon2" + type: object + properties: + common2: + type: string + + Component1: + description: "Component1" + type: object + allOf: + - $ref: "#/components/schemas/ComponentCommon" + - $ref: "#/components/schemas/ComponentCommon2" + - type: object + description: "Component1Self" + properties: + one: + type: string + properties: + anotherOne: + type: string + + Component2: + description: "Component2" + type: object + required: + - objectType + allOf: + - $ref: "#/components/schemas/ComponentCommon" + - $ref: "#/components/schemas/ComponentCommon2" + - type: object + description: "Component2Self" + properties: + two: + type: string + properties: + anotherTwo: + type: string +"""); + var mockLogger = new Mock>(); + var builder = new KiotaBuilder(mockLogger.Object, new GenerationConfiguration { ClientClassName = "Graph", OpenAPIFilePath = tempFilePath }, _httpClient); + var document = await builder.CreateOpenApiDocumentAsync(fs); + var node = builder.CreateUriSpace(document); + var codeModel = builder.CreateSourceModel(node); + + // Verify both scenarios have all the properties available from all schemas + var withObjectClass = codeModel.FindChildByName("ExampleWithSingleOneOfWithTypeObject"); + Assert.NotNull(withObjectClass); + var withObjectClassOneProperty = withObjectClass.FindChildByName("one", false); + Assert.NotNull(withObjectClassOneProperty); + var withObjectClassCommonProperty = withObjectClass.FindChildByName("common", false); + Assert.NotNull(withObjectClassCommonProperty); + var withObjectClassCommon2Property = withObjectClass.FindChildByName("common2", false); + Assert.NotNull(withObjectClassCommon2Property); + var withObjectClassObjectTypeProperty = withObjectClass.FindChildByName("objectType", false); + Assert.NotNull(withObjectClassObjectTypeProperty); + var withObjectClassAnotherOneProperty = withObjectClass.FindChildByName("anotherOne", false); + Assert.NotNull(withObjectClassAnotherOneProperty); + + var withoutObjectClass = codeModel.FindChildByName("Component2"); + Assert.NotNull(withoutObjectClass); + var withoutObjectClassTwoProperty = withoutObjectClass.FindChildByName("two", false); + Assert.NotNull(withoutObjectClassTwoProperty); + var withoutObjectClassCommonProperty = withoutObjectClass.FindChildByName("common", false); + Assert.NotNull(withoutObjectClassCommonProperty ); + var withoutObjectClassCommon2Property = withoutObjectClass.FindChildByName("common2", false); + Assert.NotNull(withoutObjectClassCommon2Property); + var withoutObjectClassObjectTypeProperty = withoutObjectClass.FindChildByName("objectType", false); + Assert.NotNull(withoutObjectClassObjectTypeProperty); + var withoutObjectClassClassAnotherTwoProperty = withoutObjectClass.FindChildByName("anotherTwo", false); + Assert.NotNull(withoutObjectClassClassAnotherTwoProperty); + } + [Fact] public async Task NestedIntersectionTypeAllOfAsync() { @@ -9022,14 +9532,14 @@ public async Task InheritanceWithAllOfWith3Parts1Schema2InlineAsync(bool reverse '#microsoft.graph.group': '#/components/schemas/microsoft.graph.group' microsoft.graph.group: allOf:" - + (reverseOrder ? "" : @" + + (reverseOrder ? "" : @" - '$ref': '#/components/schemas/microsoft.graph.directoryObject'") + @" - properties: groupprop1: type: 'string' - properties: groupprop2: - type: 'string'" + (!reverseOrder ? "" : @" + type: 'string'" + (!reverseOrder ? "" : @" - '$ref': '#/components/schemas/microsoft.graph.directoryObject'")); var mockLogger = new Mock>(); var builder = new KiotaBuilder(mockLogger.Object, new GenerationConfiguration { ClientClassName = "Graph", OpenAPIFilePath = tempFilePath }, _httpClient); From a0007f4179b4e29cea99c63ad66510af3ad17a68 Mon Sep 17 00:00:00 2001 From: Ville Penttinen Date: Mon, 23 Dec 2024 15:49:51 +0200 Subject: [PATCH 02/14] feat: Add additional unit tests for new extensions --- .../OpenApiSchemaExtensionsTests.cs | 283 ++++++++++++++++++ 1 file changed, 283 insertions(+) diff --git a/tests/Kiota.Builder.Tests/Extensions/OpenApiSchemaExtensionsTests.cs b/tests/Kiota.Builder.Tests/Extensions/OpenApiSchemaExtensionsTests.cs index 6ca611be28..6418313f40 100644 --- a/tests/Kiota.Builder.Tests/Extensions/OpenApiSchemaExtensionsTests.cs +++ b/tests/Kiota.Builder.Tests/Extensions/OpenApiSchemaExtensionsTests.cs @@ -673,6 +673,289 @@ public void MergesIntersectionRecursively() Assert.Equal("description", result.Description); Assert.True(result.Deprecated); } + + public class MergeSingleInclusiveUnionInheritanceOrIntersectionSchemaEntries + { + [Fact] + public void DoesMergeWithInheritance() + { + var schema = new OpenApiSchema() + { + Type = "object", + AnyOf = [ + new() { + Properties = new Dictionary() { + ["one"] = new OpenApiSchema(), + }, + AllOf = [ + new() { + Reference = new() { + Id = "BaseClass" + }, + }, + new() { + Type = "object", + Properties = new Dictionary() { + ["firstName"] = new OpenApiSchema(), + ["lastName"] = new OpenApiSchema() + } + }, + ] + }, + ], + }; + + var result = schema.MergeSingleInclusiveUnionInheritanceOrIntersectionSchemaEntries(); + Assert.True(schema.AnyOf[0].IsInherited()); + Assert.NotNull(result); + Assert.True(result.IsInherited()); + Assert.Contains("one", result.Properties.Keys); + Assert.Empty(result.AnyOf); + Assert.Equal(2, result.AllOf.Count); + } + [Fact] + public void DoesMergeWithIntersection() + { + var schema = new OpenApiSchema() + { + Type = "object", + AnyOf = [ + new() { + Properties = new Dictionary() { + ["one"] = new OpenApiSchema(), + }, + AllOf = [ + new() { + Type = "object", + Properties = new Dictionary() { + ["first"] = new OpenApiSchema(), + } + }, + new() { + Type = "object", + Properties = new Dictionary() { + ["second"] = new OpenApiSchema(), + } + }, + new() { + Type = "object", + Properties = new Dictionary() { + ["third"] = new OpenApiSchema(), + } + }, + ] + }, + ], + }; + + var result = schema.MergeSingleInclusiveUnionInheritanceOrIntersectionSchemaEntries(); + Assert.NotNull(result); + Assert.True(schema.AnyOf[0].IsIntersection()); + Assert.True(result.IsIntersection()); + Assert.Contains("one", result.Properties.Keys); + Assert.Empty(result.AnyOf); + Assert.Equal(3, result.AllOf.Count); + } + [Fact] + public void DoesNotMergeWithMoreThanOneInclusiveEntry() + { + var schema = new OpenApiSchema() + { + Type = "object", + AnyOf = [ + new() { + Properties = new Dictionary() { + ["one"] = new OpenApiSchema(), + }, + AllOf = [ + new() { + Reference = new() { + Id = "BaseClass" + }, + }, + new() { + Type = "object", + Properties = new Dictionary() { + ["firstName"] = new OpenApiSchema(), + ["lastName"] = new OpenApiSchema() + } + }, + ] + }, + new() { Type = "object" }, + ], + }; + + var result = schema.MergeSingleInclusiveUnionInheritanceOrIntersectionSchemaEntries(); + Assert.Null(result); + } + [Fact] + public void DoesNotMergeWithoutInheritanceOrIntersection() + { + var schema = new OpenApiSchema() + { + Type = "object", + AnyOf = [ + new() { + AllOf = [ + new() { + Type = "object", + Properties = new Dictionary() { + ["firstName"] = new OpenApiSchema(), + ["lastName"] = new OpenApiSchema() + } + }, + ] + }, + ], + }; + + var result = schema.MergeSingleInclusiveUnionInheritanceOrIntersectionSchemaEntries(); + Assert.Null(result); + } + } + + public class MergeSingleExclusiveUnionInheritanceOrIntersectionSchemaEntries + { + [Fact] + public void DoesMergeWithInheritance() + { + var schema = new OpenApiSchema() + { + Type = "object", + OneOf = [ + new() { + Properties = new Dictionary() { + ["one"] = new OpenApiSchema(), + }, + AllOf = [ + new() { + Reference = new() { + Id = "BaseClass" + }, + }, + new() { + Type = "object", + Properties = new Dictionary() { + ["firstName"] = new OpenApiSchema(), + ["lastName"] = new OpenApiSchema() + } + }, + ] + }, + ], + }; + + var result = schema.MergeSingleExclusiveUnionInheritanceOrIntersectionSchemaEntries(); + Assert.True(schema.OneOf[0].IsInherited()); + Assert.NotNull(result); + Assert.True(result.IsInherited()); + Assert.Contains("one", result.Properties.Keys); + Assert.Empty(result.OneOf); + Assert.Equal(2, result.AllOf.Count); + } + [Fact] + public void DoesMergeWithIntersection() + { + var schema = new OpenApiSchema() + { + Type = "object", + OneOf = [ + new() { + Properties = new Dictionary() { + ["one"] = new OpenApiSchema(), + }, + AllOf = [ + new() { + Type = "object", + Properties = new Dictionary() { + ["first"] = new OpenApiSchema(), + } + }, + new() { + Type = "object", + Properties = new Dictionary() { + ["second"] = new OpenApiSchema(), + } + }, + new() { + Type = "object", + Properties = new Dictionary() { + ["third"] = new OpenApiSchema(), + } + }, + ] + }, + ], + }; + + var result = schema.MergeSingleExclusiveUnionInheritanceOrIntersectionSchemaEntries(); + Assert.NotNull(result); + Assert.True(schema.OneOf[0].IsIntersection()); + Assert.True(result.IsIntersection()); + Assert.Contains("one", result.Properties.Keys); + Assert.Empty(result.OneOf); + Assert.Equal(3, result.AllOf.Count); + } + [Fact] + public void DoesNotMergeWithMoreThanOneExclusiveEntry() + { + var schema = new OpenApiSchema() + { + Type = "object", + OneOf = [ + new() { + Properties = new Dictionary() { + ["one"] = new OpenApiSchema(), + }, + AllOf = [ + new() { + Reference = new() { + Id = "BaseClass" + }, + }, + new() { + Type = "object", + Properties = new Dictionary() { + ["firstName"] = new OpenApiSchema(), + ["lastName"] = new OpenApiSchema() + } + }, + ] + }, + new() { Type = "object" }, + ], + }; + + var result = schema.MergeSingleExclusiveUnionInheritanceOrIntersectionSchemaEntries(); + Assert.Null(result); + } + [Fact] + public void DoesNotMergeWithoutInheritanceOrIntersection() + { + var schema = new OpenApiSchema() + { + Type = "object", + OneOf = [ + new() { + AllOf = [ + new() { + Type = "object", + Properties = new Dictionary() { + ["firstName"] = new OpenApiSchema(), + ["lastName"] = new OpenApiSchema() + } + }, + ] + }, + ], + }; + + var result = schema.MergeSingleExclusiveUnionInheritanceOrIntersectionSchemaEntries(); + Assert.Null(result); + } + } + [Fact] public void IsArrayFalseOnEmptyItems() { From fbb1b1104e11faf8f5fa835ae4ca95c3de1a52c9 Mon Sep 17 00:00:00 2001 From: Ville Penttinen Date: Tue, 24 Dec 2024 16:44:32 +0200 Subject: [PATCH 03/14] chore: Fix formatting --- tests/Kiota.Builder.Tests/KiotaBuilderTests.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/Kiota.Builder.Tests/KiotaBuilderTests.cs b/tests/Kiota.Builder.Tests/KiotaBuilderTests.cs index bd7caa00c5..7acf60fbb3 100644 --- a/tests/Kiota.Builder.Tests/KiotaBuilderTests.cs +++ b/tests/Kiota.Builder.Tests/KiotaBuilderTests.cs @@ -8870,7 +8870,7 @@ public async Task ExclusiveUnionIntersectionEntriesMergingAsync() var withoutObjectClassTwoProperty = withoutObjectClass.FindChildByName("two", false); Assert.NotNull(withoutObjectClassTwoProperty); var withoutObjectClassCommonProperty = withoutObjectClass.FindChildByName("common", false); - Assert.NotNull(withoutObjectClassCommonProperty ); + Assert.NotNull(withoutObjectClassCommonProperty); var withoutObjectClassCommon2Property = withoutObjectClass.FindChildByName("common2", false); Assert.NotNull(withoutObjectClassCommon2Property); var withoutObjectClassObjectTypeProperty = withoutObjectClass.FindChildByName("objectType", false); @@ -9213,7 +9213,7 @@ public async Task InclusiveUnionIntersectionEntriesMergingAsync() var withoutObjectClassTwoProperty = withoutObjectClass.FindChildByName("two", false); Assert.NotNull(withoutObjectClassTwoProperty); var withoutObjectClassCommonProperty = withoutObjectClass.FindChildByName("common", false); - Assert.NotNull(withoutObjectClassCommonProperty ); + Assert.NotNull(withoutObjectClassCommonProperty); var withoutObjectClassCommon2Property = withoutObjectClass.FindChildByName("common2", false); Assert.NotNull(withoutObjectClassCommon2Property); var withoutObjectClassObjectTypeProperty = withoutObjectClass.FindChildByName("objectType", false); From 5094aaa13bb410ad6eec7bc464afbe5d8c3482ca Mon Sep 17 00:00:00 2001 From: Ville Penttinen Date: Tue, 24 Dec 2024 16:52:25 +0200 Subject: [PATCH 04/14] chore: Fix formatting for new tests --- .../OpenApiSchemaExtensionsTests.cs | 186 ++++++++++++------ 1 file changed, 124 insertions(+), 62 deletions(-) diff --git a/tests/Kiota.Builder.Tests/Extensions/OpenApiSchemaExtensionsTests.cs b/tests/Kiota.Builder.Tests/Extensions/OpenApiSchemaExtensionsTests.cs index 6418313f40..db1ff23416 100644 --- a/tests/Kiota.Builder.Tests/Extensions/OpenApiSchemaExtensionsTests.cs +++ b/tests/Kiota.Builder.Tests/Extensions/OpenApiSchemaExtensionsTests.cs @@ -682,20 +682,28 @@ public void DoesMergeWithInheritance() var schema = new OpenApiSchema() { Type = "object", - AnyOf = [ - new() { - Properties = new Dictionary() { + AnyOf = + [ + new() + { + Properties = new Dictionary() + { ["one"] = new OpenApiSchema(), }, - AllOf = [ - new() { - Reference = new() { + AllOf = + [ + new() + { + Reference = new() + { Id = "BaseClass" }, }, - new() { + new() + { Type = "object", - Properties = new Dictionary() { + Properties = new Dictionary() + { ["firstName"] = new OpenApiSchema(), ["lastName"] = new OpenApiSchema() } @@ -719,27 +727,37 @@ public void DoesMergeWithIntersection() var schema = new OpenApiSchema() { Type = "object", - AnyOf = [ - new() { - Properties = new Dictionary() { + AnyOf = + [ + new() + { + Properties = new Dictionary() + { ["one"] = new OpenApiSchema(), }, - AllOf = [ - new() { + AllOf = + [ + new() + { Type = "object", - Properties = new Dictionary() { + Properties = new Dictionary() + { ["first"] = new OpenApiSchema(), } }, - new() { + new() + { Type = "object", - Properties = new Dictionary() { + Properties = new Dictionary() + { ["second"] = new OpenApiSchema(), } }, - new() { + new() + { Type = "object", - Properties = new Dictionary() { + Properties = new Dictionary() + { ["third"] = new OpenApiSchema(), } }, @@ -762,20 +780,28 @@ public void DoesNotMergeWithMoreThanOneInclusiveEntry() var schema = new OpenApiSchema() { Type = "object", - AnyOf = [ - new() { - Properties = new Dictionary() { + AnyOf = + [ + new() + { + Properties = new Dictionary() + { ["one"] = new OpenApiSchema(), }, - AllOf = [ - new() { - Reference = new() { + AllOf = + [ + new() + { + Reference = new() + { Id = "BaseClass" }, }, - new() { + new() + { Type = "object", - Properties = new Dictionary() { + Properties = new Dictionary() + { ["firstName"] = new OpenApiSchema(), ["lastName"] = new OpenApiSchema() } @@ -795,12 +821,17 @@ public void DoesNotMergeWithoutInheritanceOrIntersection() var schema = new OpenApiSchema() { Type = "object", - AnyOf = [ - new() { - AllOf = [ - new() { + AnyOf = + [ + new() + { + AllOf = + [ + new() + { Type = "object", - Properties = new Dictionary() { + Properties = new Dictionary() + { ["firstName"] = new OpenApiSchema(), ["lastName"] = new OpenApiSchema() } @@ -823,20 +854,28 @@ public void DoesMergeWithInheritance() var schema = new OpenApiSchema() { Type = "object", - OneOf = [ - new() { - Properties = new Dictionary() { + OneOf = + [ + new() + { + Properties = new Dictionary() + { ["one"] = new OpenApiSchema(), }, - AllOf = [ - new() { - Reference = new() { + AllOf = + [ + new() + { + Reference = new() + { Id = "BaseClass" }, }, - new() { + new() + { Type = "object", - Properties = new Dictionary() { + Properties = new Dictionary() + { ["firstName"] = new OpenApiSchema(), ["lastName"] = new OpenApiSchema() } @@ -860,27 +899,37 @@ public void DoesMergeWithIntersection() var schema = new OpenApiSchema() { Type = "object", - OneOf = [ - new() { - Properties = new Dictionary() { + OneOf = + [ + new() + { + Properties = new Dictionary() + { ["one"] = new OpenApiSchema(), }, - AllOf = [ - new() { + AllOf = + [ + new() + { Type = "object", - Properties = new Dictionary() { + Properties = new Dictionary() + { ["first"] = new OpenApiSchema(), } }, - new() { + new() + { Type = "object", - Properties = new Dictionary() { + Properties = new Dictionary() + { ["second"] = new OpenApiSchema(), } }, - new() { + new() + { Type = "object", - Properties = new Dictionary() { + Properties = new Dictionary() + { ["third"] = new OpenApiSchema(), } }, @@ -903,20 +952,28 @@ public void DoesNotMergeWithMoreThanOneExclusiveEntry() var schema = new OpenApiSchema() { Type = "object", - OneOf = [ - new() { - Properties = new Dictionary() { + OneOf = + [ + new() + { + Properties = new Dictionary() + { ["one"] = new OpenApiSchema(), }, - AllOf = [ - new() { - Reference = new() { + AllOf = + [ + new() + { + Reference = new() + { Id = "BaseClass" }, }, - new() { + new() + { Type = "object", - Properties = new Dictionary() { + Properties = new Dictionary() + { ["firstName"] = new OpenApiSchema(), ["lastName"] = new OpenApiSchema() } @@ -936,12 +993,17 @@ public void DoesNotMergeWithoutInheritanceOrIntersection() var schema = new OpenApiSchema() { Type = "object", - OneOf = [ - new() { - AllOf = [ - new() { + OneOf = + [ + new() + { + AllOf = + [ + new() + { Type = "object", - Properties = new Dictionary() { + Properties = new Dictionary() + { ["firstName"] = new OpenApiSchema(), ["lastName"] = new OpenApiSchema() } From ee758c01ed0d4daf6abae0447618e80fcaa7079a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 25 Dec 2024 09:00:15 +0000 Subject: [PATCH 05/14] chore(deps-dev): bump charset-normalizer in /it/python Bumps [charset-normalizer](https://github.com/jawah/charset_normalizer) from 3.4.0 to 3.4.1. - [Release notes](https://github.com/jawah/charset_normalizer/releases) - [Changelog](https://github.com/jawah/charset_normalizer/blob/master/CHANGELOG.md) - [Commits](https://github.com/jawah/charset_normalizer/compare/3.4.0...3.4.1) --- updated-dependencies: - dependency-name: charset-normalizer dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- it/python/requirements-dev.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/it/python/requirements-dev.txt b/it/python/requirements-dev.txt index a8e4fba074..ab9d2755ad 100644 --- a/it/python/requirements-dev.txt +++ b/it/python/requirements-dev.txt @@ -4,7 +4,7 @@ astroid==3.3.8 ; python_full_version >= '3.7.2' certifi==2024.12.14 ; python_version >= '3.6' -charset-normalizer==3.4.0 ; python_full_version >= '3.7.0' +charset-normalizer==3.4.1 ; python_full_version >= '3.7.0' colorama==0.4.6 ; sys_platform == 'win32' From 761ff0d680bd3203b4220d443231aae485187df3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 31 Dec 2024 08:11:18 +0000 Subject: [PATCH 06/14] chore(deps-dev): bump the eslint group Bumps the eslint group in /vscode/microsoft-kiota with 2 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser). Updates `@typescript-eslint/eslint-plugin` from 8.18.2 to 8.19.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.19.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.18.2 to 8.19.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.19.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: eslint - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: eslint ... Signed-off-by: dependabot[bot] --- vscode/microsoft-kiota/package-lock.json | 88 ++++++++++++------------ vscode/microsoft-kiota/package.json | 4 +- 2 files changed, 46 insertions(+), 46 deletions(-) diff --git a/vscode/microsoft-kiota/package-lock.json b/vscode/microsoft-kiota/package-lock.json index 6db0447cfb..33d84a0cab 100644 --- a/vscode/microsoft-kiota/package-lock.json +++ b/vscode/microsoft-kiota/package-lock.json @@ -24,8 +24,8 @@ "@types/node": "22.x", "@types/sinon": "^17.0.3", "@types/vscode": "^1.95.0", - "@typescript-eslint/eslint-plugin": "^8.18.2", - "@typescript-eslint/parser": "^8.18.2", + "@typescript-eslint/eslint-plugin": "^8.19.0", + "@typescript-eslint/parser": "^8.19.0", "@vscode/test-cli": "^0.0.10", "@vscode/test-electron": "^2.4.1", "chai": "^5.1.2", @@ -763,16 +763,16 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.18.2.tgz", - "integrity": "sha512-adig4SzPLjeQ0Tm+jvsozSGiCliI2ajeURDGHjZ2llnA+A67HihCQ+a3amtPhUakd1GlwHxSRvzOZktbEvhPPg==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.19.0.tgz", + "integrity": "sha512-NggSaEZCdSrFddbctrVjkVZvFC6KGfKfNK0CU7mNK/iKHGKbzT4Wmgm08dKpcZECBu9f5FypndoMyRHkdqfT1Q==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.18.2", - "@typescript-eslint/type-utils": "8.18.2", - "@typescript-eslint/utils": "8.18.2", - "@typescript-eslint/visitor-keys": "8.18.2", + "@typescript-eslint/scope-manager": "8.19.0", + "@typescript-eslint/type-utils": "8.19.0", + "@typescript-eslint/utils": "8.19.0", + "@typescript-eslint/visitor-keys": "8.19.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -792,15 +792,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.18.2.tgz", - "integrity": "sha512-y7tcq4StgxQD4mDr9+Jb26dZ+HTZ/SkfqpXSiqeUXZHxOUyjWDKsmwKhJ0/tApR08DgOhrFAoAhyB80/p3ViuA==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.19.0.tgz", + "integrity": "sha512-6M8taKyOETY1TKHp0x8ndycipTVgmp4xtg5QpEZzXxDhNvvHOJi5rLRkLr8SK3jTgD5l4fTlvBiRdfsuWydxBw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "8.18.2", - "@typescript-eslint/types": "8.18.2", - "@typescript-eslint/typescript-estree": "8.18.2", - "@typescript-eslint/visitor-keys": "8.18.2", + "@typescript-eslint/scope-manager": "8.19.0", + "@typescript-eslint/types": "8.19.0", + "@typescript-eslint/typescript-estree": "8.19.0", + "@typescript-eslint/visitor-keys": "8.19.0", "debug": "^4.3.4" }, "engines": { @@ -816,13 +816,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.18.2.tgz", - "integrity": "sha512-YJFSfbd0CJjy14r/EvWapYgV4R5CHzptssoag2M7y3Ra7XNta6GPAJPPP5KGB9j14viYXyrzRO5GkX7CRfo8/g==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.19.0.tgz", + "integrity": "sha512-hkoJiKQS3GQ13TSMEiuNmSCvhz7ujyqD1x3ShbaETATHrck+9RaDdUbt+osXaUuns9OFwrDTTrjtwsU8gJyyRA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "8.18.2", - "@typescript-eslint/visitor-keys": "8.18.2" + "@typescript-eslint/types": "8.19.0", + "@typescript-eslint/visitor-keys": "8.19.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -833,13 +833,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.18.2.tgz", - "integrity": "sha512-AB/Wr1Lz31bzHfGm/jgbFR0VB0SML/hd2P1yxzKDM48YmP7vbyJNHRExUE/wZsQj2wUCvbWH8poNHFuxLqCTnA==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.19.0.tgz", + "integrity": "sha512-TZs0I0OSbd5Aza4qAMpp1cdCYVnER94IziudE3JU328YUHgWu9gwiwhag+fuLeJ2LkWLXI+F/182TbG+JaBdTg==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "8.18.2", - "@typescript-eslint/utils": "8.18.2", + "@typescript-eslint/typescript-estree": "8.19.0", + "@typescript-eslint/utils": "8.19.0", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -856,9 +856,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.18.2.tgz", - "integrity": "sha512-Z/zblEPp8cIvmEn6+tPDIHUbRu/0z5lqZ+NvolL5SvXWT5rQy7+Nch83M0++XzO0XrWRFWECgOAyE8bsJTl1GQ==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.19.0.tgz", + "integrity": "sha512-8XQ4Ss7G9WX8oaYvD4OOLCjIQYgRQxO+qCiR2V2s2GxI9AUpo7riNwo6jDhKtTcaJjT8PY54j2Yb33kWtSJsmA==", "dev": true, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -869,13 +869,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.18.2.tgz", - "integrity": "sha512-WXAVt595HjpmlfH4crSdM/1bcsqh+1weFRWIa9XMTx/XHZ9TCKMcr725tLYqWOgzKdeDrqVHxFotrvWcEsk2Tg==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.19.0.tgz", + "integrity": "sha512-WW9PpDaLIFW9LCbucMSdYUuGeFUz1OkWYS/5fwZwTA+l2RwlWFdJvReQqMUMBw4yJWJOfqd7An9uwut2Oj8sLw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "8.18.2", - "@typescript-eslint/visitor-keys": "8.18.2", + "@typescript-eslint/types": "8.19.0", + "@typescript-eslint/visitor-keys": "8.19.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -895,15 +895,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.18.2.tgz", - "integrity": "sha512-Cr4A0H7DtVIPkauj4sTSXVl+VBWewE9/o40KcF3TV9aqDEOWoXF3/+oRXNby3DYzZeCATvbdksYsGZzplwnK/Q==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.19.0.tgz", + "integrity": "sha512-PTBG+0oEMPH9jCZlfg07LCB2nYI0I317yyvXGfxnvGvw4SHIOuRnQ3kadyyXY6tGdChusIHIbM5zfIbp4M6tCg==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.18.2", - "@typescript-eslint/types": "8.18.2", - "@typescript-eslint/typescript-estree": "8.18.2" + "@typescript-eslint/scope-manager": "8.19.0", + "@typescript-eslint/types": "8.19.0", + "@typescript-eslint/typescript-estree": "8.19.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -918,12 +918,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.18.2.tgz", - "integrity": "sha512-zORcwn4C3trOWiCqFQP1x6G3xTRyZ1LYydnj51cRnJ6hxBlr/cKPckk+PKPUw/fXmvfKTcw7bwY3w9izgx5jZw==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.19.0.tgz", + "integrity": "sha512-mCFtBbFBJDCNCWUl5y6sZSCHXw1DEFEk3c/M3nRK2a4XUB8StGFtmcEMizdjKuBzB6e/smJAAWYug3VrdLMr1w==", "dev": true, "dependencies": { - "@typescript-eslint/types": "8.18.2", + "@typescript-eslint/types": "8.19.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { diff --git a/vscode/microsoft-kiota/package.json b/vscode/microsoft-kiota/package.json index 177cd9531d..c9b52a6821 100644 --- a/vscode/microsoft-kiota/package.json +++ b/vscode/microsoft-kiota/package.json @@ -498,8 +498,8 @@ "@types/node": "22.x", "@types/sinon": "^17.0.3", "@types/vscode": "^1.95.0", - "@typescript-eslint/eslint-plugin": "^8.18.2", - "@typescript-eslint/parser": "^8.18.2", + "@typescript-eslint/eslint-plugin": "^8.19.0", + "@typescript-eslint/parser": "^8.19.0", "@vscode/test-cli": "^0.0.10", "@vscode/test-electron": "^2.4.1", "chai": "^5.1.2", From 1dba744f0694a9a57f1acedc5f376a62a6187f56 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 31 Dec 2024 08:29:58 +0000 Subject: [PATCH 07/14] chore(deps): bump coverlet.msbuild from 6.0.2 to 6.0.3 Bumps [coverlet.msbuild](https://github.com/coverlet-coverage/coverlet) from 6.0.2 to 6.0.3. - [Release notes](https://github.com/coverlet-coverage/coverlet/releases) - [Commits](https://github.com/coverlet-coverage/coverlet/compare/v6.0.2...v6.0.3) --- updated-dependencies: - dependency-name: coverlet.msbuild dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .../Kiota.Builder.IntegrationTests.csproj | 2 +- tests/Kiota.Builder.Tests/Kiota.Builder.Tests.csproj | 2 +- tests/Kiota.Tests/Kiota.Tests.csproj | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/Kiota.Builder.IntegrationTests/Kiota.Builder.IntegrationTests.csproj b/tests/Kiota.Builder.IntegrationTests/Kiota.Builder.IntegrationTests.csproj index f1168300c6..0448377fdd 100644 --- a/tests/Kiota.Builder.IntegrationTests/Kiota.Builder.IntegrationTests.csproj +++ b/tests/Kiota.Builder.IntegrationTests/Kiota.Builder.IntegrationTests.csproj @@ -10,7 +10,7 @@ runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/tests/Kiota.Builder.Tests/Kiota.Builder.Tests.csproj b/tests/Kiota.Builder.Tests/Kiota.Builder.Tests.csproj index ee85ae72b0..dfecb393f5 100644 --- a/tests/Kiota.Builder.Tests/Kiota.Builder.Tests.csproj +++ b/tests/Kiota.Builder.Tests/Kiota.Builder.Tests.csproj @@ -12,7 +12,7 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/tests/Kiota.Tests/Kiota.Tests.csproj b/tests/Kiota.Tests/Kiota.Tests.csproj index dbe9ca157e..ad851484fa 100644 --- a/tests/Kiota.Tests/Kiota.Tests.csproj +++ b/tests/Kiota.Tests/Kiota.Tests.csproj @@ -7,7 +7,7 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive all From a0aebdd8f3ecc2fcb8314ebc43df910e20a78444 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 31 Dec 2024 08:31:34 +0000 Subject: [PATCH 08/14] chore(deps): bump coverlet.collector from 6.0.2 to 6.0.3 Bumps [coverlet.collector](https://github.com/coverlet-coverage/coverlet) from 6.0.2 to 6.0.3. - [Release notes](https://github.com/coverlet-coverage/coverlet/releases) - [Commits](https://github.com/coverlet-coverage/coverlet/compare/v6.0.2...v6.0.3) --- updated-dependencies: - dependency-name: coverlet.collector dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- .../Kiota.Builder.IntegrationTests.csproj | 2 +- tests/Kiota.Builder.Tests/Kiota.Builder.Tests.csproj | 2 +- tests/Kiota.Tests/Kiota.Tests.csproj | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/Kiota.Builder.IntegrationTests/Kiota.Builder.IntegrationTests.csproj b/tests/Kiota.Builder.IntegrationTests/Kiota.Builder.IntegrationTests.csproj index f1168300c6..151b4760bc 100644 --- a/tests/Kiota.Builder.IntegrationTests/Kiota.Builder.IntegrationTests.csproj +++ b/tests/Kiota.Builder.IntegrationTests/Kiota.Builder.IntegrationTests.csproj @@ -6,7 +6,7 @@ - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/tests/Kiota.Builder.Tests/Kiota.Builder.Tests.csproj b/tests/Kiota.Builder.Tests/Kiota.Builder.Tests.csproj index ee85ae72b0..884d42d3f8 100644 --- a/tests/Kiota.Builder.Tests/Kiota.Builder.Tests.csproj +++ b/tests/Kiota.Builder.Tests/Kiota.Builder.Tests.csproj @@ -24,7 +24,7 @@ runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all diff --git a/tests/Kiota.Tests/Kiota.Tests.csproj b/tests/Kiota.Tests/Kiota.Tests.csproj index dbe9ca157e..0545bc8940 100644 --- a/tests/Kiota.Tests/Kiota.Tests.csproj +++ b/tests/Kiota.Tests/Kiota.Tests.csproj @@ -17,7 +17,7 @@ runtime; build; native; contentfiles; analyzers; buildtransitive all - + runtime; build; native; contentfiles; analyzers; buildtransitive all From 6601c2bb710e85dffa3cab3bc9877a7929d6a59a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 31 Dec 2024 08:41:58 +0000 Subject: [PATCH 09/14] chore(deps-dev): bump the eslint group in /it/typescript with 2 updates Bumps the eslint group in /it/typescript with 2 updates: [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) and [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser). Updates `@typescript-eslint/eslint-plugin` from 8.18.2 to 8.19.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.19.0/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.18.2 to 8.19.0 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.19.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/eslint-plugin" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: eslint - dependency-name: "@typescript-eslint/parser" dependency-type: direct:development update-type: version-update:semver-minor dependency-group: eslint ... Signed-off-by: dependabot[bot] --- it/typescript/package-lock.json | 88 ++++++++++++++++----------------- it/typescript/package.json | 4 +- 2 files changed, 46 insertions(+), 46 deletions(-) diff --git a/it/typescript/package-lock.json b/it/typescript/package-lock.json index 7b8f65972b..3c63fb08e9 100644 --- a/it/typescript/package-lock.json +++ b/it/typescript/package-lock.json @@ -24,8 +24,8 @@ "@es-exec/esbuild-plugin-start": "^0.0.5", "@stylistic/eslint-plugin-ts": "^2.12.1", "@types/node": "^22.10.2", - "@typescript-eslint/eslint-plugin": "^8.18.2", - "@typescript-eslint/parser": "^8.18.2", + "@typescript-eslint/eslint-plugin": "^8.19.0", + "@typescript-eslint/parser": "^8.19.0", "esbuild": "^0.24.2", "eslint": "^9.17.0", "eslint-config-prettier": "^9.1.0", @@ -962,16 +962,16 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.18.2.tgz", - "integrity": "sha512-adig4SzPLjeQ0Tm+jvsozSGiCliI2ajeURDGHjZ2llnA+A67HihCQ+a3amtPhUakd1GlwHxSRvzOZktbEvhPPg==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.19.0.tgz", + "integrity": "sha512-NggSaEZCdSrFddbctrVjkVZvFC6KGfKfNK0CU7mNK/iKHGKbzT4Wmgm08dKpcZECBu9f5FypndoMyRHkdqfT1Q==", "dev": true, "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.18.2", - "@typescript-eslint/type-utils": "8.18.2", - "@typescript-eslint/utils": "8.18.2", - "@typescript-eslint/visitor-keys": "8.18.2", + "@typescript-eslint/scope-manager": "8.19.0", + "@typescript-eslint/type-utils": "8.19.0", + "@typescript-eslint/utils": "8.19.0", + "@typescript-eslint/visitor-keys": "8.19.0", "graphemer": "^1.4.0", "ignore": "^5.3.1", "natural-compare": "^1.4.0", @@ -991,15 +991,15 @@ } }, "node_modules/@typescript-eslint/parser": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.18.2.tgz", - "integrity": "sha512-y7tcq4StgxQD4mDr9+Jb26dZ+HTZ/SkfqpXSiqeUXZHxOUyjWDKsmwKhJ0/tApR08DgOhrFAoAhyB80/p3ViuA==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.19.0.tgz", + "integrity": "sha512-6M8taKyOETY1TKHp0x8ndycipTVgmp4xtg5QpEZzXxDhNvvHOJi5rLRkLr8SK3jTgD5l4fTlvBiRdfsuWydxBw==", "dev": true, "dependencies": { - "@typescript-eslint/scope-manager": "8.18.2", - "@typescript-eslint/types": "8.18.2", - "@typescript-eslint/typescript-estree": "8.18.2", - "@typescript-eslint/visitor-keys": "8.18.2", + "@typescript-eslint/scope-manager": "8.19.0", + "@typescript-eslint/types": "8.19.0", + "@typescript-eslint/typescript-estree": "8.19.0", + "@typescript-eslint/visitor-keys": "8.19.0", "debug": "^4.3.4" }, "engines": { @@ -1015,13 +1015,13 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.18.2.tgz", - "integrity": "sha512-YJFSfbd0CJjy14r/EvWapYgV4R5CHzptssoag2M7y3Ra7XNta6GPAJPPP5KGB9j14viYXyrzRO5GkX7CRfo8/g==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.19.0.tgz", + "integrity": "sha512-hkoJiKQS3GQ13TSMEiuNmSCvhz7ujyqD1x3ShbaETATHrck+9RaDdUbt+osXaUuns9OFwrDTTrjtwsU8gJyyRA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "8.18.2", - "@typescript-eslint/visitor-keys": "8.18.2" + "@typescript-eslint/types": "8.19.0", + "@typescript-eslint/visitor-keys": "8.19.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1032,13 +1032,13 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.18.2.tgz", - "integrity": "sha512-AB/Wr1Lz31bzHfGm/jgbFR0VB0SML/hd2P1yxzKDM48YmP7vbyJNHRExUE/wZsQj2wUCvbWH8poNHFuxLqCTnA==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.19.0.tgz", + "integrity": "sha512-TZs0I0OSbd5Aza4qAMpp1cdCYVnER94IziudE3JU328YUHgWu9gwiwhag+fuLeJ2LkWLXI+F/182TbG+JaBdTg==", "dev": true, "dependencies": { - "@typescript-eslint/typescript-estree": "8.18.2", - "@typescript-eslint/utils": "8.18.2", + "@typescript-eslint/typescript-estree": "8.19.0", + "@typescript-eslint/utils": "8.19.0", "debug": "^4.3.4", "ts-api-utils": "^1.3.0" }, @@ -1055,9 +1055,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.18.2.tgz", - "integrity": "sha512-Z/zblEPp8cIvmEn6+tPDIHUbRu/0z5lqZ+NvolL5SvXWT5rQy7+Nch83M0++XzO0XrWRFWECgOAyE8bsJTl1GQ==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.19.0.tgz", + "integrity": "sha512-8XQ4Ss7G9WX8oaYvD4OOLCjIQYgRQxO+qCiR2V2s2GxI9AUpo7riNwo6jDhKtTcaJjT8PY54j2Yb33kWtSJsmA==", "dev": true, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1068,13 +1068,13 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.18.2.tgz", - "integrity": "sha512-WXAVt595HjpmlfH4crSdM/1bcsqh+1weFRWIa9XMTx/XHZ9TCKMcr725tLYqWOgzKdeDrqVHxFotrvWcEsk2Tg==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.19.0.tgz", + "integrity": "sha512-WW9PpDaLIFW9LCbucMSdYUuGeFUz1OkWYS/5fwZwTA+l2RwlWFdJvReQqMUMBw4yJWJOfqd7An9uwut2Oj8sLw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "8.18.2", - "@typescript-eslint/visitor-keys": "8.18.2", + "@typescript-eslint/types": "8.19.0", + "@typescript-eslint/visitor-keys": "8.19.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -1118,15 +1118,15 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.18.2.tgz", - "integrity": "sha512-Cr4A0H7DtVIPkauj4sTSXVl+VBWewE9/o40KcF3TV9aqDEOWoXF3/+oRXNby3DYzZeCATvbdksYsGZzplwnK/Q==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.19.0.tgz", + "integrity": "sha512-PTBG+0oEMPH9jCZlfg07LCB2nYI0I317yyvXGfxnvGvw4SHIOuRnQ3kadyyXY6tGdChusIHIbM5zfIbp4M6tCg==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "8.18.2", - "@typescript-eslint/types": "8.18.2", - "@typescript-eslint/typescript-estree": "8.18.2" + "@typescript-eslint/scope-manager": "8.19.0", + "@typescript-eslint/types": "8.19.0", + "@typescript-eslint/typescript-estree": "8.19.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1141,12 +1141,12 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.18.2.tgz", - "integrity": "sha512-zORcwn4C3trOWiCqFQP1x6G3xTRyZ1LYydnj51cRnJ6hxBlr/cKPckk+PKPUw/fXmvfKTcw7bwY3w9izgx5jZw==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.19.0.tgz", + "integrity": "sha512-mCFtBbFBJDCNCWUl5y6sZSCHXw1DEFEk3c/M3nRK2a4XUB8StGFtmcEMizdjKuBzB6e/smJAAWYug3VrdLMr1w==", "dev": true, "dependencies": { - "@typescript-eslint/types": "8.18.2", + "@typescript-eslint/types": "8.19.0", "eslint-visitor-keys": "^4.2.0" }, "engines": { diff --git a/it/typescript/package.json b/it/typescript/package.json index 1978e343ad..fa1bc0fd3d 100644 --- a/it/typescript/package.json +++ b/it/typescript/package.json @@ -21,8 +21,8 @@ "@es-exec/esbuild-plugin-start": "^0.0.5", "@stylistic/eslint-plugin-ts": "^2.12.1", "@types/node": "^22.10.2", - "@typescript-eslint/eslint-plugin": "^8.18.2", - "@typescript-eslint/parser": "^8.18.2", + "@typescript-eslint/eslint-plugin": "^8.19.0", + "@typescript-eslint/parser": "^8.19.0", "esbuild": "^0.24.2", "eslint": "^9.17.0", "eslint-config-prettier": "^9.1.0", From ea65aebe32904beae3a5cd6d7e6b9b026819634e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 31 Dec 2024 08:45:44 +0000 Subject: [PATCH 10/14] chore(deps-dev): bump mypy from 1.14.0 to 1.14.1 in /it/python Bumps [mypy](https://github.com/python/mypy) from 1.14.0 to 1.14.1. - [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md) - [Commits](https://github.com/python/mypy/compare/v1.14.0...v1.14.1) --- updated-dependencies: - dependency-name: mypy dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- it/python/requirements-dev.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/it/python/requirements-dev.txt b/it/python/requirements-dev.txt index ab9d2755ad..69e55bb69d 100644 --- a/it/python/requirements-dev.txt +++ b/it/python/requirements-dev.txt @@ -30,7 +30,7 @@ lazy-object-proxy==1.10.0 ; python_version >= '3.7' mccabe==0.7.0 ; python_version >= '3.6' -mypy==1.14.0 +mypy==1.14.1 mypy-extensions==1.0.0 ; python_version >= '3.5' From ee5448541b1b5a3d35a2826d67e991e33a2cb5c0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jan 2025 08:20:13 +0000 Subject: [PATCH 11/14] chore(deps-dev): bump @types/node in /vscode/microsoft-kiota Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 22.10.2 to 22.10.3. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- vscode/microsoft-kiota/package-lock.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vscode/microsoft-kiota/package-lock.json b/vscode/microsoft-kiota/package-lock.json index 33d84a0cab..e763549789 100644 --- a/vscode/microsoft-kiota/package-lock.json +++ b/vscode/microsoft-kiota/package-lock.json @@ -730,9 +730,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "22.10.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", - "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "version": "22.10.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.3.tgz", + "integrity": "sha512-DifAyw4BkrufCILvD3ucnuN8eydUfc/C1GlyrnI+LK6543w5/L3VeVgf05o3B4fqSXP1dKYLOZsKfutpxPzZrw==", "dev": true, "dependencies": { "undici-types": "~6.20.0" From fb5d510a02fa9d90caaad90fb17bafcd72123bc8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jan 2025 08:49:05 +0000 Subject: [PATCH 12/14] chore(deps-dev): bump @types/node in /it/typescript Bumps [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) from 22.10.2 to 22.10.3. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) --- updated-dependencies: - dependency-name: "@types/node" dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- it/typescript/package-lock.json | 8 ++++---- it/typescript/package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/it/typescript/package-lock.json b/it/typescript/package-lock.json index 3c63fb08e9..8047fbcc17 100644 --- a/it/typescript/package-lock.json +++ b/it/typescript/package-lock.json @@ -23,7 +23,7 @@ "devDependencies": { "@es-exec/esbuild-plugin-start": "^0.0.5", "@stylistic/eslint-plugin-ts": "^2.12.1", - "@types/node": "^22.10.2", + "@types/node": "^22.10.3", "@typescript-eslint/eslint-plugin": "^8.19.0", "@typescript-eslint/parser": "^8.19.0", "esbuild": "^0.24.2", @@ -953,9 +953,9 @@ "dev": true }, "node_modules/@types/node": { - "version": "22.10.2", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.2.tgz", - "integrity": "sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==", + "version": "22.10.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.10.3.tgz", + "integrity": "sha512-DifAyw4BkrufCILvD3ucnuN8eydUfc/C1GlyrnI+LK6543w5/L3VeVgf05o3B4fqSXP1dKYLOZsKfutpxPzZrw==", "dev": true, "dependencies": { "undici-types": "~6.20.0" diff --git a/it/typescript/package.json b/it/typescript/package.json index fa1bc0fd3d..1ce002bdb4 100644 --- a/it/typescript/package.json +++ b/it/typescript/package.json @@ -20,7 +20,7 @@ "devDependencies": { "@es-exec/esbuild-plugin-start": "^0.0.5", "@stylistic/eslint-plugin-ts": "^2.12.1", - "@types/node": "^22.10.2", + "@types/node": "^22.10.3", "@typescript-eslint/eslint-plugin": "^8.19.0", "@typescript-eslint/parser": "^8.19.0", "esbuild": "^0.24.2", From c27f836402fa7aa7deb71b236b9d3cfe2a4c8565 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 1 Jan 2025 08:59:58 +0000 Subject: [PATCH 13/14] chore(deps-dev): bump portalocker from 3.0.0 to 3.1.1 in /it/python Bumps [portalocker](https://github.com/wolph/portalocker) from 3.0.0 to 3.1.1. - [Release notes](https://github.com/wolph/portalocker/releases) - [Changelog](https://github.com/wolph/portalocker/blob/develop/CHANGELOG.rst) - [Commits](https://github.com/wolph/portalocker/compare/v3.0.0...v3.1.1) --- updated-dependencies: - dependency-name: portalocker dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- it/python/requirements-dev.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/it/python/requirements-dev.txt b/it/python/requirements-dev.txt index 69e55bb69d..61e35aec7d 100644 --- a/it/python/requirements-dev.txt +++ b/it/python/requirements-dev.txt @@ -118,7 +118,7 @@ msal-extensions==1.2.0 multidict==6.1.0 ; python_version >= '3.7' -portalocker==3.0.0 ; python_version >= '3.5' and platform_system == 'Windows' +portalocker==3.1.1 ; python_version >= '3.5' and platform_system == 'Windows' pycparser==2.22 From fdfe8415ce33e8bc9cee846c6177c8498d9948b5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 2 Jan 2025 08:53:05 +0000 Subject: [PATCH 14/14] chore(deps-dev): bump pytest-asyncio from 0.25.0 to 0.25.1 in /it/python Bumps [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) from 0.25.0 to 0.25.1. - [Release notes](https://github.com/pytest-dev/pytest-asyncio/releases) - [Commits](https://github.com/pytest-dev/pytest-asyncio/compare/v0.25.0...v0.25.1) --- updated-dependencies: - dependency-name: pytest-asyncio dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- it/python/requirements-dev.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/it/python/requirements-dev.txt b/it/python/requirements-dev.txt index 61e35aec7d..ae31964cb1 100644 --- a/it/python/requirements-dev.txt +++ b/it/python/requirements-dev.txt @@ -44,7 +44,7 @@ pylint==3.3.3 pytest==8.3.4 -pytest-asyncio==0.25.0 +pytest-asyncio==0.25.1 requests==2.32.3 ; python_version >= '3.7'