Skip to content

Commit b3ee07a

Browse files
authored
Merge pull request #38 from YasithD/inline-data-mapper-sync
Sync main to ballerina-inline-data-mapper
2 parents e255939 + 9027f02 commit b3ee07a

File tree

43 files changed

+1073
-356
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+1073
-356
lines changed

common/scripts/env-webpack-helper.js

Lines changed: 25 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -23,37 +23,31 @@
2323
* 3. Only define variables that are explicitly declared in .env file
2424
*
2525
* @param {Object} env - Parsed environment variables from .env file (from dotenv.config().parsed)
26-
* @returns {Object} Environment variables object ready for webpack.DefinePlugin
26+
* @returns {Object} Object containing envKeys for webpack.DefinePlugin and missingVars array
2727
*/
2828
function createEnvDefinePlugin(env) {
29-
30-
const envKeys = Object.create(null);
31-
const missingVars = [];
32-
33-
if (env) {
34-
Object.entries(env).forEach(([key, value]) => {
35-
if (value !== undefined && value !== '') {
36-
envKeys[`process.env.${key}`] = JSON.stringify(value);
37-
}
38-
else if (process.env[key] !== undefined && process.env[key] !== '') {
39-
envKeys[`process.env.${key}`] = JSON.stringify(process.env[key]);
40-
}
41-
else {
42-
missingVars.push(key);
43-
}
44-
});
45-
}
46-
47-
if (missingVars.length > 0) {
48-
throw new Error(
49-
`Missing required environment variables: ${missingVars.join(', ')}\n` +
50-
`Please provide values in either .env file or runtime environment.\n`
51-
);
29+
30+
const envKeys = Object.create(null);
31+
const missingVars = [];
32+
33+
if (env) {
34+
Object.entries(env).forEach(([key, value]) => {
35+
if (value !== undefined && value !== '') {
36+
envKeys[`process.env.${key}`] = JSON.stringify(value);
37+
}
38+
else if (process.env[key] !== undefined && process.env[key] !== '') {
39+
envKeys[`process.env.${key}`] = JSON.stringify(process.env[key]);
40+
}
41+
else {
42+
missingVars.push(key);
43+
}
44+
});
45+
}
46+
47+
return { envKeys, missingVars };
5248
}
53-
54-
return envKeys;
55-
}
56-
57-
module.exports = {
58-
createEnvDefinePlugin
59-
};
49+
50+
module.exports = {
51+
createEnvDefinePlugin
52+
};
53+

rush.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
* LTS schedule: https://nodejs.org/en/about/releases/
3939
* LTS versions: https://nodejs.org/en/download/releases/
4040
*/
41-
"nodeSupportedVersionRange": ">=20.0.0 <=22.16.0",
41+
"nodeSupportedVersionRange": ">=20.0.0 <23.0.0",
4242
/**
4343
* If the version check above fails, Rush will display a message showing the current
4444
* node version and the supported version range. You can use this setting to provide

workspaces/ballerina/ballerina-core/src/interfaces/extended-lang-client.ts

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1433,6 +1433,24 @@ export interface ResourceSourceCodeResponse {
14331433
[key: string]: TextEdit[];
14341434
};
14351435
}
1436+
1437+
export interface ResourceReturnTypesRequest {
1438+
filePath?: string;
1439+
context?: string;
1440+
}
1441+
1442+
export interface ResponseCode {
1443+
category: string;
1444+
label: string;
1445+
type: string;
1446+
statusCode: string;
1447+
hasBody?: boolean;
1448+
}
1449+
export interface ResourceReturnTypesResponse {
1450+
completions: ResponseCode[];
1451+
}
1452+
1453+
14361454
// <-------- Service Designer Related ------->
14371455

14381456

@@ -1647,6 +1665,7 @@ export interface BIInterface extends BaseLangClientInterface {
16471665
getHttpResourceModel: (params: HttpResourceModelRequest) => Promise<HttpResourceModelResponse>;
16481666
addResourceSourceCode: (params: FunctionSourceCodeRequest) => Promise<ResourceSourceCodeResponse>;
16491667
addFunctionSourceCode: (params: FunctionSourceCodeRequest) => Promise<ResourceSourceCodeResponse>;
1668+
getResourceReturnTypes: (params: ResourceReturnTypesRequest) => Promise<ResourceReturnTypesResponse>;
16501669

16511670
// Function APIs
16521671
getFunctionNode: (params: FunctionNodeRequest) => Promise<FunctionNodeResponse>;

workspaces/ballerina/ballerina-core/src/rpc-types/service-designer/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
*/
1818

