diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/main/resources/central-index.sqlite b/flow-model-generator/modules/flow-model-generator-ls-extension/src/main/resources/central-index.sqlite index 4047e6dc4..b08ba5799 100644 Binary files a/flow-model-generator/modules/flow-model-generator-ls-extension/src/main/resources/central-index.sqlite and b/flow-model-generator/modules/flow-model-generator-ls-extension/src/main/resources/central-index.sqlite differ diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/function_call-io-fileReadCsv.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/function_call-io-fileReadCsv.json new file mode 100644 index 000000000..e345c7c62 --- /dev/null +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/function_call-io-fileReadCsv.json @@ -0,0 +1,135 @@ +{ + "source": "data_mapper/main.bal", + "position": { + "line": 14, + "offset": 0 + }, + "description": "Sample diagram node", + "codedata": { + "node": "FUNCTION_CALL", + "org": "ballerina", + "module": "io", + "symbol": "fileReadCsv", + "version": "1.6.1" + }, + "output": { + "id": "31", + "metadata": { + "label": "fileReadCsv", + "description": "Read file content as a CSV.\nWhen the expected data type is record[], the first entry of the csv file should contain matching headers.\n```ballerina\nstring[][]|io:Error content = io:fileReadCsv(\"./resources/myfile.csv\");\nrecord{}[]|io:Error content = io:fileReadCsv(\"./resources/myfile.csv\");\n```", + "icon": "https://bcentral-packageicons.azureedge.net/images/ballerina_io_1.6.1.png" + }, + "codedata": { + "node": "FUNCTION_CALL", + "org": "ballerina", + "module": "io", + "symbol": "fileReadCsv", + "version": "1.6.1", + "id": 341, + "inferredReturnType": "returnType[]" + }, + "returning": false, + "properties": { + "returnType": { + "metadata": { + "label": "returnType", + "description": "The type of the return value (string[] or a Ballerina record)" + }, + "valueType": "TYPE", + "valueTypeConstraint": "string[]|map", + "placeholder": "string[]|map", + "optional": false, + "editable": true, + "advanced": false, + "codedata": { + "kind": "PARAM_FOR_TYPE_INFER", + "originalName": "returnType" + } + }, + "path": { + "metadata": { + "label": "path", + "description": "The CSV file path" + }, + "valueType": "EXPRESSION", + "valueTypeConstraint": "string", + "placeholder": "\"\"", + "optional": false, + "editable": true, + "advanced": false, + "codedata": { + "kind": "REQUIRED", + "originalName": "path" + }, + "typeMembers": [ + { + "type": "string", + "packageInfo": "", + "kind": "BASIC_TYPE", + "selected": false + } + ] + }, + "skipHeaders": { + "metadata": { + "label": "skipHeaders", + "description": "Number of headers, which should be skipped prior to reading records" + }, + "valueType": "EXPRESSION", + "valueTypeConstraint": "int", + "placeholder": "0", + "optional": true, + "editable": true, + "advanced": true, + "codedata": { + "kind": "DEFAULTABLE", + "originalName": "skipHeaders" + }, + "typeMembers": [ + { + "type": "int", + "packageInfo": "", + "kind": "BASIC_TYPE", + "selected": false + } + ] + }, + "type": { + "metadata": { + "label": "Variable Type", + "description": "Type of the variable" + }, + "valueType": "TYPE", + "value": "returnType[]", + "placeholder": "var", + "optional": false, + "editable": false, + "advanced": false, + "codedata": {} + }, + "variable": { + "metadata": { + "label": "Variable Name", + "description": "Name of the variable" + }, + "valueType": "IDENTIFIER", + "value": "returnType", + "optional": false, + "editable": true, + "advanced": false + }, + "checkError": { + "metadata": { + "label": "Check Error", + "description": "Trigger error flow" + }, + "valueType": "FLAG", + "value": true, + "optional": false, + "editable": true, + "advanced": true + } + }, + "flags": 0 + } +} diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/function_call-io-println.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/function_call-io-println.json index 69f0dd5b3..bfddf08da 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/function_call-io-println.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/function_call-io-println.json @@ -25,7 +25,7 @@ "module": "io", "symbol": "println", "version": "1.6.1", - "id": 351 + "id": 361 }, "returning": false, "properties": { diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/function_call-json-parseString.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/function_call-json-parseString.json index 05987b3c0..525da2a7a 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/function_call-json-parseString.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/function_call-json-parseString.json @@ -25,7 +25,7 @@ "module": "data.jsondata", "symbol": "parseString", "version": "0.2.0", - "id": 597, + "id": 618, "inferredReturnType": "t" }, "returning": false, diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/function_call-json-toJson.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/function_call-json-toJson.json index 55e963629..ecb91a9e1 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/function_call-json-toJson.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/function_call-json-toJson.json @@ -25,7 +25,7 @@ "module": "data.jsondata", "symbol": "toJson", "version": "0.2.0", - "id": 600 + "id": 621 }, "returning": false, "properties": { diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/function_call-log-printInfo.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/function_call-log-printInfo.json index d27fd9c21..45ec5901c 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/function_call-log-printInfo.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/function_call-log-printInfo.json @@ -25,7 +25,7 @@ "module": "log", "symbol": "printInfo", "version": "2.10.0", - "id": 278 + "id": 284 }, "returning": false, "properties": { diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/function_call-time-utcFromCivil.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/function_call-time-utcFromCivil.json index adcc4f977..27bfc35c2 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/function_call-time-utcFromCivil.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/function_call-time-utcFromCivil.json @@ -25,7 +25,7 @@ "module": "time", "symbol": "utcFromCivil", "version": "2.5.0", - "id": 574 + "id": 553 }, "returning": false, "properties": { diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/method_call_redis_close.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/method_call_redis_close.json index 82362e90a..6459bcfc3 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/method_call_redis_close.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/method_call_redis_close.json @@ -28,7 +28,7 @@ "object": "Client", "symbol": "close", "version": "3.0.2", - "id": 780 + "id": 930 }, "returning": false, "properties": { diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-covid.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-covid.json index 452e8404a..3ac3fc3a9 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-covid.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-covid.json @@ -26,7 +26,7 @@ "object": "Client", "symbol": "init", "version": "1.5.1", - "id": 2900 + "id": 2645 }, "returning": false, "properties": { diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-docusign.dsadmin.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-docusign.dsadmin.json index 60695f09a..ed6f855a8 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-docusign.dsadmin.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-docusign.dsadmin.json @@ -21,30 +21,56 @@ "object": "Client", "symbol": "init", "version": "2.0.0", - "id": 915 + "id": 763 }, "returning": false, "properties": { - "serviceUrl": { + "responseLimits": { "metadata": { - "label": "serviceUrl", - "description": "URL of the target service " + "label": "responseLimits", + "description": "Configurations associated with inbound response size limits" }, "valueType": "EXPRESSION", - "valueTypeConstraint": "string", - "placeholder": "\"\"", - "optional": false, + "valueTypeConstraint": "http:ResponseLimitConfigs", + "placeholder": "{}", + "optional": true, "editable": true, - "advanced": false, + "advanced": true, "codedata": { - "kind": "REQUIRED", - "originalName": "serviceUrl" + "kind": "INCLUDED_FIELD", + "originalName": "responseLimits", + "importStatements": "ballerina/http" }, "typeMembers": [ { - "type": "string", - "packageInfo": "", - "kind": "BASIC_TYPE", + "type": "ResponseLimitConfigs", + "packageInfo": "ballerina:http:2.10.11", + "kind": "RECORD_TYPE", + "selected": false + } + ] + }, + "cache": { + "metadata": { + "label": "cache", + "description": "HTTP caching related configurations" + }, + "valueType": "EXPRESSION", + "valueTypeConstraint": "http:CacheConfig", + "placeholder": "{}", + "optional": true, + "editable": true, + "advanced": true, + "codedata": { + "kind": "INCLUDED_FIELD", + "originalName": "cache", + "importStatements": "ballerina/http" + }, + "typeMembers": [ + { + "type": "CacheConfig", + "packageInfo": "ballerina:http:2.10.11", + "kind": "RECORD_TYPE", "selected": false } ] @@ -80,74 +106,74 @@ } ] }, - "httpVersion": { + "retryConfig": { "metadata": { - "label": "httpVersion", - "description": "The HTTP version understood by the client" + "label": "retryConfig", + "description": "Configurations associated with retrying" }, "valueType": "EXPRESSION", - "valueTypeConstraint": "http:HttpVersion", - "placeholder": "http:HTTP_2_0", + "valueTypeConstraint": "http:RetryConfig", + "placeholder": "{}", "optional": true, "editable": true, "advanced": true, "codedata": { "kind": "INCLUDED_FIELD", - "originalName": "httpVersion", + "originalName": "retryConfig", "importStatements": "ballerina/http" }, "typeMembers": [ { - "type": "HttpVersion", + "type": "RetryConfig", "packageInfo": "ballerina:http:2.10.11", - "kind": "BASIC_TYPE", + "kind": "RECORD_TYPE", "selected": false } ] }, - "http1Settings": { + "serviceUrl": { "metadata": { - "label": "http1Settings", - "description": "Configurations related to HTTP/1.x protocol" + "label": "serviceUrl", + "description": "URL of the target service " }, "valueType": "EXPRESSION", - "valueTypeConstraint": "dsadmin:ClientHttp1Settings", - "placeholder": "{}", - "optional": true, + "valueTypeConstraint": "string", + "placeholder": "\"\"", + "optional": false, "editable": true, - "advanced": true, + "advanced": false, "codedata": { - "kind": "INCLUDED_FIELD", - "originalName": "http1Settings" + "kind": "REQUIRED", + "originalName": "serviceUrl" }, "typeMembers": [ { - "type": "dsadmin:ClientHttp1Settings", - "packageInfo": "ballerinax:docusign.dsadmin:2.0.0", - "kind": "RECORD_TYPE", + "type": "string", + "packageInfo": "", + "kind": "BASIC_TYPE", "selected": false } ] }, - "http2Settings": { + "poolConfig": { "metadata": { - "label": "http2Settings", - "description": "Configurations related to HTTP/2 protocol" + "label": "poolConfig", + "description": "Configurations associated with request pooling" }, "valueType": "EXPRESSION", - "valueTypeConstraint": "http:ClientHttp2Settings", + "valueTypeConstraint": "http:PoolConfiguration", "placeholder": "{}", "optional": true, "editable": true, "advanced": true, "codedata": { "kind": "INCLUDED_FIELD", - "originalName": "http2Settings", + "originalName": "poolConfig", "importStatements": "ballerina/http" }, "typeMembers": [ { - "type": "ClientHttp2Settings", + "type": "PoolConfiguration", "packageInfo": "ballerina:http:2.10.11", "kind": "RECORD_TYPE", "selected": false @@ -202,77 +228,77 @@ } ] }, - "poolConfig": { + "proxy": { "metadata": { - "label": "poolConfig", - "description": "Configurations associated with request pooling" + "label": "proxy", + "description": "Proxy server related options" }, "valueType": "EXPRESSION", - "valueTypeConstraint": "http:PoolConfiguration", + "valueTypeConstraint": "http:ProxyConfig", "placeholder": "{}", "optional": true, "editable": true, "advanced": true, "codedata": { "kind": "INCLUDED_FIELD", - "originalName": "poolConfig", + "originalName": "proxy", "importStatements": "ballerina/http" }, "typeMembers": [ { - "type": "PoolConfiguration", + "type": "ProxyConfig", "packageInfo": "ballerina:http:2.10.11", "kind": "RECORD_TYPE", "selected": false } ] }, - "cache": { + "httpVersion": { "metadata": { - "label": "cache", - "description": "HTTP caching related configurations" + "label": "httpVersion", + "description": "The HTTP version understood by the client" }, "valueType": "EXPRESSION", - "valueTypeConstraint": "http:CacheConfig", - "placeholder": "{}", + "valueTypeConstraint": "http:HttpVersion", + "placeholder": "http:HTTP_2_0", "optional": true, "editable": true, "advanced": true, "codedata": { "kind": "INCLUDED_FIELD", - "originalName": "cache", + "originalName": "httpVersion", "importStatements": "ballerina/http" }, "typeMembers": [ { - "type": "CacheConfig", + "type": "HttpVersion", "packageInfo": "ballerina:http:2.10.11", - "kind": "RECORD_TYPE", + "kind": "BASIC_TYPE", "selected": false } ] }, - "compression": { + "secureSocket": { "metadata": { - "label": "compression", - "description": "Specifies the way of handling compression (`accept-encoding`) header" + "label": "secureSocket", + "description": "SSL/TLS-related options" }, "valueType": "EXPRESSION", - "valueTypeConstraint": "http:Compression", - "placeholder": "http:COMPRESSION_AUTO", + "valueTypeConstraint": "http:ClientSecureSocket", + "placeholder": "{}", "optional": true, "editable": true, "advanced": true, "codedata": { "kind": "INCLUDED_FIELD", - "originalName": "compression", + "originalName": "secureSocket", "importStatements": "ballerina/http" }, "typeMembers": [ { - "type": "Compression", + "type": "ClientSecureSocket", "packageInfo": "ballerina:http:2.10.11", - "kind": "BASIC_TYPE", + "kind": "RECORD_TYPE", "selected": false } ] @@ -302,101 +328,75 @@ } ] }, - "retryConfig": { - "metadata": { - "label": "retryConfig", - "description": "Configurations associated with retrying" - }, - "valueType": "EXPRESSION", - "valueTypeConstraint": "http:RetryConfig", - "placeholder": "{}", - "optional": true, - "editable": true, - "advanced": true, - "codedata": { - "kind": "INCLUDED_FIELD", - "originalName": "retryConfig", - "importStatements": "ballerina/http" - }, - "typeMembers": [ - { - "type": "RetryConfig", - "packageInfo": "ballerina:http:2.10.11", - "kind": "RECORD_TYPE", - "selected": false - } - ] - }, - "responseLimits": { + "http2Settings": { "metadata": { - "label": "responseLimits", - "description": "Configurations associated with inbound response size limits" + "label": "http2Settings", + "description": "Configurations related to HTTP/2 protocol" }, "valueType": "EXPRESSION", - "valueTypeConstraint": "http:ResponseLimitConfigs", + "valueTypeConstraint": "http:ClientHttp2Settings", "placeholder": "{}", "optional": true, "editable": true, "advanced": true, "codedata": { "kind": "INCLUDED_FIELD", - "originalName": "responseLimits", + "originalName": "http2Settings", "importStatements": "ballerina/http" }, "typeMembers": [ { - "type": "ResponseLimitConfigs", + "type": "ClientHttp2Settings", "packageInfo": "ballerina:http:2.10.11", "kind": "RECORD_TYPE", "selected": false } ] }, - "secureSocket": { + "compression": { "metadata": { - "label": "secureSocket", - "description": "SSL/TLS-related options" + "label": "compression", + "description": "Specifies the way of handling compression (`accept-encoding`) header" }, "valueType": "EXPRESSION", - "valueTypeConstraint": "http:ClientSecureSocket", - "placeholder": "{}", + "valueTypeConstraint": "http:Compression", + "placeholder": "http:COMPRESSION_AUTO", "optional": true, "editable": true, "advanced": true, "codedata": { "kind": "INCLUDED_FIELD", - "originalName": "secureSocket", + "originalName": "compression", "importStatements": "ballerina/http" }, "typeMembers": [ { - "type": "ClientSecureSocket", + "type": "Compression", "packageInfo": "ballerina:http:2.10.11", - "kind": "RECORD_TYPE", + "kind": "BASIC_TYPE", "selected": false } ] }, - "proxy": { + "http1Settings": { "metadata": { - "label": "proxy", - "description": "Proxy server related options" + "label": "http1Settings", + "description": "Configurations related to HTTP/1.x protocol" }, "valueType": "EXPRESSION", - "valueTypeConstraint": "http:ProxyConfig", + "valueTypeConstraint": "dsadmin:ClientHttp1Settings", "placeholder": "{}", "optional": true, "editable": true, "advanced": true, "codedata": { "kind": "INCLUDED_FIELD", - "originalName": "proxy", - "importStatements": "ballerina/http" + "originalName": "http1Settings" }, "typeMembers": [ { - "type": "ProxyConfig", - "packageInfo": "ballerina:http:2.10.11", + "type": "dsadmin:ClientHttp1Settings", + "packageInfo": "ballerinax:docusign.dsadmin:2.0.0", "kind": "RECORD_TYPE", "selected": false } diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-http.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-http.json index 8d821faba..b2622fc86 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-http.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-http.json @@ -26,48 +26,72 @@ "object": "Client", "symbol": "init", "version": "2.12.2", - "id": 534 + "id": 513 }, "returning": false, "properties": { - "url": { + "responseLimits": { "metadata": { - "label": "url", - "description": "URL of the target service" + "label": "responseLimits", + "description": "Configurations associated with inbound response size limits" }, "valueType": "EXPRESSION", - "valueTypeConstraint": "string", - "placeholder": "\"\"", - "optional": false, + "valueTypeConstraint": "http:ResponseLimitConfigs", + "placeholder": "{}", + "optional": true, "editable": true, - "advanced": false, + "advanced": true, "codedata": { - "kind": "REQUIRED", - "originalName": "url" + "kind": "INCLUDED_FIELD", + "originalName": "responseLimits" }, "typeMembers": [ { - "type": "string", - "packageInfo": "", - "kind": "BASIC_TYPE", + "type": "ResponseLimitConfigs", + "packageInfo": "ballerina:http:2.12.2", + "kind": "RECORD_TYPE", "selected": false } ] }, - "secureSocket": { + "cache": { "metadata": { - "label": "secureSocket", - "description": "" + "label": "cache", + "description": "HTTP caching related configurations" }, "valueType": "EXPRESSION", - "valueTypeConstraint": "http:ClientSecureSocket|()", + "valueTypeConstraint": "http:CacheConfig", + "placeholder": "{}", + "optional": true, + "editable": true, + "advanced": true, + "codedata": { + "kind": "INCLUDED_FIELD", + "originalName": "cache" + }, + "typeMembers": [ + { + "type": "CacheConfig", + "packageInfo": "ballerina:http:2.12.2", + "kind": "RECORD_TYPE", + "selected": false + } + ] + }, + "cookieConfig": { + "metadata": { + "label": "cookieConfig", + "description": "Configurations associated with cookies" + }, + "valueType": "EXPRESSION", + "valueTypeConstraint": "http:CookieConfig|()", "placeholder": "()", "optional": true, "editable": true, "advanced": true, "codedata": { "kind": "INCLUDED_FIELD", - "originalName": "secureSocket" + "originalName": "cookieConfig" }, "typeMembers": [ { @@ -77,85 +101,163 @@ "selected": false }, { - "type": "ClientSecureSocket", + "type": "CookieConfig", "packageInfo": "ballerina:http:2.12.2", "kind": "RECORD_TYPE", "selected": false } ] }, - "httpVersion": { + "auth": { "metadata": { - "label": "httpVersion", - "description": "The HTTP version understood by the client" + "label": "auth", + "description": "Configurations related to client authentication" }, "valueType": "EXPRESSION", - "valueTypeConstraint": "http:HttpVersion", - "placeholder": "\"2.0\"", + "valueTypeConstraint": "http:CredentialsConfig|http:BearerTokenConfig|http:JwtIssuerConfig|http:OAuth2ClientCredentialsGrantConfig|http:OAuth2PasswordGrantConfig|http:OAuth2RefreshTokenGrantConfig|http:OAuth2JwtBearerGrantConfig|()", + "placeholder": "()", "optional": true, "editable": true, "advanced": true, "codedata": { "kind": "INCLUDED_FIELD", - "originalName": "httpVersion" + "originalName": "auth" }, "typeMembers": [ { - "type": "HttpVersion", - "packageInfo": "ballerina:http:2.12.2", + "type": "()", + "packageInfo": "", "kind": "BASIC_TYPE", "selected": false + }, + { + "type": "BearerTokenConfig", + "packageInfo": "ballerina:http:2.12.2", + "kind": "RECORD_TYPE", + "selected": false + }, + { + "type": "CredentialsConfig", + "packageInfo": "ballerina:http:2.12.2", + "kind": "RECORD_TYPE", + "selected": false + }, + { + "type": "JwtIssuerConfig", + "packageInfo": "ballerina:http:2.12.2", + "kind": "RECORD_TYPE", + "selected": false + }, + { + "type": "OAuth2ClientCredentialsGrantConfig", + "packageInfo": "ballerina:http:2.12.2", + "kind": "RECORD_TYPE", + "selected": false + }, + { + "type": "OAuth2JwtBearerGrantConfig", + "packageInfo": "ballerina:http:2.12.2", + "kind": "RECORD_TYPE", + "selected": false + }, + { + "type": "OAuth2PasswordGrantConfig", + "packageInfo": "ballerina:http:2.12.2", + "kind": "RECORD_TYPE", + "selected": false + }, + { + "type": "OAuth2RefreshTokenGrantConfig", + "packageInfo": "ballerina:http:2.12.2", + "kind": "RECORD_TYPE", + "selected": false } ] }, - "http1Settings": { + "retryConfig": { "metadata": { - "label": "http1Settings", - "description": "Configurations related to HTTP/1.x protocol" + "label": "retryConfig", + "description": "Configurations associated with retrying" }, "valueType": "EXPRESSION", - "valueTypeConstraint": "http:ClientHttp1Settings", - "placeholder": "{}", + "valueTypeConstraint": "http:RetryConfig|()", + "placeholder": "()", "optional": true, "editable": true, "advanced": true, "codedata": { "kind": "INCLUDED_FIELD", - "originalName": "http1Settings" + "originalName": "retryConfig" }, "typeMembers": [ { - "type": "ClientHttp1Settings", + "type": "()", + "packageInfo": "", + "kind": "BASIC_TYPE", + "selected": false + }, + { + "type": "RetryConfig", "packageInfo": "ballerina:http:2.12.2", "kind": "RECORD_TYPE", "selected": false } ] }, - "http2Settings": { + "poolConfig": { "metadata": { - "label": "http2Settings", - "description": "Configurations related to HTTP/2 protocol" + "label": "poolConfig", + "description": "Configurations associated with request pooling" }, "valueType": "EXPRESSION", - "valueTypeConstraint": "http:ClientHttp2Settings", - "placeholder": "{}", + "valueTypeConstraint": "http:PoolConfiguration|()", + "placeholder": "()", "optional": true, "editable": true, "advanced": true, "codedata": { "kind": "INCLUDED_FIELD", - "originalName": "http2Settings" + "originalName": "poolConfig" }, "typeMembers": [ { - "type": "ClientHttp2Settings", + "type": "()", + "packageInfo": "", + "kind": "BASIC_TYPE", + "selected": false + }, + { + "type": "PoolConfiguration", "packageInfo": "ballerina:http:2.12.2", "kind": "RECORD_TYPE", "selected": false } ] }, + "url": { + "metadata": { + "label": "url", + "description": "URL of the target service" + }, + "valueType": "EXPRESSION", + "valueTypeConstraint": "string", + "placeholder": "\"\"", + "optional": false, + "editable": true, + "advanced": false, + "codedata": { + "kind": "REQUIRED", + "originalName": "url" + }, + "typeMembers": [ + { + "type": "string", + "packageInfo": "", + "kind": "BASIC_TYPE", + "selected": false + } + ] + }, "timeout": { "metadata": { "label": "timeout", @@ -204,50 +306,44 @@ } ] }, - "followRedirects": { + "socketConfig": { "metadata": { - "label": "followRedirects", - "description": "Configurations associated with Redirection" + "label": "socketConfig", + "description": "Provides settings related to client socket configuration" }, "valueType": "EXPRESSION", - "valueTypeConstraint": "http:FollowRedirects|()", - "placeholder": "()", + "valueTypeConstraint": "http:ClientSocketConfig", + "placeholder": "{}", "optional": true, "editable": true, "advanced": true, "codedata": { "kind": "INCLUDED_FIELD", - "originalName": "followRedirects" + "originalName": "socketConfig" }, "typeMembers": [ { - "type": "()", - "packageInfo": "", - "kind": "BASIC_TYPE", - "selected": false - }, - { - "type": "FollowRedirects", + "type": "ClientSocketConfig", "packageInfo": "ballerina:http:2.12.2", "kind": "RECORD_TYPE", "selected": false } ] }, - "poolConfig": { + "proxy": { "metadata": { - "label": "poolConfig", - "description": "Configurations associated with request pooling" + "label": "proxy", + "description": "Proxy server related options" }, "valueType": "EXPRESSION", - "valueTypeConstraint": "http:PoolConfiguration|()", + "valueTypeConstraint": "http:ProxyConfig|()", "placeholder": "()", "optional": true, "editable": true, "advanced": true, "codedata": { "kind": "INCLUDED_FIELD", - "originalName": "poolConfig" + "originalName": "proxy" }, "typeMembers": [ { @@ -257,75 +353,51 @@ "selected": false }, { - "type": "PoolConfiguration", - "packageInfo": "ballerina:http:2.12.2", - "kind": "RECORD_TYPE", - "selected": false - } - ] - }, - "cache": { - "metadata": { - "label": "cache", - "description": "HTTP caching related configurations" - }, - "valueType": "EXPRESSION", - "valueTypeConstraint": "http:CacheConfig", - "placeholder": "{}", - "optional": true, - "editable": true, - "advanced": true, - "codedata": { - "kind": "INCLUDED_FIELD", - "originalName": "cache" - }, - "typeMembers": [ - { - "type": "CacheConfig", + "type": "ProxyConfig", "packageInfo": "ballerina:http:2.12.2", "kind": "RECORD_TYPE", "selected": false } ] }, - "compression": { + "httpVersion": { "metadata": { - "label": "compression", - "description": "Specifies the way of handling compression (`accept-encoding`) header" + "label": "httpVersion", + "description": "The HTTP version understood by the client" }, "valueType": "EXPRESSION", - "valueTypeConstraint": "http:Compression", - "placeholder": "\"AUTO\"", + "valueTypeConstraint": "http:HttpVersion", + "placeholder": "\"2.0\"", "optional": true, "editable": true, "advanced": true, "codedata": { "kind": "INCLUDED_FIELD", - "originalName": "compression" + "originalName": "httpVersion" }, "typeMembers": [ { - "type": "Compression", + "type": "HttpVersion", "packageInfo": "ballerina:http:2.12.2", "kind": "BASIC_TYPE", "selected": false } ] }, - "auth": { + "followRedirects": { "metadata": { - "label": "auth", - "description": "Configurations related to client authentication" + "label": "followRedirects", + "description": "Configurations associated with Redirection" }, "valueType": "EXPRESSION", - "valueTypeConstraint": "http:CredentialsConfig|http:BearerTokenConfig|http:JwtIssuerConfig|http:OAuth2ClientCredentialsGrantConfig|http:OAuth2PasswordGrantConfig|http:OAuth2RefreshTokenGrantConfig|http:OAuth2JwtBearerGrantConfig|()", + "valueTypeConstraint": "http:FollowRedirects|()", "placeholder": "()", "optional": true, "editable": true, "advanced": true, "codedata": { "kind": "INCLUDED_FIELD", - "originalName": "auth" + "originalName": "followRedirects" }, "typeMembers": [ { @@ -335,63 +407,27 @@ "selected": false }, { - "type": "BearerTokenConfig", - "packageInfo": "ballerina:http:2.12.2", - "kind": "RECORD_TYPE", - "selected": false - }, - { - "type": "CredentialsConfig", - "packageInfo": "ballerina:http:2.12.2", - "kind": "RECORD_TYPE", - "selected": false - }, - { - "type": "JwtIssuerConfig", - "packageInfo": "ballerina:http:2.12.2", - "kind": "RECORD_TYPE", - "selected": false - }, - { - "type": "OAuth2ClientCredentialsGrantConfig", - "packageInfo": "ballerina:http:2.12.2", - "kind": "RECORD_TYPE", - "selected": false - }, - { - "type": "OAuth2JwtBearerGrantConfig", - "packageInfo": "ballerina:http:2.12.2", - "kind": "RECORD_TYPE", - "selected": false - }, - { - "type": "OAuth2PasswordGrantConfig", - "packageInfo": "ballerina:http:2.12.2", - "kind": "RECORD_TYPE", - "selected": false - }, - { - "type": "OAuth2RefreshTokenGrantConfig", + "type": "FollowRedirects", "packageInfo": "ballerina:http:2.12.2", "kind": "RECORD_TYPE", "selected": false } ] }, - "circuitBreaker": { + "secureSocket": { "metadata": { - "label": "circuitBreaker", - "description": "Configurations associated with the behaviour of the Circuit Breaker" + "label": "secureSocket", + "description": "" }, "valueType": "EXPRESSION", - "valueTypeConstraint": "http:CircuitBreakerConfig|()", + "valueTypeConstraint": "http:ClientSecureSocket|()", "placeholder": "()", "optional": true, "editable": true, "advanced": true, "codedata": { "kind": "INCLUDED_FIELD", - "originalName": "circuitBreaker" + "originalName": "secureSocket" }, "typeMembers": [ { @@ -401,27 +437,27 @@ "selected": false }, { - "type": "CircuitBreakerConfig", + "type": "ClientSecureSocket", "packageInfo": "ballerina:http:2.12.2", "kind": "RECORD_TYPE", "selected": false } ] }, - "retryConfig": { + "circuitBreaker": { "metadata": { - "label": "retryConfig", - "description": "Configurations associated with retrying" + "label": "circuitBreaker", + "description": "Configurations associated with the behaviour of the Circuit Breaker" }, "valueType": "EXPRESSION", - "valueTypeConstraint": "http:RetryConfig|()", + "valueTypeConstraint": "http:CircuitBreakerConfig|()", "placeholder": "()", "optional": true, "editable": true, "advanced": true, "codedata": { "kind": "INCLUDED_FIELD", - "originalName": "retryConfig" + "originalName": "circuitBreaker" }, "typeMembers": [ { @@ -431,91 +467,79 @@ "selected": false }, { - "type": "RetryConfig", + "type": "CircuitBreakerConfig", "packageInfo": "ballerina:http:2.12.2", "kind": "RECORD_TYPE", "selected": false } ] }, - "cookieConfig": { + "http2Settings": { "metadata": { - "label": "cookieConfig", - "description": "Configurations associated with cookies" + "label": "http2Settings", + "description": "Configurations related to HTTP/2 protocol" }, "valueType": "EXPRESSION", - "valueTypeConstraint": "http:CookieConfig|()", - "placeholder": "()", + "valueTypeConstraint": "http:ClientHttp2Settings", + "placeholder": "{}", "optional": true, "editable": true, "advanced": true, "codedata": { "kind": "INCLUDED_FIELD", - "originalName": "cookieConfig" + "originalName": "http2Settings" }, "typeMembers": [ { - "type": "()", - "packageInfo": "", - "kind": "BASIC_TYPE", - "selected": false - }, - { - "type": "CookieConfig", + "type": "ClientHttp2Settings", "packageInfo": "ballerina:http:2.12.2", "kind": "RECORD_TYPE", "selected": false } ] }, - "responseLimits": { + "compression": { "metadata": { - "label": "responseLimits", - "description": "Configurations associated with inbound response size limits" + "label": "compression", + "description": "Specifies the way of handling compression (`accept-encoding`) header" }, "valueType": "EXPRESSION", - "valueTypeConstraint": "http:ResponseLimitConfigs", - "placeholder": "{}", + "valueTypeConstraint": "http:Compression", + "placeholder": "\"AUTO\"", "optional": true, "editable": true, "advanced": true, "codedata": { "kind": "INCLUDED_FIELD", - "originalName": "responseLimits" + "originalName": "compression" }, "typeMembers": [ { - "type": "ResponseLimitConfigs", + "type": "Compression", "packageInfo": "ballerina:http:2.12.2", - "kind": "RECORD_TYPE", + "kind": "BASIC_TYPE", "selected": false } ] }, - "proxy": { + "http1Settings": { "metadata": { - "label": "proxy", - "description": "Proxy server related options" + "label": "http1Settings", + "description": "Configurations related to HTTP/1.x protocol" }, "valueType": "EXPRESSION", - "valueTypeConstraint": "http:ProxyConfig|()", - "placeholder": "()", + "valueTypeConstraint": "http:ClientHttp1Settings", + "placeholder": "{}", "optional": true, "editable": true, "advanced": true, "codedata": { "kind": "INCLUDED_FIELD", - "originalName": "proxy" + "originalName": "http1Settings" }, "typeMembers": [ { - "type": "()", - "packageInfo": "", - "kind": "BASIC_TYPE", - "selected": false - }, - { - "type": "ProxyConfig", + "type": "ClientHttp1Settings", "packageInfo": "ballerina:http:2.12.2", "kind": "RECORD_TYPE", "selected": false @@ -546,30 +570,6 @@ } ] }, - "socketConfig": { - "metadata": { - "label": "socketConfig", - "description": "Provides settings related to client socket configuration" - }, - "valueType": "EXPRESSION", - "valueTypeConstraint": "http:ClientSocketConfig", - "placeholder": "{}", - "optional": true, - "editable": true, - "advanced": true, - "codedata": { - "kind": "INCLUDED_FIELD", - "originalName": "socketConfig" - }, - "typeMembers": [ - { - "type": "ClientSocketConfig", - "packageInfo": "ballerina:http:2.12.2", - "kind": "RECORD_TYPE", - "selected": false - } - ] - }, "type": { "metadata": { "label": "Variable Type", diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-redis.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-redis.json index e97a56cf1..3fe570b57 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-redis.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-redis.json @@ -26,37 +26,31 @@ "object": "Client", "symbol": "init", "version": "3.0.2", - "id": 672 + "id": 822 }, "returning": false, "properties": { - "connection": { + "secureSocket": { "metadata": { - "label": "connection", + "label": "secureSocket", "description": "" }, "valueType": "EXPRESSION", - "valueTypeConstraint": "redis:ConnectionUri|redis:ConnectionParams", - "placeholder": "\"redis://localhost:6379\"", + "valueTypeConstraint": "redis:SecureSocket", + "placeholder": "{}", "optional": true, "editable": true, "advanced": true, "codedata": { "kind": "INCLUDED_FIELD", - "originalName": "connection" + "originalName": "secureSocket" }, "typeMembers": [ { - "type": "ConnectionParams", + "type": "SecureSocket", "packageInfo": "ballerinax:redis:3.0.2", "kind": "RECORD_TYPE", "selected": false - }, - { - "type": "ConnectionUri", - "packageInfo": "ballerinax:redis:3.0.2", - "kind": "BASIC_TYPE", - "selected": false } ] }, @@ -84,50 +78,56 @@ } ] }, - "isClusterConnection": { + "connection": { "metadata": { - "label": "isClusterConnection", + "label": "connection", "description": "" }, "valueType": "EXPRESSION", - "valueTypeConstraint": "boolean", - "placeholder": "false", + "valueTypeConstraint": "redis:ConnectionUri|redis:ConnectionParams", + "placeholder": "\"redis://localhost:6379\"", "optional": true, "editable": true, "advanced": true, "codedata": { "kind": "INCLUDED_FIELD", - "originalName": "isClusterConnection" + "originalName": "connection" }, "typeMembers": [ { - "type": "boolean", - "packageInfo": "", + "type": "ConnectionParams", + "packageInfo": "ballerinax:redis:3.0.2", + "kind": "RECORD_TYPE", + "selected": false + }, + { + "type": "ConnectionUri", + "packageInfo": "ballerinax:redis:3.0.2", "kind": "BASIC_TYPE", "selected": false } ] }, - "secureSocket": { + "isClusterConnection": { "metadata": { - "label": "secureSocket", + "label": "isClusterConnection", "description": "" }, "valueType": "EXPRESSION", - "valueTypeConstraint": "redis:SecureSocket", - "placeholder": "{}", + "valueTypeConstraint": "boolean", + "placeholder": "false", "optional": true, "editable": true, "advanced": true, "codedata": { "kind": "INCLUDED_FIELD", - "originalName": "secureSocket" + "originalName": "isClusterConnection" }, "typeMembers": [ { - "type": "SecureSocket", - "packageInfo": "ballerinax:redis:3.0.2", - "kind": "RECORD_TYPE", + "type": "boolean", + "packageInfo": "", + "kind": "BASIC_TYPE", "selected": false } ] diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-snowflake.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-snowflake.json index 9eb087996..1ff6f9eb9 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-snowflake.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/new_connection-snowflake.json @@ -21,38 +21,14 @@ "object": "Client", "symbol": "init", "version": "2.0.0", - "id": 861 + "id": 680 }, "returning": false, "properties": { - "account_identifier": { - "metadata": { - "label": "account_identifier", - "description": "The Snowflake account identifier" - }, - "valueType": "EXPRESSION", - "valueTypeConstraint": "string", - "placeholder": "\"\"", - "optional": false, - "editable": true, - "advanced": false, - "codedata": { - "kind": "REQUIRED", - "originalName": "account_identifier" - }, - "typeMembers": [ - { - "type": "string", - "packageInfo": "", - "kind": "BASIC_TYPE", - "selected": false - } - ] - }, - "user": { + "password": { "metadata": { - "label": "user", - "description": "The username of the Snowflake account" + "label": "password", + "description": "The password of the Snowflake account" }, "valueType": "EXPRESSION", "valueTypeConstraint": "string", @@ -62,7 +38,7 @@ "advanced": false, "codedata": { "kind": "REQUIRED", - "originalName": "user" + "originalName": "password" }, "typeMembers": [ { @@ -73,10 +49,10 @@ } ] }, - "password": { + "account_identifier": { "metadata": { - "label": "password", - "description": "The password of the Snowflake account" + "label": "account_identifier", + "description": "The Snowflake account identifier" }, "valueType": "EXPRESSION", "valueTypeConstraint": "string", @@ -86,7 +62,7 @@ "advanced": false, "codedata": { "kind": "REQUIRED", - "originalName": "password" + "originalName": "account_identifier" }, "typeMembers": [ { @@ -158,6 +134,30 @@ } ] }, + "user": { + "metadata": { + "label": "user", + "description": "The username of the Snowflake account" + }, + "valueType": "EXPRESSION", + "valueTypeConstraint": "string", + "placeholder": "\"\"", + "optional": false, + "editable": true, + "advanced": false, + "codedata": { + "kind": "REQUIRED", + "originalName": "user" + }, + "typeMembers": [ + { + "type": "string", + "packageInfo": "", + "kind": "BASIC_TYPE", + "selected": false + } + ] + }, "type": { "metadata": { "label": "Variable Type", diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/remote_action_call-covid-getStatusByCountry.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/remote_action_call-covid-getStatusByCountry.json index 47ae47da2..aa05c14a8 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/remote_action_call-covid-getStatusByCountry.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/remote_action_call-covid-getStatusByCountry.json @@ -28,7 +28,7 @@ "object": "Client", "symbol": "getStatusByCountry", "version": "1.5.1", - "id": 2909 + "id": 2652 }, "returning": false, "properties": { @@ -44,6 +44,36 @@ "editable": false, "advanced": false }, + "yesterday": { + "metadata": { + "label": "yesterday", + "description": "Enter `true`(1) to receive data reported a day ago. Default is `false`(0) " + }, + "valueType": "EXPRESSION", + "valueTypeConstraint": "string|()", + "placeholder": "()", + "optional": true, + "editable": true, + "advanced": true, + "codedata": { + "kind": "DEFAULTABLE", + "originalName": "yesterday" + }, + "typeMembers": [ + { + "type": "()", + "packageInfo": "", + "kind": "BASIC_TYPE", + "selected": false + }, + { + "type": "string", + "packageInfo": "", + "kind": "BASIC_TYPE", + "selected": false + } + ] + }, "country": { "metadata": { "label": "country", @@ -68,10 +98,10 @@ } ] }, - "yesterday": { + "twoDaysAgo": { "metadata": { - "label": "yesterday", - "description": "Enter `true`(1) to receive data reported a day ago. Default is `false`(0) " + "label": "twoDaysAgo", + "description": "Enter `true`(1) to receive data reported two days ago. Default is `false`(0) " }, "valueType": "EXPRESSION", "valueTypeConstraint": "string|()", @@ -81,7 +111,7 @@ "advanced": true, "codedata": { "kind": "DEFAULTABLE", - "originalName": "yesterday" + "originalName": "twoDaysAgo" }, "typeMembers": [ { @@ -98,10 +128,10 @@ } ] }, - "twoDaysAgo": { + "allowNull": { "metadata": { - "label": "twoDaysAgo", - "description": "Enter `true`(1) to receive data reported two days ago. Default is `false`(0) " + "label": "allowNull", + "description": "By default, value is 0. Enter `1` to allow nulls to be returned " }, "valueType": "EXPRESSION", "valueTypeConstraint": "string|()", @@ -111,7 +141,7 @@ "advanced": true, "codedata": { "kind": "DEFAULTABLE", - "originalName": "twoDaysAgo" + "originalName": "allowNull" }, "typeMembers": [ { @@ -152,36 +182,6 @@ } ] }, - "allowNull": { - "metadata": { - "label": "allowNull", - "description": "By default, value is 0. Enter `1` to allow nulls to be returned " - }, - "valueType": "EXPRESSION", - "valueTypeConstraint": "string|()", - "placeholder": "()", - "optional": true, - "editable": true, - "advanced": true, - "codedata": { - "kind": "DEFAULTABLE", - "originalName": "allowNull" - }, - "typeMembers": [ - { - "type": "()", - "packageInfo": "", - "kind": "BASIC_TYPE", - "selected": false - }, - { - "type": "string", - "packageInfo": "", - "kind": "BASIC_TYPE", - "selected": false - } - ] - }, "type": { "metadata": { "label": "Variable Type", diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/remote_action_call-http-get.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/remote_action_call-http-get.json index 6a9641075..c0ce732b1 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/remote_action_call-http-get.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/remote_action_call-http-get.json @@ -28,7 +28,7 @@ "object": "Client", "symbol": "get", "version": "2.12.0", - "id": 546, + "id": 525, "inferredReturnType": "targetType" }, "returning": false, diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/remote_action_call-http-post.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/remote_action_call-http-post.json index 6b4ca4b7d..25f466d57 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/remote_action_call-http-post.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/remote_action_call-http-post.json @@ -28,7 +28,7 @@ "object": "Client", "symbol": "post", "version": "2.12.0", - "id": 536, + "id": 515, "inferredReturnType": "targetType" }, "returning": false, diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/remote_action_call-mysql-query.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/remote_action_call-mysql-query.json index f61a1c501..8134fe7f3 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/remote_action_call-mysql-query.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/remote_action_call-mysql-query.json @@ -30,7 +30,7 @@ "object": "Client", "symbol": "query", "version": "1.14.0", - "id": 633, + "id": 663, "inferredReturnType": "stream" }, "returning": false, diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/remote_action_call-mysql-queryRow.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/remote_action_call-mysql-queryRow.json index d36ef2903..c06840665 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/remote_action_call-mysql-queryRow.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/remote_action_call-mysql-queryRow.json @@ -30,7 +30,7 @@ "object": "Client", "symbol": "queryRow", "version": "1.14.0", - "id": 634, + "id": 664, "inferredReturnType": "returnType" }, "returning": false, diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/remote_action_call-redis-get.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/remote_action_call-redis-get.json index 447f1cf88..938d3aac8 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/remote_action_call-redis-get.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/remote_action_call-redis-get.json @@ -28,7 +28,7 @@ "object": "Client", "symbol": "get", "version": "3.1.0", - "id": 684 + "id": 834 }, "returning": false, "properties": { diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/remote_action_call-redis-set.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/remote_action_call-redis-set.json index 19b5eb6e5..538639d6c 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/remote_action_call-redis-set.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/remote_action_call-redis-set.json @@ -28,7 +28,7 @@ "object": "Client", "symbol": "set", "version": "3.1.0", - "id": 692 + "id": 842 }, "returning": false, "properties": { @@ -44,10 +44,10 @@ "editable": false, "advanced": false }, - "key": { + "value": { "metadata": { - "label": "key", - "description": "Key referring to a value" + "label": "value", + "description": "Values" }, "valueType": "EXPRESSION", "valueTypeConstraint": "string", @@ -57,7 +57,7 @@ "advanced": false, "codedata": { "kind": "REQUIRED", - "originalName": "key" + "originalName": "value" }, "typeMembers": [ { @@ -68,10 +68,10 @@ } ] }, - "value": { + "key": { "metadata": { - "label": "value", - "description": "Values" + "label": "key", + "description": "Key referring to a value" }, "valueType": "EXPRESSION", "valueTypeConstraint": "string", @@ -81,7 +81,7 @@ "advanced": false, "codedata": { "kind": "REQUIRED", - "originalName": "value" + "originalName": "key" }, "typeMembers": [ { diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/remote_action_call-snowflake-query.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/remote_action_call-snowflake-query.json index ebb43a2c2..774628318 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/remote_action_call-snowflake-query.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/remote_action_call-snowflake-query.json @@ -28,7 +28,7 @@ "object": "Client", "symbol": "query", "version": "2.1.0", - "id": 862, + "id": 681, "inferredReturnType": "stream" }, "returning": false, diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/resource_action_call-docusign.dsadmin-get.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/resource_action_call-docusign.dsadmin-get.json index 1afffb004..ac2ce5b27 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/resource_action_call-docusign.dsadmin-get.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/resource_action_call-docusign.dsadmin-get.json @@ -27,7 +27,7 @@ "module": "docusign.dsadmin", "object": "Client", "symbol": "get", - "id": 919 + "id": 767 }, "returning": false, "properties": { @@ -91,10 +91,10 @@ }, "typeMembers": [] }, - "start": { + "take": { "metadata": { - "label": "start", - "description": "Index of first item to include in the response. The default value is 0." + "label": "take", + "description": "Page size of the response. The default value is 20." }, "valueType": "EXPRESSION", "valueTypeConstraint": "int:Signed32|()", @@ -104,7 +104,7 @@ "advanced": true, "codedata": { "kind": "DEFAULTABLE", - "originalName": "'start" + "originalName": "take" }, "typeMembers": [ { @@ -121,10 +121,10 @@ } ] }, - "take": { + "end": { "metadata": { - "label": "take", - "description": "Page size of the response. The default value is 20." + "label": "end", + "description": "Index of the last item to include in the response. Ignored if `take` parameter is specified." }, "valueType": "EXPRESSION", "valueTypeConstraint": "int:Signed32|()", @@ -134,7 +134,7 @@ "advanced": true, "codedata": { "kind": "DEFAULTABLE", - "originalName": "take" + "originalName": "end" }, "typeMembers": [ { @@ -151,10 +151,10 @@ } ] }, - "end": { + "start": { "metadata": { - "label": "end", - "description": "Index of the last item to include in the response. Ignored if `take` parameter is specified." + "label": "start", + "description": "Index of first item to include in the response. The default value is 0." }, "valueType": "EXPRESSION", "valueTypeConstraint": "int:Signed32|()", @@ -164,7 +164,7 @@ "advanced": true, "codedata": { "kind": "DEFAULTABLE", - "originalName": "end" + "originalName": "'start" }, "typeMembers": [ { diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/resource_action_call-github.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/resource_action_call-github.json index ac3613808..9147f4ee7 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/resource_action_call-github.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/resource_action_call-github.json @@ -27,7 +27,7 @@ "module": "github", "object": "Client", "symbol": "post", - "id": 1717 + "id": 936 }, "returning": false, "properties": { diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/resource_action_call-http-get.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/resource_action_call-http-get.json index cef0a47e9..fe11a60ee 100644 --- a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/resource_action_call-http-get.json +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/node_template/config/resource_action_call-http-get.json @@ -28,7 +28,7 @@ "module": "http", "object": "Client", "symbol": "get", - "id": 545 + "id": 524 }, "returning": false, "properties": { diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/to_source/config/function_call-io-fileReadCsv.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/to_source/config/function_call-io-fileReadCsv.json new file mode 100644 index 000000000..28b6841b8 --- /dev/null +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/to_source/config/function_call-io-fileReadCsv.json @@ -0,0 +1,166 @@ +{ + "source": "empty.bal", + "description": "Sample diagram node", + "diagram": { + "id": "31", + "metadata": { + "label": "fileReadCsv", + "description": "Read file content as a CSV.\nWhen the expected data type is record[], the first entry of the csv file should contain matching headers.\n```ballerina\nstring[][]|io:Error content = io:fileReadCsv(\"./resources/myfile.csv\");\nrecord{}[]|io:Error content = io:fileReadCsv(\"./resources/myfile.csv\");\n```", + "icon": "https://bcentral-packageicons.azureedge.net/images/ballerina_io_1.6.1.png" + }, + "codedata": { + "node": "FUNCTION_CALL", + "org": "ballerina", + "module": "io", + "symbol": "fileReadCsv", + "version": "1.6.1", + "id": 0, + "inferredReturnType": "returnType[]", + "lineRange": { + "fileName": "test.bal", + "startLine": { + "line": 0, + "offset": 0 + }, + "endLine": { + "line": 0, + "offset": 0 + } + } + }, + "returning": false, + "properties": { + "returnType": { + "metadata": { + "label": "returnType", + "description": "The type of the return value (string[] or a Ballerina record)" + }, + "value": "Row", + "valueType": "TYPE", + "valueTypeConstraint": "string[]|map", + "placeholder": "string[]|map", + "optional": false, + "editable": true, + "advanced": false, + "codedata": { + "kind": "PARAM_FOR_TYPE_INFER", + "originalName": "returnType" + } + }, + "path": { + "metadata": { + "label": "path", + "description": "The CSV file path" + }, + "valueType": "EXPRESSION", + "valueTypeConstraint": "string", + "placeholder": "\"\"", + "optional": false, + "editable": true, + "advanced": false, + "codedata": { + "kind": "REQUIRED", + "originalName": "path" + }, + "typeMembers": [ + { + "type": "string", + "packageInfo": "", + "kind": "BASIC_TYPE", + "selected": false + } + ] + }, + "skipHeaders": { + "metadata": { + "label": "skipHeaders", + "description": "Number of headers, which should be skipped prior to reading records" + }, + "valueType": "EXPRESSION", + "valueTypeConstraint": "int", + "placeholder": "0", + "optional": true, + "editable": true, + "advanced": true, + "codedata": { + "kind": "DEFAULTABLE", + "originalName": "skipHeaders" + }, + "typeMembers": [ + { + "type": "int", + "packageInfo": "", + "kind": "BASIC_TYPE", + "selected": false + } + ] + }, + "type": { + "metadata": { + "label": "Variable Type", + "description": "Type of the variable" + }, + "valueType": "TYPE", + "value": "returnType[]", + "placeholder": "var", + "optional": false, + "editable": false, + "advanced": false, + "codedata": {} + }, + "variable": { + "metadata": { + "label": "Variable Name", + "description": "Name of the variable" + }, + "valueType": "IDENTIFIER", + "value": "returnType", + "optional": false, + "editable": true, + "advanced": false + }, + "checkError": { + "metadata": { + "label": "Check Error", + "description": "Trigger error flow" + }, + "valueType": "FLAG", + "value": true, + "optional": false, + "editable": true, + "advanced": true + } + }, + "flags": 0 + }, + "output": { + "empty.bal": [ + { + "range": { + "start": { + "line": 0, + "character": 0 + }, + "end": { + "line": 0, + "character": 0 + } + }, + "newText": "import ballerina/io;" + }, + { + "range": { + "start": { + "line": 0, + "character": 0 + }, + "end": { + "line": 0, + "character": 0 + } + }, + "newText": "Row[] returnType = check io:fileReadCsv(\"\");" + } + ] + } +} diff --git a/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/to_source/config/function_call-io-println.json b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/to_source/config/function_call-io-println.json new file mode 100644 index 000000000..47f4f874a --- /dev/null +++ b/flow-model-generator/modules/flow-model-generator-ls-extension/src/test/resources/to_source/config/function_call-io-println.json @@ -0,0 +1,89 @@ +{ + "source": "empty.bal", + "description": "Sample diagram node", + "diagram": { + "id": "31", + "metadata": { + "label": "println", + "description": "Prints `any`, `error` or string templates(such as `The respective int value is ${val}`) value(s) to the STDOUT\nfollowed by a new line.\n```ballerina\nio:println(\"Start processing the CSV file from \", srcFileName);\n```\n", + "icon": "https://bcentral-packageicons.azureedge.net/images/ballerina_io_1.6.1.png" + }, + "codedata": { + "node": "FUNCTION_CALL", + "org": "ballerina", + "module": "io", + "symbol": "println", + "version": "1.6.1", + "id": 351, + "lineRange": { + "fileName": "test.bal", + "startLine": { + "line": 0, + "offset": 0 + }, + "endLine": { + "line": 0, + "offset": 0 + } + } + }, + "returning": false, + "properties": { + "values": { + "metadata": { + "label": "values", + "description": "The value(s) to be printed" + }, + "valueType": "EXPRESSION_SET", + "valueTypeConstraint": "io:Printable", + "placeholder": "()", + "optional": false, + "editable": true, + "advanced": false, + "codedata": { + "kind": "REST_PARAMETER", + "originalName": "values" + }, + "typeMembers": [ + { + "type": "Printable", + "packageInfo": "ballerina:io:1.6.1", + "kind": "ARRAY_TYPE", + "selected": false + } + ] + } + }, + "flags": 0 + }, + "output": { + "empty.bal": [ + { + "range": { + "start": { + "line": 0, + "character": 0 + }, + "end": { + "line": 0, + "character": 0 + } + }, + "newText": "import ballerina/io;" + }, + { + "range": { + "start": { + "line": 0, + "character": 0 + }, + "end": { + "line": 0, + "character": 0 + } + }, + "newText": "io:println();" + } + ] + } +} diff --git a/flow-model-generator/modules/flow-model-index-generator/src/main/java/io/ballerina/indexgenerator/IndexGenerator.java b/flow-model-generator/modules/flow-model-index-generator/src/main/java/io/ballerina/indexgenerator/IndexGenerator.java index 1f8d6b5ac..3a273f33d 100644 --- a/flow-model-generator/modules/flow-model-index-generator/src/main/java/io/ballerina/indexgenerator/IndexGenerator.java +++ b/flow-model-generator/modules/flow-model-index-generator/src/main/java/io/ballerina/indexgenerator/IndexGenerator.java @@ -31,7 +31,6 @@ import io.ballerina.compiler.api.symbols.ErrorTypeSymbol; import io.ballerina.compiler.api.symbols.FunctionSymbol; import io.ballerina.compiler.api.symbols.FunctionTypeSymbol; -import io.ballerina.compiler.api.symbols.IntersectionTypeSymbol; import io.ballerina.compiler.api.symbols.MapTypeSymbol; import io.ballerina.compiler.api.symbols.MethodSymbol; import io.ballerina.compiler.api.symbols.ObjectTypeSymbol; @@ -59,6 +58,7 @@ import io.ballerina.flowmodelgenerator.core.utils.ParamUtils; import io.ballerina.modelgenerator.commons.CommonUtils; import io.ballerina.modelgenerator.commons.DefaultValueGeneratorUtil; +import io.ballerina.modelgenerator.commons.FunctionDataBuilder; import io.ballerina.modelgenerator.commons.ModuleInfo; import io.ballerina.modelgenerator.commons.PackageUtil; import io.ballerina.modelgenerator.commons.ParameterData; @@ -252,7 +252,8 @@ private static int processFunctionSymbol(SemanticModel semanticModel, FunctionSy .filter(paramSym -> paramSym.paramKind() == ParameterKind.DEFAULTABLE) .forEach(paramSymbol -> paramNameList.add(paramSymbol.getName().orElse("")))); - Map returnTypeMap = allMembers(returnTypeSymbol.orElse(null)); + Map returnTypeMap = new HashMap<>(); + returnTypeSymbol.ifPresent(typeSymbol -> FunctionDataBuilder.allMembers(returnTypeMap, typeSymbol)); for (String paramName : paramNameList) { if (returnTypeMap.containsKey(paramName)) { TypeSymbol typeDescriptor = returnTypeMap.get(paramName); @@ -301,34 +302,6 @@ private static int processFunctionSymbol(SemanticModel semanticModel, FunctionSy return functionId; } - private static Map allMembers(TypeSymbol typeSymbol) { - Map members = new HashMap<>(); - if (typeSymbol == null) { - return members; - } - - switch (typeSymbol.typeKind()) { - case UNION -> { - UnionTypeSymbol unionTypeSymbol = (UnionTypeSymbol) typeSymbol; - unionTypeSymbol.memberTypeDescriptors() - .forEach(memberType -> members.put(memberType.getName().orElse(""), memberType)); - } - case INTERSECTION -> { - IntersectionTypeSymbol intersectionTypeSymbol = (IntersectionTypeSymbol) typeSymbol; - intersectionTypeSymbol.memberTypeDescriptors() - .forEach(memberType -> members.put(memberType.getName().orElse(""), memberType)); - } - case STREAM -> { - StreamTypeSymbol streamTypeSymbol = (StreamTypeSymbol) typeSymbol; - members.put(streamTypeSymbol.typeParameter().getName().orElse(""), streamTypeSymbol.typeParameter()); - members.put(streamTypeSymbol.completionValueTypeParameter().getName().orElse(""), - streamTypeSymbol.completionValueTypeParameter()); - } - default -> members.put(typeSymbol.getName().orElse(""), typeSymbol); - } - return members; - } - private static void processParameterSymbol(ParameterSymbol paramSymbol, Map documentationMap, int functionId, Package resolvedPackage, ParamForTypeInfer paramForTypeInfer, diff --git a/model-generator-commons/src/main/java/io/ballerina/modelgenerator/commons/FunctionDataBuilder.java b/model-generator-commons/src/main/java/io/ballerina/modelgenerator/commons/FunctionDataBuilder.java index 0c8ad6ef0..a48e41d1f 100644 --- a/model-generator-commons/src/main/java/io/ballerina/modelgenerator/commons/FunctionDataBuilder.java +++ b/model-generator-commons/src/main/java/io/ballerina/modelgenerator/commons/FunctionDataBuilder.java @@ -345,7 +345,8 @@ private ReturnData getReturnData(FunctionSymbol symbol) { .filter(paramSym -> paramSym.paramKind() == ParameterKind.DEFAULTABLE) .forEach(paramSymbol -> paramNameList.add(paramSymbol.getName().orElse("")))); - Map returnTypeMap = allMembers(returnTypeSymbol.orElse(null)); + Map returnTypeMap = new HashMap<>(); + returnTypeSymbol.ifPresent(typeSymbol -> allMembers(returnTypeMap, typeSymbol)); for (String paramName : paramNameList) { if (returnTypeMap.containsKey(paramName)) { TypeSymbol typeDescriptor = returnTypeMap.get(paramName); @@ -696,32 +697,43 @@ private Document findDocument(Package pkg, String path) { } } - private static Map allMembers(TypeSymbol typeSymbol) { - Map members = new HashMap<>(); - if (typeSymbol == null) { - return members; - } + public static void allMembers(Map typeMap, TypeSymbol typeSymbol) { switch (typeSymbol.typeKind()) { case UNION -> { UnionTypeSymbol unionTypeSymbol = (UnionTypeSymbol) typeSymbol; - unionTypeSymbol.memberTypeDescriptors() - .forEach(memberType -> members.put(memberType.getName().orElse(""), memberType)); + unionTypeSymbol.memberTypeDescriptors().forEach(memberType -> allMembers(typeMap, memberType)); } case INTERSECTION -> { IntersectionTypeSymbol intersectionTypeSymbol = (IntersectionTypeSymbol) typeSymbol; - intersectionTypeSymbol.memberTypeDescriptors() - .forEach(memberType -> members.put(memberType.getName().orElse(""), memberType)); + intersectionTypeSymbol.memberTypeDescriptors().forEach(memberType -> allMembers(typeMap, memberType)); } case STREAM -> { StreamTypeSymbol streamTypeSymbol = (StreamTypeSymbol) typeSymbol; - members.put(streamTypeSymbol.typeParameter().getName().orElse(""), streamTypeSymbol.typeParameter()); - members.put(streamTypeSymbol.completionValueTypeParameter().getName().orElse(""), - streamTypeSymbol.completionValueTypeParameter()); + allMembers(typeMap, streamTypeSymbol.typeParameter()); + allMembers(typeMap, streamTypeSymbol.completionValueTypeParameter()); + } + case ARRAY -> { + ArrayTypeSymbol arrayTypeSymbol = (ArrayTypeSymbol) typeSymbol; + allMembers(typeMap, arrayTypeSymbol.memberTypeDescriptor()); + } + case MAP -> { + MapTypeSymbol mapTypeSymbol = (MapTypeSymbol) typeSymbol; + allMembers(typeMap, mapTypeSymbol.typeParam()); + } + case TABLE -> { + TableTypeSymbol tableTypeSymbol = (TableTypeSymbol) typeSymbol; + allMembers(typeMap, tableTypeSymbol.rowTypeParameter()); + tableTypeSymbol.keyConstraintTypeParameter().ifPresent(keyType -> allMembers(typeMap, keyType)); + } + case RECORD -> { + RecordTypeSymbol recordTypeSymbol = (RecordTypeSymbol) typeSymbol; + recordTypeSymbol.fieldDescriptors() + .forEach((key, value) -> allMembers(typeMap, value.typeDescriptor())); + recordTypeSymbol.restTypeDescriptor().ifPresent(restType -> allMembers(typeMap, restType)); } - default -> members.put(typeSymbol.getName().orElse(""), typeSymbol); + default -> typeMap.put(typeSymbol.getName().orElse(""), typeSymbol); } - return members; } private ResourcePathTemplate buildResourcePathTemplate(FunctionSymbol functionSymbol) {