@comake/skl-js-engine 1.3.9 → 1.3.10
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/dist/JsExecutor/PermissionBuilder.d.ts +1 -0
- package/dist/JsExecutor/PermissionBuilder.d.ts.map +1 -0
- package/dist/JsExecutor/PermissionBuilder.js.map +1 -1
- package/dist/JsExecutor/constants.d.ts +1 -0
- package/dist/JsExecutor/constants.d.ts.map +1 -0
- package/dist/JsExecutor/constants.js.map +1 -1
- package/dist/JsExecutor/denoUtils.d.ts +1 -0
- package/dist/JsExecutor/denoUtils.d.ts.map +1 -0
- package/dist/JsExecutor/denoUtils.js.map +1 -1
- package/dist/JsExecutor/errors.d.ts +1 -0
- package/dist/JsExecutor/errors.d.ts.map +1 -0
- package/dist/JsExecutor/errors.js.map +1 -1
- package/dist/JsExecutor/examples/basic/index.d.ts +1 -0
- package/dist/JsExecutor/examples/basic/index.d.ts.map +1 -0
- package/dist/JsExecutor/examples/basic/index.js.map +1 -1
- package/dist/JsExecutor/examples/basic/process.d.ts +1 -0
- package/dist/JsExecutor/examples/basic/process.d.ts.map +1 -0
- package/dist/JsExecutor/examples/basic/process.js.map +1 -1
- package/dist/JsExecutor/examples/jsExecutor/index.d.ts +1 -0
- package/dist/JsExecutor/examples/jsExecutor/index.d.ts.map +1 -0
- package/dist/JsExecutor/examples/jsExecutor/index.js.map +1 -1
- package/dist/JsExecutor/examples/jsExecutor/process.d.ts +1 -0
- package/dist/JsExecutor/examples/jsExecutor/process.d.ts.map +1 -0
- package/dist/JsExecutor/examples/jsExecutor/process.js.map +1 -1
- package/dist/JsExecutor/index.d.ts +1 -0
- package/dist/JsExecutor/index.d.ts.map +1 -0
- package/dist/JsExecutor/index.js.map +1 -1
- package/dist/JsExecutor/jsExecutor.d.ts +1 -0
- package/dist/JsExecutor/jsExecutor.d.ts.map +1 -0
- package/dist/JsExecutor/jsExecutor.js.map +1 -1
- package/dist/JsExecutor/jsonRpc/JsonRpcClient.d.ts +1 -0
- package/dist/JsExecutor/jsonRpc/JsonRpcClient.d.ts.map +1 -0
- package/dist/JsExecutor/jsonRpc/JsonRpcClient.js.map +1 -1
- package/dist/JsExecutor/jsonRpc/JsonRpcServer.d.ts +1 -0
- package/dist/JsExecutor/jsonRpc/JsonRpcServer.d.ts.map +1 -0
- package/dist/JsExecutor/jsonRpc/JsonRpcServer.js.map +1 -1
- package/dist/JsExecutor/jsonRpc/index.d.ts +1 -0
- package/dist/JsExecutor/jsonRpc/index.d.ts.map +1 -0
- package/dist/JsExecutor/jsonRpc/index.js.map +1 -1
- package/dist/JsExecutor/jsonRpc/types.d.ts +1 -0
- package/dist/JsExecutor/jsonRpc/types.d.ts.map +1 -0
- package/dist/JsExecutor/jsonRpc/types.js.map +1 -1
- package/dist/JsExecutor/transport/Transport.d.ts +1 -0
- package/dist/JsExecutor/transport/Transport.d.ts.map +1 -0
- package/dist/JsExecutor/transport/Transport.js.map +1 -1
- package/dist/JsExecutor/transport/base/BaseTransport.d.ts +1 -0
- package/dist/JsExecutor/transport/base/BaseTransport.d.ts.map +1 -0
- package/dist/JsExecutor/transport/base/BaseTransport.js.map +1 -1
- package/dist/JsExecutor/transport/index.d.ts +1 -0
- package/dist/JsExecutor/transport/index.d.ts.map +1 -0
- package/dist/JsExecutor/transport/index.js.map +1 -1
- package/dist/JsExecutor/transport/process/ProcessManager.d.ts +1 -0
- package/dist/JsExecutor/transport/process/ProcessManager.d.ts.map +1 -0
- package/dist/JsExecutor/transport/process/ProcessManager.js.map +1 -1
- package/dist/JsExecutor/transport/stdio/ChildStdioTransport.d.ts +1 -0
- package/dist/JsExecutor/transport/stdio/ChildStdioTransport.d.ts.map +1 -0
- package/dist/JsExecutor/transport/stdio/ChildStdioTransport.js.map +1 -1
- package/dist/JsExecutor/transport/stdio/ParentStdioTransport.d.ts +1 -0
- package/dist/JsExecutor/transport/stdio/ParentStdioTransport.d.ts.map +1 -0
- package/dist/JsExecutor/transport/stdio/ParentStdioTransport.js.map +1 -1
- package/dist/JsExecutor/transport/utils/MessageUtils.d.ts +1 -0
- package/dist/JsExecutor/transport/utils/MessageUtils.d.ts.map +1 -0
- package/dist/JsExecutor/transport/utils/MessageUtils.js.map +1 -1
- package/dist/JsExecutor/transport/utils/PollingUtils.d.ts +1 -0
- package/dist/JsExecutor/transport/utils/PollingUtils.d.ts.map +1 -0
- package/dist/JsExecutor/transport/utils/PollingUtils.js.map +1 -1
- package/dist/JsExecutor/types.d.ts +1 -0
- package/dist/JsExecutor/types.d.ts.map +1 -0
- package/dist/JsExecutor/types.js.map +1 -1
- package/dist/SklEngine.d.ts +1 -0
- package/dist/SklEngine.d.ts.map +1 -0
- package/dist/SklEngine.js.map +1 -1
- package/dist/SklEngineOptions.d.ts +1 -0
- package/dist/SklEngineOptions.d.ts.map +1 -0
- package/dist/SklEngineOptions.js.map +1 -1
- package/dist/constants.d.ts +1 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js.map +1 -1
- package/dist/customCapabilities.d.ts +1 -0
- package/dist/customCapabilities.d.ts.map +1 -0
- package/dist/customCapabilities.js.map +1 -1
- package/dist/examples/customCapabilitiesExample.d.ts +1 -0
- package/dist/examples/customCapabilitiesExample.d.ts.map +1 -0
- package/dist/examples/customCapabilitiesExample.js.map +1 -1
- package/dist/hooks/globalHooks.d.ts +1 -0
- package/dist/hooks/globalHooks.d.ts.map +1 -0
- package/dist/hooks/globalHooks.js.map +1 -1
- package/dist/hooks/types.d.ts +1 -0
- package/dist/hooks/types.d.ts.map +1 -0
- package/dist/hooks/types.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +1 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js.map +1 -1
- package/dist/mapping/Mapper.d.ts +1 -0
- package/dist/mapping/Mapper.d.ts.map +1 -0
- package/dist/mapping/Mapper.js.map +1 -1
- package/dist/storage/FindOperator.d.ts +1 -0
- package/dist/storage/FindOperator.d.ts.map +1 -0
- package/dist/storage/FindOperator.js.map +1 -1
- package/dist/storage/FindOptionsTypes.d.ts +1 -0
- package/dist/storage/FindOptionsTypes.d.ts.map +1 -0
- package/dist/storage/FindOptionsTypes.js.map +1 -1
- package/dist/storage/GroupOptionTypes.d.ts +1 -0
- package/dist/storage/GroupOptionTypes.d.ts.map +1 -0
- package/dist/storage/GroupOptionTypes.js.map +1 -1
- package/dist/storage/operator/And.d.ts +1 -0
- package/dist/storage/operator/And.d.ts.map +1 -0
- package/dist/storage/operator/And.js.map +1 -1
- package/dist/storage/operator/Contains.d.ts +1 -0
- package/dist/storage/operator/Contains.d.ts.map +1 -0
- package/dist/storage/operator/Contains.js.map +1 -1
- package/dist/storage/operator/Equal.d.ts +1 -0
- package/dist/storage/operator/Equal.d.ts.map +1 -0
- package/dist/storage/operator/Equal.js.map +1 -1
- package/dist/storage/operator/Exists.d.ts +1 -0
- package/dist/storage/operator/Exists.d.ts.map +1 -0
- package/dist/storage/operator/Exists.js.map +1 -1
- package/dist/storage/operator/GreaterThan.d.ts +1 -0
- package/dist/storage/operator/GreaterThan.d.ts.map +1 -0
- package/dist/storage/operator/GreaterThan.js.map +1 -1
- package/dist/storage/operator/GreaterThanOrEqual.d.ts +1 -0
- package/dist/storage/operator/GreaterThanOrEqual.d.ts.map +1 -0
- package/dist/storage/operator/GreaterThanOrEqual.js.map +1 -1
- package/dist/storage/operator/In.d.ts +1 -0
- package/dist/storage/operator/In.d.ts.map +1 -0
- package/dist/storage/operator/In.js.map +1 -1
- package/dist/storage/operator/Inverse.d.ts +1 -0
- package/dist/storage/operator/Inverse.d.ts.map +1 -0
- package/dist/storage/operator/Inverse.js.map +1 -1
- package/dist/storage/operator/InversePath.d.ts +1 -0
- package/dist/storage/operator/InversePath.d.ts.map +1 -0
- package/dist/storage/operator/InversePath.js.map +1 -1
- package/dist/storage/operator/InverseRelation.d.ts +1 -0
- package/dist/storage/operator/InverseRelation.d.ts.map +1 -0
- package/dist/storage/operator/InverseRelation.js.map +1 -1
- package/dist/storage/operator/InverseRelationOrder.d.ts +1 -0
- package/dist/storage/operator/InverseRelationOrder.d.ts.map +1 -0
- package/dist/storage/operator/InverseRelationOrder.js.map +1 -1
- package/dist/storage/operator/LessThan.d.ts +1 -0
- package/dist/storage/operator/LessThan.d.ts.map +1 -0
- package/dist/storage/operator/LessThan.js.map +1 -1
- package/dist/storage/operator/LessThanOrEqual.d.ts +1 -0
- package/dist/storage/operator/LessThanOrEqual.d.ts.map +1 -0
- package/dist/storage/operator/LessThanOrEqual.js.map +1 -1
- package/dist/storage/operator/Not.d.ts +1 -0
- package/dist/storage/operator/Not.d.ts.map +1 -0
- package/dist/storage/operator/Not.js.map +1 -1
- package/dist/storage/operator/OneOrMorePath.d.ts +1 -0
- package/dist/storage/operator/OneOrMorePath.d.ts.map +1 -0
- package/dist/storage/operator/OneOrMorePath.js.map +1 -1
- package/dist/storage/operator/Sequence.d.ts +1 -0
- package/dist/storage/operator/Sequence.d.ts.map +1 -0
- package/dist/storage/operator/Sequence.js.map +1 -1
- package/dist/storage/operator/SequencePath.d.ts +1 -0
- package/dist/storage/operator/SequencePath.d.ts.map +1 -0
- package/dist/storage/operator/SequencePath.js.map +1 -1
- package/dist/storage/operator/ZeroOrMorePath.d.ts +1 -0
- package/dist/storage/operator/ZeroOrMorePath.d.ts.map +1 -0
- package/dist/storage/operator/ZeroOrMorePath.js.map +1 -1
- package/dist/storage/query-adapter/QueryAdapter.d.ts +1 -0
- package/dist/storage/query-adapter/QueryAdapter.d.ts.map +1 -0
- package/dist/storage/query-adapter/QueryAdapter.js.map +1 -1
- package/dist/storage/query-adapter/sparql/SparqlQueryAdapter.d.ts +1 -0
- package/dist/storage/query-adapter/sparql/SparqlQueryAdapter.d.ts.map +1 -0
- package/dist/storage/query-adapter/sparql/SparqlQueryAdapter.js +16 -3
- package/dist/storage/query-adapter/sparql/SparqlQueryAdapter.js.map +1 -1
- package/dist/storage/query-adapter/sparql/SparqlQueryAdapterOptions.d.ts +1 -0
- package/dist/storage/query-adapter/sparql/SparqlQueryAdapterOptions.d.ts.map +1 -0
- package/dist/storage/query-adapter/sparql/SparqlQueryAdapterOptions.js.map +1 -1
- package/dist/storage/query-adapter/sparql/SparqlQueryBuilder.d.ts +1 -0
- package/dist/storage/query-adapter/sparql/SparqlQueryBuilder.d.ts.map +1 -0
- package/dist/storage/query-adapter/sparql/SparqlQueryBuilder.js +7 -22
- package/dist/storage/query-adapter/sparql/SparqlQueryBuilder.js.map +1 -1
- package/dist/storage/query-adapter/sparql/SparqlUpdateBuilder.d.ts +1 -0
- package/dist/storage/query-adapter/sparql/SparqlUpdateBuilder.d.ts.map +1 -0
- package/dist/storage/query-adapter/sparql/SparqlUpdateBuilder.js.map +1 -1
- package/dist/storage/query-adapter/sparql/VariableGenerator.d.ts +1 -0
- package/dist/storage/query-adapter/sparql/VariableGenerator.d.ts.map +1 -0
- package/dist/storage/query-adapter/sparql/VariableGenerator.js.map +1 -1
- package/dist/storage/query-adapter/sparql/query-executor/InMemorySparqlQueryExecutor.d.ts +1 -0
- package/dist/storage/query-adapter/sparql/query-executor/InMemorySparqlQueryExecutor.d.ts.map +1 -0
- package/dist/storage/query-adapter/sparql/query-executor/InMemorySparqlQueryExecutor.js.map +1 -1
- package/dist/storage/query-adapter/sparql/query-executor/SparqlEndpointQueryExecutor.d.ts +1 -0
- package/dist/storage/query-adapter/sparql/query-executor/SparqlEndpointQueryExecutor.d.ts.map +1 -0
- package/dist/storage/query-adapter/sparql/query-executor/SparqlEndpointQueryExecutor.js.map +1 -1
- package/dist/storage/query-adapter/sparql/query-executor/SparqlQueryExecutor.d.ts +1 -0
- package/dist/storage/query-adapter/sparql/query-executor/SparqlQueryExecutor.d.ts.map +1 -0
- package/dist/storage/query-adapter/sparql/query-executor/SparqlQueryExecutor.js.map +1 -1
- package/dist/util/PerformanceLogger.d.ts +1 -0
- package/dist/util/PerformanceLogger.d.ts.map +1 -0
- package/dist/util/PerformanceLogger.js.map +1 -1
- package/dist/util/SparqlUtil.d.ts +1 -0
- package/dist/util/SparqlUtil.d.ts.map +1 -0
- package/dist/util/SparqlUtil.js.map +1 -1
- package/dist/util/TripleUtil.d.ts +1 -0
- package/dist/util/TripleUtil.d.ts.map +1 -0
- package/dist/util/TripleUtil.js.map +1 -1
- package/dist/util/Types.d.ts +1 -0
- package/dist/util/Types.d.ts.map +1 -0
- package/dist/util/Types.js.map +1 -1
- package/dist/util/Util.d.ts +1 -0
- package/dist/util/Util.d.ts.map +1 -0
- package/dist/util/Util.js.map +1 -1
- package/dist/util/Vocabularies/Shared.d.ts +1 -0
- package/dist/util/Vocabularies/Shared.d.ts.map +1 -0
- package/dist/util/Vocabularies/Shared.js.map +1 -1
- package/dist/util/Vocabularies/helper.d.ts +1 -0
- package/dist/util/Vocabularies/helper.d.ts.map +1 -0
- package/dist/util/Vocabularies/helper.js.map +1 -1
- package/dist/util/Vocabularies/index.d.ts +1 -0
- package/dist/util/Vocabularies/index.d.ts.map +1 -0
- package/dist/util/Vocabularies/index.js.map +1 -1
- package/dist/util/safeJsonStringify.d.ts +1 -0
- package/dist/util/safeJsonStringify.d.ts.map +1 -0
- package/dist/util/safeJsonStringify.js.map +1 -1
- package/package.json +6 -3
- package/src/JsExecutor/PermissionBuilder.ts +60 -0
- package/src/JsExecutor/constants.ts +27 -0
- package/src/JsExecutor/denoUtils.ts +20 -0
- package/src/JsExecutor/errors.ts +63 -0
- package/src/JsExecutor/examples/basic/index.ts +54 -0
- package/src/JsExecutor/examples/basic/process.ts +39 -0
- package/src/JsExecutor/examples/jsExecutor/README.md +3 -0
- package/src/JsExecutor/examples/jsExecutor/index.ts +50 -0
- package/src/JsExecutor/examples/jsExecutor/process.ts +79 -0
- package/src/JsExecutor/index.ts +19 -0
- package/src/JsExecutor/jsExecutor.ts +194 -0
- package/src/JsExecutor/jsonRpc/JsonRpcClient.ts +422 -0
- package/src/JsExecutor/jsonRpc/JsonRpcServer.ts +454 -0
- package/src/JsExecutor/jsonRpc/index.ts +4 -0
- package/src/JsExecutor/jsonRpc/types.ts +231 -0
- package/src/JsExecutor/transport/README.md +67 -0
- package/src/JsExecutor/transport/Transport.ts +106 -0
- package/src/JsExecutor/transport/base/BaseTransport.ts +83 -0
- package/src/JsExecutor/transport/index.ts +56 -0
- package/src/JsExecutor/transport/process/ProcessManager.ts +281 -0
- package/src/JsExecutor/transport/stdio/ChildStdioTransport.ts +251 -0
- package/src/JsExecutor/transport/stdio/ParentStdioTransport.ts +308 -0
- package/src/JsExecutor/transport/utils/MessageUtils.ts +139 -0
- package/src/JsExecutor/transport/utils/PollingUtils.ts +114 -0
- package/src/JsExecutor/types.ts +130 -0
- package/src/SklEngine.ts +1828 -0
- package/src/SklEngineOptions.ts +28 -0
- package/src/constants.ts +120 -0
- package/src/customCapabilities.ts +65 -0
- package/src/examples/customCapabilitiesExample.ts +77 -0
- package/src/hooks/globalHooks.ts +238 -0
- package/src/hooks/types.ts +7 -0
- package/src/index.ts +45 -0
- package/src/logger.ts +144 -0
- package/src/mapping/Mapper.ts +52 -0
- package/src/storage/FindOperator.ts +55 -0
- package/src/storage/FindOptionsTypes.ts +107 -0
- package/src/storage/GroupOptionTypes.ts +32 -0
- package/src/storage/operator/And.ts +10 -0
- package/src/storage/operator/Contains.ts +9 -0
- package/src/storage/operator/Equal.ts +13 -0
- package/src/storage/operator/Exists.ts +6 -0
- package/src/storage/operator/GreaterThan.ts +12 -0
- package/src/storage/operator/GreaterThanOrEqual.ts +12 -0
- package/src/storage/operator/In.ts +12 -0
- package/src/storage/operator/Inverse.ts +11 -0
- package/src/storage/operator/InversePath.ts +17 -0
- package/src/storage/operator/InverseRelation.ts +18 -0
- package/src/storage/operator/InverseRelationOrder.ts +17 -0
- package/src/storage/operator/LessThan.ts +12 -0
- package/src/storage/operator/LessThanOrEqual.ts +12 -0
- package/src/storage/operator/Not.ts +11 -0
- package/src/storage/operator/OneOrMorePath.ts +17 -0
- package/src/storage/operator/Sequence.ts +11 -0
- package/src/storage/operator/SequencePath.ts +17 -0
- package/src/storage/operator/ZeroOrMorePath.ts +17 -0
- package/src/storage/query-adapter/QueryAdapter.ts +110 -0
- package/src/storage/query-adapter/sparql/SparqlQueryAdapter.ts +400 -0
- package/src/storage/query-adapter/sparql/SparqlQueryAdapterOptions.ts +38 -0
- package/src/storage/query-adapter/sparql/SparqlQueryBuilder.ts +1524 -0
- package/src/storage/query-adapter/sparql/SparqlUpdateBuilder.ts +347 -0
- package/src/storage/query-adapter/sparql/VariableGenerator.ts +8 -0
- package/src/storage/query-adapter/sparql/query-executor/InMemorySparqlQueryExecutor.ts +135 -0
- package/src/storage/query-adapter/sparql/query-executor/SparqlEndpointQueryExecutor.ts +146 -0
- package/src/storage/query-adapter/sparql/query-executor/SparqlQueryExecutor.ts +51 -0
- package/src/util/PerformanceLogger.ts +286 -0
- package/src/util/SparqlUtil.ts +516 -0
- package/src/util/TripleUtil.ts +412 -0
- package/src/util/Types.ts +399 -0
- package/src/util/Util.ts +116 -0
- package/src/util/Vocabularies/Shared.ts +99 -0
- package/src/util/Vocabularies/helper.ts +14 -0
- package/src/util/Vocabularies/index.ts +108 -0
- package/src/util/safeJsonStringify.ts +19 -0
- package/dist/JsExecutor/transport/StdioTransport.d.ts +0 -0
- package/dist/JsExecutor/transport/StdioTransport.js +0 -641
- package/dist/JsExecutor/transport/StdioTransport.js.map +0 -1
package/src/logger.ts
ADDED
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import { inspect } from 'util';
|
|
2
|
+
|
|
3
|
+
export interface LoggerOptions {
|
|
4
|
+
maxStringLength?: number;
|
|
5
|
+
maxArrayItems?: number;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export class Logger {
|
|
9
|
+
private static instance: Logger;
|
|
10
|
+
private readonly isDebug: boolean;
|
|
11
|
+
private metadata: Record<string, any>;
|
|
12
|
+
|
|
13
|
+
// Maximum characters to keep for long strings
|
|
14
|
+
private readonly maxStringLength: number;
|
|
15
|
+
// Maximum number of items to show for long arrays
|
|
16
|
+
private readonly maxArrayItems: number;
|
|
17
|
+
|
|
18
|
+
private constructor(isDebug: boolean, metadata: Record<string, any>, options?: LoggerOptions) {
|
|
19
|
+
this.isDebug = true;
|
|
20
|
+
this.metadata = metadata;
|
|
21
|
+
this.maxStringLength = options?.maxStringLength ?? 2_000;
|
|
22
|
+
this.maxArrayItems = options?.maxArrayItems ?? 10;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Returns a singleton instance of the logger. The logger honours the DEBUG env variable unless
|
|
27
|
+
* explicitly overridden via the `isDebug` parameter.
|
|
28
|
+
*/
|
|
29
|
+
public static getInstance(isDebug?: boolean, metadata?: Record<string, any>, options?: LoggerOptions): Logger {
|
|
30
|
+
if (!Logger.instance) {
|
|
31
|
+
// eslint-disable-next-line no-process-env
|
|
32
|
+
const debugEnabled = isDebug ?? process.env.DEBUG === 'true';
|
|
33
|
+
Logger.instance = new Logger(debugEnabled, metadata ?? {}, options);
|
|
34
|
+
}
|
|
35
|
+
return Logger.instance;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Merges the given metadata with the existing metadata attached to the logger.
|
|
40
|
+
*/
|
|
41
|
+
public setMetadata(metadata: Record<string, any>): void {
|
|
42
|
+
this.metadata = { ...this.metadata, ...metadata };
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
public getMetadataString(): string | undefined {
|
|
46
|
+
if (!this.metadata || Object.keys(this.metadata).length === 0) {
|
|
47
|
+
return undefined;
|
|
48
|
+
}
|
|
49
|
+
return JSON.stringify(this.metadata);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
// ---------------------------------------------------------------------------
|
|
53
|
+
// Public logging APIs
|
|
54
|
+
// ---------------------------------------------------------------------------
|
|
55
|
+
|
|
56
|
+
public log(...args: any[]): void {
|
|
57
|
+
if (this.isDebug) {
|
|
58
|
+
const metadataString = this.getMetadataString();
|
|
59
|
+
const logArgs = metadataString ? [ ...this.formatArgs(args), metadataString ] : this.formatArgs(args);
|
|
60
|
+
// eslint-disable-next-line no-console
|
|
61
|
+
console.log(...logArgs);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
public error(...args: any[]): void {
|
|
66
|
+
if (this.isDebug) {
|
|
67
|
+
const metadataString = this.getMetadataString();
|
|
68
|
+
const logArgs = metadataString ? [ ...this.formatArgs(args), metadataString ] : this.formatArgs(args);
|
|
69
|
+
// eslint-disable-next-line no-console
|
|
70
|
+
console.error(...logArgs);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
public debug(...args: any[]): void {
|
|
75
|
+
if (this.isDebug) {
|
|
76
|
+
const metadataString = this.getMetadataString();
|
|
77
|
+
const logArgs = metadataString ? [ ...this.formatArgs(args), metadataString ] : this.formatArgs(args);
|
|
78
|
+
// eslint-disable-next-line no-console
|
|
79
|
+
console.debug(...logArgs);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// ---------------------------------------------------------------------------
|
|
84
|
+
// Private helpers
|
|
85
|
+
// ---------------------------------------------------------------------------
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Applies safe formatting to every argument before it is passed to the console. Large strings are
|
|
89
|
+
* truncated, large arrays/objects are abbreviated and circular references are handled gracefully
|
|
90
|
+
* by `util.inspect`.
|
|
91
|
+
*/
|
|
92
|
+
private formatArgs(args: any[]): any[] {
|
|
93
|
+
return args.map((arg: any): any => this.formatValue(arg));
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
private formatValue(value: any): any {
|
|
97
|
+
try {
|
|
98
|
+
if (typeof value === 'string') {
|
|
99
|
+
return this.truncateString(value);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
if (Array.isArray(value)) {
|
|
103
|
+
return JSON.stringify(this.truncateArray(value));
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
if (typeof value === 'object' && value !== null) {
|
|
107
|
+
// For objects we rely on util.inspect which gives us fine-grained control over depth,
|
|
108
|
+
// array length and string length.
|
|
109
|
+
return inspect(value, {
|
|
110
|
+
depth: 6,
|
|
111
|
+
maxArrayLength: this.maxArrayItems,
|
|
112
|
+
maxStringLength: this.maxStringLength,
|
|
113
|
+
breakLength: 120,
|
|
114
|
+
compact: false,
|
|
115
|
+
colors: true
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// Primitives, functions, etc. are returned as-is.
|
|
120
|
+
return value;
|
|
121
|
+
} catch (err: unknown) {
|
|
122
|
+
// In the unlikely event that formatting fails, fall back to a best-effort stringify.
|
|
123
|
+
// eslint-disable-next-line no-console
|
|
124
|
+
console.warn('Logger: failed to format value', err);
|
|
125
|
+
return String(value);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
private truncateString(str: string): string {
|
|
130
|
+
if (str.length <= this.maxStringLength) {
|
|
131
|
+
return str;
|
|
132
|
+
}
|
|
133
|
+
return `${str.slice(0, this.maxStringLength)}...(truncated ${str.length - this.maxStringLength} chars)`;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
private truncateArray(arr: any[]): any[] {
|
|
137
|
+
if (arr.length <= this.maxArrayItems) {
|
|
138
|
+
return arr.map((item: any): any => this.formatValue(item));
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
const displayedItems = arr.slice(0, this.maxArrayItems).map((item: any): any => this.formatValue(item));
|
|
142
|
+
return [ ...displayedItems, `...(truncated ${arr.length - this.maxArrayItems} items)` ];
|
|
143
|
+
}
|
|
144
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
2
|
+
import * as RmlParser from '@comake/rmlmapper-js';
|
|
3
|
+
import type { NodeObject } from 'jsonld';
|
|
4
|
+
import jsonld from 'jsonld';
|
|
5
|
+
import type { JSONValue, OrArray } from '../util/Types';
|
|
6
|
+
|
|
7
|
+
export interface MapperArgs {
|
|
8
|
+
functions?: Record<string, (args: any | any[]) => any>;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export class Mapper {
|
|
12
|
+
private readonly functions?: Record<string, (args: any | any[]) => any>;
|
|
13
|
+
|
|
14
|
+
public constructor(args?: MapperArgs) {
|
|
15
|
+
this.functions = args?.functions;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
public async apply(
|
|
19
|
+
data: JSONValue,
|
|
20
|
+
mapping: OrArray<NodeObject>,
|
|
21
|
+
frame: Record<string, any>
|
|
22
|
+
): Promise<NodeObject> {
|
|
23
|
+
const result = await this.doMapping(data, mapping);
|
|
24
|
+
const frameResult = await this.frame(result, frame);
|
|
25
|
+
return frameResult;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
private async doMapping(data: JSONValue, mapping: OrArray<NodeObject>): Promise<NodeObject[]> {
|
|
29
|
+
const sources = { 'input.json': JSON.stringify(data) };
|
|
30
|
+
const options = { functions: this.functions };
|
|
31
|
+
const mappingNodeObject = Array.isArray(mapping)
|
|
32
|
+
? { '@graph': mapping }
|
|
33
|
+
: mapping;
|
|
34
|
+
return await RmlParser.parseJsonLd(mappingNodeObject, sources, options) as NodeObject[];
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
private async frame(
|
|
38
|
+
jsonldDoc: any[],
|
|
39
|
+
overrideFrame: Record<string, any>
|
|
40
|
+
): Promise<NodeObject> {
|
|
41
|
+
let frame: Record<string, any> = {
|
|
42
|
+
'@context': {},
|
|
43
|
+
'@embed': '@always'
|
|
44
|
+
};
|
|
45
|
+
frame = {
|
|
46
|
+
...frame,
|
|
47
|
+
...overrideFrame,
|
|
48
|
+
'@context': { ...frame['@context'], ...overrideFrame?.['@context'] }
|
|
49
|
+
};
|
|
50
|
+
return await jsonld.frame(jsonldDoc, frame);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import type { Variable } from 'rdf-data-factory';
|
|
2
|
+
|
|
3
|
+
export type FindOperatorType =
|
|
4
|
+
| 'in'
|
|
5
|
+
| 'not'
|
|
6
|
+
| 'and'
|
|
7
|
+
| 'equal'
|
|
8
|
+
| 'exists'
|
|
9
|
+
| 'gt'
|
|
10
|
+
| 'gte'
|
|
11
|
+
| 'lt'
|
|
12
|
+
| 'lte'
|
|
13
|
+
| 'inverse'
|
|
14
|
+
| 'inverseRelation'
|
|
15
|
+
| 'inverseRelationOrder'
|
|
16
|
+
| 'sequencePath'
|
|
17
|
+
| 'zeroOrMorePath'
|
|
18
|
+
| 'inversePath'
|
|
19
|
+
| 'oneOrMorePath'
|
|
20
|
+
| 'contains'
|
|
21
|
+
| 'sequence';
|
|
22
|
+
|
|
23
|
+
export interface FindOperatorArgs<T, TType> {
|
|
24
|
+
operator: TType;
|
|
25
|
+
value?: T | FindOperator<T, any>;
|
|
26
|
+
subject?: Variable;
|
|
27
|
+
isOptional?: boolean;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export class FindOperator<T, TType extends FindOperatorType> {
|
|
31
|
+
public readonly type = 'operator';
|
|
32
|
+
public readonly operator: TType;
|
|
33
|
+
public readonly subject?: Variable;
|
|
34
|
+
public readonly value?: T | FindOperator<T, any>;
|
|
35
|
+
public readonly isOptional?: boolean;
|
|
36
|
+
public constructor(args: FindOperatorArgs<T, TType>) {
|
|
37
|
+
this.operator = args.operator;
|
|
38
|
+
this.value = args.value;
|
|
39
|
+
this.subject = args.subject;
|
|
40
|
+
this.isOptional = args.isOptional;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
public static isFindOperator(value: any): boolean {
|
|
44
|
+
return typeof value === 'object' && 'type' in value && value.type === 'operator';
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
public static isPathOperator(operator: FindOperator<any, any>): boolean {
|
|
48
|
+
return (
|
|
49
|
+
operator.operator === 'inversePath' ||
|
|
50
|
+
operator.operator === 'zeroOrMorePath' ||
|
|
51
|
+
operator.operator === 'sequencePath' ||
|
|
52
|
+
operator.operator === 'zeroOrMorePath'
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
2
|
+
import type { Expression, Variable } from 'sparqljs';
|
|
3
|
+
import type { OrArray, JSONArray, JSONObject } from '../util/Types';
|
|
4
|
+
import type { FindOperator } from './FindOperator';
|
|
5
|
+
import type { InverseRelationOperatorValue } from './operator/InverseRelation';
|
|
6
|
+
import type { InverseRelationOrderValue } from './operator/InverseRelationOrder';
|
|
7
|
+
|
|
8
|
+
export type FindOptionsSelect = string[] | {[key: string]: boolean | FindOptionsSelect };
|
|
9
|
+
|
|
10
|
+
export interface FindOneOptions {
|
|
11
|
+
select?: FindOptionsSelect;
|
|
12
|
+
where?: FindOptionsWhere;
|
|
13
|
+
relations?: FindOptionsRelations;
|
|
14
|
+
order?: FindOptionsOrder;
|
|
15
|
+
skipFraming?: boolean;
|
|
16
|
+
group?: Variable;
|
|
17
|
+
entitySelectVariable?: Variable;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export type FindOptionsRelationsValue =
|
|
21
|
+
| boolean
|
|
22
|
+
| FindOptionsRelations
|
|
23
|
+
| FindOperator<InverseRelationOperatorValue, 'inverseRelation'>;
|
|
24
|
+
|
|
25
|
+
// eslint-disable-next-line @typescript-eslint/consistent-indexed-object-style
|
|
26
|
+
export type FindOptionsRelations = {
|
|
27
|
+
[k: string]: FindOptionsRelationsValue;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export type FindOptionsOrderValue = 'ASC' | 'DESC' | 'asc' | 'desc' | 1 | -1;
|
|
31
|
+
|
|
32
|
+
export type FindOptionsOrder = Record<
|
|
33
|
+
string,
|
|
34
|
+
FindOptionsOrderValue | FindOperator<InverseRelationOrderValue, 'inverseRelationOrder'>
|
|
35
|
+
>;
|
|
36
|
+
|
|
37
|
+
export type FieldPrimitiveValue = boolean | number | string | Date;
|
|
38
|
+
|
|
39
|
+
export type JsonValueObject = {
|
|
40
|
+
'@value': FieldPrimitiveValue | JSONObject | JSONArray;
|
|
41
|
+
'@type': '@json';
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
export type LanguageValueObject = {
|
|
45
|
+
'@value': string;
|
|
46
|
+
'@language': string;
|
|
47
|
+
'@direction': string;
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
export type NonJsonValueObject = {
|
|
51
|
+
'@value': FieldPrimitiveValue;
|
|
52
|
+
'@type': string;
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
export type ValueWhereFieldObject = JsonValueObject | LanguageValueObject | NonJsonValueObject;
|
|
56
|
+
|
|
57
|
+
export type FindOptionsWhereField =
|
|
58
|
+
| OrArray<FieldPrimitiveValue>
|
|
59
|
+
| ValueWhereFieldObject
|
|
60
|
+
| FindOptionsWhere
|
|
61
|
+
| OrArray<FindOperator<any, any>>
|
|
62
|
+
| BindPattern[];
|
|
63
|
+
|
|
64
|
+
export type IdFindOptionsWhereField = string | FindOperator<any, 'in' | 'not' | 'equal' | 'inversePath' | 'contains'>;
|
|
65
|
+
|
|
66
|
+
export type TypeFindOptionsWhereField =
|
|
67
|
+
| string
|
|
68
|
+
| FindOperator<string | string[] | FindOptionsWhere, 'in' | 'not' | 'equal' | 'inverse' | 'contains'>;
|
|
69
|
+
|
|
70
|
+
export interface BindPattern {
|
|
71
|
+
expression: Expression;
|
|
72
|
+
variable: Variable;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export interface FindOptionsWhere {
|
|
76
|
+
type?: TypeFindOptionsWhereField;
|
|
77
|
+
id?: IdFindOptionsWhereField;
|
|
78
|
+
binds?: BindPattern[];
|
|
79
|
+
[k: string]: FindOptionsWhereField | BindPattern[] | undefined;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// Add these new types
|
|
83
|
+
export interface SubQuery {
|
|
84
|
+
select: Variable[];
|
|
85
|
+
where: FindOptionsWhere;
|
|
86
|
+
groupBy?: string[];
|
|
87
|
+
having?: FindOptionsWhere;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
export interface FindAllOptions extends FindOneOptions {
|
|
91
|
+
offset?: number;
|
|
92
|
+
limit?: number;
|
|
93
|
+
skipHook?: boolean;
|
|
94
|
+
subQueries?: SubQuery[];
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
export interface FindExistsOptions {
|
|
98
|
+
where?: FindOptionsWhere;
|
|
99
|
+
relations?: FindOptionsRelations;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
export interface FindCountOptions {
|
|
103
|
+
where?: FindOptionsWhere;
|
|
104
|
+
relations?: FindOptionsRelations;
|
|
105
|
+
order?: FindOptionsOrder;
|
|
106
|
+
offset?: number;
|
|
107
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { FindOptionsWhere } from './FindOptionsTypes';
|
|
2
|
+
|
|
3
|
+
// Add these types at the top of the file
|
|
4
|
+
export interface GroupByOptions {
|
|
5
|
+
where?: FindOptionsWhere;
|
|
6
|
+
groupBy?: string[];
|
|
7
|
+
dateRange?: {
|
|
8
|
+
start: string;
|
|
9
|
+
end: string;
|
|
10
|
+
};
|
|
11
|
+
dateGrouping?: 'month' | 'day';
|
|
12
|
+
limit?: number;
|
|
13
|
+
offset?: number;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface GroupResult {
|
|
17
|
+
group: Record<string, string | number>;
|
|
18
|
+
count: number;
|
|
19
|
+
entityIds: string[];
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export interface GroupByResponse {
|
|
23
|
+
results: GroupResult[];
|
|
24
|
+
meta: {
|
|
25
|
+
totalCount: number;
|
|
26
|
+
dateRange?: {
|
|
27
|
+
start: string;
|
|
28
|
+
end: string;
|
|
29
|
+
};
|
|
30
|
+
groupings: string[];
|
|
31
|
+
};
|
|
32
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ValueObject } from 'jsonld';
|
|
2
|
+
import { FindOperator } from '../FindOperator';
|
|
3
|
+
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
5
|
+
export function And<T extends number | Date | string | boolean | ValueObject>(value: T[]): FindOperator<T[], 'and'> {
|
|
6
|
+
return new FindOperator({
|
|
7
|
+
operator: 'and',
|
|
8
|
+
value
|
|
9
|
+
});
|
|
10
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { FindOperator } from '../FindOperator';
|
|
2
|
+
|
|
3
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
4
|
+
export function Contains(value: string): FindOperator<string, 'contains'> {
|
|
5
|
+
return new FindOperator({
|
|
6
|
+
operator: 'contains',
|
|
7
|
+
value
|
|
8
|
+
});
|
|
9
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ValueObject } from 'jsonld';
|
|
2
|
+
import type { OrArray } from '../../util/Types';
|
|
3
|
+
import { FindOperator } from '../FindOperator';
|
|
4
|
+
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
6
|
+
export function Equal<T extends OrArray<number | Date | string | boolean | ValueObject>>(
|
|
7
|
+
value: T
|
|
8
|
+
): FindOperator<T, 'equal'> {
|
|
9
|
+
return new FindOperator({
|
|
10
|
+
operator: 'equal',
|
|
11
|
+
value
|
|
12
|
+
});
|
|
13
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ValueObject } from 'jsonld';
|
|
2
|
+
import { FindOperator } from '../FindOperator';
|
|
3
|
+
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
5
|
+
export function GreaterThan<T extends number | Date | string | ValueObject>(
|
|
6
|
+
value: T
|
|
7
|
+
): FindOperator<T, 'gt'> {
|
|
8
|
+
return new FindOperator({
|
|
9
|
+
operator: 'gt',
|
|
10
|
+
value
|
|
11
|
+
});
|
|
12
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ValueObject } from 'jsonld';
|
|
2
|
+
import { FindOperator } from '../FindOperator';
|
|
3
|
+
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
5
|
+
export function GreaterThanOrEqual<T extends number | Date | string | ValueObject>(
|
|
6
|
+
value: T
|
|
7
|
+
): FindOperator<T, 'gte'> {
|
|
8
|
+
return new FindOperator({
|
|
9
|
+
operator: 'gte',
|
|
10
|
+
value
|
|
11
|
+
});
|
|
12
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ValueObject } from 'jsonld';
|
|
2
|
+
import { FindOperator } from '../FindOperator';
|
|
3
|
+
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
5
|
+
export function In<T extends number | Date | string | boolean | ValueObject>(
|
|
6
|
+
value: T[]
|
|
7
|
+
): FindOperator<T[], 'in'> {
|
|
8
|
+
return new FindOperator({
|
|
9
|
+
operator: 'in',
|
|
10
|
+
value
|
|
11
|
+
});
|
|
12
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { FindOperator } from '../FindOperator';
|
|
2
|
+
|
|
3
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
4
|
+
export function Inverse<T>(
|
|
5
|
+
value: T | FindOperator<T, any>
|
|
6
|
+
): FindOperator<T, 'inverse'> {
|
|
7
|
+
return new FindOperator({
|
|
8
|
+
operator: 'inverse',
|
|
9
|
+
value
|
|
10
|
+
});
|
|
11
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { FindOperator } from '../FindOperator';
|
|
2
|
+
|
|
3
|
+
export interface InversePathValue<T> {
|
|
4
|
+
subPath: string | FindOperator<any, 'sequencePath' | 'zeroOrMorePath' | 'oneOrMorePath'>;
|
|
5
|
+
value?: T | FindOperator<T, any>;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
9
|
+
export function InversePath<
|
|
10
|
+
T,
|
|
11
|
+
TI extends InversePathValue<T>
|
|
12
|
+
>(value: TI): FindOperator<TI, 'inversePath'> {
|
|
13
|
+
return new FindOperator({
|
|
14
|
+
operator: 'inversePath',
|
|
15
|
+
value
|
|
16
|
+
});
|
|
17
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { FindOperator } from '../FindOperator';
|
|
2
|
+
import type { FindOptionsRelations } from '../FindOptionsTypes';
|
|
3
|
+
|
|
4
|
+
export interface InverseRelationOperatorValue {
|
|
5
|
+
resolvedName: string;
|
|
6
|
+
relations?: FindOptionsRelations;
|
|
7
|
+
[key: string]: any;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
11
|
+
export function InverseRelation(
|
|
12
|
+
value: InverseRelationOperatorValue
|
|
13
|
+
): FindOperator<InverseRelationOperatorValue, 'inverseRelation'> {
|
|
14
|
+
return new FindOperator({
|
|
15
|
+
operator: 'inverseRelation',
|
|
16
|
+
value
|
|
17
|
+
});
|
|
18
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { FindOperator } from '../FindOperator';
|
|
2
|
+
import type { FindOptionsOrder, FindOptionsWhere } from '../FindOptionsTypes';
|
|
3
|
+
|
|
4
|
+
export interface InverseRelationOrderValue {
|
|
5
|
+
order: FindOptionsOrder;
|
|
6
|
+
where?: FindOptionsWhere;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
10
|
+
export function InverseRelationOrder(
|
|
11
|
+
value: InverseRelationOrderValue
|
|
12
|
+
): FindOperator<InverseRelationOrderValue, 'inverseRelationOrder'> {
|
|
13
|
+
return new FindOperator({
|
|
14
|
+
operator: 'inverseRelationOrder',
|
|
15
|
+
value
|
|
16
|
+
});
|
|
17
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ValueObject } from 'jsonld';
|
|
2
|
+
import { FindOperator } from '../FindOperator';
|
|
3
|
+
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
5
|
+
export function LessThan<T extends number | Date | string | ValueObject>(
|
|
6
|
+
value: T
|
|
7
|
+
): FindOperator<T, 'lt'> {
|
|
8
|
+
return new FindOperator({
|
|
9
|
+
operator: 'lt',
|
|
10
|
+
value
|
|
11
|
+
});
|
|
12
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ValueObject } from 'jsonld';
|
|
2
|
+
import { FindOperator } from '../FindOperator';
|
|
3
|
+
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
5
|
+
export function LessThanOrEqual<T extends number | Date | string | ValueObject>(
|
|
6
|
+
value: T
|
|
7
|
+
): FindOperator<T, 'lte'> {
|
|
8
|
+
return new FindOperator({
|
|
9
|
+
operator: 'lte',
|
|
10
|
+
value
|
|
11
|
+
});
|
|
12
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { FindOperator } from '../FindOperator';
|
|
2
|
+
|
|
3
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
4
|
+
export function Not<T>(
|
|
5
|
+
value: T | FindOperator<T, any>
|
|
6
|
+
): FindOperator<T, 'not'> {
|
|
7
|
+
return new FindOperator({
|
|
8
|
+
operator: 'not',
|
|
9
|
+
value
|
|
10
|
+
});
|
|
11
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { FindOperator } from '../FindOperator';
|
|
2
|
+
|
|
3
|
+
export interface OneOrMorePathValue<T> {
|
|
4
|
+
subPath: string | FindOperator<any, 'sequencePath' | 'inversePath'>;
|
|
5
|
+
value?: string | FindOperator<T, any>;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
9
|
+
export function OneOrMorePath<
|
|
10
|
+
T,
|
|
11
|
+
TI extends OneOrMorePathValue<T>
|
|
12
|
+
>(value: TI): FindOperator<TI, 'oneOrMorePath'> {
|
|
13
|
+
return new FindOperator({
|
|
14
|
+
operator: 'oneOrMorePath',
|
|
15
|
+
value
|
|
16
|
+
});
|
|
17
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { FindOperator } from '../FindOperator';
|
|
2
|
+
|
|
3
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
4
|
+
export function Sequence<T>(
|
|
5
|
+
value: T | FindOperator<T, any>
|
|
6
|
+
): FindOperator<T, 'sequence'> {
|
|
7
|
+
return new FindOperator({
|
|
8
|
+
operator: 'sequence',
|
|
9
|
+
value
|
|
10
|
+
});
|
|
11
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { FindOperator } from '../FindOperator';
|
|
2
|
+
|
|
3
|
+
export interface SequencePathValue<T> {
|
|
4
|
+
subPath: (string | FindOperator<any, 'zeroOrMorePath' | 'inversePath' | 'oneOrMorePath'>)[];
|
|
5
|
+
value?: string | FindOperator<T, any>;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
9
|
+
export function SequencePath<
|
|
10
|
+
T,
|
|
11
|
+
TI extends SequencePathValue<T>
|
|
12
|
+
>(value: TI): FindOperator<TI, 'sequencePath'> {
|
|
13
|
+
return new FindOperator({
|
|
14
|
+
operator: 'sequencePath',
|
|
15
|
+
value
|
|
16
|
+
});
|
|
17
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { FindOperator } from '../FindOperator';
|
|
2
|
+
|
|
3
|
+
export interface ZeroOrMorePathValue<T> {
|
|
4
|
+
subPath: string | FindOperator<any, 'sequencePath' | 'inversePath'>;
|
|
5
|
+
value?: string | FindOperator<T, any>;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
9
|
+
export function ZeroOrMorePath<
|
|
10
|
+
T,
|
|
11
|
+
TI extends ZeroOrMorePathValue<T>
|
|
12
|
+
>(value: TI): FindOperator<TI, 'zeroOrMorePath'> {
|
|
13
|
+
return new FindOperator({
|
|
14
|
+
operator: 'zeroOrMorePath',
|
|
15
|
+
value
|
|
16
|
+
});
|
|
17
|
+
}
|