@comake/skl-js-engine 0.1.4 → 0.2.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.
@@ -14,8 +14,9 @@ export interface ErrorMatcher {
14
14
  status: number;
15
15
  messageRegex: string;
16
16
  }
17
- export interface OperationResponse {
17
+ export interface OperationResponse extends JSONObject {
18
18
  data: JSONObject;
19
+ args: JSONObject;
19
20
  }
20
21
  export declare class SKLEngine {
21
22
  private readonly mapper;
@@ -44,6 +45,7 @@ export declare class SKLEngine {
44
45
  private findVerbIntegrationMapping;
45
46
  private performOperationMappingWithArgs;
46
47
  private performOperation;
48
+ private axiosResponseAndArgsToOperationResponse;
47
49
  private performReturnValueMappingWithFrame;
48
50
  private resolveMappingReferences;
49
51
  private performParameterMappingOnArgsIfDefined;
package/dist/sklEngine.js CHANGED
@@ -112,14 +112,14 @@ class SKLEngine {
112
112
  const operationArgs = await this.performParameterMappingOnArgsIfDefined(args, mapping);
113
113
  const operationInfo = await this.performOperationMappingWithArgs(args, mapping);
114
114
  const rawReturnValue = await this.performOperation(operationInfo, operationArgs, account);
115
- if (operationInfo[Vocabularies_1.SKL.schemeName] && rawReturnValue.authorizationUrl) {
115
+ if (operationInfo[Vocabularies_1.SKL.schemeName] && rawReturnValue.data.authorizationUrl) {
116
116
  return {
117
117
  '@type': '@json',
118
- '@value': rawReturnValue,
118
+ '@value': rawReturnValue.data,
119
119
  };
120
120
  }
121
121
  if (mapping[Vocabularies_1.SKL.returnValueMapping]) {
122
- const mappedReturnValue = await this.performReturnValueMappingWithFrame(rawReturnValue.data, mapping, verb);
122
+ const mappedReturnValue = await this.performReturnValueMappingWithFrame(rawReturnValue, mapping, verb);
123
123
  await this.assertVerbReturnValueMatchesReturnTypeSchema(mappedReturnValue, verb);
124
124
  return mappedReturnValue;
125
125
  }
@@ -143,12 +143,28 @@ class SKLEngine {
143
143
  return await this.getDataFromDataSource((0, Util_1.getValueIfDefined)(operationInfo[Vocabularies_1.SKL.dataSource]));
144
144
  }
145
145
  if (operationInfo[Vocabularies_1.SKL.operationId]) {
146
- return await this.performOpenapiOperationWithCredentials((0, Util_1.getValueIfDefined)(operationInfo[Vocabularies_1.SKL.operationId]), operationArgs, account);
146
+ const response = await this.performOpenapiOperationWithCredentials((0, Util_1.getValueIfDefined)(operationInfo[Vocabularies_1.SKL.operationId]), operationArgs, account);
147
+ return this.axiosResponseAndArgsToOperationResponse(response, operationArgs);
147
148
  }
148
149
  throw new Error('Operation not supported.');
149
150
  }
150
- async performReturnValueMappingWithFrame(data, mapping, verb) {
151
- return await this.performMapping(data, mapping[Vocabularies_1.SKL.returnValueMapping], {
151
+ axiosResponseAndArgsToOperationResponse(response, args) {
152
+ return {
153
+ args,
154
+ data: response.data,
155
+ status: response.status,
156
+ statusText: response.statusText,
157
+ headers: response.headers,
158
+ config: {
159
+ headers: response.config.headers,
160
+ method: response.config.method,
161
+ url: response.config.url,
162
+ data: response.config.data,
163
+ },
164
+ };
165
+ }
166
+ async performReturnValueMappingWithFrame(operationResponse, mapping, verb) {
167
+ return await this.performMapping(operationResponse, mapping[Vocabularies_1.SKL.returnValueMapping], {
152
168
  ...(0, Util_1.getValueIfDefined)(verb[Vocabularies_1.SKL.returnValueFrame]),
153
169
  ...(0, Util_1.getValueIfDefined)(mapping[Vocabularies_1.SKL.returnValueFrame]),
154
170
  });
@@ -272,7 +288,7 @@ class SKLEngine {
272
288
  const operationInfoJsonLd = await this.performOperationMappingWithArgs({}, mapping);
273
289
  const configuration = this.getConfigurationFromSecurityCredentials(securityCredentialsSchema);
274
290
  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);
291
+ const mappedReturnValue = await this.performReturnValueMappingWithFrame(this.axiosResponseAndArgsToOperationResponse(rawReturnValue, operationArgs), mapping, getOauthTokenVerb);
276
292
  await this.assertVerbReturnValueMatchesReturnTypeSchema(mappedReturnValue, getOauthTokenVerb);
277
293
  securityCredentialsSchema[Vocabularies_1.SKL.accessToken] = (0, Util_1.getValueIfDefined)(mappedReturnValue[Vocabularies_1.SKL.accessToken]);
278
294
  securityCredentialsSchema[Vocabularies_1.SKL.refreshToken] = (0, Util_1.getValueIfDefined)(mappedReturnValue[Vocabularies_1.SKL.refreshToken]);
@@ -320,13 +336,20 @@ class SKLEngine {
320
336
  configuration = {};
321
337
  }
322
338
  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);
339
+ const response = 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);
340
+ if ('codeVerifier' in response && 'authorizationUrl' in response) {
341
+ return {
342
+ data: response,
343
+ args: operationArgs,
344
+ };
345
+ }
346
+ return this.axiosResponseAndArgsToOperationResponse(response, operationArgs);
324
347
  }
325
348
  async getDataFromDataSource(dataSourceId) {
326
349
  const dataSource = await this.findBy({ id: dataSourceId });
327
350
  if (dataSource['@type'] === Vocabularies_1.SKL.JsonDataSource) {
328
351
  const data = this.getDataFromJsonDataSource(dataSource);
329
- return { data };
352
+ return { data, args: {} };
330
353
  }
331
354
  throw new Error(`DataSource type ${dataSource['@type']} is not supported.`);
332
355
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sklEngine.js","sourceRoot":"","sources":["../src/sklEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sklEngine.js","sourceRoot":"","sources":["../src/sklEngine.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@comake/skl-js-engine",
3
- "version": "0.1.4",
3
+ "version": "0.2.0",
4
4
  "description": "Standard Knowledge Language Javascript Engine",
5
5
  "keywords": [
6
6
  "skl",
package/dist/Skql.d.ts DELETED
@@ -1,68 +0,0 @@
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 DELETED
@@ -1,351 +0,0 @@
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
package/dist/Skql.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"Skql.js","sourceRoot":"","sources":["../src/Skql.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- export declare type AggregateOperatorType = 'max';
2
- export interface AggregateOperatorArgs<T> {
3
- operator: AggregateOperatorType;
4
- value: T;
5
- }
6
- export declare class AggregateOperator<T> {
7
- readonly type = "aggregate";
8
- readonly operator: AggregateOperatorType;
9
- readonly value: T;
10
- constructor(args: AggregateOperatorArgs<T>);
11
- static isAggregateOperator(value: any): boolean;
12
- }
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AggregateOperator = void 0;
4
- class AggregateOperator {
5
- constructor(args) {
6
- this.type = 'aggregate';
7
- this.operator = args.operator;
8
- this.value = args.value;
9
- }
10
- static isAggregateOperator(value) {
11
- return typeof value === 'object' &&
12
- 'type' in value &&
13
- value.type === 'aggregate';
14
- }
15
- }
16
- exports.AggregateOperator = AggregateOperator;
17
- //# sourceMappingURL=AggregateOperator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AggregateOperator.js","sourceRoot":"","sources":["../../src/storage/AggregateOperator.ts"],"names":[],"mappings":";;;AAOA,MAAa,iBAAiB;IAK5B,YAAmB,IAA8B;QAJjC,SAAI,GAAG,WAAW,CAAC;QAKjC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;IAC1B,CAAC;IAEM,MAAM,CAAC,mBAAmB,CAAC,KAAU;QAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ;YAC9B,MAAM,IAAI,KAAK;YACf,KAAK,CAAC,IAAI,KAAK,WAAW,CAAC;IAC/B,CAAC;CACF;AAfD,8CAeC"}
@@ -1,28 +0,0 @@
1
- import type { Entity } from '../util/Types';
2
- import type { FindOneOptions, FindAllOptions, FindOptionsWhere } from './FindOptionsTypes';
3
- import type { QueryAdapter } from './QueryAdapter';
4
- /**
5
- * A {@link QueryAdapter} that stores data in memory.
6
- */
7
- export declare class MemoryQueryAdapter implements QueryAdapter {
8
- private readonly schemas;
9
- constructor(schemas: Entity[]);
10
- find(options?: FindOneOptions): Promise<Entity | null>;
11
- findBy(where: FindOptionsWhere): Promise<Entity | null>;
12
- findAll(options?: FindAllOptions): Promise<Entity[]>;
13
- findAllBy(where: FindOptionsWhere): Promise<Entity[]>;
14
- private entityMatchesQuery;
15
- private entityMatchesField;
16
- private fieldValueMatchesField;
17
- private findOptionWhereMatchesNodeObject;
18
- private handleOperator;
19
- private isInstanceOf;
20
- private getSubClassesOf;
21
- exists(where: FindOptionsWhere): Promise<boolean>;
22
- save(entity: Entity): Promise<Entity>;
23
- save(entities: Entity[]): Promise<Entity[]>;
24
- private saveEntity;
25
- destroy(entity: Entity): Promise<Entity>;
26
- destroy(entities: Entity[]): Promise<Entity[]>;
27
- private destroyEntity;
28
- }
@@ -1,215 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MemoryQueryAdapter = void 0;
4
- const TripleUtil_1 = require("../util/TripleUtil");
5
- const Util_1 = require("../util/Util");
6
- const Vocabularies_1 = require("../util/Vocabularies");
7
- const FindOperator_1 = require("./FindOperator");
8
- /**
9
- * A {@link QueryAdapter} that stores data in memory.
10
- */
11
- class MemoryQueryAdapter {
12
- constructor(schemas) {
13
- this.schemas = {};
14
- for (const schema of schemas) {
15
- this.schemas[schema['@id']] = schema;
16
- }
17
- }
18
- async find(options) {
19
- if (options?.where?.id && Object.keys(options.where).length === 1 && typeof options.where.id === 'string') {
20
- return this.schemas[options.where.id] ?? null;
21
- }
22
- if (options?.where) {
23
- for (const entity of Object.values(this.schemas)) {
24
- const matches = await this.entityMatchesQuery(entity, options.where);
25
- if (matches) {
26
- return entity;
27
- }
28
- }
29
- return null;
30
- }
31
- return Object.values(this.schemas)[0] ?? null;
32
- }
33
- async findBy(where) {
34
- return this.find({ where });
35
- }
36
- async findAll(options) {
37
- let results = [];
38
- if (options?.where?.id && Object.keys(options.where).length === 1 && typeof options.where.id === 'string') {
39
- const schema = this.schemas[options.where.id];
40
- if (schema) {
41
- results = [schema];
42
- }
43
- }
44
- else if (options?.where) {
45
- for (const entity of Object.values(this.schemas)) {
46
- const matches = await this.entityMatchesQuery(entity, options.where);
47
- if (matches) {
48
- results.push(entity);
49
- }
50
- }
51
- }
52
- else {
53
- results = Object.values(this.schemas);
54
- }
55
- if (options?.limit ?? options?.offset) {
56
- const start = options?.offset ?? 0;
57
- const end = options?.limit && options?.offset
58
- ? options.offset + options.limit
59
- : options?.limit ?? undefined;
60
- return results.slice(start, end);
61
- }
62
- return results;
63
- }
64
- async findAllBy(where) {
65
- return this.findAll({ where });
66
- }
67
- async entityMatchesQuery(entity, where) {
68
- for (const [fieldName, fieldValue] of Object.entries(where)) {
69
- const matches = await this.entityMatchesField(entity, fieldName, fieldValue);
70
- if (!matches) {
71
- return false;
72
- }
73
- }
74
- return true;
75
- }
76
- async entityMatchesField(entity, fieldName, fieldValue) {
77
- if (FindOperator_1.FindOperator.isFindOperator(fieldValue)) {
78
- return await this.handleOperator(fieldValue.operator, {
79
- in: async () => {
80
- const values = fieldValue.value;
81
- for (const valueItem of values) {
82
- if (await this.entityMatchesField(entity, fieldName, valueItem)) {
83
- return true;
84
- }
85
- }
86
- return false;
87
- },
88
- not: async () => {
89
- if (FindOperator_1.FindOperator.isFindOperator(fieldValue.value)) {
90
- return !await this.entityMatchesField(entity, fieldName, fieldValue.value);
91
- }
92
- const valueItem = fieldValue.value;
93
- return !await this.entityMatchesField(entity, fieldName, valueItem);
94
- },
95
- equal: async () => {
96
- const valueItem = fieldValue.value;
97
- return this.entityMatchesField(entity, fieldName, valueItem);
98
- },
99
- });
100
- }
101
- if (fieldName === 'id') {
102
- return entity['@id'] === fieldValue;
103
- }
104
- if (fieldName === 'type') {
105
- return this.isInstanceOf(entity, fieldValue);
106
- }
107
- if (Array.isArray(fieldValue)) {
108
- for (const valueItem of fieldValue) {
109
- if (!await this.entityMatchesField(entity, fieldName, valueItem)) {
110
- return false;
111
- }
112
- }
113
- return true;
114
- }
115
- if (typeof fieldValue === 'object') {
116
- if (Array.isArray(entity[fieldName])) {
117
- for (const subFieldValue of entity[fieldName]) {
118
- const matches = await this.findOptionWhereMatchesNodeObject(fieldValue, subFieldValue);
119
- if (matches) {
120
- return true;
121
- }
122
- }
123
- return false;
124
- }
125
- if (typeof entity[fieldName] === 'object') {
126
- return await this.findOptionWhereMatchesNodeObject(fieldValue, entity[fieldName]);
127
- }
128
- return false;
129
- }
130
- if (Array.isArray(entity[fieldName])) {
131
- return entity[fieldName].some((field) => this.fieldValueMatchesField(fieldValue, field));
132
- }
133
- return this.fieldValueMatchesField(fieldValue, entity[fieldName]);
134
- }
135
- fieldValueMatchesField(fieldValue, field) {
136
- if (typeof field === 'object') {
137
- if (field['@id']) {
138
- return field['@id'] === fieldValue;
139
- }
140
- if (field['@value']) {
141
- const jsValue = (0, TripleUtil_1.toJSValueFromDataType)(field['@value'], field['@type']);
142
- return jsValue === fieldValue;
143
- }
144
- }
145
- return field === fieldValue;
146
- }
147
- async findOptionWhereMatchesNodeObject(fieldValue, nodeObject) {
148
- if (nodeObject['@id'] && Object.keys(nodeObject).length === 1) {
149
- const subEntity = await this.findBy({ id: nodeObject['@id'] });
150
- if (subEntity) {
151
- return this.entityMatchesQuery(subEntity, fieldValue);
152
- }
153
- return false;
154
- }
155
- return this.entityMatchesQuery(nodeObject, fieldValue);
156
- }
157
- async handleOperator(operator, operatorHandlers) {
158
- if (operator in operatorHandlers) {
159
- return await operatorHandlers[operator]();
160
- }
161
- throw new Error(`Unsupported operator "${operator}"`);
162
- }
163
- isInstanceOf(entity, targetClass) {
164
- const classes = this.getSubClassesOf(targetClass);
165
- const entityTypes = (0, Util_1.ensureArray)(entity['@type']);
166
- return entityTypes.some((type) => classes.includes(type));
167
- }
168
- getSubClassesOf(targetClass) {
169
- // Cache subclassesOf
170
- return Object.values(this.schemas).reduce((subClasses, schema) => {
171
- const subClassOf = (0, Util_1.ensureArray)(schema[Vocabularies_1.RDFS.subClassOf]);
172
- const isSubClassOfTarget = subClassOf.some((subClass) => subClass['@id'] === targetClass);
173
- if (isSubClassOfTarget) {
174
- subClasses = [
175
- ...subClasses,
176
- schema['@id'],
177
- ...this.getSubClassesOf(schema['@id']),
178
- ];
179
- }
180
- return subClasses;
181
- }, [targetClass]);
182
- }
183
- async exists(where) {
184
- const res = await this.find({ where });
185
- return res !== null;
186
- }
187
- async save(entityOrEntities) {
188
- if (Array.isArray(entityOrEntities)) {
189
- return entityOrEntities.map((entity) => this.saveEntity(entity));
190
- }
191
- return this.saveEntity(entityOrEntities);
192
- }
193
- saveEntity(entity) {
194
- const savedEntity = { ...entity };
195
- this.schemas[entity['@id']] = savedEntity;
196
- return savedEntity;
197
- }
198
- async destroy(entityOrEntities) {
199
- if (Array.isArray(entityOrEntities)) {
200
- return entityOrEntities.map((entity) => this.destroyEntity(entity));
201
- }
202
- return this.destroyEntity(entityOrEntities);
203
- }
204
- destroyEntity(entity) {
205
- const existingEntity = this.schemas[entity['@id']];
206
- if (!existingEntity) {
207
- throw new Error(`Entity with id ${entity['@id']} does not exist.`);
208
- }
209
- // eslint-disable-next-line @typescript-eslint/no-dynamic-delete
210
- delete this.schemas[existingEntity['@id']];
211
- return existingEntity;
212
- }
213
- }
214
- exports.MemoryQueryAdapter = MemoryQueryAdapter;
215
- //# sourceMappingURL=MemoryQueryAdapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MemoryQueryAdapter.js","sourceRoot":"","sources":["../../src/storage/MemoryQueryAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,34 +0,0 @@
1
- import type { Triple, Expression } from 'sparqljs';
2
- import type { Entity } from '../util/Types';
3
- import type { QueryAdapter, FindOneOptions, FindAllOptions, FindOptionsWhere } from './QueryAdapter';
4
- export interface WhereQueryData {
5
- triples: Triple[];
6
- filters: Expression[];
7
- }
8
- /**
9
- * A {@link QueryAdapter} that stores data in a database through a sparql endpoint.
10
- */
11
- export declare class SparqlQueryAdapter implements QueryAdapter {
12
- private readonly sparqlClient;
13
- private readonly sparqlGenerator;
14
- constructor(endpointUrl: string);
15
- find(options?: FindOneOptions): Promise<Entity | null>;
16
- private buildPatternsFromQueryData;
17
- private createWhereQueryData;
18
- findBy(where: FindOptionsWhere): Promise<Entity | null>;
19
- findAll(options?: FindAllOptions): Promise<Entity[]>;
20
- findAllBy(where: FindOptionsWhere): Promise<Entity[]>;
21
- save(entity: Entity): Promise<Entity>;
22
- save(entities: Entity[]): Promise<Entity[]>;
23
- destroy(entity: Entity): Promise<Entity>;
24
- destroy(entities: Entity[]): Promise<Entity[]>;
25
- private executeSparqlQueryAndGetData;
26
- private valueToLiteral;
27
- private buildEqualOperation;
28
- private buildTypesAndSuperTypesTriple;
29
- private createWhereQueryDataFromKeyValue;
30
- private createWhereQueryDataForIdValue;
31
- private createWhereQueryDataForType;
32
- private createWhereQueryDataForNestedWhere;
33
- private createWhereQueryDataForLiteral;
34
- }
@@ -1,229 +0,0 @@
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.SparqlQueryAdapter = void 0;
7
- /* eslint-disable @typescript-eslint/naming-convention */
8
- const data_model_1 = __importDefault(require("@rdfjs/data-model"));
9
- const sparql_http_client_1 = __importDefault(require("sparql-http-client"));
10
- const sparqljs_1 = require("sparqljs");
11
- const Util_1 = require("../util/Util");
12
- const VariableGenerator_1 = require("../util/VariableGenerator");
13
- const Vocabularies_1 = require("../util/Vocabularies");
14
- /**
15
- * A {@link QueryAdapter} that stores data in a database through a sparql endpoint.
16
- */
17
- class SparqlQueryAdapter {
18
- constructor(endpointUrl) {
19
- this.sparqlClient = new sparql_http_client_1.default({ endpointUrl });
20
- this.sparqlGenerator = new sparqljs_1.Generator();
21
- }
22
- async find(options) {
23
- const variableGenerator = new VariableGenerator_1.VariableGenerator();
24
- const graph = data_model_1.default.variable('graph');
25
- const subject = data_model_1.default.variable('subject');
26
- const predicate = data_model_1.default.variable('predicate');
27
- const object = data_model_1.default.variable('object');
28
- const namedGraphQueryData = this.createWhereQueryData(graph, variableGenerator, options?.where);
29
- const graphQuery = {
30
- type: 'query',
31
- queryType: 'SELECT',
32
- variables: [graph],
33
- where: this.buildPatternsFromQueryData(graph, namedGraphQueryData),
34
- limit: 1,
35
- };
36
- const queryJson = {
37
- type: 'query',
38
- queryType: 'SELECT',
39
- prefixes: {},
40
- variables: [subject, predicate, object],
41
- where: [
42
- {
43
- type: 'graph',
44
- name: graph,
45
- patterns: [
46
- {
47
- type: 'bgp',
48
- triples: [
49
- { subject, predicate, object },
50
- ],
51
- },
52
- ],
53
- },
54
- graphQuery,
55
- ],
56
- };
57
- const generatedQuery = this.sparqlGenerator.stringify(queryJson);
58
- const response = await this.executeSparqlQueryAndGetData(generatedQuery);
59
- return response;
60
- }
61
- buildPatternsFromQueryData(graph, queryData) {
62
- const basicGraphPatterns = queryData.triples.length === 0 ? [] : [{ type: 'bgp', triples: queryData.triples }];
63
- const patterns = [
64
- {
65
- type: 'graph',
66
- // File a bug in sparqljs types. GraphPattern should accept Variables in name
67
- name: graph,
68
- patterns: basicGraphPatterns,
69
- },
70
- ];
71
- if (queryData.filters.length === 1) {
72
- patterns.push({
73
- type: 'filter',
74
- expression: queryData.filters[0],
75
- });
76
- }
77
- else if (queryData.filters.length > 1) {
78
- patterns.push({
79
- type: 'filter',
80
- expression: {
81
- type: 'operation',
82
- operator: '&&',
83
- args: queryData.filters,
84
- },
85
- });
86
- }
87
- return patterns;
88
- }
89
- createWhereQueryData(parentVariable, variableGenerator, where) {
90
- if (!where) {
91
- return {
92
- triples: [{
93
- subject: data_model_1.default.variable(variableGenerator.getNext()),
94
- predicate: data_model_1.default.variable(variableGenerator.getNext()),
95
- object: data_model_1.default.variable(variableGenerator.getNext()),
96
- }],
97
- filters: [],
98
- };
99
- }
100
- let triples = [];
101
- let filters = [];
102
- for (const [key, value] of Object.entries(where)) {
103
- const graphQueryData = this.createWhereQueryDataFromKeyValue(key, value, parentVariable, variableGenerator);
104
- triples = [...triples, ...graphQueryData.triples];
105
- filters = [...filters, ...graphQueryData.filters];
106
- }
107
- return { triples, filters };
108
- }
109
- async findBy(where) {
110
- return this.find({ where });
111
- }
112
- async findAll(options) {
113
- return [];
114
- }
115
- async findAllBy(where) {
116
- return this.findAll({ where });
117
- }
118
- async save(entityOrEntities) {
119
- if (Array.isArray(entityOrEntities)) {
120
- return [];
121
- }
122
- return { '@id': '', '@type': '' };
123
- }
124
- async destroy(entityOrEntities) {
125
- if (Array.isArray(entityOrEntities)) {
126
- return [];
127
- }
128
- return { '@id': '', '@type': '' };
129
- }
130
- // Remove
131
- // private generateSparqlQueryStringFromFindOneOptions(options?: FindOneOptions): string {
132
- // return '';
133
- // }
134
- // private generateSparqlQueryStringFromFindAllOptions(options?: FindAllOptions): string {
135
- // return '';
136
- // }
137
- async executeSparqlQueryAndGetData(query) {
138
- console.log('executing query', query);
139
- const stream = await this.sparqlClient.query.select(query);
140
- return new Promise((resolve, reject) => {
141
- const data = [];
142
- stream.on('data', (row) => {
143
- Object.entries(row).forEach((entry) => {
144
- data.push(entry);
145
- });
146
- });
147
- stream.on('end', () => {
148
- resolve(data);
149
- });
150
- stream.on('error', (error) => {
151
- reject(error);
152
- });
153
- });
154
- }
155
- valueToLiteral(value) {
156
- if (typeof value === 'number') {
157
- return data_model_1.default.literal(value.toString(), Vocabularies_1.XSD.integer);
158
- }
159
- if (typeof value === 'boolean') {
160
- return data_model_1.default.literal(value.toString(), Vocabularies_1.XSD.boolean);
161
- }
162
- return data_model_1.default.literal(value.toString());
163
- }
164
- buildEqualOperation(leftSide, rightSide) {
165
- return {
166
- type: 'operation',
167
- operator: '=',
168
- args: [leftSide, rightSide],
169
- };
170
- }
171
- buildTypesAndSuperTypesTriple(subject, object) {
172
- return {
173
- subject,
174
- predicate: Util_1.allTypesAndSuperTypesPath,
175
- object,
176
- };
177
- }
178
- createWhereQueryDataFromKeyValue(key, value, parentVariable, variableGenerator) {
179
- if (key === 'id') {
180
- return this.createWhereQueryDataForIdValue(parentVariable, value);
181
- }
182
- if (key === 'type') {
183
- return this.createWhereQueryDataForType(parentVariable, value);
184
- }
185
- if (typeof value === 'object') {
186
- return this.createWhereQueryDataForNestedWhere(key, value, parentVariable, variableGenerator);
187
- }
188
- return this.createWhereQueryDataForLiteral(key, value, parentVariable);
189
- }
190
- createWhereQueryDataForIdValue(term, value) {
191
- return {
192
- filters: [this.buildEqualOperation(term, data_model_1.default.namedNode(value))],
193
- triples: [],
194
- };
195
- }
196
- createWhereQueryDataForType(subject, value) {
197
- return {
198
- filters: [],
199
- triples: [this.buildTypesAndSuperTypesTriple(subject, data_model_1.default.namedNode(value))],
200
- };
201
- }
202
- createWhereQueryDataForNestedWhere(key, where, parentVariable, variableGenerator) {
203
- const subNodeVariable = data_model_1.default.variable(variableGenerator.getNext());
204
- const subWhereQueryData = this.createWhereQueryData(subNodeVariable, variableGenerator, where);
205
- return {
206
- filters: subWhereQueryData.filters,
207
- triples: [
208
- {
209
- subject: parentVariable,
210
- predicate: data_model_1.default.namedNode(key),
211
- object: subNodeVariable,
212
- },
213
- ...subWhereQueryData.triples,
214
- ],
215
- };
216
- }
217
- createWhereQueryDataForLiteral(key, value, parentVariable) {
218
- return {
219
- filters: [],
220
- triples: [{
221
- subject: parentVariable,
222
- predicate: data_model_1.default.namedNode(key),
223
- object: this.valueToLiteral(value),
224
- }],
225
- };
226
- }
227
- }
228
- exports.SparqlQueryAdapter = SparqlQueryAdapter;
229
- //# sourceMappingURL=SparqlQueryAdapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SparqlQueryAdapter.js","sourceRoot":"","sources":["../../src/storage/SparqlQueryAdapter.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import { AggregateOperator } from '../AggregateOperator';
2
- export declare function Max<T>(value: T): AggregateOperator<T>;
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Max = void 0;
4
- const AggregateOperator_1 = require("../AggregateOperator");
5
- // eslint-disable-next-line @typescript-eslint/naming-convention
6
- function Max(value) {
7
- return new AggregateOperator_1.AggregateOperator({
8
- operator: 'max',
9
- value,
10
- });
11
- }
12
- exports.Max = Max;
13
- //# sourceMappingURL=Max.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Max.js","sourceRoot":"","sources":["../../../src/storage/aggregate/Max.ts"],"names":[],"mappings":";;;AAAA,4DAAyD;AAEzD,gEAAgE;AAChE,SAAgB,GAAG,CACjB,KAAQ;IAER,OAAO,IAAI,qCAAiB,CAAI;QAC9B,QAAQ,EAAE,KAAK;QACf,KAAK;KACN,CAAC,CAAC;AACL,CAAC;AAPD,kBAOC"}
@@ -1,5 +0,0 @@
1
- export declare class VariableGenerator {
2
- private currentVariable;
3
- getNext(): string;
4
- private increaseByOne;
5
- }
@@ -1,29 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.VariableGenerator = void 0;
4
- const alphabet = [
5
- 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
6
- 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',
7
- ];
8
- class VariableGenerator {
9
- constructor() {
10
- this.currentVariable = [];
11
- }
12
- getNext() {
13
- const next = this.increaseByOne(this.currentVariable);
14
- this.currentVariable = next;
15
- return next.map((idx) => alphabet[idx]).join('');
16
- }
17
- increaseByOne(arr) {
18
- if (arr.length === 0) {
19
- return [0];
20
- }
21
- const first = arr[0];
22
- if (first === alphabet.length - 1) {
23
- return [0, ...this.increaseByOne(arr.slice(1))];
24
- }
25
- return [arr[0] + 1, ...arr.slice(1)];
26
- }
27
- }
28
- exports.VariableGenerator = VariableGenerator;
29
- //# sourceMappingURL=VariableGenerator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"VariableGenerator.js","sourceRoot":"","sources":["../../src/util/VariableGenerator.ts"],"names":[],"mappings":";;;AAAA,MAAM,QAAQ,GAAG;IACf,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;IAC/D,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;CAChE,CAAC;AAEF,MAAa,iBAAiB;IAA9B;QACU,oBAAe,GAAa,EAAE,CAAC;IAkBzC,CAAC;IAhBQ,OAAO;QACZ,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACtD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAW,EAAU,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACnE,CAAC;IAEO,aAAa,CAAC,GAAa;QACjC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;YACpB,OAAO,CAAE,CAAC,CAAE,CAAC;SACd;QACD,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,KAAK,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,OAAO,CAAE,CAAC,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC;SACnD;QACD,OAAO,CAAE,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,CAAC;IACzC,CAAC;CACF;AAnBD,8CAmBC"}