blend-r 1.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/README.md +213 -0
  2. package/dist/helper/ApiHelper.js +766 -0
  3. package/dist/helper/BasicHelper.js +43 -0
  4. package/dist/helper/DataHelper.js +231 -0
  5. package/dist/helper/FrontEndHelper.js +201 -0
  6. package/dist/helper/fileHelper.js +127 -0
  7. package/dist/helper/grammarHelper/BlendApiGrammarHelper.js +90 -0
  8. package/dist/helper/grammarHelper/BlendBasicGrammarHelper.js +135 -0
  9. package/dist/helper/grammarHelper/BlendDataGrammarHelper.js +47 -0
  10. package/dist/helper/grammarHelper/GrammarErrorHelper.js +16 -0
  11. package/dist/index.js +87 -0
  12. package/dist/parser/blendApi/src/grammar/BlendApiLexer.js +207 -0
  13. package/dist/parser/blendApi/src/grammar/BlendApiListener.js +3 -0
  14. package/dist/parser/blendApi/src/grammar/BlendApiParser.js +978 -0
  15. package/dist/parser/blendData/src/grammar/BlendDataLexer.js +154 -0
  16. package/dist/parser/blendData/src/grammar/BlendDataListener.js +3 -0
  17. package/dist/parser/blendData/src/grammar/BlendDataParser.js +642 -0
  18. package/dist/parser/blendRBasic/src/grammar/BlendRBasicListener.js +3 -0
  19. package/dist/parser/blendRBasic/src/grammar/blendRBasicLexer.js +184 -0
  20. package/dist/parser/blendRBasic/src/grammar/blendRBasicParser.js +993 -0
  21. package/dist/parser/blendRnBasic/src/grammar/BlendRnBasicLexer.js +214 -0
  22. package/dist/parser/blendRnBasic/src/grammar/BlendRnBasicListener.js +3 -0
  23. package/dist/parser/blendRnBasic/src/grammar/BlendRnBasicParser.js +1224 -0
  24. package/dist/types/apiOperationTypes.js +20 -0
  25. package/dist/types/basicOperationTypes.js +3 -0
  26. package/dist/types/dataOperationTypes.js +2 -0
  27. package/dist/types/frontendOperationTypes.js +4 -0
  28. package/dist/types/generalTypes.js +0 -0
  29. package/dist/types/mongoOperationTypes.js +12 -0
  30. package/package.json +36 -0
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const antlr4ts_1 = require("antlr4ts");
7
+ const BlendApiLexer_1 = require("../../parser/blendApi/src/grammar/BlendApiLexer");
8
+ const BlendApiParser_1 = require("../../parser/blendApi/src/grammar/BlendApiParser");
9
+ const node_path_1 = __importDefault(require("node:path"));
10
+ class BlendApiGrammarHelper {
11
+ parseBlendApi(code, dataModuleList) {
12
+ const inputStream = antlr4ts_1.CharStreams.fromString(code);
13
+ const lexer = new BlendApiLexer_1.BlendApiLexer(inputStream);
14
+ const tokenStream = new antlr4ts_1.CommonTokenStream(lexer);
15
+ const parser = new BlendApiParser_1.BlendApiParser(tokenStream);
16
+ const mainModule = parser.program();
17
+ let haveDuplicateSection = false;
18
+ let duplicateApis = {};
19
+ let haveNoDataFoundError = false;
20
+ const sectionNameList = new Set();
21
+ const json = {
22
+ name: mainModule.moduleDefinition().CAPITAL_IDENTIFIER().text,
23
+ apiSectionList: mainModule.sectionDefinition().map(item => {
24
+ if (sectionNameList.has(item.CAPITAL_IDENTIFIER().text)) {
25
+ console.error(`❌ Duplicate Section '${item.CAPITAL_IDENTIFIER().text}' at line ${item.start.line}`);
26
+ haveDuplicateSection = true;
27
+ }
28
+ const apiNameList = new Set();
29
+ const apiSection = {
30
+ name: item.CAPITAL_IDENTIFIER().text, apiList: item.apiDefinition().map(api => {
31
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
32
+ const apiName = api.IDENTIFIER().text;
33
+ if (apiNameList.has(apiName)) {
34
+ duplicateApis[apiName] = true;
35
+ console.error(`❌ Duplicate API '${apiName}' in section '${item.CAPITAL_IDENTIFIER().text}' at line ${api.start.line}`);
36
+ }
37
+ else {
38
+ apiNameList.add(apiName);
39
+ }
40
+ const apiSpec = {
41
+ input: {},
42
+ output: {},
43
+ name: apiName,
44
+ type: api.HTTP_METHOD().text,
45
+ directOutput: ((_b = (_a = api.outputDefinition()) === null || _a === void 0 ? void 0 : _a.directOutputDefenition()) === null || _b === void 0 ? void 0 : _b.type()) ? {
46
+ required: !((_d = (_c = api.outputDefinition()) === null || _c === void 0 ? void 0 : _c.directOutputDefenition()) === null || _d === void 0 ? void 0 : _d.type().text.includes("?")),
47
+ name: (_g = (_f = (_e = api.outputDefinition()) === null || _e === void 0 ? void 0 : _e.directOutputDefenition()) === null || _f === void 0 ? void 0 : _f.type().text) === null || _g === void 0 ? void 0 : _g.replace("?", ""),
48
+ } : {},
49
+ authenticated: ((_h = api === null || api === void 0 ? void 0 : api.authenticated()) === null || _h === void 0 ? void 0 : _h.text) == "authenticated",
50
+ url: api === null || api === void 0 ? void 0 : api.URL_IDENTIFIER().text.replace(/"/g, '')
51
+ };
52
+ (_k = (_j = api.inputDefinition()) === null || _j === void 0 ? void 0 : _j.field()) === null || _k === void 0 ? void 0 : _k.forEach(field => {
53
+ var _a, _b, _c;
54
+ const fieldName = ((_a = field.IDENTIFIER()) === null || _a === void 0 ? void 0 : _a.text) || ((_b = field.CAPITAL_IDENTIFIER()) === null || _b === void 0 ? void 0 : _b.text);
55
+ apiSpec.input[fieldName] = { type: (_c = field.type().text) === null || _c === void 0 ? void 0 : _c.replace("?", ""), required: !(field === null || field === void 0 ? void 0 : field.type().text.includes("?")) };
56
+ });
57
+ // console.log(JSON.stringify(api.outputDefinition()?.field()||[]),"api.outputDefinition()")
58
+ const customData = (_m = (_l = api.outputDefinition()) === null || _l === void 0 ? void 0 : _l.directOutputDefenition()) === null || _m === void 0 ? void 0 : _m.type().text;
59
+ if (customData && !dataModuleList.includes(customData === null || customData === void 0 ? void 0 : customData.split("->")[0])) {
60
+ console.error(`No Data Module '${customData.split("->")[0]}' Found in section '${item.CAPITAL_IDENTIFIER().text}' at line ${api.start.line}`);
61
+ haveNoDataFoundError = true;
62
+ }
63
+ (_p = (_o = api.outputDefinition()) === null || _o === void 0 ? void 0 : _o.field()) === null || _p === void 0 ? void 0 : _p.forEach(field => {
64
+ var _a, _b, _c;
65
+ if (field.type().text.includes("->")) {
66
+ const customDataSplit = field.type().text.split("->");
67
+ console.log(dataModuleList, "dataModuleList....");
68
+ if (!dataModuleList.includes(customDataSplit[0])) {
69
+ console.error(`No Data Module '${customDataSplit[0]}' Found in section '${item.CAPITAL_IDENTIFIER().text}' at line ${api.start.line}`);
70
+ haveNoDataFoundError = true;
71
+ }
72
+ }
73
+ const fieldName = ((_a = field.IDENTIFIER()) === null || _a === void 0 ? void 0 : _a.text) || ((_b = field.CAPITAL_IDENTIFIER()) === null || _b === void 0 ? void 0 : _b.text);
74
+ apiSpec.output[fieldName] = { type: (_c = field.type().text) === null || _c === void 0 ? void 0 : _c.replace("?", ""), required: !(field === null || field === void 0 ? void 0 : field.type().text.includes("?")) };
75
+ });
76
+ return apiSpec;
77
+ })
78
+ };
79
+ return apiSection;
80
+ }),
81
+ includedDataModuleList: []
82
+ };
83
+ return { isValid: parser.numberOfSyntaxErrors === 0 && Object.keys(duplicateApis).length === 0 && !haveDuplicateSection && !haveNoDataFoundError, json };
84
+ }
85
+ static getDatasInDataSection(dataSectionName, folderPath) {
86
+ const sectionPath = node_path_1.default.join(folderPath, `module/${dataSectionName}`);
87
+ // sectionData.sectionDataList.forEach(async (moduleData) => {
88
+ }
89
+ }
90
+ exports.default = BlendApiGrammarHelper;
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const antlr4ts_1 = require("antlr4ts");
4
+ const AbstractParseTreeVisitor_1 = require("antlr4ts/tree/AbstractParseTreeVisitor");
5
+ const BlendRBasicLexer_1 = require("../../parser/blendRBasic/src/grammar/BlendRBasicLexer");
6
+ const BlendRBasicParser_1 = require("../../parser/blendRBasic/src/grammar/BlendRBasicParser");
7
+ class BlendBasicGrammarHelper extends AbstractParseTreeVisitor_1.AbstractParseTreeVisitor {
8
+ defaultResult() {
9
+ return {}; // Avoid errors if visitChildren returns nothing
10
+ }
11
+ parseBlendBasic(code) {
12
+ const inputStream = antlr4ts_1.CharStreams.fromString(code);
13
+ const lexer = new BlendRBasicLexer_1.BlendRBasicLexer(inputStream);
14
+ const tokenStream = new antlr4ts_1.CommonTokenStream(lexer);
15
+ const parser = new BlendRBasicParser_1.BlendRBasicParser(tokenStream);
16
+ const frontend = this.parseBlendRN(code);
17
+ const dataModuleList = [];
18
+ const apiModuleList = [];
19
+ parser.sections().module().map(module => {
20
+ const resultList = this.visitModule(module);
21
+ resultList.map(result => {
22
+ if (result.type === "data-module") {
23
+ dataModuleList.push(result.name);
24
+ }
25
+ else if (result.type === "api-module") {
26
+ apiModuleList.push(result.name);
27
+ }
28
+ });
29
+ });
30
+ const basicJson = {
31
+ name: "BlendBasicConfig",
32
+ description: "Basic config for swing",
33
+ createdAt: new Date().toISOString(),
34
+ dataModuleList,
35
+ apiModuleList,
36
+ frontend: frontend.json
37
+ };
38
+ return { valid: parser.numberOfSyntaxErrors === 0 && frontend.valid, basicJson };
39
+ }
40
+ visitSection(mod) {
41
+ const dataModuleList = [];
42
+ const apiModuleList = [];
43
+ const resultList = this.visitModule(mod);
44
+ resultList.map(result => {
45
+ if (result.type === "data-module") {
46
+ dataModuleList.push(result.name);
47
+ }
48
+ else if (result.type === "api-module") {
49
+ apiModuleList.push({ name: result.name });
50
+ }
51
+ });
52
+ return {
53
+ dataModuleList,
54
+ apiModuleList,
55
+ };
56
+ }
57
+ visitModule(ctx) {
58
+ // Handle multiple identifiers
59
+ // const moduleType = ctx.children?.[0].text; // First token is the type (e.g., data-module)
60
+ if (ctx.dataModule())
61
+ return this.visitDataModule(ctx.dataModule());
62
+ if (ctx.apiModule())
63
+ return this.visitExpressModule(ctx.apiModule());
64
+ }
65
+ visitDataModule(ctx) {
66
+ return ctx.CAPITAL_IDENTIFIER().map(id => ({ type: "data-module", name: id.text }));
67
+ }
68
+ visitExpressModule(ctx) {
69
+ return ctx.CAPITAL_IDENTIFIER().map(id => ({ type: "api-module", name: id.text }));
70
+ }
71
+ parseBlendRN(code) {
72
+ const inputStream = antlr4ts_1.CharStreams.fromString(code);
73
+ const lexer = new BlendRBasicLexer_1.BlendRBasicLexer(inputStream);
74
+ const tokenStream = new antlr4ts_1.CommonTokenStream(lexer);
75
+ const parser = new BlendRBasicParser_1.BlendRBasicParser(tokenStream);
76
+ const program = parser.sections().program();
77
+ let haveNoDataFoundError = false;
78
+ let screenList = [];
79
+ let componentList = [];
80
+ let roleList = [];
81
+ console.log("program", program.screenDefenition());
82
+ program.screenDefenition().forEach(screen => {
83
+ screen.CAPITAL_IDENTIFIER().forEach(screenName => {
84
+ screenList.push({ name: screenName.text, path: screen.PATH_IDENTIFIER().text.replace(/"/g, '') });
85
+ });
86
+ });
87
+ program.roleDefenition().forEach(role => {
88
+ role.CAPITAL_IDENTIFIER().forEach(roleName => {
89
+ roleList.push(roleName.text);
90
+ });
91
+ });
92
+ program.componentDefenition().forEach(component => {
93
+ component.CAPITAL_IDENTIFIER().forEach(componentName => {
94
+ componentList.push({ name: componentName.text, path: component.PATH_IDENTIFIER().text.replace(/"/g, '') });
95
+ });
96
+ });
97
+ const layout = parseAndCreateLayoutAndScreen(program);
98
+ function parseAndCreateLayoutAndScreen(prgrm) {
99
+ return prgrm.layoutDefinition().map(layout => {
100
+ const layoutList = parseAndCreateLayoutAndScreen(layout);
101
+ const pageList = layout.pageDefinition().map(page => {
102
+ var _a;
103
+ if (screenList.findIndex(item => item.name == page.CAPITAL_IDENTIFIER()[1].text) == -1) {
104
+ haveNoDataFoundError = true;
105
+ console.log(`${(_a = page.CAPITAL_IDENTIFIER()[1]) === null || _a === void 0 ? void 0 : _a.text} Page Not found inside the layout ${layout.CAPITAL_IDENTIFIER().text} at line ${page.start.line}`);
106
+ }
107
+ return {
108
+ name: page.CAPITAL_IDENTIFIER()[0].text,
109
+ route: page.PATH_IDENTIFIER().text.replace(/"/g, ''),
110
+ element: page.CAPITAL_IDENTIFIER()[1].text,
111
+ authenticatedRoles: page.CAPITAL_IDENTIFIER().length > 2 ? [page.CAPITAL_IDENTIFIER()[2].text] : undefined
112
+ };
113
+ });
114
+ return {
115
+ name: layout.CAPITAL_IDENTIFIER().text,
116
+ route: layout.PATH_IDENTIFIER().text.replace(/"/g, ''),
117
+ children: [...layoutList, ...pageList],
118
+ };
119
+ });
120
+ }
121
+ const json = {
122
+ componentList,
123
+ screenList,
124
+ layout,
125
+ roleList
126
+ };
127
+ console.log("json", json);
128
+ return {
129
+ valid: parser.numberOfSyntaxErrors == 0 && !haveNoDataFoundError,
130
+ json
131
+ };
132
+ // return json;
133
+ }
134
+ }
135
+ exports.default = BlendBasicGrammarHelper;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const antlr4ts_1 = require("antlr4ts");
4
+ const BlendDataLexer_1 = require("../../parser/blendData/src/grammar/BlendDataLexer");
5
+ const BlendDataParser_1 = require("../../parser/blendData/src/grammar/BlendDataParser");
6
+ class BlendDataGrammarHelper {
7
+ parseBlendData(code) {
8
+ const inputStream = antlr4ts_1.CharStreams.fromString(code);
9
+ const lexer = new BlendDataLexer_1.BlendDataLexer(inputStream);
10
+ const tokenStream = new antlr4ts_1.CommonTokenStream(lexer);
11
+ const parser = new BlendDataParser_1.BlendDataParser(tokenStream);
12
+ const mainSection = parser.program(); // Assuming the root rule is "program" that contains multiple sections
13
+ const dataDefenitionList = mainSection.dataDefinition();
14
+ let hasError = false;
15
+ const dataSet = new Set();
16
+ const moduleDataObject = {
17
+ name: mainSection.moduleDefinition().CAPITAL_IDENTIFIER().text,
18
+ dataList: dataDefenitionList.map((dataDefinition) => {
19
+ const dataName = dataDefinition.CAPITAL_IDENTIFIER().text;
20
+ if (dataSet.has(dataName)) {
21
+ hasError = true;
22
+ console.log(`Duplicate Data ${dataName} found`);
23
+ }
24
+ dataSet.add(dataDefinition.CAPITAL_IDENTIFIER().text);
25
+ const fieldSet = new Set();
26
+ return {
27
+ name: dataDefinition.CAPITAL_IDENTIFIER().text,
28
+ fields: dataDefinition.field().map((field) => {
29
+ const fieldName = field.IDENTIFIER().text;
30
+ if (fieldSet.has(fieldName)) {
31
+ hasError = true;
32
+ console.log(`Field Data ${fieldName} found in ${dataName}`);
33
+ }
34
+ fieldSet.add(fieldName);
35
+ return {
36
+ name: fieldName,
37
+ required: !field.type().text.includes("?"),
38
+ type: field.type().text.replace("?", ""),
39
+ };
40
+ })
41
+ };
42
+ })
43
+ };
44
+ return { valid: parser.numberOfSyntaxErrors === 0 && !hasError, moduleDataObject };
45
+ }
46
+ }
47
+ exports.default = BlendDataGrammarHelper;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class GrammarErrorHelper {
4
+ static validateSyntax(parser) {
5
+ const syntaxErrors = [];
6
+ parser.removeErrorListeners();
7
+ parser.addErrorListener({
8
+ syntaxError: (recognizer, offendingSymbol, line, charPositionInLine, msg, e) => {
9
+ syntaxErrors.push(`Line ${line}:${charPositionInLine} - ${msg}`);
10
+ }
11
+ });
12
+ console.log(syntaxErrors, "syntaxErrors");
13
+ return syntaxErrors;
14
+ }
15
+ }
16
+ exports.default = GrammarErrorHelper;
package/dist/index.js ADDED
@@ -0,0 +1,87 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
5
+ return new (P || (P = Promise))(function (resolve, reject) {
6
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
7
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
8
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
9
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
10
+ });
11
+ };
12
+ var __importDefault = (this && this.__importDefault) || function (mod) {
13
+ return (mod && mod.__esModule) ? mod : { "default": mod };
14
+ };
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ const commander_1 = require("commander");
17
+ const path_1 = __importDefault(require("path"));
18
+ const fileHelper_1 = require("./helper/fileHelper");
19
+ const BasicHelper_1 = __importDefault(require("./helper/BasicHelper"));
20
+ const FrontEndHelper_1 = __importDefault(require("./helper/FrontEndHelper"));
21
+ const DataHelper_1 = __importDefault(require("./helper/DataHelper"));
22
+ const ApiHelper_1 = __importDefault(require("./helper/ApiHelper"));
23
+ const program = new commander_1.Command();
24
+ program
25
+ .name('blend-r')
26
+ .description('CLI for creating and editing files')
27
+ .version('1.0.0');
28
+ // Command 1: blend-init
29
+ program.command('init')
30
+ .description('Initialize the folder with a .basic file, spec folder, .basicConfig, and data files')
31
+ .action(() => {
32
+ const folderPath = path_1.default.join(process.cwd());
33
+ const folderName = path_1.default.basename(folderPath);
34
+ // Create .basic file
35
+ const basicFilePath = path_1.default.join(folderPath, `${folderName}.rbasic`);
36
+ const basicFileContent = ``;
37
+ fileHelper_1.FileHelper.writeFile(basicFilePath, basicFileContent);
38
+ // Create spec folder
39
+ const specFolderPath = path_1.default.join(folderPath, 'spec');
40
+ fileHelper_1.FileHelper.ensureDir(specFolderPath);
41
+ // Create .basicConfig folder inside the main folder
42
+ const basicConfigFolderPath = path_1.default.join(folderPath, '.basicConfig');
43
+ fileHelper_1.FileHelper.ensureDir(basicConfigFolderPath);
44
+ console.log(`Initialized ${folderName} with .rbasic file, spec folder..Happy Coding.......`);
45
+ });
46
+ // Command 2: blend-prepare (set up and validate environment)
47
+ program.command('prepare')
48
+ .description('Prepare the environment (e.g., validating setup, etc.)')
49
+ .action(() => {
50
+ const folderPath = path_1.default.join(process.cwd());
51
+ const folderName = path_1.default.basename(folderPath);
52
+ const basicFilePath = path_1.default.join(folderPath, `${folderName}.rbasic`);
53
+ const basicFileContent = fileHelper_1.FileHelper.readFile(basicFilePath);
54
+ const dataHelper = new DataHelper_1.default();
55
+ const apiHelper = new ApiHelper_1.default();
56
+ dataHelper.parseSpec();
57
+ apiHelper.parseSpec();
58
+ });
59
+ // Command 3: blend-generate (add your logic here)
60
+ program.command('serve')
61
+ .description('Generate files or configurations based on existing ones')
62
+ .action(() => __awaiter(void 0, void 0, void 0, function* () {
63
+ const folderPath = path_1.default.join(process.cwd());
64
+ const folderName = path_1.default.basename(folderPath);
65
+ const basicFilePath = path_1.default.join(folderPath, `${folderName}.rbasic`);
66
+ const basicFileContent = fileHelper_1.FileHelper.readFile(basicFilePath);
67
+ const frontEndHelper = new FrontEndHelper_1.default();
68
+ const apiHelper = new ApiHelper_1.default();
69
+ frontEndHelper.buildFrontEnd();
70
+ const dataHelper = new DataHelper_1.default();
71
+ dataHelper.parseJSONAndGenerateFiles();
72
+ apiHelper.doFrontEndApiGenerations();
73
+ // SectionHelper.createProject(basicFileContent);
74
+ // Add your custom logic here
75
+ }));
76
+ program.command('chop')
77
+ .description('Generate files or configurations based on existing ones')
78
+ .action(() => {
79
+ const folderPath = path_1.default.join(process.cwd());
80
+ const folderName = path_1.default.basename(folderPath);
81
+ const basicFilePath = path_1.default.join(folderPath, `${folderName}.rbasic`);
82
+ const basicFileContent = fileHelper_1.FileHelper.readFile(basicFilePath);
83
+ const basicHelper = new BasicHelper_1.default();
84
+ basicHelper.parseSpec(basicFileContent);
85
+ basicHelper.createRequiredFile(basicFileContent);
86
+ });
87
+ program.parse(process.argv);
@@ -0,0 +1,207 @@
1
+ "use strict";
2
+ // Generated from src/grammar/BlendApi.g4 by ANTLR 4.9.0-SNAPSHOT
3
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
+ if (k2 === undefined) k2 = k;
5
+ var desc = Object.getOwnPropertyDescriptor(m, k);
6
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
+ desc = { enumerable: true, get: function() { return m[k]; } };
8
+ }
9
+ Object.defineProperty(o, k2, desc);
10
+ }) : (function(o, m, k, k2) {
11
+ if (k2 === undefined) k2 = k;
12
+ o[k2] = m[k];
13
+ }));
14
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
16
+ }) : function(o, v) {
17
+ o["default"] = v;
18
+ });
19
+ var __importStar = (this && this.__importStar) || (function () {
20
+ var ownKeys = function(o) {
21
+ ownKeys = Object.getOwnPropertyNames || function (o) {
22
+ var ar = [];
23
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
+ return ar;
25
+ };
26
+ return ownKeys(o);
27
+ };
28
+ return function (mod) {
29
+ if (mod && mod.__esModule) return mod;
30
+ var result = {};
31
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
+ __setModuleDefault(result, mod);
33
+ return result;
34
+ };
35
+ })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ exports.BlendApiLexer = void 0;
38
+ const ATNDeserializer_1 = require("antlr4ts/atn/ATNDeserializer");
39
+ const Lexer_1 = require("antlr4ts/Lexer");
40
+ const LexerATNSimulator_1 = require("antlr4ts/atn/LexerATNSimulator");
41
+ const VocabularyImpl_1 = require("antlr4ts/VocabularyImpl");
42
+ const Utils = __importStar(require("antlr4ts/misc/Utils"));
43
+ class BlendApiLexer extends Lexer_1.Lexer {
44
+ // @Override
45
+ // @NotNull
46
+ get vocabulary() {
47
+ return BlendApiLexer.VOCABULARY;
48
+ }
49
+ // tslint:enable:no-trailing-whitespace
50
+ constructor(input) {
51
+ super(input);
52
+ this._interp = new LexerATNSimulator_1.LexerATNSimulator(BlendApiLexer._ATN, this);
53
+ }
54
+ // @Override
55
+ get grammarFileName() { return "BlendApi.g4"; }
56
+ // @Override
57
+ get ruleNames() { return BlendApiLexer.ruleNames; }
58
+ // @Override
59
+ get serializedATN() { return BlendApiLexer._serializedATN; }
60
+ // @Override
61
+ get channelNames() { return BlendApiLexer.channelNames; }
62
+ // @Override
63
+ get modeNames() { return BlendApiLexer.modeNames; }
64
+ static get _ATN() {
65
+ if (!BlendApiLexer.__ATN) {
66
+ BlendApiLexer.__ATN = new ATNDeserializer_1.ATNDeserializer().deserialize(Utils.toCharArray(BlendApiLexer._serializedATN));
67
+ }
68
+ return BlendApiLexer.__ATN;
69
+ }
70
+ }
71
+ exports.BlendApiLexer = BlendApiLexer;
72
+ BlendApiLexer.T__0 = 1;
73
+ BlendApiLexer.T__1 = 2;
74
+ BlendApiLexer.T__2 = 3;
75
+ BlendApiLexer.T__3 = 4;
76
+ BlendApiLexer.T__4 = 5;
77
+ BlendApiLexer.T__5 = 6;
78
+ BlendApiLexer.T__6 = 7;
79
+ BlendApiLexer.T__7 = 8;
80
+ BlendApiLexer.T__8 = 9;
81
+ BlendApiLexer.T__9 = 10;
82
+ BlendApiLexer.T__10 = 11;
83
+ BlendApiLexer.T__11 = 12;
84
+ BlendApiLexer.T__12 = 13;
85
+ BlendApiLexer.T__13 = 14;
86
+ BlendApiLexer.T__14 = 15;
87
+ BlendApiLexer.T__15 = 16;
88
+ BlendApiLexer.T__16 = 17;
89
+ BlendApiLexer.T__17 = 18;
90
+ BlendApiLexer.T__18 = 19;
91
+ BlendApiLexer.T__19 = 20;
92
+ BlendApiLexer.HTTP_METHOD = 21;
93
+ BlendApiLexer.IDENTIFIER = 22;
94
+ BlendApiLexer.CAPITAL_IDENTIFIER = 23;
95
+ BlendApiLexer.URL_IDENTIFIER = 24;
96
+ BlendApiLexer.WS = 25;
97
+ // tslint:disable:no-trailing-whitespace
98
+ BlendApiLexer.channelNames = [
99
+ "DEFAULT_TOKEN_CHANNEL", "HIDDEN",
100
+ ];
101
+ // tslint:disable:no-trailing-whitespace
102
+ BlendApiLexer.modeNames = [
103
+ "DEFAULT_MODE",
104
+ ];
105
+ BlendApiLexer.ruleNames = [
106
+ "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "T__6", "T__7", "T__8",
107
+ "T__9", "T__10", "T__11", "T__12", "T__13", "T__14", "T__15", "T__16",
108
+ "T__17", "T__18", "T__19", "HTTP_METHOD", "IDENTIFIER", "CAPITAL_IDENTIFIER",
109
+ "URL_IDENTIFIER", "WS",
110
+ ];
111
+ BlendApiLexer._LITERAL_NAMES = [
112
+ undefined, "'section'", "'{'", "'}'", "'module'", "'api'", "'('", "')'",
113
+ "'authenticated'", "'input('", "','", "'output('", "':'", "'[]'", "'?'",
114
+ "'->'", "'string'", "'number'", "'boolean'", "'any'", "'object'",
115
+ ];
116
+ BlendApiLexer._SYMBOLIC_NAMES = [
117
+ undefined, undefined, undefined, undefined, undefined, undefined, undefined,
118
+ undefined, undefined, undefined, undefined, undefined, undefined, undefined,
119
+ undefined, undefined, undefined, undefined, undefined, undefined, undefined,
120
+ "HTTP_METHOD", "IDENTIFIER", "CAPITAL_IDENTIFIER", "URL_IDENTIFIER", "WS",
121
+ ];
122
+ BlendApiLexer.VOCABULARY = new VocabularyImpl_1.VocabularyImpl(BlendApiLexer._LITERAL_NAMES, BlendApiLexer._SYMBOLIC_NAMES, []);
123
+ BlendApiLexer._serializedATN = "\x03\uC91D\uCABA\u058D\uAFBA\u4F53\u0607\uEA8B\uC241\x02\x1B\xC9\b\x01" +
124
+ "\x04\x02\t\x02\x04\x03\t\x03\x04\x04\t\x04\x04\x05\t\x05\x04\x06\t\x06" +
125
+ "\x04\x07\t\x07\x04\b\t\b\x04\t\t\t\x04\n\t\n\x04\v\t\v\x04\f\t\f\x04\r" +
126
+ "\t\r\x04\x0E\t\x0E\x04\x0F\t\x0F\x04\x10\t\x10\x04\x11\t\x11\x04\x12\t" +
127
+ "\x12\x04\x13\t\x13\x04\x14\t\x14\x04\x15\t\x15\x04\x16\t\x16\x04\x17\t" +
128
+ "\x17\x04\x18\t\x18\x04\x19\t\x19\x04\x1A\t\x1A\x03\x02\x03\x02\x03\x02" +
129
+ "\x03\x02\x03\x02\x03\x02\x03\x02\x03\x02\x03\x03\x03\x03\x03\x04\x03\x04" +
130
+ "\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03\x05\x03\x06\x03\x06" +
131
+ "\x03\x06\x03\x06\x03\x07\x03\x07\x03\b\x03\b\x03\t\x03\t\x03\t\x03\t\x03" +
132
+ "\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03\t\x03\n\x03\n\x03" +
133
+ "\n\x03\n\x03\n\x03\n\x03\n\x03\v\x03\v\x03\f\x03\f\x03\f\x03\f\x03\f\x03" +
134
+ "\f\x03\f\x03\f\x03\r\x03\r\x03\x0E\x03\x0E\x03\x0E\x03\x0F\x03\x0F\x03" +
135
+ "\x10\x03\x10\x03\x10\x03\x11\x03\x11\x03\x11\x03\x11\x03\x11\x03\x11\x03" +
136
+ "\x11\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x12\x03\x13\x03" +
137
+ "\x13\x03\x13\x03\x13\x03\x13\x03\x13\x03\x13\x03\x13\x03\x14\x03\x14\x03" +
138
+ "\x14\x03\x14\x03\x15\x03\x15\x03\x15\x03\x15\x03\x15\x03\x15\x03\x15\x03" +
139
+ "\x16\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16\x03" +
140
+ "\x16\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16\x03\x16\x05\x16\xAB\n\x16" +
141
+ "\x03\x17\x03\x17\x07\x17\xAF\n\x17\f\x17\x0E\x17\xB2\v\x17\x03\x18\x03" +
142
+ "\x18\x07\x18\xB6\n\x18\f\x18\x0E\x18\xB9\v\x18\x03\x19\x03\x19\x06\x19" +
143
+ "\xBD\n\x19\r\x19\x0E\x19\xBE\x03\x19\x03\x19\x03\x1A\x06\x1A\xC4\n\x1A" +
144
+ "\r\x1A\x0E\x1A\xC5\x03\x1A\x03\x1A\x02\x02\x02\x1B\x03\x02\x03\x05\x02" +
145
+ "\x04\x07\x02\x05\t\x02\x06\v\x02\x07\r\x02\b\x0F\x02\t\x11\x02\n\x13\x02" +
146
+ "\v\x15\x02\f\x17\x02\r\x19\x02\x0E\x1B\x02\x0F\x1D\x02\x10\x1F\x02\x11" +
147
+ "!\x02\x12#\x02\x13%\x02\x14\'\x02\x15)\x02\x16+\x02\x17-\x02\x18/\x02" +
148
+ "\x191\x02\x1A3\x02\x1B\x03\x02\x07\x04\x02aac|\x06\x022;C\\aac|\x03\x02" +
149
+ "C\\\x07\x02//1;C\\aac|\x05\x02\v\f\x0F\x0F\"\"\x02\xCF\x02\x03\x03\x02" +
150
+ "\x02\x02\x02\x05\x03\x02\x02\x02\x02\x07\x03\x02\x02\x02\x02\t\x03\x02" +
151
+ "\x02\x02\x02\v\x03\x02\x02\x02\x02\r\x03\x02\x02\x02\x02\x0F\x03\x02\x02" +
152
+ "\x02\x02\x11\x03\x02\x02\x02\x02\x13\x03\x02\x02\x02\x02\x15\x03\x02\x02" +
153
+ "\x02\x02\x17\x03\x02\x02\x02\x02\x19\x03\x02\x02\x02\x02\x1B\x03\x02\x02" +
154
+ "\x02\x02\x1D\x03\x02\x02\x02\x02\x1F\x03\x02\x02\x02\x02!\x03\x02\x02" +
155
+ "\x02\x02#\x03\x02\x02\x02\x02%\x03\x02\x02\x02\x02\'\x03\x02\x02\x02\x02" +
156
+ ")\x03\x02\x02\x02\x02+\x03\x02\x02\x02\x02-\x03\x02\x02\x02\x02/\x03\x02" +
157
+ "\x02\x02\x021\x03\x02\x02\x02\x023\x03\x02\x02\x02\x035\x03\x02\x02\x02" +
158
+ "\x05=\x03\x02\x02\x02\x07?\x03\x02\x02\x02\tA\x03\x02\x02\x02\vH\x03\x02" +
159
+ "\x02\x02\rL\x03\x02\x02\x02\x0FN\x03\x02\x02\x02\x11P\x03\x02\x02\x02" +
160
+ "\x13^\x03\x02\x02\x02\x15e\x03\x02\x02\x02\x17g\x03\x02\x02\x02\x19o\x03" +
161
+ "\x02\x02\x02\x1Bq\x03\x02\x02\x02\x1Dt\x03\x02\x02\x02\x1Fv\x03\x02\x02" +
162
+ "\x02!y\x03\x02\x02\x02#\x80\x03\x02\x02\x02%\x87\x03\x02\x02\x02\'\x8F" +
163
+ "\x03\x02\x02\x02)\x93\x03\x02\x02\x02+\xAA\x03\x02\x02\x02-\xAC\x03\x02" +
164
+ "\x02\x02/\xB3\x03\x02\x02\x021\xBA\x03\x02\x02\x023\xC3\x03\x02\x02\x02" +
165
+ "56\x07u\x02\x0267\x07g\x02\x0278\x07e\x02\x0289\x07v\x02\x029:\x07k\x02" +
166
+ "\x02:;\x07q\x02\x02;<\x07p\x02\x02<\x04\x03\x02\x02\x02=>\x07}\x02\x02" +
167
+ ">\x06\x03\x02\x02\x02?@\x07\x7F\x02\x02@\b\x03\x02\x02\x02AB\x07o\x02" +
168
+ "\x02BC\x07q\x02\x02CD\x07f\x02\x02DE\x07w\x02\x02EF\x07n\x02\x02FG\x07" +
169
+ "g\x02\x02G\n\x03\x02\x02\x02HI\x07c\x02\x02IJ\x07r\x02\x02JK\x07k\x02" +
170
+ "\x02K\f\x03\x02\x02\x02LM\x07*\x02\x02M\x0E\x03\x02\x02\x02NO\x07+\x02" +
171
+ "\x02O\x10\x03\x02\x02\x02PQ\x07c\x02\x02QR\x07w\x02\x02RS\x07v\x02\x02" +
172
+ "ST\x07j\x02\x02TU\x07g\x02\x02UV\x07p\x02\x02VW\x07v\x02\x02WX\x07k\x02" +
173
+ "\x02XY\x07e\x02\x02YZ\x07c\x02\x02Z[\x07v\x02\x02[\\\x07g\x02\x02\\]\x07" +
174
+ "f\x02\x02]\x12\x03\x02\x02\x02^_\x07k\x02\x02_`\x07p\x02\x02`a\x07r\x02" +
175
+ "\x02ab\x07w\x02\x02bc\x07v\x02\x02cd\x07*\x02\x02d\x14\x03\x02\x02\x02" +
176
+ "ef\x07.\x02\x02f\x16\x03\x02\x02\x02gh\x07q\x02\x02hi\x07w\x02\x02ij\x07" +
177
+ "v\x02\x02jk\x07r\x02\x02kl\x07w\x02\x02lm\x07v\x02\x02mn\x07*\x02\x02" +
178
+ "n\x18\x03\x02\x02\x02op\x07<\x02\x02p\x1A\x03\x02\x02\x02qr\x07]\x02\x02" +
179
+ "rs\x07_\x02\x02s\x1C\x03\x02\x02\x02tu\x07A\x02\x02u\x1E\x03\x02\x02\x02" +
180
+ "vw\x07/\x02\x02wx\x07@\x02\x02x \x03\x02\x02\x02yz\x07u\x02\x02z{\x07" +
181
+ "v\x02\x02{|\x07t\x02\x02|}\x07k\x02\x02}~\x07p\x02\x02~\x7F\x07i\x02\x02" +
182
+ "\x7F\"\x03\x02\x02\x02\x80\x81\x07p\x02\x02\x81\x82\x07w\x02\x02\x82\x83" +
183
+ "\x07o\x02\x02\x83\x84\x07d\x02\x02\x84\x85\x07g\x02\x02\x85\x86\x07t\x02" +
184
+ "\x02\x86$\x03\x02\x02\x02\x87\x88\x07d\x02\x02\x88\x89\x07q\x02\x02\x89" +
185
+ "\x8A\x07q\x02\x02\x8A\x8B\x07n\x02\x02\x8B\x8C\x07g\x02\x02\x8C\x8D\x07" +
186
+ "c\x02\x02\x8D\x8E\x07p\x02\x02\x8E&\x03\x02\x02\x02\x8F\x90\x07c\x02\x02" +
187
+ "\x90\x91\x07p\x02\x02\x91\x92\x07{\x02\x02\x92(\x03\x02\x02\x02\x93\x94" +
188
+ "\x07q\x02\x02\x94\x95\x07d\x02\x02\x95\x96\x07l\x02\x02\x96\x97\x07g\x02" +
189
+ "\x02\x97\x98\x07e\x02\x02\x98\x99\x07v\x02\x02\x99*\x03\x02\x02\x02\x9A" +
190
+ "\x9B\x07I\x02\x02\x9B\x9C\x07G\x02\x02\x9C\xAB\x07V\x02\x02\x9D\x9E\x07" +
191
+ "R\x02\x02\x9E\x9F\x07Q\x02\x02\x9F\xA0\x07U\x02\x02\xA0\xAB\x07V\x02\x02" +
192
+ "\xA1\xA2\x07F\x02\x02\xA2\xA3\x07G\x02\x02\xA3\xA4\x07N\x02\x02\xA4\xA5" +
193
+ "\x07G\x02\x02\xA5\xA6\x07V\x02\x02\xA6\xAB\x07G\x02\x02\xA7\xA8\x07R\x02" +
194
+ "\x02\xA8\xA9\x07W\x02\x02\xA9\xAB\x07V\x02\x02\xAA\x9A\x03\x02\x02\x02" +
195
+ "\xAA\x9D\x03\x02\x02\x02\xAA\xA1\x03\x02\x02\x02\xAA\xA7\x03\x02\x02\x02" +
196
+ "\xAB,\x03\x02\x02\x02\xAC\xB0\t\x02\x02\x02\xAD\xAF\t\x03\x02\x02\xAE" +
197
+ "\xAD\x03\x02\x02\x02\xAF\xB2\x03\x02\x02\x02\xB0\xAE\x03\x02\x02\x02\xB0" +
198
+ "\xB1\x03\x02\x02\x02\xB1.\x03\x02\x02\x02\xB2\xB0\x03\x02\x02\x02\xB3" +
199
+ "\xB7\t\x04\x02\x02\xB4\xB6\t\x03\x02\x02\xB5\xB4\x03\x02\x02\x02\xB6\xB9" +
200
+ "\x03\x02\x02\x02\xB7\xB5\x03\x02\x02\x02\xB7\xB8\x03\x02\x02\x02\xB80" +
201
+ "\x03\x02\x02\x02\xB9\xB7\x03\x02\x02\x02\xBA\xBC\x07$\x02\x02\xBB\xBD" +
202
+ "\t\x05\x02\x02\xBC\xBB\x03\x02\x02\x02\xBD\xBE\x03\x02\x02\x02\xBE\xBC" +
203
+ "\x03\x02\x02\x02\xBE\xBF\x03\x02\x02\x02\xBF\xC0\x03\x02\x02\x02\xC0\xC1" +
204
+ "\x07$\x02\x02\xC12\x03\x02\x02\x02\xC2\xC4\t\x06\x02\x02\xC3\xC2\x03\x02" +
205
+ "\x02\x02\xC4\xC5\x03\x02\x02\x02\xC5\xC3\x03\x02\x02\x02\xC5\xC6\x03\x02" +
206
+ "\x02\x02\xC6\xC7\x03\x02\x02\x02\xC7\xC8\b\x1A\x02\x02\xC84\x03\x02\x02" +
207
+ "\x02\b\x02\xAA\xB0\xB7\xBE\xC5\x03\b\x02\x02";
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ // Generated from src/grammar/BlendApi.g4 by ANTLR 4.9.0-SNAPSHOT
3
+ Object.defineProperty(exports, "__esModule", { value: true });