1919
import { UpdatedArtifactsResponse } from "../../interfaces/bi";
20-
import { ListenerModelRequest, ListenerModelResponse, ServiceModelRequest, ServiceModelResponse, ServiceModelFromCodeRequest, ServiceModelFromCodeResponse, HttpResourceModelRequest, HttpResourceModelResponse, FunctionSourceCodeRequest, ListenerSourceCodeRequest, ListenersRequest, ListenersResponse, ServiceSourceCodeRequest, ListenerModelFromCodeRequest, ListenerModelFromCodeResponse, TriggerModelsRequest, TriggerModelsResponse, FunctionModelRequest, FunctionModelResponse } from "../../interfaces/extended-lang-client";
20+
import { ListenerModelRequest, ListenerModelResponse, ServiceModelRequest, ServiceModelResponse, ServiceModelFromCodeRequest, ServiceModelFromCodeResponse, HttpResourceModelRequest, HttpResourceModelResponse, FunctionSourceCodeRequest, ListenerSourceCodeRequest, ListenersRequest, ListenersResponse, ServiceSourceCodeRequest, ListenerModelFromCodeRequest, ListenerModelFromCodeResponse, TriggerModelsRequest, TriggerModelsResponse, FunctionModelRequest, FunctionModelResponse, ResourceReturnTypesRequest, ResourceReturnTypesResponse } from "../../interfaces/extended-lang-client";
2121
import {
2222
ExportOASRequest,
2323
ExportOASResponse,
@@ -37,6 +37,7 @@ export interface ServiceDesignerAPI {
3737
updateServiceSourceCode: (params: ServiceSourceCodeRequest) => Promise<UpdatedArtifactsResponse>;
3838
getServiceModelFromCode: (params: ServiceModelFromCodeRequest) => Promise<ServiceModelFromCodeResponse>;
3939
getHttpResourceModel: (params: HttpResourceModelRequest) => Promise<HttpResourceModelResponse>;
40+
getResourceReturnTypes: (params: ResourceReturnTypesRequest) => Promise<ResourceReturnTypesResponse>;
4041
addResourceSourceCode: (params: FunctionSourceCodeRequest) => Promise<UpdatedArtifactsResponse>;
4142
addFunctionSourceCode: (params: FunctionSourceCodeRequest) => Promise<UpdatedArtifactsResponse>;
4243
updateResourceSourceCode: (params: FunctionSourceCodeRequest) => Promise<UpdatedArtifactsResponse>;

workspaces/ballerina/ballerina-core/src/rpc-types/service-designer/interfaces.ts

Lines changed: 0 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -24,73 +24,6 @@ export interface ExportOASRequest {
2424
export interface ExportOASResponse {
2525
openSpecFile: string;
2626
}
27-
export interface ResponseCode {
28-
code: number;
29-
title: string;
30-
source: string;
31-
}
32-
33-
export const responseCodes: ResponseCode[] = [
34-
{ code: 200, title: "200 - OK", source: "http:Ok" },
35-
{ code: 100, title: "100 - Continue", source: "http:Continue" },
36-
{ code: 101, title: "101 - Switching Protocols", source: "http:SwitchingProtocols" },
37-
{ code: 201, title: "201 - Created", source: "http:Created" },
38-
{ code: 202, title: "202 - Accepted", source: "http:Accepted" },
39-
{ code: 203, title: "203 - Non-Authoritative Information", source: "http:NonAuthoritativeInformation" },
40-
{ code: 204, title: "204 - No Content", source: "http:NoContent" },
41-
{ code: 205, title: "205 - Reset Content", source: "http:ResetContent" },
42-
{ code: 206, title: "206 - Partial Content", source: "http:PartialContent" },
43-
{ code: 207, title: "207 - Multi-Status", source: "http:MultiStatus" },
44-
{ code: 208, title: "208 - Already Reported", source: "http:AlreadyReported" },
45-
{ code: 226, title: "226 - IM Used", source: "http:IMUsed" },
46-
{ code: 300, title: "300 - Multiple Choices", source: "http:MultipleChoices" },
47-
{ code: 301, title: "301 - Moved Permanently", source: "http:MovedPermanently" },
48-
{ code: 302, title: "302 - Found", source: "http:Found" },
49-
{ code: 303, title: "303 - See Other", source: "http:SeeOther" },
50-
{ code: 304, title: "304 - Not Modified", source: "http:NotModified" },
51-
{ code: 305, title: "305 - Use Proxy", source: "http:UseProxy" },
52-
{ code: 307, title: "307 - Temporary Redirect", source: "http:TemporaryRedirect" },
53-
{ code: 308, title: "308 - Permanent Redirect", source: "http:PermanentRedirect" },
54-
{ code: 400, title: "400 - Bad Request", source: "http:BadRequest" },
55-
{ code: 401, title: "401 - Unauthorized", source: "http:Unauthorized" },
56-
{ code: 402, title: "402 - Payment Required", source: "http:PaymentRequired" },
57-
{ code: 403, title: "403 - Forbidden", source: "http:Forbidden" },
58-
{ code: 404, title: "404 - Not Found", source: "http:NotFound" },
59-
{ code: 405, title: "405 - Method Not Allowed", source: "http:MethodNotAllowed" },
60-
{ code: 406, title: "406 - Not Acceptable", source: "http:NotAcceptable" },
61-
{ code: 407, title: "407 - Proxy Authentication Required", source: "http:ProxyAuthenticationRequired" },
62-
{ code: 408, title: "408 - Request Timeout", source: "http:RequestTimeout" },
63-
{ code: 409, title: "409 - Conflict", source: "http:Conflict" },
64-
{ code: 410, title: "410 - Gone", source: "http:Gone" },
65-
{ code: 411, title: "411 - Length Required", source: "http:LengthRequired" },
66-
{ code: 412, title: "412 - Precondition Failed", source: "http:PreconditionFailed" },
67-
{ code: 413, title: "413 - Payload Too Large", source: "http:PayloadTooLarge" },
68-
{ code: 414, title: "414 - URI Too Long", source: "http:UriTooLong" },
69-
{ code: 415, title: "415 - Unsupported Media Type", source: "http:UnsupportedMediaType" },
70-
{ code: 416, title: "416 - Range Not Satisfiable", source: "http:RangeNotSatisfiable" },
71-
{ code: 417, title: "417 - Expectation Failed", source: "http:ExpectationFailed" },
72-
{ code: 422, title: "422 - Unprocessable Entity", source: "http:UnprocessableEntity" },
73-
{ code: 423, title: "423 - Locked", source: "http:Locked" },
74-
{ code: 424, title: "424 - Failed Dependency", source: "http:FailedDependency" },
75-
{ code: 425, title: "425 - Too Early", source: "http:TooEarly" },
76-
{ code: 426, title: "426 - Upgrade Required", source: "http:UpgradeRequired" },
77-
{ code: 428, title: "428 - Precondition Required", source: "http:PreconditionRequired" },
78-
{ code: 429, title: "429 - Too Many Requests", source: "http:TooManyRequests" },
79-
{ code: 431, title: "431 - Request Header Fields Too Large", source: "http:RequestHeaderFieldsTooLarge" },
80-
{ code: 451, title: "451 - Unavailable Due To Legal Reasons", source: "http:UnavailableDueToLegalReasons" },
81-
{ code: 500, title: "500 - Internal Server Error", source: "http:InternalServerError" },
82-
{ code: 501, title: "501 - Not Implemented", source: "http:NotImplemented" },
83-
{ code: 502, title: "502 - Bad Gateway", source: "http:BadGateway" },
84-
{ code: 503, title: "503 - Service Unavailable", source: "http:ServiceUnavailable" },
85-
{ code: 504, title: "504 - Gateway Timeout", source: "http:GatewayTimeout" },
86-
{ code: 505, title: "505 - HTTP Version Not Supported", source: "http:HttpVersionNotSupported" },
87-
{ code: 506, title: "506 - Variant Also Negotiates", source: "http:VariantAlsoNegotiates" },
88-
{ code: 507, title: "507 - Insufficient Storage", source: "http:InsufficientStorage" },
89-
{ code: 508, title: "508 - Loop Detected", source: "http:LoopDetected" },
90-
{ code: 510, title: "510 - Not Extended", source: "http:NotExtended" },
91-
{ code: 511, title: "511 - Network Authentication Required", source: "http:NetworkAuthorizationRequired" }
92-
]
93-
9427
export interface SourceUpdateResponse {
9528
artifacts: ProjectStructureArtifactResponse[]
9629
}

workspaces/ballerina/ballerina-core/src/rpc-types/service-designer/rpc-type.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
* THIS FILE INCLUDES AUTO GENERATED CODE
1919
*/
2020
import { UpdatedArtifactsResponse } from "../../interfaces/bi";
21-
import { ListenerModelRequest, ListenerModelResponse, ServiceModelRequest, ServiceModelResponse, ServiceModelFromCodeRequest, ServiceModelFromCodeResponse, HttpResourceModelRequest, HttpResourceModelResponse, FunctionSourceCodeRequest, ListenerSourceCodeRequest, ListenersRequest, ListenersResponse, ServiceSourceCodeRequest, ListenerModelFromCodeRequest, ListenerModelFromCodeResponse, TriggerModelsRequest, TriggerModelsResponse, FunctionModelRequest, FunctionModelResponse } from "../../interfaces/extended-lang-client";
21+
import { ListenerModelRequest, ListenerModelResponse, ServiceModelRequest, ServiceModelResponse, ServiceModelFromCodeRequest, ServiceModelFromCodeResponse, HttpResourceModelRequest, HttpResourceModelResponse, FunctionSourceCodeRequest, ListenerSourceCodeRequest, ListenersRequest, ListenersResponse, ServiceSourceCodeRequest, ListenerModelFromCodeRequest, ListenerModelFromCodeResponse, TriggerModelsRequest, TriggerModelsResponse, FunctionModelRequest, FunctionModelResponse, ResourceReturnTypesRequest, ResourceReturnTypesResponse } from "../../interfaces/extended-lang-client";
2222
import {
2323
ExportOASRequest,
2424
ExportOASResponse,
@@ -39,6 +39,7 @@ export const addServiceSourceCode: RequestType<ServiceSourceCodeRequest, Updated
3939
export const updateServiceSourceCode: RequestType<ServiceSourceCodeRequest, UpdatedArtifactsResponse> = { method: `${_preFix}/updateServiceSourceCode` };
4040
export const getServiceModelFromCode: RequestType<ServiceModelFromCodeRequest, ServiceModelFromCodeResponse> = { method: `${_preFix}/getServiceModelFromCode` };
4141
export const getHttpResourceModel: RequestType<HttpResourceModelRequest, HttpResourceModelResponse> = { method: `${_preFix}/getHttpResourceModel` };
42+
export const getResourceReturnTypes: RequestType<ResourceReturnTypesRequest, ResourceReturnTypesResponse> = { method: `${_preFix}/getResourceReturnTypes` };
4243
export const addResourceSourceCode: RequestType<FunctionSourceCodeRequest, UpdatedArtifactsResponse> = { method: `${_preFix}/addResourceSourceCode` };
4344
export const addFunctionSourceCode: RequestType<FunctionSourceCodeRequest, UpdatedArtifactsResponse> = { method: `${_preFix}/addFunctionSourceCode` };
4445
export const updateResourceSourceCode: RequestType<FunctionSourceCodeRequest, UpdatedArtifactsResponse> = { method: `${_preFix}/updateResourceSourceCode` };

workspaces/ballerina/ballerina-extension/package.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,19 @@
199199
"type": "boolean",
200200
"default": false,
201201
"description": "Use Ballerina distribution language server instead of bundled language server. Note: This will be automatically enabled for Ballerina versions older than 2201.12.3."
202+
},
203+
"ballerina.enableSequenceDiagramView":{
204+
"type": "boolean",
205+
"default": true,
206+
"description": "Enable the experimental Sequence Diagram View.",
207+
"tags": [
208+
"experimental"
209+
]
210+
},
211+
"ballerina.enableAiSuggestions": {
212+
"type": "boolean",
213+
"default": true,
214+
"description": "Enable AI suggestions in the Flow Diagram View."
202215
}
203216
}
204217
},

workspaces/ballerina/ballerina-extension/src/core/extended-language-client.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,8 @@ import {
225225
UpdateConfigVariableResponseV2,
226226
DeleteConfigVariableRequestV2,
227227
DeleteConfigVariableResponseV2,
228+
ResourceReturnTypesRequest,
229+
ResourceReturnTypesResponse,
228230
JsonToTypeRequest,
229231
JsonToTypeResponse,
230232
GetInlineDataMapperCodedataRequest,
@@ -353,6 +355,7 @@ enum EXTENDED_APIS {
353355
BI_SERVICE_GET_SERVICE_SOURCE = 'serviceDesign/getServiceFromSource',
354356
BI_SERVICE_UPDATE_SERVICE_CLASS = 'serviceDesign/updateServiceClass',
355357
BI_SERVICE_GET_RESOURCE = 'serviceDesign/getFunctionModel',
358+
BI_SERVICE_GET_RESOURCE_RETURN_TYPES = 'serviceDesign/types',
356359
BI_SERVICE_ADD_RESOURCE = 'serviceDesign/addResource',
357360
BI_SERVICE_ADD_FUNCTION = 'serviceDesign/addFunction',
358361
BI_SERVICE_UPDATE_RESOURCE = 'serviceDesign/updateFunction',
@@ -1049,6 +1052,10 @@ export class ExtendedLangClient extends LanguageClient implements ExtendedLangCl
10491052
return this.sendRequest<HttpResourceModelResponse>(EXTENDED_APIS.BI_SERVICE_GET_RESOURCE, params);
10501053
}
10511054

1055+
async getResourceReturnTypes(params: ResourceReturnTypesRequest): Promise<ResourceReturnTypesResponse> {
1056+
return this.sendRequest<ResourceReturnTypesResponse>(EXTENDED_APIS.BI_SERVICE_GET_RESOURCE_RETURN_TYPES, params);
1057+
}
1058+
10521059
async addResourceSourceCode(params: FunctionSourceCodeRequest): Promise<ResourceSourceCodeResponse> {
10531060
return this.sendRequest<ResourceSourceCodeResponse>(EXTENDED_APIS.BI_SERVICE_ADD_RESOURCE, params);
10541061
}

workspaces/ballerina/ballerina-extension/src/rpc-managers/bi-diagram/rpc-manager.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -661,12 +661,12 @@ export class BiDiagramRpcManager implements BIDiagramAPI {
661661
}
662662

663663

664-
// Function to open config toml
664+
// Function to open Config.toml
665665
async openConfigToml(params: OpenConfigTomlRequest): Promise<void> {
666666
return new Promise(async (resolve) => {
667667
const currentProject: BallerinaProject | undefined = await getCurrentBIProject(params.filePath);
668668

669-
const configFilePath = path.join(StateMachine.context().projectUri, "config.toml");
669+
const configFilePath = path.join(StateMachine.context().projectUri, "Config.toml");
670670
const ignoreFile = path.join(StateMachine.context().projectUri, ".gitignore");
671671
const docLink = "https://ballerina.io/learn/provide-values-to-configurable-variables/#provide-via-toml-syntax";
672672
const uri = Uri.file(configFilePath);
@@ -694,8 +694,8 @@ export class BiDiagramRpcManager implements BIDiagramAPI {
694694
if (fs.existsSync(ignoreFile)) {
695695
const ignoreUri = Uri.file(ignoreFile);
696696
let ignoreContent: string = fs.readFileSync(ignoreUri.fsPath, 'utf8');
697-
if (!ignoreContent.includes("config.toml")) {
698-
ignoreContent += `\n${"config.toml"}\n`;
697+
if (!ignoreContent.includes("Config.toml")) {
698+
ignoreContent += `\n${"Config.toml"}\n`;
699699
fs.writeFile(ignoreUri.fsPath, ignoreContent, function (error) {
700700
if (error) {
701701
return window.showErrorMessage('Unable to update the .gitIgnore file: ' + error);

workspaces/ballerina/ballerina-extension/src/rpc-managers/service-designer/rpc-handler.ts

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,31 +18,33 @@
1818
* THIS FILE INCLUDES AUTO GENERATED CODE
1919
*/
2020
import {
21-
ExportOASRequest,
22-
FunctionModelRequest,
23-
FunctionSourceCodeRequest,
24-
HttpResourceModelRequest,
25-
ListenerModelFromCodeRequest,
26-
ListenerModelRequest,
27-
ListenerSourceCodeRequest,
28-
ListenersRequest,
29-
ServiceModelFromCodeRequest,
30-
ServiceModelRequest,
31-
ServiceSourceCodeRequest,
32-
TriggerModelsRequest,
3321
addFunctionSourceCode,
3422
addListenerSourceCode,
3523
addResourceSourceCode,
3624
addServiceSourceCode,
3725
exportOASFile,
26+
ExportOASRequest,
27+
FunctionModelRequest,
28+
FunctionSourceCodeRequest,
3829
getFunctionModel,
3930
getHttpResourceModel,
4031
getListenerModel,
4132
getListenerModelFromCode,
4233
getListeners,
34+
getResourceReturnTypes,
4335
getServiceModel,
4436
getServiceModelFromCode,
4537
getTriggerModels,
38+
HttpResourceModelRequest,
39+
ListenerModelFromCodeRequest,
40+
ListenerModelRequest,
41+
ListenerSourceCodeRequest,
42+
ListenersRequest,
43+
ResourceReturnTypesRequest,
44+
ServiceModelFromCodeRequest,
45+
ServiceModelRequest,
46+
ServiceSourceCodeRequest,
47+
TriggerModelsRequest,
4648
updateListenerSourceCode,
4749
updateResourceSourceCode,
4850
updateServiceSourceCode
@@ -65,6 +67,7 @@ export function registerServiceDesignerRpcHandlers(messenger: Messenger) {
6567
messenger.onRequest(updateServiceSourceCode, (args: ServiceSourceCodeRequest) => rpcManger.updateServiceSourceCode(args));
6668
messenger.onRequest(getServiceModelFromCode, (args: ServiceModelFromCodeRequest) => rpcManger.getServiceModelFromCode(args));
6769
messenger.onRequest(getHttpResourceModel, (args: HttpResourceModelRequest) => rpcManger.getHttpResourceModel(args));
70+
messenger.onRequest(getResourceReturnTypes, (args: ResourceReturnTypesRequest) => rpcManger.getResourceReturnTypes(args));
6871
messenger.onRequest(addResourceSourceCode, (args: FunctionSourceCodeRequest) => rpcManger.addResourceSourceCode(args));
6972
messenger.onRequest(addFunctionSourceCode, (args: FunctionSourceCodeRequest) => rpcManger.addFunctionSourceCode(args));
7073
messenger.onRequest(updateResourceSourceCode, (args: FunctionSourceCodeRequest) => rpcManger.updateResourceSourceCode(args));

0 commit comments

Comments
 (0)