diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/java/io/ballerina/flowmodelgenerator/extension/DataMappingModelTest.java b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/java/io/ballerina/flowmodelgenerator/extension/DataMappingModelTest.java index 7a46fe5dfb..fe79803800 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/java/io/ballerina/flowmodelgenerator/extension/DataMappingModelTest.java +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/java/io/ballerina/flowmodelgenerator/extension/DataMappingModelTest.java @@ -145,6 +145,7 @@ protected Object[] getConfigsList() { {Path.of("configurable_variable2.json")}, {Path.of("function_def7.json")}, {Path.of("variable53.json")}, + {Path.of("variable55.json")}, }; } diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/agents_manager/config/agent_call_flow_node_6.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/agents_manager/config/agent_call_flow_node_6.json index 6fb158f9d5..b73926b050 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/agents_manager/config/agent_call_flow_node_6.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/agents_manager/config/agent_call_flow_node_6.json @@ -2375,7 +2375,7 @@ "typeMembers": [ { "type": "HttpVersion", - "packageInfo": "ballerina:http:2.14.6", + "packageInfo": "ballerina:http:2.14.7", "packageName": "http", "kind": "BASIC_TYPE", "selected": false @@ -2405,7 +2405,7 @@ "typeMembers": [ { "type": "ClientHttp1Settings", - "packageInfo": "ballerina:http:2.14.6", + "packageInfo": "ballerina:http:2.14.7", "packageName": "http", "kind": "RECORD_TYPE", "selected": false @@ -2435,7 +2435,7 @@ "typeMembers": [ { "type": "ClientHttp2Settings", - "packageInfo": "ballerina:http:2.14.6", + "packageInfo": "ballerina:http:2.14.7", "packageName": "http", "kind": "RECORD_TYPE", "selected": false @@ -2525,7 +2525,7 @@ "typeMembers": [ { "type": "PoolConfiguration", - "packageInfo": "ballerina:http:2.14.6", + "packageInfo": "ballerina:http:2.14.7", "packageName": "http", "kind": "RECORD_TYPE", "selected": false @@ -2555,7 +2555,7 @@ "typeMembers": [ { "type": "CacheConfig", - "packageInfo": "ballerina:http:2.14.6", + "packageInfo": "ballerina:http:2.14.7", "packageName": "http", "kind": "RECORD_TYPE", "selected": false @@ -2585,7 +2585,7 @@ "typeMembers": [ { "type": "Compression", - "packageInfo": "ballerina:http:2.14.6", + "packageInfo": "ballerina:http:2.14.7", "packageName": "http", "kind": "BASIC_TYPE", "selected": false @@ -2615,7 +2615,7 @@ "typeMembers": [ { "type": "CircuitBreakerConfig", - "packageInfo": "ballerina:http:2.14.6", + "packageInfo": "ballerina:http:2.14.7", "packageName": "http", "kind": "RECORD_TYPE", "selected": false @@ -2645,7 +2645,7 @@ "typeMembers": [ { "type": "RetryConfig", - "packageInfo": "ballerina:http:2.14.6", + "packageInfo": "ballerina:http:2.14.7", "packageName": "http", "kind": "RECORD_TYPE", "selected": false @@ -2675,7 +2675,7 @@ "typeMembers": [ { "type": "ResponseLimitConfigs", - "packageInfo": "ballerina:http:2.14.6", + "packageInfo": "ballerina:http:2.14.7", "packageName": "http", "kind": "RECORD_TYPE", "selected": false @@ -2705,7 +2705,7 @@ "typeMembers": [ { "type": "ClientSecureSocket", - "packageInfo": "ballerina:http:2.14.6", + "packageInfo": "ballerina:http:2.14.7", "packageName": "http", "kind": "RECORD_TYPE", "selected": false @@ -2735,7 +2735,7 @@ "typeMembers": [ { "type": "ProxyConfig", - "packageInfo": "ballerina:http:2.14.6", + "packageInfo": "ballerina:http:2.14.7", "packageName": "http", "kind": "RECORD_TYPE", "selected": false diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/data_mapper_model/config/variable55.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/data_mapper_model/config/variable55.json new file mode 100644 index 0000000000..8eeab4883e --- /dev/null +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/data_mapper_model/config/variable55.json @@ -0,0 +1,66 @@ +{ + "source": "variable33.bal", + "description": "Sample diagram node", + "codedata": { + "node": "VARIABLE", + "lineRange": { + "fileName": "variable33.bal", + "startLine": { + "line": 12, + "offset": 12 + }, + "endLine": { + "line": 12, + "offset": 41 + } + }, + "sourceCode": "Student student = {};" + }, + "position": { + "line": 12, + "offset": 12 + }, + "propertyKey": "expression", + "targetField": "details", + "model": { + "inputs": [], + "output": { + "fields": [], + "name": "details", + "displayName": "details", + "typeName": "PurchaseDetails", + "kind": "record", + "ref": "2079257237" + }, + "mappings": [], + "refs": { + "2079257237": { + "fields": [ + { + "name": "rewardId", + "displayName": "rewardId", + "typeName": "string", + "kind": "string", + "optional": true + }, + { + "name": "skuId", + "displayName": "skuId", + "typeName": "string", + "kind": "string", + "optional": true + }, + { + "name": "quantity", + "displayName": "quantity", + "typeName": "int:Signed32", + "kind": "int:Signed32", + "optional": true + } + ], + "typeName": "PurchaseDetails", + "kind": "record" + } + } + } +} diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/data_mapper_model/source/variable33.bal b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/data_mapper_model/source/variable33.bal new file mode 100644 index 0000000000..95765fb306 --- /dev/null +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/data_mapper_model/source/variable33.bal @@ -0,0 +1,18 @@ +import ballerina/http; + +public type PurchaseDetails record { + string rewardId?; + string skuId?; + int:Signed32 quantity?; +} + +service OASServiceType on new http:Listener(9090) { + + resource function get pet() returns int|http:NotFound { + do { + PurchaseDetails details = {}; + } on fail error e { + return http:NOT_FOUND; + } + } +} diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/module_nodes/config/new_agent_model.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/module_nodes/config/new_agent_model.json index 85c9b8692d..7f5e086f6f 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/module_nodes/config/new_agent_model.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/module_nodes/config/new_agent_model.json @@ -733,7 +733,7 @@ "typeMembers": [ { "type": "HttpVersion", - "packageInfo": "ballerina:http:2.14.6", + "packageInfo": "ballerina:http:2.14.7", "packageName": "http", "kind": "BASIC_TYPE", "selected": false @@ -763,7 +763,7 @@ "typeMembers": [ { "type": "ClientHttp1Settings", - "packageInfo": "ballerina:http:2.14.6", + "packageInfo": "ballerina:http:2.14.7", "packageName": "http", "kind": "RECORD_TYPE", "selected": false @@ -793,7 +793,7 @@ "typeMembers": [ { "type": "ClientHttp2Settings", - "packageInfo": "ballerina:http:2.14.6", + "packageInfo": "ballerina:http:2.14.7", "packageName": "http", "kind": "RECORD_TYPE", "selected": false @@ -883,7 +883,7 @@ "typeMembers": [ { "type": "PoolConfiguration", - "packageInfo": "ballerina:http:2.14.6", + "packageInfo": "ballerina:http:2.14.7", "packageName": "http", "kind": "RECORD_TYPE", "selected": false @@ -913,7 +913,7 @@ "typeMembers": [ { "type": "CacheConfig", - "packageInfo": "ballerina:http:2.14.6", + "packageInfo": "ballerina:http:2.14.7", "packageName": "http", "kind": "RECORD_TYPE", "selected": false @@ -943,7 +943,7 @@ "typeMembers": [ { "type": "Compression", - "packageInfo": "ballerina:http:2.14.6", + "packageInfo": "ballerina:http:2.14.7", "packageName": "http", "kind": "BASIC_TYPE", "selected": false @@ -973,7 +973,7 @@ "typeMembers": [ { "type": "CircuitBreakerConfig", - "packageInfo": "ballerina:http:2.14.6", + "packageInfo": "ballerina:http:2.14.7", "packageName": "http", "kind": "RECORD_TYPE", "selected": false @@ -1003,7 +1003,7 @@ "typeMembers": [ { "type": "RetryConfig", - "packageInfo": "ballerina:http:2.14.6", + "packageInfo": "ballerina:http:2.14.7", "packageName": "http", "kind": "RECORD_TYPE", "selected": false @@ -1033,7 +1033,7 @@ "typeMembers": [ { "type": "ResponseLimitConfigs", - "packageInfo": "ballerina:http:2.14.6", + "packageInfo": "ballerina:http:2.14.7", "packageName": "http", "kind": "RECORD_TYPE", "selected": false @@ -1063,7 +1063,7 @@ "typeMembers": [ { "type": "ClientSecureSocket", - "packageInfo": "ballerina:http:2.14.6", + "packageInfo": "ballerina:http:2.14.7", "packageName": "http", "kind": "RECORD_TYPE", "selected": false @@ -1093,7 +1093,7 @@ "typeMembers": [ { "type": "ProxyConfig", - "packageInfo": "ballerina:http:2.14.6", + "packageInfo": "ballerina:http:2.14.7", "packageName": "http", "kind": "RECORD_TYPE", "selected": false diff --git a/gradle.properties b/gradle.properties index 1c581a6e39..f58799cb62 100644 --- a/gradle.properties +++ b/gradle.properties @@ -57,7 +57,7 @@ stdlibUuidVersion=1.10.0-20250311-135800-d38a5b5 # Stdlib Level 04 stdlibAuthVersion=2.14.0-20250311-141100-33e5fab stdlibOAuth2Version=2.14.0-20250311-141600-1d12813 -stdlibJsonDataVersion=1.1.1 +stdlibJsonDataVersion=1.1.3 # Stdlib Level 05 stdlibHttpVersion=2.14.7 diff --git a/misc/diagram-util/src/main/java/org/ballerinalang/diagramutil/connector/models/connector/ReferenceType.java b/misc/diagram-util/src/main/java/org/ballerinalang/diagramutil/connector/models/connector/ReferenceType.java index 649af31c4c..40e8acba2e 100644 --- a/misc/diagram-util/src/main/java/org/ballerinalang/diagramutil/connector/models/connector/ReferenceType.java +++ b/misc/diagram-util/src/main/java/org/ballerinalang/diagramutil/connector/models/connector/ReferenceType.java @@ -112,7 +112,7 @@ public static RefType fromSemanticSymbol(Symbol symbol, List typeDefSymb public static RefType fromSemanticSymbol(TypeSymbol symbol, String name, ModuleID moduleID, List typeDefSymbols) { TypeDescKind kind = symbol.typeKind(); - RefType primitiveType = getPrimitiveType(kind, name); + RefType primitiveType = getPrimitiveType(kind); if (primitiveType != null) { return primitiveType; } @@ -320,35 +320,43 @@ public static RefType fromSemanticSymbol(TypeSymbol symbol, String name, ModuleI tupleType.memberTypes.add(refType); } return tupleType; + } else if (kind == TypeDescKind.REGEXP) { + return new RefType("regexp:RegExp"); } throw new UnsupportedOperationException( "Unsupported type kind: " + kind + " for symbol: " + symbol.getName().orElse("unknown")); } - private static RefType getPrimitiveType(TypeDescKind kind, String name) { - if (kind == TypeDescKind.INT || kind == TypeDescKind.STRING || kind == TypeDescKind.FLOAT || - kind == TypeDescKind.BOOLEAN || kind == TypeDescKind.NIL || kind == TypeDescKind.DECIMAL || - kind == TypeDescKind.NEVER) { - return createPrimitiveRefType(kind, name); + private static RefType getPrimitiveType(TypeDescKind kind) { + String primitiveTypeName = getPrimitiveTypeName(kind); + if (primitiveTypeName == null) { + return null; } - return null; + RefType refType = new RefType(primitiveTypeName); + refType.typeName = primitiveTypeName; + return refType; } - private static RefType createPrimitiveRefType(TypeDescKind kind, String name) { - RefType refType = new RefType(name); - refType.typeName = switch (kind) { + private static String getPrimitiveTypeName(TypeDescKind kind) { + return switch (kind) { case INT -> "int"; + case INT_SIGNED8 -> "int:Signed8"; + case INT_SIGNED16 -> "int:Signed16"; + case INT_SIGNED32 -> "int:Signed32"; + case INT_UNSIGNED8 -> "int:Unsigned8"; + case INT_UNSIGNED16 -> "int:Unsigned16"; + case INT_UNSIGNED32 -> "int:Unsigned32"; case STRING -> "string"; case FLOAT -> "float"; case BOOLEAN -> "boolean"; case NIL -> "()"; case DECIMAL -> "decimal"; + case BYTE -> "byte"; + case STRING_CHAR -> "string:Char"; case NEVER -> "never"; - default -> throw new UnsupportedOperationException("Unsupported primitive type: " + kind); + default -> null; }; - refType.name = refType.typeName; - return refType; }