@comake/skl-js-engine 0.1.0

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 (99) hide show
  1. package/LICENSE.md +4 -0
  2. package/README.md +46 -0
  3. package/dist/Skql.d.ts +68 -0
  4. package/dist/Skql.js +351 -0
  5. package/dist/Skql.js.map +1 -0
  6. package/dist/index.d.ts +22 -0
  7. package/dist/index.js +44 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/mapping/Mapper.d.ts +14 -0
  10. package/dist/mapping/Mapper.js +64 -0
  11. package/dist/mapping/Mapper.js.map +1 -0
  12. package/dist/sklEngine.d.ts +68 -0
  13. package/dist/sklEngine.js +351 -0
  14. package/dist/sklEngine.js.map +1 -0
  15. package/dist/storage/AggregateOperator.d.ts +12 -0
  16. package/dist/storage/AggregateOperator.js +17 -0
  17. package/dist/storage/AggregateOperator.js.map +1 -0
  18. package/dist/storage/BaseQueryAdapterOptions.d.ts +19 -0
  19. package/dist/storage/BaseQueryAdapterOptions.js +3 -0
  20. package/dist/storage/BaseQueryAdapterOptions.js.map +1 -0
  21. package/dist/storage/FindOperator.d.ts +12 -0
  22. package/dist/storage/FindOperator.js +17 -0
  23. package/dist/storage/FindOperator.js.map +1 -0
  24. package/dist/storage/FindOptionsTypes.d.ts +45 -0
  25. package/dist/storage/FindOptionsTypes.js +3 -0
  26. package/dist/storage/FindOptionsTypes.js.map +1 -0
  27. package/dist/storage/MemoryQueryAdapter.d.ts +28 -0
  28. package/dist/storage/MemoryQueryAdapter.js +215 -0
  29. package/dist/storage/MemoryQueryAdapter.js.map +1 -0
  30. package/dist/storage/QueryAdapter.d.ts +74 -0
  31. package/dist/storage/QueryAdapter.js +3 -0
  32. package/dist/storage/QueryAdapter.js.map +1 -0
  33. package/dist/storage/SparqlQueryAdapter.d.ts +34 -0
  34. package/dist/storage/SparqlQueryAdapter.js +229 -0
  35. package/dist/storage/SparqlQueryAdapter.js.map +1 -0
  36. package/dist/storage/aggregate/Max.d.ts +2 -0
  37. package/dist/storage/aggregate/Max.js +13 -0
  38. package/dist/storage/aggregate/Max.js.map +1 -0
  39. package/dist/storage/memory/MemoryQueryAdapter.d.ts +36 -0
  40. package/dist/storage/memory/MemoryQueryAdapter.js +246 -0
  41. package/dist/storage/memory/MemoryQueryAdapter.js.map +1 -0
  42. package/dist/storage/memory/MemoryQueryAdapterOptions.d.ts +12 -0
  43. package/dist/storage/memory/MemoryQueryAdapterOptions.js +3 -0
  44. package/dist/storage/memory/MemoryQueryAdapterOptions.js.map +1 -0
  45. package/dist/storage/operator/Equal.d.ts +2 -0
  46. package/dist/storage/operator/Equal.js +13 -0
  47. package/dist/storage/operator/Equal.js.map +1 -0
  48. package/dist/storage/operator/GreaterThan.d.ts +2 -0
  49. package/dist/storage/operator/GreaterThan.js +13 -0
  50. package/dist/storage/operator/GreaterThan.js.map +1 -0
  51. package/dist/storage/operator/GreaterThanOrEqual.d.ts +2 -0
  52. package/dist/storage/operator/GreaterThanOrEqual.js +13 -0
  53. package/dist/storage/operator/GreaterThanOrEqual.js.map +1 -0
  54. package/dist/storage/operator/In.d.ts +2 -0
  55. package/dist/storage/operator/In.js +13 -0
  56. package/dist/storage/operator/In.js.map +1 -0
  57. package/dist/storage/operator/Inverse.d.ts +2 -0
  58. package/dist/storage/operator/Inverse.js +13 -0
  59. package/dist/storage/operator/Inverse.js.map +1 -0
  60. package/dist/storage/operator/LessThan.d.ts +2 -0
  61. package/dist/storage/operator/LessThan.js +13 -0
  62. package/dist/storage/operator/LessThan.js.map +1 -0
  63. package/dist/storage/operator/LessThanOrEqual.d.ts +2 -0
  64. package/dist/storage/operator/LessThanOrEqual.js +13 -0
  65. package/dist/storage/operator/LessThanOrEqual.js.map +1 -0
  66. package/dist/storage/operator/Not.d.ts +2 -0
  67. package/dist/storage/operator/Not.js +13 -0
  68. package/dist/storage/operator/Not.js.map +1 -0
  69. package/dist/storage/sparql/SparqlQueryAdapter.d.ts +40 -0
  70. package/dist/storage/sparql/SparqlQueryAdapter.js +235 -0
  71. package/dist/storage/sparql/SparqlQueryAdapter.js.map +1 -0
  72. package/dist/storage/sparql/SparqlQueryAdapterOptions.d.ts +15 -0
  73. package/dist/storage/sparql/SparqlQueryAdapterOptions.js +3 -0
  74. package/dist/storage/sparql/SparqlQueryAdapterOptions.js.map +1 -0
  75. package/dist/storage/sparql/SparqlQueryBuilder.d.ts +81 -0
  76. package/dist/storage/sparql/SparqlQueryBuilder.js +553 -0
  77. package/dist/storage/sparql/SparqlQueryBuilder.js.map +1 -0
  78. package/dist/storage/sparql/SparqlUpdateBuilder.d.ts +31 -0
  79. package/dist/storage/sparql/SparqlUpdateBuilder.js +190 -0
  80. package/dist/storage/sparql/SparqlUpdateBuilder.js.map +1 -0
  81. package/dist/storage/sparql/VariableGenerator.d.ts +4 -0
  82. package/dist/storage/sparql/VariableGenerator.js +14 -0
  83. package/dist/storage/sparql/VariableGenerator.js.map +1 -0
  84. package/dist/util/TripleUtil.d.ts +21 -0
  85. package/dist/util/TripleUtil.js +221 -0
  86. package/dist/util/TripleUtil.js.map +1 -0
  87. package/dist/util/Types.d.ts +10 -0
  88. package/dist/util/Types.js +3 -0
  89. package/dist/util/Types.js.map +1 -0
  90. package/dist/util/Util.d.ts +15 -0
  91. package/dist/util/Util.js +94 -0
  92. package/dist/util/Util.js.map +1 -0
  93. package/dist/util/VariableGenerator.d.ts +5 -0
  94. package/dist/util/VariableGenerator.js +29 -0
  95. package/dist/util/VariableGenerator.js.map +1 -0
  96. package/dist/util/Vocabularies.d.ts +12 -0
  97. package/dist/util/Vocabularies.js +118 -0
  98. package/dist/util/Vocabularies.js.map +1 -0
  99. package/package.json +92 -0
