agentlang 0.0.2

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 (240) hide show
  1. package/LICENSE +83 -0
  2. package/README.md +120 -0
  3. package/bin/cli.js +4 -0
  4. package/out/api/http.d.ts +3 -0
  5. package/out/api/http.d.ts.map +1 -0
  6. package/out/api/http.js +290 -0
  7. package/out/api/http.js.map +1 -0
  8. package/out/cli/cli-util.d.ts +7 -0
  9. package/out/cli/cli-util.d.ts.map +1 -0
  10. package/out/cli/cli-util.js +9 -0
  11. package/out/cli/cli-util.js.map +1 -0
  12. package/out/cli/docs.d.ts +2 -0
  13. package/out/cli/docs.d.ts.map +1 -0
  14. package/out/cli/docs.js +236 -0
  15. package/out/cli/docs.js.map +1 -0
  16. package/out/cli/main.d.ts +288 -0
  17. package/out/cli/main.d.ts.map +1 -0
  18. package/out/cli/main.js +119 -0
  19. package/out/cli/main.js.map +1 -0
  20. package/out/cli/openapi-docs.yml +695 -0
  21. package/out/extension/main.cjs +18093 -0
  22. package/out/extension/main.cjs.map +7 -0
  23. package/out/extension/main.d.ts +4 -0
  24. package/out/extension/main.d.ts.map +1 -0
  25. package/out/extension/main.js +42 -0
  26. package/out/extension/main.js.map +1 -0
  27. package/out/language/agentlang-module.d.ts +42 -0
  28. package/out/language/agentlang-module.d.ts.map +1 -0
  29. package/out/language/agentlang-module.js +42 -0
  30. package/out/language/agentlang-module.js.map +1 -0
  31. package/out/language/agentlang-validator.d.ts +15 -0
  32. package/out/language/agentlang-validator.d.ts.map +1 -0
  33. package/out/language/agentlang-validator.js +50 -0
  34. package/out/language/agentlang-validator.js.map +1 -0
  35. package/out/language/generated/ast.d.ts +491 -0
  36. package/out/language/generated/ast.d.ts.map +1 -0
  37. package/out/language/generated/ast.js +934 -0
  38. package/out/language/generated/ast.js.map +1 -0
  39. package/out/language/generated/grammar.d.ts +7 -0
  40. package/out/language/generated/grammar.d.ts.map +1 -0
  41. package/out/language/generated/grammar.js +4475 -0
  42. package/out/language/generated/grammar.js.map +1 -0
  43. package/out/language/generated/module.d.ts +14 -0
  44. package/out/language/generated/module.d.ts.map +1 -0
  45. package/out/language/generated/module.js +21 -0
  46. package/out/language/generated/module.js.map +1 -0
  47. package/out/language/main-browser.d.ts +2 -0
  48. package/out/language/main-browser.d.ts.map +1 -0
  49. package/out/language/main-browser.js +10 -0
  50. package/out/language/main-browser.js.map +1 -0
  51. package/out/language/main.cjs +36229 -0
  52. package/out/language/main.cjs.map +7 -0
  53. package/out/language/main.d.ts +2 -0
  54. package/out/language/main.d.ts.map +1 -0
  55. package/out/language/main.js +11 -0
  56. package/out/language/main.js.map +1 -0
  57. package/out/language/parser.d.ts +9 -0
  58. package/out/language/parser.d.ts.map +1 -0
  59. package/out/language/parser.js +273 -0
  60. package/out/language/parser.js.map +1 -0
  61. package/out/language/syntax.d.ts +155 -0
  62. package/out/language/syntax.d.ts.map +1 -0
  63. package/out/language/syntax.js +527 -0
  64. package/out/language/syntax.js.map +1 -0
  65. package/out/runtime/agents/common.d.ts +2 -0
  66. package/out/runtime/agents/common.d.ts.map +1 -0
  67. package/out/runtime/agents/common.js +178 -0
  68. package/out/runtime/agents/common.js.map +1 -0
  69. package/out/runtime/agents/impl/openai.d.ts +8 -0
  70. package/out/runtime/agents/impl/openai.d.ts.map +1 -0
  71. package/out/runtime/agents/impl/openai.js +15 -0
  72. package/out/runtime/agents/impl/openai.js.map +1 -0
  73. package/out/runtime/agents/provider.d.ts +21 -0
  74. package/out/runtime/agents/provider.d.ts.map +1 -0
  75. package/out/runtime/agents/provider.js +32 -0
  76. package/out/runtime/agents/provider.js.map +1 -0
  77. package/out/runtime/agents/registry.d.ts +2 -0
  78. package/out/runtime/agents/registry.d.ts.map +1 -0
  79. package/out/runtime/agents/registry.js +10 -0
  80. package/out/runtime/agents/registry.js.map +1 -0
  81. package/out/runtime/auth/cognito.d.ts +16 -0
  82. package/out/runtime/auth/cognito.d.ts.map +1 -0
  83. package/out/runtime/auth/cognito.js +186 -0
  84. package/out/runtime/auth/cognito.js.map +1 -0
  85. package/out/runtime/auth/defs.d.ts +11 -0
  86. package/out/runtime/auth/defs.d.ts.map +1 -0
  87. package/out/runtime/auth/defs.js +24 -0
  88. package/out/runtime/auth/defs.js.map +1 -0
  89. package/out/runtime/auth/interface.d.ts +22 -0
  90. package/out/runtime/auth/interface.d.ts.map +1 -0
  91. package/out/runtime/auth/interface.js +2 -0
  92. package/out/runtime/auth/interface.js.map +1 -0
  93. package/out/runtime/defs.js +24 -0
  94. package/out/runtime/defs.js.map +1 -0
  95. package/out/runtime/interpreter.d.ts +69 -0
  96. package/out/runtime/interpreter.d.ts.map +1 -0
  97. package/out/runtime/interpreter.js +1163 -0
  98. package/out/runtime/interpreter.js.map +1 -0
  99. package/out/runtime/loader.d.ts +25 -0
  100. package/out/runtime/loader.d.ts.map +1 -0
  101. package/out/runtime/loader.js +346 -0
  102. package/out/runtime/loader.js.map +1 -0
  103. package/out/runtime/logger.d.ts +2 -0
  104. package/out/runtime/logger.d.ts.map +1 -0
  105. package/out/runtime/logger.js +44 -0
  106. package/out/runtime/logger.js.map +1 -0
  107. package/out/runtime/module.d.ts +273 -0
  108. package/out/runtime/module.d.ts.map +1 -0
  109. package/out/runtime/module.js +1786 -0
  110. package/out/runtime/module.js.map +1 -0
  111. package/out/runtime/modules/ai.d.ts +26 -0
  112. package/out/runtime/modules/ai.d.ts.map +1 -0
  113. package/out/runtime/modules/ai.js +211 -0
  114. package/out/runtime/modules/ai.js.map +1 -0
  115. package/out/runtime/modules/auth.d.ts +39 -0
  116. package/out/runtime/modules/auth.d.ts.map +1 -0
  117. package/out/runtime/modules/auth.js +359 -0
  118. package/out/runtime/modules/auth.js.map +1 -0
  119. package/out/runtime/modules/core.d.ts +2 -0
  120. package/out/runtime/modules/core.d.ts.map +1 -0
  121. package/out/runtime/modules/core.js +67 -0
  122. package/out/runtime/modules/core.js.map +1 -0
  123. package/out/runtime/relgraph.d.ts +21 -0
  124. package/out/runtime/relgraph.d.ts.map +1 -0
  125. package/out/runtime/relgraph.js +156 -0
  126. package/out/runtime/relgraph.js.map +1 -0
  127. package/out/runtime/resolvers/interface.d.ts +59 -0
  128. package/out/runtime/resolvers/interface.d.ts.map +1 -0
  129. package/out/runtime/resolvers/interface.js +111 -0
  130. package/out/runtime/resolvers/interface.js.map +1 -0
  131. package/out/runtime/resolvers/registry.d.ts +8 -0
  132. package/out/runtime/resolvers/registry.d.ts.map +1 -0
  133. package/out/runtime/resolvers/registry.js +26 -0
  134. package/out/runtime/resolvers/registry.js.map +1 -0
  135. package/out/runtime/resolvers/sqldb/database.d.ts +50 -0
  136. package/out/runtime/resolvers/sqldb/database.d.ts.map +1 -0
  137. package/out/runtime/resolvers/sqldb/database.js +618 -0
  138. package/out/runtime/resolvers/sqldb/database.js.map +1 -0
  139. package/out/runtime/resolvers/sqldb/dbutil.d.ts +18 -0
  140. package/out/runtime/resolvers/sqldb/dbutil.d.ts.map +1 -0
  141. package/out/runtime/resolvers/sqldb/dbutil.js +221 -0
  142. package/out/runtime/resolvers/sqldb/dbutil.js.map +1 -0
  143. package/out/runtime/resolvers/sqldb/impl.d.ts +26 -0
  144. package/out/runtime/resolvers/sqldb/impl.d.ts.map +1 -0
  145. package/out/runtime/resolvers/sqldb/impl.js +300 -0
  146. package/out/runtime/resolvers/sqldb/impl.js.map +1 -0
  147. package/out/runtime/state.js +83 -0
  148. package/out/runtime/state.js.map +1 -0
  149. package/out/runtime/util.d.ts +43 -0
  150. package/out/runtime/util.d.ts.map +1 -0
  151. package/out/runtime/util.js +447 -0
  152. package/out/runtime/util.js.map +1 -0
  153. package/out/setupClassic.d.ts +98 -0
  154. package/out/setupClassic.d.ts.map +1 -0
  155. package/out/setupClassic.js +38 -0
  156. package/out/setupClassic.js.map +1 -0
  157. package/out/setupCommon.d.ts +2 -0
  158. package/out/setupCommon.d.ts.map +1 -0
  159. package/out/setupCommon.js +33 -0
  160. package/out/setupCommon.js.map +1 -0
  161. package/out/setupExtended.d.ts +40 -0
  162. package/out/setupExtended.d.ts.map +1 -0
  163. package/out/setupExtended.js +67 -0
  164. package/out/setupExtended.js.map +1 -0
  165. package/out/syntaxes/agentlang.monarch.d.ts +77 -0
  166. package/out/syntaxes/agentlang.monarch.d.ts.map +1 -0
  167. package/out/syntaxes/agentlang.monarch.js +31 -0
  168. package/out/syntaxes/agentlang.monarch.js.map +1 -0
  169. package/out/utils/fs/index.d.ts +14 -0
  170. package/out/utils/fs/index.d.ts.map +1 -0
  171. package/out/utils/fs/index.js +26 -0
  172. package/out/utils/fs/index.js.map +1 -0
  173. package/out/utils/fs/interfaces.d.ts +105 -0
  174. package/out/utils/fs/interfaces.d.ts.map +1 -0
  175. package/out/utils/fs/interfaces.js +5 -0
  176. package/out/utils/fs/interfaces.js.map +1 -0
  177. package/out/utils/fs/lightning-fs.d.ts +116 -0
  178. package/out/utils/fs/lightning-fs.d.ts.map +1 -0
  179. package/out/utils/fs/lightning-fs.js +243 -0
  180. package/out/utils/fs/lightning-fs.js.map +1 -0
  181. package/out/utils/fs/node-fs.d.ts +93 -0
  182. package/out/utils/fs/node-fs.d.ts.map +1 -0
  183. package/out/utils/fs/node-fs.js +169 -0
  184. package/out/utils/fs/node-fs.js.map +1 -0
  185. package/out/utils/fs-utils.d.ts +153 -0
  186. package/out/utils/fs-utils.d.ts.map +1 -0
  187. package/out/utils/fs-utils.js +271 -0
  188. package/out/utils/fs-utils.js.map +1 -0
  189. package/out/utils/runtime.d.ts +36 -0
  190. package/out/utils/runtime.d.ts.map +1 -0
  191. package/out/utils/runtime.js +39 -0
  192. package/out/utils/runtime.js.map +1 -0
  193. package/package.json +155 -0
  194. package/src/api/http.ts +361 -0
  195. package/src/cli/cli-util.ts +18 -0
  196. package/src/cli/main.ts +146 -0
  197. package/src/extension/main.ts +51 -0
  198. package/src/language/agentlang-module.ts +75 -0
  199. package/src/language/agentlang-validator.ts +60 -0
  200. package/src/language/agentlang.langium +178 -0
  201. package/src/language/generated/ast.ts +1698 -0
  202. package/src/language/generated/grammar.ts +4477 -0
  203. package/src/language/generated/module.ts +25 -0
  204. package/src/language/main-browser.ts +19 -0
  205. package/src/language/main.ts +13 -0
  206. package/src/language/parser.ts +329 -0
  207. package/src/language/syntax.ts +646 -0
  208. package/src/runtime/agents/common.ts +177 -0
  209. package/src/runtime/agents/impl/openai.ts +19 -0
  210. package/src/runtime/agents/provider.ts +58 -0
  211. package/src/runtime/agents/registry.ts +9 -0
  212. package/src/runtime/auth/cognito.ts +225 -0
  213. package/src/runtime/auth/defs.ts +33 -0
  214. package/src/runtime/auth/interface.ts +31 -0
  215. package/src/runtime/defs.ts +33 -0
  216. package/src/runtime/interpreter.ts +1352 -0
  217. package/src/runtime/loader.ts +450 -0
  218. package/src/runtime/logger.ts +51 -0
  219. package/src/runtime/module.ts +2188 -0
  220. package/src/runtime/modules/ai.ts +257 -0
  221. package/src/runtime/modules/auth.ts +489 -0
  222. package/src/runtime/modules/core.ts +95 -0
  223. package/src/runtime/relgraph.ts +195 -0
  224. package/src/runtime/resolvers/interface.ts +160 -0
  225. package/src/runtime/resolvers/registry.ts +30 -0
  226. package/src/runtime/resolvers/sqldb/database.ts +823 -0
  227. package/src/runtime/resolvers/sqldb/dbutil.ts +257 -0
  228. package/src/runtime/resolvers/sqldb/impl.ts +471 -0
  229. package/src/runtime/state.ts +87 -0
  230. package/src/runtime/util.ts +513 -0
  231. package/src/setupClassic.ts +43 -0
  232. package/src/setupCommon.ts +33 -0
  233. package/src/setupExtended.ts +79 -0
  234. package/src/syntaxes/agentlang.monarch.ts +31 -0
  235. package/src/utils/fs/index.ts +28 -0
  236. package/src/utils/fs/interfaces.ts +118 -0
  237. package/src/utils/fs/lightning-fs.ts +284 -0
  238. package/src/utils/fs/node-fs.ts +185 -0
  239. package/src/utils/fs-utils.ts +304 -0
  240. package/src/utils/runtime.ts +43 -0
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/language/main.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ import { startLanguageServer } from 'langium/lsp';
2
+ import { NodeFileSystem } from 'langium/node';
3
+ import { createConnection, ProposedFeatures } from 'vscode-languageserver/node.js';
4
+ import { createAgentlangServices } from './agentlang-module.js';
5
+ // Create a connection to the client
6
+ const connection = createConnection(ProposedFeatures.all);
7
+ // Inject the shared services and language-specific services
8
+ const { shared } = createAgentlangServices(Object.assign({ connection }, NodeFileSystem));
9
+ // Start the language server with the shared services
10
+ startLanguageServer(shared);
11
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/language/main.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACnF,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,oCAAoC;AACpC,MAAM,UAAU,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;AAE1D,4DAA4D;AAC5D,MAAM,EAAE,MAAM,EAAE,GAAG,uBAAuB,iBAAG,UAAU,IAAK,cAAc,EAAG,CAAC;AAE9E,qDAAqD;AACrD,mBAAmB,CAAC,MAAM,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { LangiumDocument } from 'langium';
2
+ import { ModuleDefinition, Statement, WorkflowDefinition } from './generated/ast.js';
3
+ import { BasePattern } from './syntax.js';
4
+ export declare const parse: (input: string, options?: import("langium/test").ParseHelperOptions) => Promise<LangiumDocument<ModuleDefinition>>;
5
+ export declare function parseModule(moduleDef: string): Promise<ModuleDefinition>;
6
+ export declare function parseStatement(stmt: string): Promise<Statement>;
7
+ export declare function parseWorkflow(workflowDef: string): Promise<WorkflowDefinition>;
8
+ export declare function introspect(s: string): Promise<BasePattern[]>;
9
+ //# sourceMappingURL=parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../src/language/parser.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,eAAe,EAAE,MAAM,SAAS,CAAC;AAE3D,OAAO,EAcL,gBAAgB,EAOhB,SAAS,EACT,kBAAkB,EACnB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,WAAW,EAWZ,MAAM,aAAa,CAAC;AAGrB,eAAO,MAAM,KAAK,oHAAoD,CAAC;AAEvE,wBAAsB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAI9E;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAarE;AAED,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAOpF;AAeD,wBAAsB,UAAU,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CA2BlE"}
@@ -0,0 +1,273 @@
1
+ import { createAgentlangServices } from '../language/agentlang-module.js';
2
+ import { EmptyFileSystem, URI } from 'langium';
3
+ import { isGroup, isLiteral, isNegExpr, isNotExpr, isPrimExpr, isWorkflowDefinition, } from './generated/ast.js';
4
+ import { firstAliasSpec, firstCatchSpec, QuerySuffix } from '../runtime/util.js';
5
+ import { CrudPattern, DeletePattern, ExpressionPattern, ForEachPattern, FunctionCallPattern, GroupExpressionPattern, IfPattern, LiteralPattern, NegExpressionPattern, NotExpressionPattern, } from './syntax.js';
6
+ let nextDocumentId = 1;
7
+ export function parseHelper(services) {
8
+ const metaData = services.LanguageMetaData;
9
+ const documentBuilder = services.shared.workspace.DocumentBuilder;
10
+ return async (input, options) => {
11
+ var _a, _b;
12
+ const uri = URI.parse((_a = options === null || options === void 0 ? void 0 : options.documentUri) !== null && _a !== void 0 ? _a : `file:///${nextDocumentId++}${(_b = metaData.fileExtensions[0]) !== null && _b !== void 0 ? _b : ''}`);
13
+ const document = services.shared.workspace.LangiumDocumentFactory.fromString(input, uri, options === null || options === void 0 ? void 0 : options.parserOptions);
14
+ services.shared.workspace.LangiumDocuments.addDocument(document);
15
+ await documentBuilder.build([document], options);
16
+ return document;
17
+ };
18
+ }
19
+ const services = createAgentlangServices(EmptyFileSystem);
20
+ export const parse = parseHelper(services.Agentlang);
21
+ export async function parseModule(moduleDef) {
22
+ const document = await parse(moduleDef, { validation: true });
23
+ maybeRaiseParserErrors(document);
24
+ return document.parseResult.value;
25
+ }
26
+ export async function parseStatement(stmt) {
27
+ let result;
28
+ const mod = await parseModule(`module Temp\nworkflow TempEvent { ${stmt} }`);
29
+ if (isWorkflowDefinition(mod.defs[0])) {
30
+ result = mod.defs[0].statements[0];
31
+ }
32
+ else {
33
+ throw new Error('Failed to extract workflow-statement');
34
+ }
35
+ if (result) {
36
+ return result;
37
+ }
38
+ else {
39
+ throw new Error('There was an error parsing the statement');
40
+ }
41
+ }
42
+ export async function parseWorkflow(workflowDef) {
43
+ const mod = await parseModule(`module Temp ${workflowDef}`);
44
+ if (isWorkflowDefinition(mod.defs[0])) {
45
+ return mod.defs[0];
46
+ }
47
+ else {
48
+ throw new Error(`Failed to generated workflow from ${workflowDef}`);
49
+ }
50
+ }
51
+ function maybeRaiseParserErrors(document) {
52
+ if (document.parseResult.lexerErrors.length > 0 || document.parseResult.parserErrors.length > 0) {
53
+ const errs = [];
54
+ document.parseResult.lexerErrors.forEach((v) => {
55
+ errs.push(v.message);
56
+ });
57
+ document.parseResult.parserErrors.forEach((v) => {
58
+ errs.push(v.message);
59
+ });
60
+ throw new Error(`There were parser errors: \n ${errs.join('\n')}`);
61
+ }
62
+ }
63
+ export async function introspect(s) {
64
+ let result = [];
65
+ const v = await parse(`module Temp workflow Test {${s}}`);
66
+ if (v.parseResult.lexerErrors.length > 0) {
67
+ throw new Error(`Lexer errors: ${v.parseResult.lexerErrors
68
+ .map((err) => {
69
+ return err.message;
70
+ })
71
+ .join('\n')}`);
72
+ }
73
+ if (v.parseResult.parserErrors.length > 0) {
74
+ throw new Error(`Parser errors: ${v.parseResult.parserErrors
75
+ .map((err) => {
76
+ return err.message;
77
+ })
78
+ .join('\n')}`);
79
+ }
80
+ if (isWorkflowDefinition(v.parseResult.value.defs[0])) {
81
+ result = introspectHelper(v.parseResult.value.defs[0].statements);
82
+ }
83
+ else {
84
+ throw new Error(`Failed to parse statements`);
85
+ }
86
+ return result;
87
+ }
88
+ function introspectHelper(stmts) {
89
+ const result = [];
90
+ stmts.forEach((stmt) => {
91
+ result.push(introspectStatement(stmt));
92
+ });
93
+ return result;
94
+ }
95
+ function introspectStatement(stmt) {
96
+ const r = introspectPattern(stmt.pattern);
97
+ const aliasSpec = firstAliasSpec(stmt);
98
+ if (aliasSpec) {
99
+ if (aliasSpec.alias) {
100
+ r.setAlias(aliasSpec.alias);
101
+ }
102
+ else if (aliasSpec.aliases.length > 0) {
103
+ r.setAliases(aliasSpec.aliases);
104
+ }
105
+ }
106
+ const catchSpec = firstCatchSpec(stmt);
107
+ if (catchSpec) {
108
+ catchSpec.handlers.forEach((h) => {
109
+ r.addHandler(h.except, introspectStatement(h.stmt));
110
+ });
111
+ }
112
+ return r;
113
+ }
114
+ function introspectPattern(pat) {
115
+ let r;
116
+ if (pat.crudMap) {
117
+ if (isQueryPattern(pat)) {
118
+ r = introspectQueryPattern(pat.crudMap);
119
+ }
120
+ else {
121
+ r = introspectCreatePattern(pat.crudMap);
122
+ }
123
+ }
124
+ else if (pat.literal) {
125
+ r = introspectLiteral(pat.literal);
126
+ }
127
+ else if (pat.forEach) {
128
+ r = introspectForEach(pat.forEach);
129
+ }
130
+ else if (pat.if) {
131
+ r = introspectIf(pat.if);
132
+ }
133
+ else if (pat.delete) {
134
+ r = introspectDelete(pat.delete);
135
+ }
136
+ if (r)
137
+ return r;
138
+ else {
139
+ throw new Error(`Failed to introspect pattern: ${pat}`);
140
+ }
141
+ }
142
+ function isQueryPattern(pat) {
143
+ if (pat.crudMap) {
144
+ const crudMap = pat.crudMap;
145
+ return (crudMap.name.endsWith(QuerySuffix) ||
146
+ (crudMap.attributes.length > 0 &&
147
+ crudMap.attributes.every((v) => {
148
+ return v.name.endsWith(QuerySuffix);
149
+ })));
150
+ }
151
+ return false;
152
+ }
153
+ function introspectGroup(expr) {
154
+ return new GroupExpressionPattern(introspectExpression(expr.ge));
155
+ }
156
+ function introspectNegExpr(expr) {
157
+ return new NegExpressionPattern(introspectExpression(expr.ne));
158
+ }
159
+ function introspectNotExpr(expr) {
160
+ return new NotExpressionPattern(introspectExpression(expr.ne));
161
+ }
162
+ function introspectPrimExpr(expr) {
163
+ if (isLiteral(expr)) {
164
+ return introspectLiteral(expr);
165
+ }
166
+ else if (isGroup(expr)) {
167
+ return introspectGroup(expr);
168
+ }
169
+ else if (isNegExpr(expr)) {
170
+ return introspectNegExpr(expr);
171
+ }
172
+ else if (isNotExpr(expr)) {
173
+ return introspectNotExpr(expr);
174
+ }
175
+ else {
176
+ throw new Error(`Not a PrimExpr - ${expr}`);
177
+ }
178
+ }
179
+ function introspectExpression(expr) {
180
+ if (isPrimExpr(expr)) {
181
+ return introspectPrimExpr(expr);
182
+ }
183
+ if (expr.$cstNode) {
184
+ return new ExpressionPattern(expr.$cstNode.text);
185
+ }
186
+ throw new Error('Failed to introspect expression - ' + expr);
187
+ }
188
+ function introspectQueryPattern(crudMap) {
189
+ if (crudMap) {
190
+ const cp = new CrudPattern(crudMap.name);
191
+ crudMap.attributes.forEach((sa) => {
192
+ cp.addAttribute(sa.name, introspectExpression(sa.value), sa.op);
193
+ });
194
+ crudMap.relationships.forEach((rp) => {
195
+ cp.addRelationship(rp.name, introspectPattern(rp.pattern));
196
+ });
197
+ cp.isQuery = true;
198
+ return cp;
199
+ }
200
+ throw new Error(`Failed to introspect query-pattern: ${crudMap}`);
201
+ }
202
+ function introspectCreatePattern(crudMap) {
203
+ if (crudMap) {
204
+ const cp = new CrudPattern(crudMap.name);
205
+ crudMap.attributes.forEach((sa) => {
206
+ if (!cp.isQueryUpdate && sa.name.endsWith(QuerySuffix)) {
207
+ cp.isQueryUpdate = true;
208
+ }
209
+ cp.addAttribute(sa.name, introspectExpression(sa.value), sa.op);
210
+ });
211
+ crudMap.relationships.forEach((rp) => {
212
+ cp.addRelationship(rp.name, introspectPattern(rp.pattern));
213
+ });
214
+ if (!cp.isQueryUpdate) {
215
+ cp.isCreate = true;
216
+ }
217
+ return cp;
218
+ }
219
+ throw new Error(`Failed to introspect create-pattern: ${crudMap}`);
220
+ }
221
+ function introspectLiteral(lit) {
222
+ if (lit.id) {
223
+ return LiteralPattern.Id(lit.id);
224
+ }
225
+ else if (lit.num) {
226
+ return LiteralPattern.Number(lit.num);
227
+ }
228
+ else if (lit.ref) {
229
+ return LiteralPattern.Reference(lit.ref);
230
+ }
231
+ else if (lit.str) {
232
+ return LiteralPattern.String(lit.str);
233
+ }
234
+ else if (lit.bool) {
235
+ return LiteralPattern.Boolean(lit.bool == 'true' ? true : false);
236
+ }
237
+ else if (lit.fnCall) {
238
+ return new FunctionCallPattern(lit.fnCall.name, lit.fnCall.args.map((v) => {
239
+ return introspectLiteral(v);
240
+ }));
241
+ }
242
+ else if (lit.array) {
243
+ return LiteralPattern.Array(lit.array.vals.map((stmt) => {
244
+ return introspectStatement(stmt);
245
+ }));
246
+ }
247
+ else {
248
+ throw new Error(`Invalid literal - ${lit}`);
249
+ }
250
+ }
251
+ function introspectForEach(forEach) {
252
+ const fp = new ForEachPattern(forEach.var, introspectPattern(forEach.src));
253
+ forEach.statements.forEach((stmt) => {
254
+ fp.addPattern(introspectStatement(stmt));
255
+ });
256
+ return fp;
257
+ }
258
+ function introspectIf(ifpat) {
259
+ const ifp = new IfPattern(introspectExpression(ifpat.cond));
260
+ ifpat.statements.forEach((stmt) => {
261
+ ifp.addPattern(introspectStatement(stmt));
262
+ });
263
+ if (ifpat.else) {
264
+ ifp.setElse(ifpat.else.statements.map((stmt) => {
265
+ return introspectStatement(stmt);
266
+ }));
267
+ }
268
+ return ifp;
269
+ }
270
+ function introspectDelete(deletePat) {
271
+ return new DeletePattern(introspectPattern(deletePat.pattern));
272
+ }
273
+ //# sourceMappingURL=parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/language/parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,155 @@
1
+ export declare class BasePattern {
2
+ alias: string | undefined;
3
+ aliases: string[] | undefined;
4
+ setAlias(alias: string): this;
5
+ unsetAlias(): this;
6
+ addAlias(alias: string): void;
7
+ setAliases(aliases: string[]): void;
8
+ aliasAsString(): string;
9
+ toString(): string;
10
+ }
11
+ export declare const EmptyBasePattern: BasePattern;
12
+ export declare enum LiteralPatternType {
13
+ ID = 0,
14
+ NUMBER = 1,
15
+ BOOLEAN = 2,
16
+ STRING = 3,
17
+ REFERENCE = 4,
18
+ MAP = 5,
19
+ ARRAY = 6
20
+ }
21
+ export declare class LiteralPattern extends BasePattern {
22
+ type: LiteralPatternType;
23
+ value: any;
24
+ static EmptyArray: LiteralPattern;
25
+ constructor(type: LiteralPatternType, value: any);
26
+ static Id(value: string): LiteralPattern;
27
+ static Number(value: number): LiteralPattern;
28
+ static Boolean(value: boolean): LiteralPattern;
29
+ static String(value: string): LiteralPattern;
30
+ static Reference(value: string): LiteralPattern;
31
+ static Map(value: Map<string, BasePattern>): LiteralPattern;
32
+ static Array(value: Array<BasePattern>): LiteralPattern;
33
+ toString(): string;
34
+ }
35
+ export declare function isLiteralPattern(p: BasePattern): boolean;
36
+ export declare function isReferenceLiteral(p: LiteralPattern): boolean;
37
+ export declare function referenceParts(p: LiteralPattern): string[] | undefined;
38
+ export declare function isStringLiteral(p: LiteralPattern): boolean;
39
+ export declare function isNumberLiteral(p: LiteralPattern): boolean;
40
+ export declare function isBooleanLiteral(p: LiteralPattern): boolean;
41
+ export declare function isIdentifierLiteral(p: LiteralPattern): boolean;
42
+ export declare function isArrayLiteral(p: LiteralPattern): boolean;
43
+ export declare function isMapLiteral(p: LiteralPattern): boolean;
44
+ export declare class FunctionCallPattern extends BasePattern {
45
+ fnName: string;
46
+ arguments: BasePattern[];
47
+ constructor(fnName: string, args: BasePattern[]);
48
+ toString(): string;
49
+ }
50
+ export declare function isFunctionCallPattern(p: BasePattern): boolean;
51
+ export declare class ExpressionPattern extends BasePattern {
52
+ expression: any;
53
+ private static services;
54
+ private static doParse;
55
+ private static parse;
56
+ constructor(expression: any);
57
+ static Validated(exprString: string): Promise<ExpressionPattern>;
58
+ toString(): string;
59
+ }
60
+ export declare function isExpressionPattern(p: BasePattern): boolean;
61
+ export declare class GroupExpressionPattern extends BasePattern {
62
+ expression: ExpressionPattern;
63
+ constructor(expr: ExpressionPattern);
64
+ toString(): string;
65
+ }
66
+ export declare function isGroupExpressionPattern(p: BasePattern): boolean;
67
+ export declare class NegExpressionPattern extends BasePattern {
68
+ expression: ExpressionPattern;
69
+ constructor(expr: ExpressionPattern);
70
+ toString(): string;
71
+ }
72
+ export declare class NotExpressionPattern extends BasePattern {
73
+ expression: ExpressionPattern;
74
+ constructor(expr: ExpressionPattern);
75
+ toString(): string;
76
+ }
77
+ export declare function isNegExpressionPattern(p: BasePattern): boolean;
78
+ export declare function isNotExpressionPattern(p: BasePattern): boolean;
79
+ export declare class ReferencePattern extends BasePattern {
80
+ record: string;
81
+ member: string;
82
+ constructor(record: string, member: string);
83
+ toString(): string;
84
+ }
85
+ export declare function isReferencePattern(p: BasePattern): boolean;
86
+ export type AttributePattern = {
87
+ name: string;
88
+ op: string | undefined;
89
+ value: BasePattern;
90
+ };
91
+ export declare class CrudPattern extends BasePattern {
92
+ recordName: string;
93
+ attributes: Array<AttributePattern>;
94
+ relationships: Map<string, CrudPattern[] | CrudPattern> | undefined;
95
+ isQuery: boolean;
96
+ isQueryUpdate: boolean;
97
+ isCreate: boolean;
98
+ constructor(recordName: string);
99
+ addAttribute(n: string, p: BasePattern, op?: string): this;
100
+ removeAttribute(n: string): this;
101
+ private flagType;
102
+ addRelationship(n: string, p: CrudPattern[] | CrudPattern): this;
103
+ removeRelationship(n: string): this;
104
+ private attributesAsString;
105
+ private relationshipsAsString;
106
+ getNormalizedRecordName(): string;
107
+ toString(): string;
108
+ }
109
+ export declare function isCrudPattern(p: BasePattern): boolean;
110
+ export declare function isCreatePattern(p: BasePattern): boolean;
111
+ export declare function isQueryPattern(p: BasePattern): boolean;
112
+ export declare function isQueryUpdatePattern(p: BasePattern): boolean;
113
+ export declare class ForEachPattern extends BasePattern {
114
+ variable: string;
115
+ source: BasePattern;
116
+ body: BasePattern[];
117
+ constructor(variable?: string, source?: BasePattern);
118
+ addPattern(p: BasePattern): ForEachPattern;
119
+ removePattern(index: number): ForEachPattern;
120
+ setPatternAt(p: BasePattern, index: number): ForEachPattern;
121
+ removePatternAt(index: number): ForEachPattern;
122
+ getPatternAt(index: number): BasePattern;
123
+ setVariable(s: string): ForEachPattern;
124
+ setSourcePattern(p: BasePattern): ForEachPattern;
125
+ toString(): string;
126
+ }
127
+ export declare function isForEachPattern(p: BasePattern): boolean;
128
+ export declare class IfPattern extends BasePattern {
129
+ condition: BasePattern;
130
+ body: BasePattern[];
131
+ elseBody: BasePattern[] | undefined;
132
+ private static True;
133
+ constructor(condition?: BasePattern);
134
+ addPattern(p: BasePattern): IfPattern;
135
+ removePattern(index: number): IfPattern;
136
+ setPatternAt(p: BasePattern, index: number): IfPattern;
137
+ removePatternAt(index: number): IfPattern;
138
+ getPatternAt(index: number): BasePattern;
139
+ setConditionPattern(p: BasePattern): IfPattern;
140
+ setElse(elseBody?: BasePattern[]): IfPattern;
141
+ removeElse(): IfPattern;
142
+ toString(): string;
143
+ }
144
+ export declare function isIfPattern(p: BasePattern): boolean;
145
+ export declare function newCreatePattern(recName: string): CrudPattern;
146
+ export declare function newQueryPattern(recName: string, forQueryUpdate?: boolean): CrudPattern;
147
+ export declare function newQueryUpdatePattern(recName: string): CrudPattern;
148
+ export declare class DeletePattern extends BasePattern {
149
+ pattern: BasePattern;
150
+ constructor(pattern: BasePattern);
151
+ toString(): string;
152
+ }
153
+ export declare function isDeletePattern(p: BasePattern): boolean;
154
+ export declare function newDeletePattern(recName: string): DeletePattern;
155
+ //# sourceMappingURL=syntax.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"syntax.d.ts","sourceRoot":"","sources":["../../src/language/syntax.ts"],"names":[],"mappings":"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"}