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.
- package/LICENSE +83 -0
- package/README.md +120 -0
- package/bin/cli.js +4 -0
- package/out/api/http.d.ts +3 -0
- package/out/api/http.d.ts.map +1 -0
- package/out/api/http.js +290 -0
- package/out/api/http.js.map +1 -0
- package/out/cli/cli-util.d.ts +7 -0
- package/out/cli/cli-util.d.ts.map +1 -0
- package/out/cli/cli-util.js +9 -0
- package/out/cli/cli-util.js.map +1 -0
- package/out/cli/docs.d.ts +2 -0
- package/out/cli/docs.d.ts.map +1 -0
- package/out/cli/docs.js +236 -0
- package/out/cli/docs.js.map +1 -0
- package/out/cli/main.d.ts +288 -0
- package/out/cli/main.d.ts.map +1 -0
- package/out/cli/main.js +119 -0
- package/out/cli/main.js.map +1 -0
- package/out/cli/openapi-docs.yml +695 -0
- package/out/extension/main.cjs +18093 -0
- package/out/extension/main.cjs.map +7 -0
- package/out/extension/main.d.ts +4 -0
- package/out/extension/main.d.ts.map +1 -0
- package/out/extension/main.js +42 -0
- package/out/extension/main.js.map +1 -0
- package/out/language/agentlang-module.d.ts +42 -0
- package/out/language/agentlang-module.d.ts.map +1 -0
- package/out/language/agentlang-module.js +42 -0
- package/out/language/agentlang-module.js.map +1 -0
- package/out/language/agentlang-validator.d.ts +15 -0
- package/out/language/agentlang-validator.d.ts.map +1 -0
- package/out/language/agentlang-validator.js +50 -0
- package/out/language/agentlang-validator.js.map +1 -0
- package/out/language/generated/ast.d.ts +491 -0
- package/out/language/generated/ast.d.ts.map +1 -0
- package/out/language/generated/ast.js +934 -0
- package/out/language/generated/ast.js.map +1 -0
- package/out/language/generated/grammar.d.ts +7 -0
- package/out/language/generated/grammar.d.ts.map +1 -0
- package/out/language/generated/grammar.js +4475 -0
- package/out/language/generated/grammar.js.map +1 -0
- package/out/language/generated/module.d.ts +14 -0
- package/out/language/generated/module.d.ts.map +1 -0
- package/out/language/generated/module.js +21 -0
- package/out/language/generated/module.js.map +1 -0
- package/out/language/main-browser.d.ts +2 -0
- package/out/language/main-browser.d.ts.map +1 -0
- package/out/language/main-browser.js +10 -0
- package/out/language/main-browser.js.map +1 -0
- package/out/language/main.cjs +36229 -0
- package/out/language/main.cjs.map +7 -0
- package/out/language/main.d.ts +2 -0
- package/out/language/main.d.ts.map +1 -0
- package/out/language/main.js +11 -0
- package/out/language/main.js.map +1 -0
- package/out/language/parser.d.ts +9 -0
- package/out/language/parser.d.ts.map +1 -0
- package/out/language/parser.js +273 -0
- package/out/language/parser.js.map +1 -0
- package/out/language/syntax.d.ts +155 -0
- package/out/language/syntax.d.ts.map +1 -0
- package/out/language/syntax.js +527 -0
- package/out/language/syntax.js.map +1 -0
- package/out/runtime/agents/common.d.ts +2 -0
- package/out/runtime/agents/common.d.ts.map +1 -0
- package/out/runtime/agents/common.js +178 -0
- package/out/runtime/agents/common.js.map +1 -0
- package/out/runtime/agents/impl/openai.d.ts +8 -0
- package/out/runtime/agents/impl/openai.d.ts.map +1 -0
- package/out/runtime/agents/impl/openai.js +15 -0
- package/out/runtime/agents/impl/openai.js.map +1 -0
- package/out/runtime/agents/provider.d.ts +21 -0
- package/out/runtime/agents/provider.d.ts.map +1 -0
- package/out/runtime/agents/provider.js +32 -0
- package/out/runtime/agents/provider.js.map +1 -0
- package/out/runtime/agents/registry.d.ts +2 -0
- package/out/runtime/agents/registry.d.ts.map +1 -0
- package/out/runtime/agents/registry.js +10 -0
- package/out/runtime/agents/registry.js.map +1 -0
- package/out/runtime/auth/cognito.d.ts +16 -0
- package/out/runtime/auth/cognito.d.ts.map +1 -0
- package/out/runtime/auth/cognito.js +186 -0
- package/out/runtime/auth/cognito.js.map +1 -0
- package/out/runtime/auth/defs.d.ts +11 -0
- package/out/runtime/auth/defs.d.ts.map +1 -0
- package/out/runtime/auth/defs.js +24 -0
- package/out/runtime/auth/defs.js.map +1 -0
- package/out/runtime/auth/interface.d.ts +22 -0
- package/out/runtime/auth/interface.d.ts.map +1 -0
- package/out/runtime/auth/interface.js +2 -0
- package/out/runtime/auth/interface.js.map +1 -0
- package/out/runtime/defs.js +24 -0
- package/out/runtime/defs.js.map +1 -0
- package/out/runtime/interpreter.d.ts +69 -0
- package/out/runtime/interpreter.d.ts.map +1 -0
- package/out/runtime/interpreter.js +1163 -0
- package/out/runtime/interpreter.js.map +1 -0
- package/out/runtime/loader.d.ts +25 -0
- package/out/runtime/loader.d.ts.map +1 -0
- package/out/runtime/loader.js +346 -0
- package/out/runtime/loader.js.map +1 -0
- package/out/runtime/logger.d.ts +2 -0
- package/out/runtime/logger.d.ts.map +1 -0
- package/out/runtime/logger.js +44 -0
- package/out/runtime/logger.js.map +1 -0
- package/out/runtime/module.d.ts +273 -0
- package/out/runtime/module.d.ts.map +1 -0
- package/out/runtime/module.js +1786 -0
- package/out/runtime/module.js.map +1 -0
- package/out/runtime/modules/ai.d.ts +26 -0
- package/out/runtime/modules/ai.d.ts.map +1 -0
- package/out/runtime/modules/ai.js +211 -0
- package/out/runtime/modules/ai.js.map +1 -0
- package/out/runtime/modules/auth.d.ts +39 -0
- package/out/runtime/modules/auth.d.ts.map +1 -0
- package/out/runtime/modules/auth.js +359 -0
- package/out/runtime/modules/auth.js.map +1 -0
- package/out/runtime/modules/core.d.ts +2 -0
- package/out/runtime/modules/core.d.ts.map +1 -0
- package/out/runtime/modules/core.js +67 -0
- package/out/runtime/modules/core.js.map +1 -0
- package/out/runtime/relgraph.d.ts +21 -0
- package/out/runtime/relgraph.d.ts.map +1 -0
- package/out/runtime/relgraph.js +156 -0
- package/out/runtime/relgraph.js.map +1 -0
- package/out/runtime/resolvers/interface.d.ts +59 -0
- package/out/runtime/resolvers/interface.d.ts.map +1 -0
- package/out/runtime/resolvers/interface.js +111 -0
- package/out/runtime/resolvers/interface.js.map +1 -0
- package/out/runtime/resolvers/registry.d.ts +8 -0
- package/out/runtime/resolvers/registry.d.ts.map +1 -0
- package/out/runtime/resolvers/registry.js +26 -0
- package/out/runtime/resolvers/registry.js.map +1 -0
- package/out/runtime/resolvers/sqldb/database.d.ts +50 -0
- package/out/runtime/resolvers/sqldb/database.d.ts.map +1 -0
- package/out/runtime/resolvers/sqldb/database.js +618 -0
- package/out/runtime/resolvers/sqldb/database.js.map +1 -0
- package/out/runtime/resolvers/sqldb/dbutil.d.ts +18 -0
- package/out/runtime/resolvers/sqldb/dbutil.d.ts.map +1 -0
- package/out/runtime/resolvers/sqldb/dbutil.js +221 -0
- package/out/runtime/resolvers/sqldb/dbutil.js.map +1 -0
- package/out/runtime/resolvers/sqldb/impl.d.ts +26 -0
- package/out/runtime/resolvers/sqldb/impl.d.ts.map +1 -0
- package/out/runtime/resolvers/sqldb/impl.js +300 -0
- package/out/runtime/resolvers/sqldb/impl.js.map +1 -0
- package/out/runtime/state.js +83 -0
- package/out/runtime/state.js.map +1 -0
- package/out/runtime/util.d.ts +43 -0
- package/out/runtime/util.d.ts.map +1 -0
- package/out/runtime/util.js +447 -0
- package/out/runtime/util.js.map +1 -0
- package/out/setupClassic.d.ts +98 -0
- package/out/setupClassic.d.ts.map +1 -0
- package/out/setupClassic.js +38 -0
- package/out/setupClassic.js.map +1 -0
- package/out/setupCommon.d.ts +2 -0
- package/out/setupCommon.d.ts.map +1 -0
- package/out/setupCommon.js +33 -0
- package/out/setupCommon.js.map +1 -0
- package/out/setupExtended.d.ts +40 -0
- package/out/setupExtended.d.ts.map +1 -0
- package/out/setupExtended.js +67 -0
- package/out/setupExtended.js.map +1 -0
- package/out/syntaxes/agentlang.monarch.d.ts +77 -0
- package/out/syntaxes/agentlang.monarch.d.ts.map +1 -0
- package/out/syntaxes/agentlang.monarch.js +31 -0
- package/out/syntaxes/agentlang.monarch.js.map +1 -0
- package/out/utils/fs/index.d.ts +14 -0
- package/out/utils/fs/index.d.ts.map +1 -0
- package/out/utils/fs/index.js +26 -0
- package/out/utils/fs/index.js.map +1 -0
- package/out/utils/fs/interfaces.d.ts +105 -0
- package/out/utils/fs/interfaces.d.ts.map +1 -0
- package/out/utils/fs/interfaces.js +5 -0
- package/out/utils/fs/interfaces.js.map +1 -0
- package/out/utils/fs/lightning-fs.d.ts +116 -0
- package/out/utils/fs/lightning-fs.d.ts.map +1 -0
- package/out/utils/fs/lightning-fs.js +243 -0
- package/out/utils/fs/lightning-fs.js.map +1 -0
- package/out/utils/fs/node-fs.d.ts +93 -0
- package/out/utils/fs/node-fs.d.ts.map +1 -0
- package/out/utils/fs/node-fs.js +169 -0
- package/out/utils/fs/node-fs.js.map +1 -0
- package/out/utils/fs-utils.d.ts +153 -0
- package/out/utils/fs-utils.d.ts.map +1 -0
- package/out/utils/fs-utils.js +271 -0
- package/out/utils/fs-utils.js.map +1 -0
- package/out/utils/runtime.d.ts +36 -0
- package/out/utils/runtime.d.ts.map +1 -0
- package/out/utils/runtime.js +39 -0
- package/out/utils/runtime.js.map +1 -0
- package/package.json +155 -0
- package/src/api/http.ts +361 -0
- package/src/cli/cli-util.ts +18 -0
- package/src/cli/main.ts +146 -0
- package/src/extension/main.ts +51 -0
- package/src/language/agentlang-module.ts +75 -0
- package/src/language/agentlang-validator.ts +60 -0
- package/src/language/agentlang.langium +178 -0
- package/src/language/generated/ast.ts +1698 -0
- package/src/language/generated/grammar.ts +4477 -0
- package/src/language/generated/module.ts +25 -0
- package/src/language/main-browser.ts +19 -0
- package/src/language/main.ts +13 -0
- package/src/language/parser.ts +329 -0
- package/src/language/syntax.ts +646 -0
- package/src/runtime/agents/common.ts +177 -0
- package/src/runtime/agents/impl/openai.ts +19 -0
- package/src/runtime/agents/provider.ts +58 -0
- package/src/runtime/agents/registry.ts +9 -0
- package/src/runtime/auth/cognito.ts +225 -0
- package/src/runtime/auth/defs.ts +33 -0
- package/src/runtime/auth/interface.ts +31 -0
- package/src/runtime/defs.ts +33 -0
- package/src/runtime/interpreter.ts +1352 -0
- package/src/runtime/loader.ts +450 -0
- package/src/runtime/logger.ts +51 -0
- package/src/runtime/module.ts +2188 -0
- package/src/runtime/modules/ai.ts +257 -0
- package/src/runtime/modules/auth.ts +489 -0
- package/src/runtime/modules/core.ts +95 -0
- package/src/runtime/relgraph.ts +195 -0
- package/src/runtime/resolvers/interface.ts +160 -0
- package/src/runtime/resolvers/registry.ts +30 -0
- package/src/runtime/resolvers/sqldb/database.ts +823 -0
- package/src/runtime/resolvers/sqldb/dbutil.ts +257 -0
- package/src/runtime/resolvers/sqldb/impl.ts +471 -0
- package/src/runtime/state.ts +87 -0
- package/src/runtime/util.ts +513 -0
- package/src/setupClassic.ts +43 -0
- package/src/setupCommon.ts +33 -0
- package/src/setupExtended.ts +79 -0
- package/src/syntaxes/agentlang.monarch.ts +31 -0
- package/src/utils/fs/index.ts +28 -0
- package/src/utils/fs/interfaces.ts +118 -0
- package/src/utils/fs/lightning-fs.ts +284 -0
- package/src/utils/fs/node-fs.ts +185 -0
- package/src/utils/fs-utils.ts +304 -0
- package/src/utils/runtime.ts +43 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { Instance, InstanceAttributes, Relationship } from '../module.js';
|
|
2
|
+
export declare class ResolverAuthInfo {
|
|
3
|
+
userId: string;
|
|
4
|
+
readForUpdate: boolean;
|
|
5
|
+
readForDelete: boolean;
|
|
6
|
+
constructor(userId: string, readForUpdate?: boolean, readForDelete?: boolean);
|
|
7
|
+
}
|
|
8
|
+
export declare class Resolver {
|
|
9
|
+
protected authInfo: ResolverAuthInfo;
|
|
10
|
+
protected userData: any;
|
|
11
|
+
protected name: string;
|
|
12
|
+
static Default: Resolver;
|
|
13
|
+
setAuthInfo(authInfo: ResolverAuthInfo): Resolver;
|
|
14
|
+
setUserData(userData: any): Resolver;
|
|
15
|
+
getUserData(): any;
|
|
16
|
+
getName(): string;
|
|
17
|
+
private notImpl;
|
|
18
|
+
onSetPath(moduleName: string, entryName: string): any;
|
|
19
|
+
createInstance(inst: Instance): Promise<any>;
|
|
20
|
+
upsertInstance(inst: Instance): Promise<any>;
|
|
21
|
+
/**
|
|
22
|
+
* @param {Instance} inst - an Instance with query and update attributes
|
|
23
|
+
* @param {InstanceAttributes} newAttrs - updated attributes to set in instance
|
|
24
|
+
*/
|
|
25
|
+
updateInstance(inst: Instance, newAttrs: InstanceAttributes): Promise<any>;
|
|
26
|
+
/**
|
|
27
|
+
* @param {Instance} inst - an Instance with query attributes
|
|
28
|
+
* @param {boolean} queryAll - if this flag is set, fetch all instances
|
|
29
|
+
*/
|
|
30
|
+
queryInstances(inst: Instance, queryAll: boolean): Promise<any>;
|
|
31
|
+
/**
|
|
32
|
+
* Return all instances under the given parent-path.
|
|
33
|
+
* @param {string} parentPath - path of the parent with the relevant relationship name as the last component
|
|
34
|
+
* @param {Instance} inst - child Instance with query attributes
|
|
35
|
+
*/
|
|
36
|
+
queryChildInstances(parentPath: string, inst: Instance): Promise<any>;
|
|
37
|
+
/**
|
|
38
|
+
* Return all instances connected to connectedInstance via the given between-relationship
|
|
39
|
+
* @param relationship Between relationship
|
|
40
|
+
* @param connectedInstance The instance to traveres the relationship from
|
|
41
|
+
* @param inst Target instance with query attributes
|
|
42
|
+
*/
|
|
43
|
+
queryConnectedInstances(relationship: Relationship, connectedInstance: Instance, inst: Instance): Promise<any>;
|
|
44
|
+
/**
|
|
45
|
+
* @param {Instance} inst - an Instance with query attributes
|
|
46
|
+
*/
|
|
47
|
+
deleteInstance(inst: Instance | Instance[], purge: boolean): Promise<any>;
|
|
48
|
+
/**
|
|
49
|
+
* Connect instances via a between relationship
|
|
50
|
+
* @param node1 The main node to connect
|
|
51
|
+
* @param otherNodeOrNodes Nodes to be connected to node1
|
|
52
|
+
* @param relEntry Details of the repationship
|
|
53
|
+
*/
|
|
54
|
+
connectInstances(node1: Instance, otherNodeOrNodes: Instance | Instance[], relEntry: Relationship, orUpdate: boolean): Promise<any>;
|
|
55
|
+
startTransaction(): Promise<any>;
|
|
56
|
+
commitTransaction(txnId: string): Promise<any>;
|
|
57
|
+
rollbackTransaction(txtIn: string): Promise<any>;
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/runtime/resolvers/interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE1E,qBAAa,gBAAgB;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,OAAO,CAAS;IAC/B,aAAa,EAAE,OAAO,CAAS;gBAEnB,MAAM,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,OAAO;CAK7E;AAQD,qBAAa,QAAQ;IACnB,SAAS,CAAC,QAAQ,EAAE,gBAAgB,CAAmB;IACvD,SAAS,CAAC,QAAQ,EAAE,GAAG,CAAC;IACxB,SAAS,CAAC,IAAI,EAAE,MAAM,CAAa;IAEnC,MAAM,CAAC,OAAO,WAAkB;IAEzB,WAAW,CAAC,QAAQ,EAAE,gBAAgB,GAAG,QAAQ;IAKjD,WAAW,CAAC,QAAQ,EAAE,GAAG,GAAG,QAAQ;IAKpC,WAAW,IAAI,GAAG;IAIlB,OAAO,IAAI,MAAM;IAIxB,OAAO,CAAC,OAAO;IAIR,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,GAAG;IAI/C,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAI5C,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAIzD;;;OAGG;IACU,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC;IAIvF;;;OAGG;IACU,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAI5E;;;;OAIG;IACU,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC;IAIlF;;;;;OAKG;IACU,uBAAuB,CAClC,YAAY,EAAE,YAAY,EAC1B,iBAAiB,EAAE,QAAQ,EAC3B,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC,GAAG,CAAC;IAIf;;OAEG;IACU,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,QAAQ,EAAE,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAItF;;;;;OAKG;IACU,gBAAgB,CAC3B,KAAK,EAAE,QAAQ,EACf,gBAAgB,EAAE,QAAQ,GAAG,QAAQ,EAAE,EACvC,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,OAAO,GAChB,OAAO,CAAC,GAAG,CAAC;IAOF,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC;IAIhC,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAI9C,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;CAG9D"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
export class ResolverAuthInfo {
|
|
2
|
+
constructor(userId, readForUpdate, readForDelete) {
|
|
3
|
+
this.readForUpdate = false;
|
|
4
|
+
this.readForDelete = false;
|
|
5
|
+
this.userId = userId;
|
|
6
|
+
if (readForUpdate != undefined)
|
|
7
|
+
this.readForUpdate = readForUpdate;
|
|
8
|
+
if (readForDelete != undefined)
|
|
9
|
+
this.readForDelete = readForDelete;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export const DefaultAuthInfo = new ResolverAuthInfo(
|
|
13
|
+
// This user-id is only for testing, per-session user-id needs to be set from
|
|
14
|
+
// the HTTP layer.
|
|
15
|
+
'9459a305-5ee6-415d-986d-caaf6d6e2828');
|
|
16
|
+
export class Resolver {
|
|
17
|
+
constructor() {
|
|
18
|
+
this.authInfo = DefaultAuthInfo;
|
|
19
|
+
this.name = 'default';
|
|
20
|
+
}
|
|
21
|
+
setAuthInfo(authInfo) {
|
|
22
|
+
this.authInfo = authInfo;
|
|
23
|
+
return this;
|
|
24
|
+
}
|
|
25
|
+
setUserData(userData) {
|
|
26
|
+
this.userData = userData;
|
|
27
|
+
return this;
|
|
28
|
+
}
|
|
29
|
+
getUserData() {
|
|
30
|
+
return this.userData;
|
|
31
|
+
}
|
|
32
|
+
getName() {
|
|
33
|
+
return this.name;
|
|
34
|
+
}
|
|
35
|
+
notImpl(method) {
|
|
36
|
+
throw new Error(`Resolver method ${method} not implemented`);
|
|
37
|
+
}
|
|
38
|
+
onSetPath(moduleName, entryName) {
|
|
39
|
+
this.notImpl(`onSetPath(${moduleName}, ${entryName})`);
|
|
40
|
+
}
|
|
41
|
+
async createInstance(inst) {
|
|
42
|
+
this.notImpl(`createInstance(${inst})`);
|
|
43
|
+
}
|
|
44
|
+
async upsertInstance(inst) {
|
|
45
|
+
return this.notImpl(`upsertInstance(${inst})`);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* @param {Instance} inst - an Instance with query and update attributes
|
|
49
|
+
* @param {InstanceAttributes} newAttrs - updated attributes to set in instance
|
|
50
|
+
*/
|
|
51
|
+
async updateInstance(inst, newAttrs) {
|
|
52
|
+
return this.notImpl(`updateInstance(${inst}, ${newAttrs})`);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* @param {Instance} inst - an Instance with query attributes
|
|
56
|
+
* @param {boolean} queryAll - if this flag is set, fetch all instances
|
|
57
|
+
*/
|
|
58
|
+
async queryInstances(inst, queryAll) {
|
|
59
|
+
return this.notImpl(`queryInstances(${inst}, ${queryAll})`);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Return all instances under the given parent-path.
|
|
63
|
+
* @param {string} parentPath - path of the parent with the relevant relationship name as the last component
|
|
64
|
+
* @param {Instance} inst - child Instance with query attributes
|
|
65
|
+
*/
|
|
66
|
+
async queryChildInstances(parentPath, inst) {
|
|
67
|
+
return this.notImpl(`queryChildInstances(${parentPath}, ${inst})`);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Return all instances connected to connectedInstance via the given between-relationship
|
|
71
|
+
* @param relationship Between relationship
|
|
72
|
+
* @param connectedInstance The instance to traveres the relationship from
|
|
73
|
+
* @param inst Target instance with query attributes
|
|
74
|
+
*/
|
|
75
|
+
async queryConnectedInstances(relationship, connectedInstance, inst) {
|
|
76
|
+
return this.notImpl(`queryConnectedInstances(${relationship}, ${connectedInstance}, ${inst})`);
|
|
77
|
+
}
|
|
78
|
+
async queryByJoin(inst, joinsSpec, intoSpec) {
|
|
79
|
+
return this.notImpl(`queryByJoin(${inst}, ${joinsSpec}, ${intoSpec})`);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* @param {Instance} inst - an Instance with query attributes
|
|
83
|
+
*/
|
|
84
|
+
async deleteInstance(inst, purge) {
|
|
85
|
+
return this.notImpl(`deleteInstance(${inst}, ${purge})`);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Connect instances via a between relationship
|
|
89
|
+
* @param node1 The main node to connect
|
|
90
|
+
* @param otherNodeOrNodes Nodes to be connected to node1
|
|
91
|
+
* @param relEntry Details of the repationship
|
|
92
|
+
*/
|
|
93
|
+
async connectInstances(node1, otherNodeOrNodes, relEntry, orUpdate) {
|
|
94
|
+
return this.notImpl(`connectInstances(${node1}, ${otherNodeOrNodes}, ${relEntry}, ${orUpdate})`);
|
|
95
|
+
}
|
|
96
|
+
async fullTextSearch(entryName, moduleName, query, options) {
|
|
97
|
+
return this.notImpl(`fullTextSearch(${entryName}, ${moduleName}, ${query}, ${options})`);
|
|
98
|
+
}
|
|
99
|
+
// Return a transactionId
|
|
100
|
+
async startTransaction() {
|
|
101
|
+
return this.notImpl('startTransaction()');
|
|
102
|
+
}
|
|
103
|
+
async commitTransaction(txnId) {
|
|
104
|
+
return this.notImpl(`commitTransaction(${txnId})`);
|
|
105
|
+
}
|
|
106
|
+
async rollbackTransaction(txtIn) {
|
|
107
|
+
return this.notImpl(`rollbackTransaction(${txtIn})`);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
Resolver.Default = new Resolver();
|
|
111
|
+
//# sourceMappingURL=interface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../src/runtime/resolvers/interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Resolver } from './interface.js';
|
|
2
|
+
type MakeResolver = () => Resolver;
|
|
3
|
+
export declare function registerResolver(name: string, r: MakeResolver): void;
|
|
4
|
+
export declare function setResolver(fqEntryName: string, resolverName: string): void;
|
|
5
|
+
export declare function getResolverNameForPath(fqEntryName: string): string | undefined;
|
|
6
|
+
export declare function getResolver(fqEntryName: string): Resolver;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../src/runtime/resolvers/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,KAAK,YAAY,GAAG,MAAM,QAAQ,CAAC;AAInC,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,QAE7D;AAED,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,QAMpE;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE9E;AAED,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,QAAQ,CAOzD"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
const resolverDb = new Map();
|
|
2
|
+
const resolverPathMappings = new Map();
|
|
3
|
+
export function registerResolver(name, r) {
|
|
4
|
+
resolverDb.set(name, r);
|
|
5
|
+
}
|
|
6
|
+
export function setResolver(fqEntryName, resolverName) {
|
|
7
|
+
if (resolverDb.has(resolverName)) {
|
|
8
|
+
resolverPathMappings.set(fqEntryName, resolverName);
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
throw new Error(`Resolver not found - ${resolverName}`);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
export function getResolverNameForPath(fqEntryName) {
|
|
15
|
+
return resolverPathMappings.get(fqEntryName);
|
|
16
|
+
}
|
|
17
|
+
export function getResolver(fqEntryName) {
|
|
18
|
+
const resName = resolverPathMappings.get(fqEntryName);
|
|
19
|
+
if (resName != undefined) {
|
|
20
|
+
const f = resolverDb.get(resName);
|
|
21
|
+
if (f)
|
|
22
|
+
return f();
|
|
23
|
+
}
|
|
24
|
+
throw new Error(`No resolver registered for ${fqEntryName}`);
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/runtime/resolvers/registry.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,GAA8B,IAAI,GAAG,EAAwB,CAAC;AAC9E,MAAM,oBAAoB,GAAwB,IAAI,GAAG,EAAkB,CAAC;AAE5E,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,CAAe;IAC5D,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,WAAmB,EAAE,YAAoB;IACnE,IAAI,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;QACjC,oBAAoB,CAAC,GAAG,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC;IACtD,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,wBAAwB,YAAY,EAAE,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,WAAmB;IACxD,OAAO,oBAAoB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,WAAmB;IAC7C,MAAM,OAAO,GAAuB,oBAAoB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC1E,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;QACzB,MAAM,CAAC,GAA6B,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5D,IAAI,CAAC;YAAE,OAAO,CAAC,EAAE,CAAC;IACpB,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,8BAA8B,WAAW,EAAE,CAAC,CAAC;AAC/D,CAAC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { DataSource } from 'typeorm';
|
|
2
|
+
import { ResolverAuthInfo } from '../interface.js';
|
|
3
|
+
import { Environment } from '../../interpreter.js';
|
|
4
|
+
import { Instance, Relationship } from '../../module.js';
|
|
5
|
+
export declare let defaultDataSource: DataSource | undefined;
|
|
6
|
+
export declare const PathAttributeName: string;
|
|
7
|
+
export declare const DeletedFlagAttributeName: string;
|
|
8
|
+
export declare class DbContext {
|
|
9
|
+
txnId: string | undefined;
|
|
10
|
+
authInfo: ResolverAuthInfo;
|
|
11
|
+
private inKernelMode;
|
|
12
|
+
resourceFqName: string;
|
|
13
|
+
activeEnv: Environment;
|
|
14
|
+
private needAuthCheckFlag;
|
|
15
|
+
constructor(resourceFqName: string, authInfo: ResolverAuthInfo, activeEnv: Environment, txnId?: string, inKernelMode?: boolean);
|
|
16
|
+
clone(): DbContext;
|
|
17
|
+
getUserId(): string;
|
|
18
|
+
isForDelete(): boolean;
|
|
19
|
+
isForUpdate(): boolean;
|
|
20
|
+
setResourceFqNameFrom(inst: Instance): DbContext;
|
|
21
|
+
setNeedAuthCheck(flag: boolean): DbContext;
|
|
22
|
+
isPermitted(): boolean;
|
|
23
|
+
isInKernelMode(): boolean;
|
|
24
|
+
}
|
|
25
|
+
export declare const DbType = "sqlite";
|
|
26
|
+
export declare function initDefaultDatabase(): Promise<void>;
|
|
27
|
+
export declare function resetDefaultDatabase(): Promise<void>;
|
|
28
|
+
export declare function insertRows(tableName: string, rows: object[], ctx: DbContext, doUpsert?: boolean): Promise<void>;
|
|
29
|
+
export declare function insertRow(tableName: string, row: object, ctx: DbContext, doUpsert: boolean): Promise<void>;
|
|
30
|
+
export declare function insertBetweenRow(n: string, a1: string, a2: string, node1: Instance, node2: Instance, relEntry: Relationship, ctx: DbContext): Promise<void>;
|
|
31
|
+
export declare function upsertRows(tableName: string, rows: object[], ctx: DbContext): Promise<void>;
|
|
32
|
+
export declare function upsertRow(tableName: string, row: object, ctx: DbContext): Promise<void>;
|
|
33
|
+
export declare function updateRow(tableName: string, queryObj: object, queryVals: object, updateObj: object, ctx: DbContext): Promise<boolean>;
|
|
34
|
+
type QueryObjectEntry = [string, any];
|
|
35
|
+
export type QueryObject = Array<QueryObjectEntry>;
|
|
36
|
+
export declare function hardDeleteRow(tableName: string, queryObject: QueryObject, ctx: DbContext): Promise<boolean>;
|
|
37
|
+
export declare function getMany(tableName: string, queryObj: object | undefined, queryVals: object | undefined, colNamesToSelect: string[], ctx: DbContext): Promise<any>;
|
|
38
|
+
export type BetweenConnectionInfo = {
|
|
39
|
+
connectionTable: string;
|
|
40
|
+
fromColumn: string;
|
|
41
|
+
fromValue: string;
|
|
42
|
+
toColumn: string;
|
|
43
|
+
toRef: string;
|
|
44
|
+
};
|
|
45
|
+
export declare function getAllConnected(tableName: string, queryObj: object, queryVals: object, connInfo: BetweenConnectionInfo, ctx: DbContext): Promise<any[]>;
|
|
46
|
+
export declare function startDbTransaction(): Promise<string>;
|
|
47
|
+
export declare function commitDbTransaction(txnId: string): Promise<void>;
|
|
48
|
+
export declare function rollbackDbTransaction(txnId: string): Promise<void>;
|
|
49
|
+
export {};
|
|
50
|
+
//# sourceMappingURL=database.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../../../src/runtime/resolvers/sqldb/database.ts"],"names":[],"mappings":"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"}
|