package/LICENSE.md ADDED
@@ -0,0 +1,4 @@
1
+ Copyright (c) 2022, Comake, Inc.
2
+ All rights reserved.
3
+
4
+ License information to be released soon.
package/README.md ADDED
@@ -0,0 +1,46 @@
1
+ [![npm version](https://badge.fury.io/js/@comake%2Fskl-js-engine.svg)](https://badge.fury.io/js/@comake%2Fskl-js-engine) [![License](https://img.shields.io/badge/License-BSD_4--Clause-blue.svg)](https://spdx.org/licenses/BSD-4-Clause.html)
2
+
3
+ # SKL Javascript Engine
4
+
5
+ This is a Javascript implementation of a Standard Knowledge Language Engine for [Standard Knowledge Language (SKL)](https://www.comake.io/skl). It is written in Typescript and follows the [SKL Engine specification](https://docs.standardknowledge.com/get-started/engine).
6
+
7
+
8
+ ## How to use SKL Javascript Engine
9
+
10
+ #### 1. Install via npm or yarn:
11
+
12
+ ```shell
13
+ npm install @comake/skl-js-engine
14
+ yarn add @comake/skl-js-engine
15
+ ```
16
+
17
+ #### 2. Define Schemas
18
+
19
+ We will be posting more documentation on schemas soon.
20
+
21
+ #### 3. Write code
22
+
23
+ Once you have schemas defined for your domain, all you have to do is write code using the Verbs and Nouns in your schema to build your application logic.
24
+
25
+ #### Browser support
26
+ To use SKL Javascript Engine in a browser, you'll need to use a bundling tool such as Webpack, Rollup, Parcel, or Browserify. Some bundlers may require a bit of configuration, such as setting browser: true in rollup-plugin-resolve.
27
+
28
+ ## How to contribute
29
+
30
+ To clone the repo, execute the following commands in your terminal:
31
+ ```shell
32
+ git clone https://github.com/comake/skl-js-engine.git
33
+ cd skl-js-engine
34
+ npm ci
35
+ ```
36
+
37
+ # License & Copyright
38
+
39
+ SKL Javascript Engine is open-source with certain limitations. See the [LICENSE](LICENSE) file for more info.
40
+
41
+ Copyright (c) 2022, Comake, Inc.
42
+
43
+ # TODO
44
+
45
+ - [ ] add SKDS schema source
46
+ - [ ] Add reference to examples in readme
package/dist/Skql.d.ts ADDED
@@ -0,0 +1,68 @@
1
+ import type { GraphObject, NodeObject } from 'jsonld';
2
+ import type { Frame } from 'jsonld/jsonld-spec';
3
+ import type { FindAllOptions, FindOneOptions, FindOptionsWhere } from './storage/FindOptionsTypes';
4
+ import type { MemoryQueryAdapterOptions } from './storage/memory/MemoryQueryAdapterOptions';
5
+ import type { RawQueryResult } from './storage/QueryAdapter';
6
+ import type { SparqlQueryAdapterOptions } from './storage/sparql/SparqlQueryAdapterOptions';
7
+ import type { OrArray, Entity } from './util/Types';
8
+ import type { JSONObject } from './util/Util';
9
+ export declare type VerbHandler = (args: JSONObject) => Promise<NodeObject>;
10
+ export declare type VerbInterface = Record<string, VerbHandler>;
11
+ export declare type MappingResponseOption<T extends boolean> = T extends true ? JSONObject : NodeObject;
12
+ export declare type SkqlOptions = MemoryQueryAdapterOptions | SparqlQueryAdapterOptions;
13
+ export interface ErrorMatcher {
14
+ status: number;
15
+ messageRegex: string;
16
+ }
17
+ export interface OperationResponse {
18
+ data: JSONObject;
19
+ }
20
+ export declare class Skql {
21
+ private readonly mapper;
22
+ private readonly adapter;
23
+ private readonly inputFiles?;
24
+ readonly verb: VerbInterface;
25
+ constructor(options: SkqlOptions);
26
+ executeRawQuery<T extends RawQueryResult>(query: string): Promise<T[]>;
27
+ executeRawEntityQuery(query: string, frame?: Frame): Promise<GraphObject>;
28
+ find(options?: FindOneOptions): Promise<Entity>;
29
+ findBy(where: FindOptionsWhere): Promise<Entity>;
30
+ findAll(options?: FindAllOptions): Promise<Entity[]>;
31
+ findAllBy(where: FindOptionsWhere): Promise<Entity[]>;
32
+ exists(where: FindOptionsWhere): Promise<boolean>;
33
+ count(where?: FindOptionsWhere): Promise<number>;
34
+ save(entity: Entity): Promise<Entity>;
35
+ save(entities: Entity[]): Promise<Entity[]>;
36
+ destroy(entity: Entity): Promise<Entity>;
37
+ destroy(entities: Entity[]): Promise<Entity[]>;
38
+ destroyAll(): Promise<void>;
39
+ performMapping(args: JSONObject, mapping: OrArray<NodeObject>, frame?: Record<string, any>): Promise<NodeObject>;
40
+ performMappingAndConvertToJSON(args: JSONObject, mapping: OrArray<NodeObject>, frame?: Record<string, any>, convertToJsonDeep?: boolean): Promise<JSONObject>;
41
+ private handleVerb;
42
+ private findVerbWithName;
43
+ private handleIntegrationVerb;
44
+ private findVerbIntegrationMapping;
45
+ private performOperationMappingWithArgs;
46
+ private performOperation;
47
+ private performReturnValueMappingWithFrame;
48
+ private resolveMappingReferences;
49
+ private performParameterMappingOnArgsIfDefined;
50
+ private getOpenApiDescriptionForIntegration;
51
+ private findSecurityCredentialsForAccount;
52
+ private findSecurityCredentialsForAccountIfDefined;
53
+ private createOpenApiOperationExecutorWithSpec;
54
+ private handleNounMappingVerb;
55
+ private findVerbNounMapping;
56
+ private performVerbMappingWithArgs;
57
+ private assertVerbParamsMatchParameterSchemas;
58
+ private performOpenapiOperationWithCredentials;
59
+ private isInvalidTokenError;
60
+ private refreshOpenApiToken;
61
+ private getConfigurationFromSecurityCredentials;
62
+ private assertVerbReturnValueMatchesReturnTypeSchema;
63
+ private convertToQuadsAndValidateAgainstShape;
64
+ private performSecuritySchemeStageWithCredentials;
65
+ private getDataFromDataSource;
66
+ private getDataFromJsonDataSource;
67
+ private getJsonDataFromSource;
68
+ }
package/dist/Skql.js ADDED
@@ -0,0 +1,351 @@
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
+ exports.Skql = void 0;
7
+ const openapi_operation_executor_1 = require("@comake/openapi-operation-executor");
8
+ const axios_1 = __importDefault(require("axios"));
9
+ const rdf_validate_shacl_1 = __importDefault(require("rdf-validate-shacl"));
10
+ const Mapper_1 = require("./mapping/Mapper");
11
+ const MemoryQueryAdapter_1 = require("./storage/memory/MemoryQueryAdapter");
12
+ const SparqlQueryAdapter_1 = require("./storage/sparql/SparqlQueryAdapter");
13
+ const Util_1 = require("./util/Util");
14
+ const Vocabularies_1 = require("./util/Vocabularies");
15
+ class Skql {
16
+ constructor(options) {
17
+ switch (options.type) {
18
+ case 'memory':
19
+ this.adapter = new MemoryQueryAdapter_1.MemoryQueryAdapter(options);
20
+ break;
21
+ case 'sparql':
22
+ this.adapter = new SparqlQueryAdapter_1.SparqlQueryAdapter(options);
23
+ break;
24
+ default:
25
+ throw new Error('No schema source found in setSchema args.');
26
+ }
27
+ this.inputFiles = options.inputFiles;
28
+ this.mapper = new Mapper_1.Mapper({ functions: options.functions });
29
+ // eslint-disable-next-line func-style
30
+ const getVerbHandler = (getTarget, property) => async (verbArgs) => this.handleVerb(property, verbArgs);
31
+ this.verb = new Proxy({}, { get: getVerbHandler });
32
+ }
33
+ async executeRawQuery(query) {
34
+ return await this.adapter.executeRawQuery(query);
35
+ }
36
+ async executeRawEntityQuery(query, frame) {
37
+ return await this.adapter.executeRawEntityQuery(query, frame);
38
+ }
39
+ async find(options) {
40
+ const entity = await this.adapter.find(options);
41
+ if (entity) {
42
+ return entity;
43
+ }
44
+ throw new Error(`No schema found with fields matching ${JSON.stringify(options)}`);
45
+ }
46
+ async findBy(where) {
47
+ const entity = await this.adapter.findBy(where);
48
+ if (entity) {
49
+ return entity;
50
+ }
51
+ throw new Error(`No schema found with fields matching ${JSON.stringify(where)}`);
52
+ }
53
+ async findAll(options) {
54
+ return await this.adapter.findAll(options);
55
+ }
56
+ async findAllBy(where) {
57
+ return await this.adapter.findAllBy(where);
58
+ }
59
+ async exists(where) {
60
+ return await this.adapter.exists(where);
61
+ }
62
+ async count(where) {
63
+ return await this.adapter.count(where);
64
+ }
65
+ async save(entityOrEntities) {
66
+ if (Array.isArray(entityOrEntities)) {
67
+ return await this.adapter.save(entityOrEntities);
68
+ }
69
+ return await this.adapter.save(entityOrEntities);
70
+ }
71
+ async destroy(entityOrEntities) {
72
+ if (Array.isArray(entityOrEntities)) {
73
+ return await this.adapter.destroy(entityOrEntities);
74
+ }
75
+ return await this.adapter.destroy(entityOrEntities);
76
+ }
77
+ async destroyAll() {
78
+ return await this.adapter.destroyAll();
79
+ }
80
+ async performMapping(args, mapping, frame) {
81
+ const nonReferenceMappings = await this.resolveMappingReferences(mapping);
82
+ return await this.mapper.apply(args, nonReferenceMappings, frame ?? {});
83
+ }
84
+ async performMappingAndConvertToJSON(args, mapping, frame, convertToJsonDeep = true) {
85
+ const nonReferenceMappings = await this.resolveMappingReferences(mapping);
86
+ const jsonLd = await this.mapper.apply(args, nonReferenceMappings, frame ?? {});
87
+ return (0, Util_1.toJSON)(jsonLd, convertToJsonDeep);
88
+ }
89
+ async handleVerb(verbName, verbArgs) {
90
+ const verb = await this.findVerbWithName(verbName);
91
+ if (verbArgs.noun) {
92
+ return this.handleNounMappingVerb(verb, verbArgs);
93
+ }
94
+ if (verbArgs.account) {
95
+ return this.handleIntegrationVerb(verb, verbArgs);
96
+ }
97
+ throw new Error(`Verb parameters must include either a noun or an account.`);
98
+ }
99
+ async findVerbWithName(verbName) {
100
+ try {
101
+ return await this.findBy({ type: Vocabularies_1.SKL.Verb, [Vocabularies_1.RDFS.label]: verbName });
102
+ }
103
+ catch {
104
+ throw new Error(`Failed to find the verb ${verbName} in the schema.`);
105
+ }
106
+ }
107
+ async handleIntegrationVerb(verb, args) {
108
+ await this.assertVerbParamsMatchParameterSchemas(args, verb);
109
+ const account = await this.findBy({ id: args.account });
110
+ const integrationId = account[Vocabularies_1.SKL.integration]['@id'];
111
+ const mapping = await this.findVerbIntegrationMapping(verb['@id'], integrationId);
112
+ const operationArgs = await this.performParameterMappingOnArgsIfDefined(args, mapping);
113
+ const operationInfo = await this.performOperationMappingWithArgs(args, mapping);
114
+ const rawReturnValue = await this.performOperation(operationInfo, operationArgs, account);
115
+ if (operationInfo[Vocabularies_1.SKL.schemeName] && rawReturnValue.authorizationUrl) {
116
+ return {
117
+ '@type': '@json',
118
+ '@value': rawReturnValue,
119
+ };
120
+ }
121
+ if (mapping[Vocabularies_1.SKL.returnValueMapping]) {
122
+ const mappedReturnValue = await this.performReturnValueMappingWithFrame(rawReturnValue.data, mapping, verb);
123
+ await this.assertVerbReturnValueMatchesReturnTypeSchema(mappedReturnValue, verb);
124
+ return mappedReturnValue;
125
+ }
126
+ return rawReturnValue;
127
+ }
128
+ async findVerbIntegrationMapping(verbId, integrationId) {
129
+ return await this.findBy({
130
+ type: Vocabularies_1.SKL.VerbIntegrationMapping,
131
+ [Vocabularies_1.SKL.verb]: verbId,
132
+ [Vocabularies_1.SKL.integration]: integrationId,
133
+ });
134
+ }
135
+ async performOperationMappingWithArgs(args, mapping) {
136
+ return await this.performMapping(args, mapping[Vocabularies_1.SKL.operationMapping]);
137
+ }
138
+ async performOperation(operationInfo, operationArgs, account) {
139
+ if (operationInfo[Vocabularies_1.SKL.schemeName]) {
140
+ return await this.performSecuritySchemeStageWithCredentials(operationInfo, operationArgs, account);
141
+ }
142
+ if (operationInfo[Vocabularies_1.SKL.dataSource]) {
143
+ return await this.getDataFromDataSource((0, Util_1.getValueIfDefined)(operationInfo[Vocabularies_1.SKL.dataSource]));
144
+ }
145
+ if (operationInfo[Vocabularies_1.SKL.operationId]) {
146
+ return await this.performOpenapiOperationWithCredentials((0, Util_1.getValueIfDefined)(operationInfo[Vocabularies_1.SKL.operationId]), operationArgs, account);
147
+ }
148
+ throw new Error('Operation not supported.');
149
+ }
150
+ async performReturnValueMappingWithFrame(data, mapping, verb) {
151
+ return await this.performMapping(data, mapping[Vocabularies_1.SKL.returnValueMapping], {
152
+ ...(0, Util_1.getValueIfDefined)(verb[Vocabularies_1.SKL.returnValueFrame]),
153
+ ...(0, Util_1.getValueIfDefined)(mapping[Vocabularies_1.SKL.returnValueFrame]),
154
+ });
155
+ }
156
+ async resolveMappingReferences(mapping) {
157
+ if (Array.isArray(mapping)) {
158
+ return await Promise.all(mapping.map(async (subMapping) => await this.resolveMappingReferences(subMapping)));
159
+ }
160
+ return mapping;
161
+ }
162
+ async performParameterMappingOnArgsIfDefined(args, mapping, convertToJsonDeep = true) {
163
+ if (mapping[Vocabularies_1.SKL.parameterMapping]) {
164
+ return await this.performMappingAndConvertToJSON(args, mapping[Vocabularies_1.SKL.parameterMapping], (0, Util_1.getValueIfDefined)(mapping[Vocabularies_1.SKL.parameterMappingFrame]), convertToJsonDeep);
165
+ }
166
+ return args;
167
+ }
168
+ async getOpenApiDescriptionForIntegration(integrationId) {
169
+ const openApiDescriptionSchema = await this.findBy({
170
+ type: Vocabularies_1.SKL.OpenApiDescription,
171
+ [Vocabularies_1.SKL.integration]: integrationId,
172
+ });
173
+ return (0, Util_1.getValueIfDefined)(openApiDescriptionSchema[Vocabularies_1.SKL.openApiDescription]);
174
+ }
175
+ async findSecurityCredentialsForAccount(accountId) {
176
+ return await this.findBy({
177
+ type: Vocabularies_1.SKL.SecurityCredentials,
178
+ [Vocabularies_1.SKL.account]: accountId,
179
+ });
180
+ }
181
+ async findSecurityCredentialsForAccountIfDefined(accountId) {
182
+ try {
183
+ return await this.findSecurityCredentialsForAccount(accountId);
184
+ }
185
+ catch {
186
+ return undefined;
187
+ }
188
+ }
189
+ async createOpenApiOperationExecutorWithSpec(openApiDescription) {
190
+ const executor = new openapi_operation_executor_1.OpenApiOperationExecutor();
191
+ await executor.setOpenapiSpec(openApiDescription);
192
+ return executor;
193
+ }
194
+ async handleNounMappingVerb(verb, args) {
195
+ const mapping = await this.findVerbNounMapping(verb['@id'], args.noun);
196
+ if (mapping[Vocabularies_1.SKL.returnValueMapping]) {
197
+ return await this.performMapping(args, mapping[Vocabularies_1.SKL.returnValueMapping], {
198
+ ...(0, Util_1.getValueIfDefined)(verb[Vocabularies_1.SKL.returnValueFrame]),
199
+ ...(0, Util_1.getValueIfDefined)(mapping[Vocabularies_1.SKL.returnValueFrame]),
200
+ });
201
+ }
202
+ const verbArgs = await this.performParameterMappingOnArgsIfDefined(args, mapping, false);
203
+ const verbInfoJsonLd = await this.performVerbMappingWithArgs(args, mapping);
204
+ const mappedVerb = await this.findBy({
205
+ id: (0, Util_1.getValueIfDefined)(verbInfoJsonLd[Vocabularies_1.SKL.verb]),
206
+ });
207
+ return this.handleIntegrationVerb(mappedVerb, verbArgs);
208
+ }
209
+ async findVerbNounMapping(verbId, noun) {
210
+ return await this.findBy({
211
+ type: Vocabularies_1.SKL.VerbNounMapping,
212
+ [Vocabularies_1.SKL.verb]: verbId,
213
+ [Vocabularies_1.SKL.noun]: noun,
214
+ });
215
+ }
216
+ async performVerbMappingWithArgs(args, mapping) {
217
+ return await this.performMapping(args, mapping[Vocabularies_1.SKL.verbMapping]);
218
+ }
219
+ async assertVerbParamsMatchParameterSchemas(verbParams, verb) {
220
+ const verbParamsAsJsonLd = {
221
+ '@context': (0, Util_1.getValueIfDefined)(verb[Vocabularies_1.SKL.parametersContext]),
222
+ '@type': Vocabularies_1.SKL.Parameters,
223
+ ...verbParams,
224
+ };
225
+ const parametersSchema = verb[Vocabularies_1.SKL.parameters];
226
+ const report = await this.convertToQuadsAndValidateAgainstShape(verbParamsAsJsonLd, parametersSchema);
227
+ if (!report.conforms) {
228
+ throw new Error(`${verb[Vocabularies_1.RDFS.label]} parameters do not conform to the schema`);
229
+ }
230
+ }
231
+ async performOpenapiOperationWithCredentials(operationId, operationArgs, account) {
232
+ const integrationId = account[Vocabularies_1.SKL.integration]['@id'];
233
+ const openApiDescription = await this.getOpenApiDescriptionForIntegration(integrationId);
234
+ const openApiExecutor = await this.createOpenApiOperationExecutorWithSpec(openApiDescription);
235
+ const securityCredentials = await this.findSecurityCredentialsForAccountIfDefined(account['@id']);
236
+ const configuration = {
237
+ accessToken: securityCredentials
238
+ ? (0, Util_1.getValueIfDefined)(securityCredentials[Vocabularies_1.SKL.accessToken])
239
+ : undefined,
240
+ apiKey: securityCredentials
241
+ ? (0, Util_1.getValueIfDefined)(securityCredentials[Vocabularies_1.SKL.apiKey])
242
+ : undefined,
243
+ basePath: (0, Util_1.getValueIfDefined)(account[Vocabularies_1.SKL.overrideBasePath]),
244
+ };
245
+ return await openApiExecutor.executeOperation(operationId, configuration, operationArgs)
246
+ .catch(async (error) => {
247
+ if (axios_1.default.isAxiosError(error) && await this.isInvalidTokenError(error, integrationId) && securityCredentials) {
248
+ const refreshedConfiguration = await this.refreshOpenApiToken(securityCredentials, openApiExecutor, integrationId);
249
+ return await openApiExecutor.executeOperation(operationId, refreshedConfiguration, operationArgs);
250
+ }
251
+ throw error;
252
+ });
253
+ }
254
+ async isInvalidTokenError(error, integrationId) {
255
+ const integration = await this.findBy({ id: integrationId });
256
+ const errorMatcher = (0, Util_1.getValueIfDefined)(integration[Vocabularies_1.SKL.invalidTokenErrorMatcher]);
257
+ if (errorMatcher && (error.response?.status === errorMatcher.status)) {
258
+ if (!errorMatcher.messageRegex) {
259
+ return true;
260
+ }
261
+ if (error.response?.statusText &&
262
+ new RegExp(errorMatcher.messageRegex, 'u').test(error.response?.statusText)) {
263
+ return true;
264
+ }
265
+ }
266
+ return false;
267
+ }
268
+ async refreshOpenApiToken(securityCredentialsSchema, openApiExecutor, integrationId) {
269
+ const getOauthTokenVerb = await this.findBy({ type: Vocabularies_1.SKL.Verb, [Vocabularies_1.RDFS.label]: 'getOauthTokens' });
270
+ const mapping = await this.findVerbIntegrationMapping(getOauthTokenVerb['@id'], integrationId);
271
+ const operationArgs = await this.performParameterMappingOnArgsIfDefined({ refreshToken: (0, Util_1.getValueIfDefined)(securityCredentialsSchema[Vocabularies_1.SKL.refreshToken]) }, mapping);
272
+ const operationInfoJsonLd = await this.performOperationMappingWithArgs({}, mapping);
273
+ const configuration = this.getConfigurationFromSecurityCredentials(securityCredentialsSchema);
274
+ const rawReturnValue = await openApiExecutor.executeSecuritySchemeStage((0, Util_1.getValueIfDefined)(operationInfoJsonLd[Vocabularies_1.SKL.schemeName]), (0, Util_1.getValueIfDefined)(operationInfoJsonLd[Vocabularies_1.SKL.oauthFlow]), (0, Util_1.getValueIfDefined)(operationInfoJsonLd[Vocabularies_1.SKL.stage]), configuration, operationArgs);
275
+ const mappedReturnValue = await this.performReturnValueMappingWithFrame(rawReturnValue.data, mapping, getOauthTokenVerb);
276
+ await this.assertVerbReturnValueMatchesReturnTypeSchema(mappedReturnValue, getOauthTokenVerb);
277
+ securityCredentialsSchema[Vocabularies_1.SKL.accessToken] = (0, Util_1.getValueIfDefined)(mappedReturnValue[Vocabularies_1.SKL.accessToken]);
278
+ securityCredentialsSchema[Vocabularies_1.SKL.refreshToken] = (0, Util_1.getValueIfDefined)(mappedReturnValue[Vocabularies_1.SKL.refreshToken]);
279
+ await this.save(securityCredentialsSchema);
280
+ return { accessToken: (0, Util_1.getValueIfDefined)(securityCredentialsSchema[Vocabularies_1.SKL.accessToken]) };
281
+ }
282
+ getConfigurationFromSecurityCredentials(securityCredentialsSchema) {
283
+ const username = (0, Util_1.getValueIfDefined)(securityCredentialsSchema[Vocabularies_1.SKL.clientId]);
284
+ const password = (0, Util_1.getValueIfDefined)(securityCredentialsSchema[Vocabularies_1.SKL.clientSecret]);
285
+ const accessToken = (0, Util_1.getValueIfDefined)(securityCredentialsSchema[Vocabularies_1.SKL.accessToken]);
286
+ return { username, password, accessToken };
287
+ }
288
+ async assertVerbReturnValueMatchesReturnTypeSchema(returnValue, verb) {
289
+ const returnTypeSchemaObject = verb[Vocabularies_1.SKL.returnValue];
290
+ let report;
291
+ if (returnValue && Object.keys(returnValue).length > 0 && returnTypeSchemaObject) {
292
+ if (returnValue['@id']) {
293
+ returnTypeSchemaObject[Vocabularies_1.SHACL.targetNode] = { '@id': returnValue['@id'] };
294
+ }
295
+ else {
296
+ returnTypeSchemaObject[Vocabularies_1.SHACL.targetClass] = { '@id': returnValue['@type'] };
297
+ }
298
+ report = await this.convertToQuadsAndValidateAgainstShape(returnValue, returnTypeSchemaObject);
299
+ }
300
+ if (report && !report?.conforms) {
301
+ throw new Error(`Return value ${returnValue['@id']} does not conform to the schema`);
302
+ }
303
+ }
304
+ async convertToQuadsAndValidateAgainstShape(value, shape) {
305
+ const valueAsQuads = await (0, Util_1.convertJsonLdToQuads)([value]);
306
+ const shapeQuads = await (0, Util_1.convertJsonLdToQuads)(shape);
307
+ const validator = new rdf_validate_shacl_1.default(shapeQuads);
308
+ return validator.validate(valueAsQuads);
309
+ }
310
+ async performSecuritySchemeStageWithCredentials(operationInfo, operationArgs, account) {
311
+ const integrationId = account[Vocabularies_1.SKL.integration]['@id'];
312
+ const openApiDescription = await this.getOpenApiDescriptionForIntegration(integrationId);
313
+ const securityCredentialsSchema = await this.findSecurityCredentialsForAccountIfDefined(account['@id']);
314
+ let configuration;
315
+ if (securityCredentialsSchema) {
316
+ configuration = this.getConfigurationFromSecurityCredentials(securityCredentialsSchema);
317
+ operationArgs.client_id = (0, Util_1.getValueIfDefined)(securityCredentialsSchema[Vocabularies_1.SKL.clientId]);
318
+ }
319
+ else {
320
+ configuration = {};
321
+ }
322
+ const openApiExecutor = await this.createOpenApiOperationExecutorWithSpec(openApiDescription);
323
+ return await openApiExecutor.executeSecuritySchemeStage((0, Util_1.getValueIfDefined)(operationInfo[Vocabularies_1.SKL.schemeName]), (0, Util_1.getValueIfDefined)(operationInfo[Vocabularies_1.SKL.oauthFlow]), (0, Util_1.getValueIfDefined)(operationInfo[Vocabularies_1.SKL.stage]), configuration, operationArgs);
324
+ }
325
+ async getDataFromDataSource(dataSourceId) {
326
+ const dataSource = await this.findBy({ id: dataSourceId });
327
+ if (dataSource['@type'] === Vocabularies_1.SKL.JsonDataSource) {
328
+ const data = this.getDataFromJsonDataSource(dataSource);
329
+ return { data };
330
+ }
331
+ throw new Error(`DataSource type ${dataSource['@type']} is not supported.`);
332
+ }
333
+ getDataFromJsonDataSource(dataSource) {
334
+ if (dataSource[Vocabularies_1.SKL.source]) {
335
+ const sourceValue = (0, Util_1.getValueIfDefined)(dataSource[Vocabularies_1.SKL.source]);
336
+ return this.getJsonDataFromSource(sourceValue);
337
+ }
338
+ return (0, Util_1.getValueIfDefined)(dataSource[Vocabularies_1.SKL.data]);
339
+ }
340
+ getJsonDataFromSource(source) {
341
+ if (this.inputFiles && source in this.inputFiles) {
342
+ const file = this.inputFiles[source];
343
+ return JSON.parse(file);
344
+ }
345
+ // eslint-disable-next-line unicorn/expiring-todo-comments
346
+ // TODO add support for remote sources
347
+ throw new Error(`Failed to get data from source ${source}`);
348
+ }
349
+ }
350
+ exports.Skql = Skql;
351
+ //# sourceMappingURL=Skql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Skql.js","sourceRoot":"","sources":["../src/Skql.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ export * from './mapping/Mapper';
2
+ export * from './storage/operator/Equal';
3
+ export * from './storage/operator/GreaterThan';
4
+ export * from './storage/operator/GreaterThanOrEqual';
5
+ export * from './storage/operator/In';
6
+ export * from './storage/operator/Inverse';
7
+ export * from './storage/operator/LessThan';
8
+ export * from './storage/operator/LessThanOrEqual';
9
+ export * from './storage/operator/Not';
10
+ export * from './storage/sparql/SparqlQueryAdapter';
11
+ export * from './storage/sparql/SparqlQueryBuilder';
12
+ export * from './storage/sparql/SparqlUpdateBuilder';
13
+ export * from './storage/sparql/VariableGenerator';
14
+ export * from './storage/FindOperator';
15
+ export * from './storage/FindOptionsTypes';
16
+ export * from './storage/memory/MemoryQueryAdapter';
17
+ export * from './storage/QueryAdapter';
18
+ export * from './util/TripleUtil';
19
+ export * from './util/Types';
20
+ export * from './util/Util';
21
+ export * from './util/Vocabularies';
22
+ export * from './sklEngine';
package/dist/index.js ADDED
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ // Mapping
18
+ __exportStar(require("./mapping/Mapper"), exports);
19
+ // Storage/Operator
20
+ __exportStar(require("./storage/operator/Equal"), exports);
21
+ __exportStar(require("./storage/operator/GreaterThan"), exports);
22
+ __exportStar(require("./storage/operator/GreaterThanOrEqual"), exports);
23
+ __exportStar(require("./storage/operator/In"), exports);
24
+ __exportStar(require("./storage/operator/Inverse"), exports);
25
+ __exportStar(require("./storage/operator/LessThan"), exports);
26
+ __exportStar(require("./storage/operator/LessThanOrEqual"), exports);
27
+ __exportStar(require("./storage/operator/Not"), exports);
28
+ // Storage/Sparql
29
+ __exportStar(require("./storage/sparql/SparqlQueryAdapter"), exports);
30
+ __exportStar(require("./storage/sparql/SparqlQueryBuilder"), exports);
31
+ __exportStar(require("./storage/sparql/SparqlUpdateBuilder"), exports);
32
+ __exportStar(require("./storage/sparql/VariableGenerator"), exports);
33
+ // Storage
34
+ __exportStar(require("./storage/FindOperator"), exports);
35
+ __exportStar(require("./storage/FindOptionsTypes"), exports);
36
+ __exportStar(require("./storage/memory/MemoryQueryAdapter"), exports);
37
+ __exportStar(require("./storage/QueryAdapter"), exports);
38
+ // Util
39
+ __exportStar(require("./util/TripleUtil"), exports);
40
+ __exportStar(require("./util/Types"), exports);
41
+ __exportStar(require("./util/Util"), exports);
42
+ __exportStar(require("./util/Vocabularies"), exports);
43
+ __exportStar(require("./sklEngine"), exports);
44
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,UAAU;AACV,mDAAiC;AAEjC,mBAAmB;AACnB,2DAAyC;AACzC,iEAA+C;AAC/C,wEAAsD;AACtD,wDAAsC;AACtC,6DAA2C;AAC3C,8DAA4C;AAC5C,qEAAmD;AACnD,yDAAuC;AAEvC,iBAAiB;AACjB,sEAAoD;AACpD,sEAAoD;AACpD,uEAAqD;AACrD,qEAAmD;AAEnD,UAAU;AACV,yDAAuC;AACvC,6DAA2C;AAC3C,sEAAoD;AACpD,yDAAuC;AAEvC,OAAO;AACP,oDAAkC;AAClC,+CAA6B;AAC7B,8CAA4B;AAC5B,sDAAoC;AAEpC,8CAA4B"}
@@ -0,0 +1,14 @@
1
+ import type { NodeObject } from 'jsonld';
2
+ import type { OrArray } from '../util/Types';
3
+ import type { JSONObject } from '../util/Util';
4
+ export interface MapperArgs {
5
+ functions?: Record<string, (args: any | any[]) => any>;
6
+ }
7
+ export declare class Mapper {
8
+ private readonly functions?;
9
+ constructor(args?: MapperArgs);
10
+ apply(data: JSONObject, mapping: OrArray<NodeObject>, frame: Record<string, any>): Promise<NodeObject>;
11
+ private doMapping;
12
+ private frame;
13
+ private jsonLdToQuads;
14
+ }
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.Mapper = void 0;
30
+ /* eslint-disable @typescript-eslint/naming-convention */
31
+ const RmlParser = __importStar(require("@comake/rmlmapper-js"));
32
+ const jsonld_1 = __importDefault(require("jsonld"));
33
+ class Mapper {
34
+ constructor(args) {
35
+ this.functions = args?.functions;
36
+ }
37
+ async apply(data, mapping, frame) {
38
+ const result = await this.doMapping(data, mapping);
39
+ return await this.frame(result, frame);
40
+ }
41
+ async doMapping(data, mapping) {
42
+ const mappingAsQuads = await this.jsonLdToQuads(mapping);
43
+ const sources = { 'input.json': JSON.stringify(data) };
44
+ const options = { functions: this.functions };
45
+ return await RmlParser.parse(mappingAsQuads, sources, options);
46
+ }
47
+ async frame(jsonldDoc, overrideFrame) {
48
+ let frame = {
49
+ '@context': {},
50
+ '@embed': '@always',
51
+ };
52
+ frame = {
53
+ ...frame,
54
+ ...overrideFrame,
55
+ '@context': { ...frame['@context'], ...overrideFrame?.['@context'] },
56
+ };
57
+ return await jsonld_1.default.frame(jsonldDoc, frame);
58
+ }
59
+ async jsonLdToQuads(jsonldDoc) {
60
+ return (await jsonld_1.default.toRDF(jsonldDoc, { format: 'application/n-quads' }));
61
+ }
62
+ }
63
+ exports.Mapper = Mapper;
64
+ //# sourceMappingURL=Mapper.js.map