@comunica/actor-query-operation-update-deleteinsert 3.3.0 → 4.0.1
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/README.md +3 -3
- package/components/ActorQueryOperationUpdateDeleteInsert.jsonld +44 -12
- package/components/components.jsonld +1 -1
- package/components/context.jsonld +7 -1
- package/lib/ActorQueryOperationUpdateDeleteInsert.d.ts +2 -2
- package/lib/ActorQueryOperationUpdateDeleteInsert.js +9 -7
- package/lib/ActorQueryOperationUpdateDeleteInsert.js.map +1 -1
- package/package.json +16 -10
package/README.md
CHANGED
|
@@ -25,10 +25,10 @@ After installing, this package can be added to your engine's configuration as fo
|
|
|
25
25
|
{
|
|
26
26
|
"@context": [
|
|
27
27
|
...
|
|
28
|
-
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-query-operation-update-deleteinsert/^
|
|
28
|
+
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-query-operation-update-deleteinsert/^4.0.0/components/context.jsonld",
|
|
29
29
|
|
|
30
|
-
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/mediator-race/^
|
|
31
|
-
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-update-quads/^
|
|
30
|
+
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/mediator-race/^4.0.0/components/context.jsonld",
|
|
31
|
+
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-rdf-update-quads/^4.0.0/components/context.jsonld"
|
|
32
32
|
],
|
|
33
33
|
"actors": [
|
|
34
34
|
...
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"@context": [
|
|
3
|
-
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-query-operation-update-deleteinsert/^
|
|
4
|
-
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/core/^
|
|
5
|
-
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-query-operation/^
|
|
3
|
+
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-query-operation-update-deleteinsert/^4.0.0/components/context.jsonld",
|
|
4
|
+
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/core/^4.0.0/components/context.jsonld",
|
|
5
|
+
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-query-operation/^4.0.0/components/context.jsonld"
|
|
6
6
|
],
|
|
7
7
|
"@id": "npmd:@comunica/actor-query-operation-update-deleteinsert",
|
|
8
8
|
"components": [
|
|
@@ -55,29 +55,37 @@
|
|
|
55
55
|
"genericTypeInstances": [
|
|
56
56
|
{
|
|
57
57
|
"@type": "ParameterRangeGenericTypeReference",
|
|
58
|
-
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^
|
|
58
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^4.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_I"
|
|
59
59
|
},
|
|
60
60
|
{
|
|
61
61
|
"@type": "ParameterRangeGenericTypeReference",
|
|
62
|
-
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^
|
|
62
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^4.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_T"
|
|
63
63
|
},
|
|
64
64
|
{
|
|
65
65
|
"@type": "ParameterRangeGenericTypeReference",
|
|
66
|
-
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^
|
|
66
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^4.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_O"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"@type": "ParameterRangeGenericTypeReference",
|
|
70
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^4.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_TS"
|
|
67
71
|
}
|
|
68
72
|
]
|
|
69
73
|
},
|
|
70
74
|
{
|
|
71
75
|
"@type": "ParameterRangeGenericTypeReference",
|
|
72
|
-
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^
|
|
76
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^4.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_I"
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"@type": "ParameterRangeGenericTypeReference",
|
|
80
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^4.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_T"
|
|
73
81
|
},
|
|
74
82
|
{
|
|
75
83
|
"@type": "ParameterRangeGenericTypeReference",
|
|
76
|
-
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^
|
|
84
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^4.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_O"
|
|
77
85
|
},
|
|
78
86
|
{
|
|
79
87
|
"@type": "ParameterRangeGenericTypeReference",
|
|
80
|
-
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^
|
|
88
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^4.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_TS"
|
|
81
89
|
}
|
|
82
90
|
]
|
|
83
91
|
},
|
|
@@ -87,6 +95,20 @@
|
|
|
87
95
|
},
|
|
88
96
|
"comment": "The bus this actor subscribes to."
|
|
89
97
|
},
|
|
98
|
+
{
|
|
99
|
+
"@id": "caqoudi:components/ActorQueryOperationUpdateDeleteInsert.jsonld#ActorQueryOperationUpdateDeleteInsert_args_busFailMessage",
|
|
100
|
+
"range": {
|
|
101
|
+
"@type": "ParameterRangeUnion",
|
|
102
|
+
"parameterRangeElements": [
|
|
103
|
+
"xsd:string",
|
|
104
|
+
{
|
|
105
|
+
"@type": "ParameterRangeUndefined"
|
|
106
|
+
}
|
|
107
|
+
]
|
|
108
|
+
},
|
|
109
|
+
"default": "Query operation processing failed: none of the configured actors were able to handle the operation type ${action.operation.type}",
|
|
110
|
+
"comment": "The message that will be configured in the bus for reporting failures. This message may be a template string that contains references to the executed `action`. For example, the following templated string is allowed: \"RDF dereferencing failed: no actors could handle ${action.handle.mediaType}\""
|
|
111
|
+
},
|
|
90
112
|
{
|
|
91
113
|
"@id": "caqoudi:components/ActorQueryOperationUpdateDeleteInsert.jsonld#ActorQueryOperationUpdateDeleteInsert_args_beforeActors",
|
|
92
114
|
"range": {
|
|
@@ -100,15 +122,19 @@
|
|
|
100
122
|
"genericTypeInstances": [
|
|
101
123
|
{
|
|
102
124
|
"@type": "ParameterRangeGenericTypeReference",
|
|
103
|
-
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^
|
|
125
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^4.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_I"
|
|
104
126
|
},
|
|
105
127
|
{
|
|
106
128
|
"@type": "ParameterRangeGenericTypeReference",
|
|
107
|
-
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^
|
|
129
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^4.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_T"
|
|
108
130
|
},
|
|
109
131
|
{
|
|
110
132
|
"@type": "ParameterRangeGenericTypeReference",
|
|
111
|
-
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^
|
|
133
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^4.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_O"
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"@type": "ParameterRangeGenericTypeReference",
|
|
137
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^4.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_TS"
|
|
112
138
|
}
|
|
113
139
|
]
|
|
114
140
|
}
|
|
@@ -184,6 +210,12 @@
|
|
|
184
210
|
"@id": "caqoudi:components/ActorQueryOperationUpdateDeleteInsert.jsonld#ActorQueryOperationUpdateDeleteInsert_args_bus"
|
|
185
211
|
}
|
|
186
212
|
},
|
|
213
|
+
{
|
|
214
|
+
"keyRaw": "busFailMessage",
|
|
215
|
+
"value": {
|
|
216
|
+
"@id": "caqoudi:components/ActorQueryOperationUpdateDeleteInsert.jsonld#ActorQueryOperationUpdateDeleteInsert_args_busFailMessage"
|
|
217
|
+
}
|
|
218
|
+
},
|
|
187
219
|
{
|
|
188
220
|
"keyRaw": "beforeActors",
|
|
189
221
|
"value": {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"@context": [
|
|
3
|
-
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-query-operation-update-deleteinsert/^
|
|
3
|
+
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-query-operation-update-deleteinsert/^4.0.0/components/context.jsonld"
|
|
4
4
|
],
|
|
5
5
|
"@id": "npmd:@comunica/actor-query-operation-update-deleteinsert",
|
|
6
6
|
"@type": "Module",
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"https://linkedsoftwaredependencies.org/bundles/npm/componentsjs/^6.0.0/components/context.jsonld",
|
|
4
4
|
{
|
|
5
5
|
"npmd": "https://linkedsoftwaredependencies.org/bundles/npm/",
|
|
6
|
-
"caqoudi": "npmd:@comunica/actor-query-operation-update-deleteinsert/^
|
|
6
|
+
"caqoudi": "npmd:@comunica/actor-query-operation-update-deleteinsert/^4.0.0/",
|
|
7
7
|
"ActorQueryOperationUpdateDeleteInsert": {
|
|
8
8
|
"@id": "caqoudi:components/ActorQueryOperationUpdateDeleteInsert.jsonld#ActorQueryOperationUpdateDeleteInsert",
|
|
9
9
|
"@prefix": true,
|
|
@@ -23,6 +23,9 @@
|
|
|
23
23
|
"args_bus": {
|
|
24
24
|
"@id": "caqoudi:components/ActorQueryOperationUpdateDeleteInsert.jsonld#ActorQueryOperationUpdateDeleteInsert_args_bus"
|
|
25
25
|
},
|
|
26
|
+
"args_busFailMessage": {
|
|
27
|
+
"@id": "caqoudi:components/ActorQueryOperationUpdateDeleteInsert.jsonld#ActorQueryOperationUpdateDeleteInsert_args_busFailMessage"
|
|
28
|
+
},
|
|
26
29
|
"args_beforeActors": {
|
|
27
30
|
"@id": "caqoudi:components/ActorQueryOperationUpdateDeleteInsert.jsonld#ActorQueryOperationUpdateDeleteInsert_args_beforeActors",
|
|
28
31
|
"@container": "@list"
|
|
@@ -42,6 +45,9 @@
|
|
|
42
45
|
"bus": {
|
|
43
46
|
"@id": "caqoudi:components/ActorQueryOperationUpdateDeleteInsert.jsonld#ActorQueryOperationUpdateDeleteInsert_args_bus"
|
|
44
47
|
},
|
|
48
|
+
"busFailMessage": {
|
|
49
|
+
"@id": "caqoudi:components/ActorQueryOperationUpdateDeleteInsert.jsonld#ActorQueryOperationUpdateDeleteInsert_args_busFailMessage"
|
|
50
|
+
},
|
|
45
51
|
"beforeActors": {
|
|
46
52
|
"@id": "caqoudi:components/ActorQueryOperationUpdateDeleteInsert.jsonld#ActorQueryOperationUpdateDeleteInsert_args_beforeActors",
|
|
47
53
|
"@container": "@list"
|
|
@@ -2,7 +2,7 @@ import type { MediatorMergeBindingsContext } from '@comunica/bus-merge-bindings-
|
|
|
2
2
|
import type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';
|
|
3
3
|
import { ActorQueryOperationTypedMediated } from '@comunica/bus-query-operation';
|
|
4
4
|
import type { MediatorRdfUpdateQuads } from '@comunica/bus-rdf-update-quads';
|
|
5
|
-
import type { IActorTest } from '@comunica/core';
|
|
5
|
+
import type { IActorTest, TestResult } from '@comunica/core';
|
|
6
6
|
import type { IQueryOperationResult, IActionContext } from '@comunica/types';
|
|
7
7
|
import type { Algebra } from 'sparqlalgebrajs';
|
|
8
8
|
/**
|
|
@@ -13,7 +13,7 @@ export declare class ActorQueryOperationUpdateDeleteInsert extends ActorQueryOpe
|
|
|
13
13
|
readonly mediatorMergeBindingsContext: MediatorMergeBindingsContext;
|
|
14
14
|
protected blankNodeCounter: number;
|
|
15
15
|
constructor(args: IActorQueryOperationUpdateDeleteInsertArgs);
|
|
16
|
-
testOperation(operation: Algebra.DeleteInsert, context: IActionContext): Promise<IActorTest
|
|
16
|
+
testOperation(operation: Algebra.DeleteInsert, context: IActionContext): Promise<TestResult<IActorTest>>;
|
|
17
17
|
runOperation(operation: Algebra.DeleteInsert, context: IActionContext): Promise<IQueryOperationResult>;
|
|
18
18
|
}
|
|
19
19
|
export interface IActorQueryOperationUpdateDeleteInsertArgs extends IActorQueryOperationTypedMediatedArgs {
|
|
@@ -2,8 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ActorQueryOperationUpdateDeleteInsert = void 0;
|
|
4
4
|
const actor_query_operation_construct_1 = require("@comunica/actor-query-operation-construct");
|
|
5
|
-
const bindings_factory_1 = require("@comunica/bindings-factory");
|
|
6
5
|
const bus_query_operation_1 = require("@comunica/bus-query-operation");
|
|
6
|
+
const context_entries_1 = require("@comunica/context-entries");
|
|
7
|
+
const utils_bindings_factory_1 = require("@comunica/utils-bindings-factory");
|
|
8
|
+
const utils_query_operation_1 = require("@comunica/utils-query-operation");
|
|
7
9
|
const asynciterator_1 = require("asynciterator");
|
|
8
10
|
/**
|
|
9
11
|
* A comunica Update DeleteInsert Query Operation Actor.
|
|
@@ -14,14 +16,14 @@ class ActorQueryOperationUpdateDeleteInsert extends bus_query_operation_1.ActorQ
|
|
|
14
16
|
this.blankNodeCounter = 0;
|
|
15
17
|
}
|
|
16
18
|
async testOperation(operation, context) {
|
|
17
|
-
|
|
18
|
-
return true;
|
|
19
|
+
return (0, utils_query_operation_1.testReadOnly)(context);
|
|
19
20
|
}
|
|
20
21
|
async runOperation(operation, context) {
|
|
21
|
-
const
|
|
22
|
+
const dataFactory = context.getSafe(context_entries_1.KeysInitQuery.dataFactory);
|
|
23
|
+
const bindingsFactory = await utils_bindings_factory_1.BindingsFactory.create(this.mediatorMergeBindingsContext, context, dataFactory);
|
|
22
24
|
// Evaluate the where clause
|
|
23
25
|
const whereBindings = operation.where ?
|
|
24
|
-
|
|
26
|
+
(0, utils_query_operation_1.getSafeBindings)(await this.mediatorQueryOperation
|
|
25
27
|
.mediate({ operation: operation.where, context })).bindingsStream :
|
|
26
28
|
new asynciterator_1.ArrayIterator([bindingsFactory.bindings()], { autoStart: false });
|
|
27
29
|
// Construct triples using the result based on the pattern.
|
|
@@ -29,12 +31,12 @@ class ActorQueryOperationUpdateDeleteInsert extends bus_query_operation_1.ActorQ
|
|
|
29
31
|
let quadStreamDelete;
|
|
30
32
|
if (operation.insert) {
|
|
31
33
|
// Localize blank nodes in pattern, to avoid clashes across different INSERT/DELETE calls
|
|
32
|
-
quadStreamInsert = new actor_query_operation_construct_1.BindingsToQuadsIterator(operation.insert.map(actor_query_operation_construct_1.BindingsToQuadsIterator.localizeQuad.bind(null, this.blankNodeCounter)), whereBindings.clone());
|
|
34
|
+
quadStreamInsert = new actor_query_operation_construct_1.BindingsToQuadsIterator(dataFactory, operation.insert.map(actor_query_operation_construct_1.BindingsToQuadsIterator.localizeQuad.bind(null, dataFactory, this.blankNodeCounter)), whereBindings.clone());
|
|
33
35
|
this.blankNodeCounter++;
|
|
34
36
|
}
|
|
35
37
|
if (operation.delete) {
|
|
36
38
|
// Localize blank nodes in pattern, to avoid clashes across different INSERT/DELETE calls
|
|
37
|
-
quadStreamDelete = new actor_query_operation_construct_1.BindingsToQuadsIterator(operation.delete.map(actor_query_operation_construct_1.BindingsToQuadsIterator.localizeQuad.bind(null, this.blankNodeCounter)), whereBindings.clone());
|
|
39
|
+
quadStreamDelete = new actor_query_operation_construct_1.BindingsToQuadsIterator(dataFactory, operation.delete.map(actor_query_operation_construct_1.BindingsToQuadsIterator.localizeQuad.bind(null, dataFactory, this.blankNodeCounter)), whereBindings.clone());
|
|
38
40
|
this.blankNodeCounter++;
|
|
39
41
|
}
|
|
40
42
|
// Evaluate the required modifications
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActorQueryOperationUpdateDeleteInsert.js","sourceRoot":"","sources":["ActorQueryOperationUpdateDeleteInsert.ts"],"names":[],"mappings":";;;AAAA,+FAAoF;
|
|
1
|
+
{"version":3,"file":"ActorQueryOperationUpdateDeleteInsert.js","sourceRoot":"","sources":["ActorQueryOperationUpdateDeleteInsert.ts"],"names":[],"mappings":";;;AAAA,+FAAoF;AAGpF,uEAEuC;AAEvC,+DAA0D;AAG1D,6EAAmE;AACnE,2EAAgF;AAGhF,iDAA8C;AAG9C;;GAEG;AACH,MAAa,qCAAsC,SAAQ,sDAAsD;IAM/G,YAAmB,IAAgD;QACjE,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QAHpB,qBAAgB,GAAG,CAAC,CAAC;IAI/B,CAAC;IAEM,KAAK,CAAC,aAAa,CACxB,SAA+B,EAC/B,OAAuB;QAEvB,OAAO,IAAA,oCAAY,EAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,SAA+B,EAAE,OAAuB;QAEhF,MAAM,WAAW,GAAwB,OAAO,CAAC,OAAO,CAAC,+BAAa,CAAC,WAAW,CAAC,CAAC;QACpF,MAAM,eAAe,GAAG,MAAM,wCAAe,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,EAAE,OAAO,EAAE,WAAW,CAAC,CAAC;QAC9G,4BAA4B;QAC5B,MAAM,aAAa,GAAmB,SAAS,CAAC,KAAK,CAAC,CAAC;YACrD,IAAA,uCAAe,EAAC,MAAM,IAAI,CAAC,sBAAsB;iBAC9C,OAAO,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;YACrE,IAAI,6BAAa,CAAe,CAAE,eAAe,CAAC,QAAQ,EAAE,CAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QAExF,2DAA2D;QAC3D,IAAI,gBAAqD,CAAC;QAC1D,IAAI,gBAAqD,CAAC;QAC1D,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;YACrB,yFAAyF;YACzF,gBAAgB,GAAG,IAAI,yDAAuB,CAC5C,WAAW,EACX,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,yDAAuB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,EACzG,aAAa,CAAC,KAAK,EAAE,CACtB,CAAC;YACF,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;QACD,IAAI,SAAS,CAAC,MAAM,EAAE,CAAC;YACrB,yFAAyF;YACzF,gBAAgB,GAAG,IAAI,yDAAuB,CAC5C,WAAW,EACX,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,yDAAuB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,EACzG,aAAa,CAAC,KAAK,EAAE,CACtB,CAAC;YACF,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC;QAED,sCAAsC;QACtC,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC;YACzD,gBAAgB;YAChB,gBAAgB;YAChB,OAAO;SACR,CAAC,CAAC;QAEH,OAAO;YACL,IAAI,EAAE,MAAM;YACZ,OAAO;SACR,CAAC;IACJ,CAAC;CACF;AA7DD,sFA6DC","sourcesContent":["import { BindingsToQuadsIterator } from '@comunica/actor-query-operation-construct';\nimport type { MediatorMergeBindingsContext } from '@comunica/bus-merge-bindings-context';\nimport type { IActorQueryOperationTypedMediatedArgs } from '@comunica/bus-query-operation';\nimport {\n ActorQueryOperationTypedMediated,\n} from '@comunica/bus-query-operation';\nimport type { MediatorRdfUpdateQuads } from '@comunica/bus-rdf-update-quads';\nimport { KeysInitQuery } from '@comunica/context-entries';\nimport type { IActorTest, TestResult } from '@comunica/core';\nimport type { IQueryOperationResult, BindingsStream, IActionContext, ComunicaDataFactory } from '@comunica/types';\nimport { BindingsFactory } from '@comunica/utils-bindings-factory';\nimport { getSafeBindings, testReadOnly } from '@comunica/utils-query-operation';\nimport type * as RDF from '@rdfjs/types';\nimport type { AsyncIterator } from 'asynciterator';\nimport { ArrayIterator } from 'asynciterator';\nimport type { Algebra } from 'sparqlalgebrajs';\n\n/**\n * A comunica Update DeleteInsert Query Operation Actor.\n */\nexport class ActorQueryOperationUpdateDeleteInsert extends ActorQueryOperationTypedMediated<Algebra.DeleteInsert> {\n public readonly mediatorUpdateQuads: MediatorRdfUpdateQuads;\n public readonly mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n\n protected blankNodeCounter = 0;\n\n public constructor(args: IActorQueryOperationUpdateDeleteInsertArgs) {\n super(args, 'deleteinsert');\n }\n\n public async testOperation(\n operation: Algebra.DeleteInsert,\n context: IActionContext,\n ): Promise<TestResult<IActorTest>> {\n return testReadOnly(context);\n }\n\n public async runOperation(operation: Algebra.DeleteInsert, context: IActionContext):\n Promise<IQueryOperationResult> {\n const dataFactory: ComunicaDataFactory = context.getSafe(KeysInitQuery.dataFactory);\n const bindingsFactory = await BindingsFactory.create(this.mediatorMergeBindingsContext, context, dataFactory);\n // Evaluate the where clause\n const whereBindings: BindingsStream = operation.where ?\n getSafeBindings(await this.mediatorQueryOperation\n .mediate({ operation: operation.where, context })).bindingsStream :\n new ArrayIterator<RDF.Bindings>([ bindingsFactory.bindings() ], { autoStart: false });\n\n // Construct triples using the result based on the pattern.\n let quadStreamInsert: AsyncIterator<RDF.Quad> | undefined;\n let quadStreamDelete: AsyncIterator<RDF.Quad> | undefined;\n if (operation.insert) {\n // Localize blank nodes in pattern, to avoid clashes across different INSERT/DELETE calls\n quadStreamInsert = new BindingsToQuadsIterator(\n dataFactory,\n operation.insert.map(BindingsToQuadsIterator.localizeQuad.bind(null, dataFactory, this.blankNodeCounter)),\n whereBindings.clone(),\n );\n this.blankNodeCounter++;\n }\n if (operation.delete) {\n // Localize blank nodes in pattern, to avoid clashes across different INSERT/DELETE calls\n quadStreamDelete = new BindingsToQuadsIterator(\n dataFactory,\n operation.delete.map(BindingsToQuadsIterator.localizeQuad.bind(null, dataFactory, this.blankNodeCounter)),\n whereBindings.clone(),\n );\n this.blankNodeCounter++;\n }\n\n // Evaluate the required modifications\n const { execute } = await this.mediatorUpdateQuads.mediate({\n quadStreamInsert,\n quadStreamDelete,\n context,\n });\n\n return {\n type: 'void',\n execute,\n };\n }\n}\n\nexport interface IActorQueryOperationUpdateDeleteInsertArgs extends IActorQueryOperationTypedMediatedArgs {\n /**\n * The RDF Update Quads mediator\n */\n mediatorUpdateQuads: MediatorRdfUpdateQuads;\n /**\n * A mediator for creating binding context merge handlers\n */\n mediatorMergeBindingsContext: MediatorMergeBindingsContext;\n\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@comunica/actor-query-operation-update-deleteinsert",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.1",
|
|
4
4
|
"description": "A update-deleteinsert query-operation actor",
|
|
5
5
|
"lsd:module": true,
|
|
6
6
|
"license": "MIT",
|
|
7
|
+
"funding": {
|
|
8
|
+
"type": "opencollective",
|
|
9
|
+
"url": "https://opencollective.com/comunica-association"
|
|
10
|
+
},
|
|
7
11
|
"homepage": "https://github.com/comunica/comunica#readme",
|
|
8
12
|
"repository": "https://github.com/comunica/comunica/tree/master/packages/actor-query-operation-update-deleteinsert",
|
|
9
13
|
"bugs": {
|
|
@@ -33,16 +37,18 @@
|
|
|
33
37
|
"build:components": "componentsjs-generator"
|
|
34
38
|
},
|
|
35
39
|
"dependencies": {
|
|
36
|
-
"@comunica/actor-query-operation-construct": "^
|
|
37
|
-
"@comunica/bindings-
|
|
38
|
-
"@comunica/bus-
|
|
39
|
-
"@comunica/bus-
|
|
40
|
-
"@comunica/
|
|
41
|
-
"@comunica/core": "^
|
|
42
|
-
"@comunica/types": "^
|
|
40
|
+
"@comunica/actor-query-operation-construct": "^4.0.1",
|
|
41
|
+
"@comunica/bus-merge-bindings-context": "^4.0.1",
|
|
42
|
+
"@comunica/bus-query-operation": "^4.0.1",
|
|
43
|
+
"@comunica/bus-rdf-update-quads": "^4.0.1",
|
|
44
|
+
"@comunica/context-entries": "^4.0.1",
|
|
45
|
+
"@comunica/core": "^4.0.1",
|
|
46
|
+
"@comunica/types": "^4.0.1",
|
|
47
|
+
"@comunica/utils-bindings-factory": "^4.0.1",
|
|
48
|
+
"@comunica/utils-query-operation": "^4.0.1",
|
|
43
49
|
"@rdfjs/types": "*",
|
|
44
50
|
"asynciterator": "^3.9.0",
|
|
45
|
-
"sparqlalgebrajs": "^4.3.
|
|
51
|
+
"sparqlalgebrajs": "^4.3.8"
|
|
46
52
|
},
|
|
47
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "67831ba79e45ea1ced41fe3f83c5d6e8802dbeaa"
|
|
48
54
|
}
|