@comunica/actor-query-source-dereference-link-hypermedia 4.0.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.
- package/LICENSE.txt +22 -0
- package/README.md +48 -0
- package/components/ActorQuerySourceDereferenceLinkDereference.jsonld +294 -0
- package/components/ActorQuerySourceDereferenceLinkHypermedia.jsonld +286 -0
- package/components/ActorQuerySourceHypermediaResolveDereference.jsonld +294 -0
- package/components/QuerySourceCachePolicyDereferenceWrapper.jsonld +60 -0
- package/components/components.jsonld +12 -0
- package/components/context.jsonld +85 -0
- package/lib/ActorQuerySourceDereferenceLinkHypermedia.d.ts +43 -0
- package/lib/ActorQuerySourceDereferenceLinkHypermedia.js +98 -0
- package/lib/ActorQuerySourceDereferenceLinkHypermedia.js.map +1 -0
- package/lib/QuerySourceCachePolicyDereferenceWrapper.d.ts +13 -0
- package/lib/QuerySourceCachePolicyDereferenceWrapper.js +34 -0
- package/lib/QuerySourceCachePolicyDereferenceWrapper.js.map +1 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +19 -0
- package/lib/index.js.map +1 -0
- package/package.json +57 -0
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
{
|
|
2
|
+
"@context": [
|
|
3
|
+
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-query-source-dereference-link-hypermedia/^5.0.0/components/context.jsonld",
|
|
4
|
+
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/core/^5.0.0/components/context.jsonld",
|
|
5
|
+
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/bus-query-source-dereference-link/^5.0.0/components/context.jsonld"
|
|
6
|
+
],
|
|
7
|
+
"@id": "npmd:@comunica/actor-query-source-dereference-link-hypermedia",
|
|
8
|
+
"components": [
|
|
9
|
+
{
|
|
10
|
+
"@id": "caqshrd:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia",
|
|
11
|
+
"@type": "Class",
|
|
12
|
+
"requireElement": "ActorQuerySourceDereferenceLinkHypermedia",
|
|
13
|
+
"extends": [
|
|
14
|
+
"cbqshr:components/ActorQuerySourceDereferenceLink.jsonld#ActorQuerySourceDereferenceLink"
|
|
15
|
+
],
|
|
16
|
+
"comment": "A comunica Dereference Query Source Hypermedia Resolve Actor.",
|
|
17
|
+
"parameters": [
|
|
18
|
+
{
|
|
19
|
+
"@id": "caqshrd:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_mediatorDereferenceRdf",
|
|
20
|
+
"range": "cc:components/Mediator.jsonld#Mediator",
|
|
21
|
+
"comment": "The RDF dereference mediator"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"@id": "caqshrd:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_mediatorMetadata",
|
|
25
|
+
"range": "cc:components/Mediator.jsonld#Mediator",
|
|
26
|
+
"comment": "The metadata mediator"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"@id": "caqshrd:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_mediatorMetadataExtract",
|
|
30
|
+
"range": "cc:components/Mediator.jsonld#Mediator",
|
|
31
|
+
"comment": "The metadata extract mediator"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"@id": "caqshrd:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_mediatorMetadataAccumulate",
|
|
35
|
+
"range": {
|
|
36
|
+
"@type": "ParameterRangeUnion",
|
|
37
|
+
"parameterRangeElements": [
|
|
38
|
+
"cc:components/Mediator.jsonld#Mediator",
|
|
39
|
+
{
|
|
40
|
+
"@type": "ParameterRangeUndefined"
|
|
41
|
+
}
|
|
42
|
+
]
|
|
43
|
+
},
|
|
44
|
+
"comment": "The metadata accumulate mediator"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"@id": "caqshrd:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_mediatorQuerySourceIdentifyHypermedia",
|
|
48
|
+
"range": "cc:components/Mediator.jsonld#Mediator",
|
|
49
|
+
"comment": "The hypermedia resolve mediator"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"@id": "caqshrd:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_name",
|
|
53
|
+
"range": "xsd:string",
|
|
54
|
+
"default": {
|
|
55
|
+
"@id": "rdf:subject"
|
|
56
|
+
},
|
|
57
|
+
"comment": "The name for this actor."
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"@id": "caqshrd:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_bus",
|
|
61
|
+
"range": {
|
|
62
|
+
"@type": "ParameterRangeGenericComponent",
|
|
63
|
+
"component": "cc:components/Bus.jsonld#Bus",
|
|
64
|
+
"genericTypeInstances": [
|
|
65
|
+
{
|
|
66
|
+
"@type": "ParameterRangeGenericComponent",
|
|
67
|
+
"component": "cc:components/Actor.jsonld#Actor",
|
|
68
|
+
"genericTypeInstances": [
|
|
69
|
+
{
|
|
70
|
+
"@type": "ParameterRangeGenericTypeReference",
|
|
71
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^5.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_I"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"@type": "ParameterRangeGenericTypeReference",
|
|
75
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^5.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_T"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"@type": "ParameterRangeGenericTypeReference",
|
|
79
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^5.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_O"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"@type": "ParameterRangeGenericTypeReference",
|
|
83
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^5.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_TS"
|
|
84
|
+
}
|
|
85
|
+
]
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"@type": "ParameterRangeGenericTypeReference",
|
|
89
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^5.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_I"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"@type": "ParameterRangeGenericTypeReference",
|
|
93
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^5.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_T"
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"@type": "ParameterRangeGenericTypeReference",
|
|
97
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^5.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_O"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"@type": "ParameterRangeGenericTypeReference",
|
|
101
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^5.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_TS"
|
|
102
|
+
}
|
|
103
|
+
]
|
|
104
|
+
},
|
|
105
|
+
"default": {
|
|
106
|
+
"@id": "cbqshr:components/ActorQuerySourceDereferenceLink.jsonld#ActorQuerySourceDereferenceLink_default_bus",
|
|
107
|
+
"@type": "cc:components/Bus.jsonld#Bus"
|
|
108
|
+
},
|
|
109
|
+
"comment": "The bus this actor subscribes to."
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"@id": "caqshrd:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_busFailMessage",
|
|
113
|
+
"range": {
|
|
114
|
+
"@type": "ParameterRangeUnion",
|
|
115
|
+
"parameterRangeElements": [
|
|
116
|
+
"xsd:string",
|
|
117
|
+
{
|
|
118
|
+
"@type": "ParameterRangeUndefined"
|
|
119
|
+
}
|
|
120
|
+
]
|
|
121
|
+
},
|
|
122
|
+
"default": "Query source hypermedia resolution failed: none of the configured actors were able to resolve ${action.url}",
|
|
123
|
+
"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}\""
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"@id": "caqshrd:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_beforeActors",
|
|
127
|
+
"range": {
|
|
128
|
+
"@type": "ParameterRangeUnion",
|
|
129
|
+
"parameterRangeElements": [
|
|
130
|
+
{
|
|
131
|
+
"@type": "ParameterRangeArray",
|
|
132
|
+
"parameterRangeValue": {
|
|
133
|
+
"@type": "ParameterRangeGenericComponent",
|
|
134
|
+
"component": "cc:components/Actor.jsonld#Actor",
|
|
135
|
+
"genericTypeInstances": [
|
|
136
|
+
{
|
|
137
|
+
"@type": "ParameterRangeGenericTypeReference",
|
|
138
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^5.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_I"
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"@type": "ParameterRangeGenericTypeReference",
|
|
142
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^5.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_T"
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"@type": "ParameterRangeGenericTypeReference",
|
|
146
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^5.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_O"
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"@type": "ParameterRangeGenericTypeReference",
|
|
150
|
+
"parameterRangeGenericType": "npmd:@comunica/actor-abstract-mediatyped/^5.0.0/components/ActorAbstractMediaTyped.jsonld#ActorAbstractMediaTyped__generic_TS"
|
|
151
|
+
}
|
|
152
|
+
]
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"@type": "ParameterRangeUndefined"
|
|
157
|
+
}
|
|
158
|
+
]
|
|
159
|
+
},
|
|
160
|
+
"comment": "Actor that must be registered in the bus before this actor."
|
|
161
|
+
}
|
|
162
|
+
],
|
|
163
|
+
"memberFields": [
|
|
164
|
+
{
|
|
165
|
+
"@id": "caqshrd:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia__member_mediatorDereferenceRdf",
|
|
166
|
+
"memberFieldName": "mediatorDereferenceRdf",
|
|
167
|
+
"range": "cc:components/Mediator.jsonld#Mediator"
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"@id": "caqshrd:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia__member_mediatorMetadata",
|
|
171
|
+
"memberFieldName": "mediatorMetadata",
|
|
172
|
+
"range": "cc:components/Mediator.jsonld#Mediator"
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"@id": "caqshrd:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia__member_mediatorMetadataExtract",
|
|
176
|
+
"memberFieldName": "mediatorMetadataExtract",
|
|
177
|
+
"range": "cc:components/Mediator.jsonld#Mediator"
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
"@id": "caqshrd:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia__member_mediatorMetadataAccumulate",
|
|
181
|
+
"memberFieldName": "mediatorMetadataAccumulate",
|
|
182
|
+
"range": "cc:components/Mediator.jsonld#Mediator"
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"@id": "caqshrd:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia__member_mediatorQuerySourceIdentifyHypermedia",
|
|
186
|
+
"memberFieldName": "mediatorQuerySourceIdentifyHypermedia",
|
|
187
|
+
"range": "cc:components/Mediator.jsonld#Mediator"
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
"@id": "caqshrd:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia__member_constructor",
|
|
191
|
+
"memberFieldName": "constructor"
|
|
192
|
+
},
|
|
193
|
+
{
|
|
194
|
+
"@id": "caqshrd:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia__member_test",
|
|
195
|
+
"memberFieldName": "test"
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
"@id": "caqshrd:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia__member_run",
|
|
199
|
+
"memberFieldName": "run"
|
|
200
|
+
}
|
|
201
|
+
],
|
|
202
|
+
"constructorArguments": [
|
|
203
|
+
{
|
|
204
|
+
"@id": "caqshrd:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args__constructorArgument",
|
|
205
|
+
"fields": [
|
|
206
|
+
{
|
|
207
|
+
"keyRaw": "mediatorDereferenceRdf",
|
|
208
|
+
"value": {
|
|
209
|
+
"@id": "caqshrd:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_mediatorDereferenceRdf"
|
|
210
|
+
}
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
"keyRaw": "mediatorMetadata",
|
|
214
|
+
"value": {
|
|
215
|
+
"@id": "caqshrd:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_mediatorMetadata"
|
|
216
|
+
}
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
"keyRaw": "mediatorMetadataExtract",
|
|
220
|
+
"value": {
|
|
221
|
+
"@id": "caqshrd:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_mediatorMetadataExtract"
|
|
222
|
+
}
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
"keyRaw": "mediatorMetadataAccumulate",
|
|
226
|
+
"value": {
|
|
227
|
+
"@id": "caqshrd:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_mediatorMetadataAccumulate"
|
|
228
|
+
}
|
|
229
|
+
},
|
|
230
|
+
{
|
|
231
|
+
"keyRaw": "mediatorQuerySourceIdentifyHypermedia",
|
|
232
|
+
"value": {
|
|
233
|
+
"@id": "caqshrd:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_mediatorQuerySourceIdentifyHypermedia"
|
|
234
|
+
}
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
"keyRaw": "name",
|
|
238
|
+
"value": {
|
|
239
|
+
"@id": "caqshrd:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_name"
|
|
240
|
+
}
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
"keyRaw": "bus",
|
|
244
|
+
"value": {
|
|
245
|
+
"@id": "caqshrd:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_bus"
|
|
246
|
+
}
|
|
247
|
+
},
|
|
248
|
+
{
|
|
249
|
+
"keyRaw": "busFailMessage",
|
|
250
|
+
"value": {
|
|
251
|
+
"@id": "caqshrd:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_busFailMessage"
|
|
252
|
+
}
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
"keyRaw": "beforeActors",
|
|
256
|
+
"value": {
|
|
257
|
+
"@id": "caqshrd:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_beforeActors"
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
]
|
|
261
|
+
}
|
|
262
|
+
]
|
|
263
|
+
},
|
|
264
|
+
{
|
|
265
|
+
"@id": "caqshrd:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#IActorQuerySourceDereferenceLinkHypermediaArgs",
|
|
266
|
+
"@type": "AbstractClass",
|
|
267
|
+
"requireElement": "IActorQuerySourceDereferenceLinkHypermediaArgs",
|
|
268
|
+
"parameters": [],
|
|
269
|
+
"memberFields": [
|
|
270
|
+
{
|
|
271
|
+
"@id": "caqshrd:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#IActorQuerySourceDereferenceLinkHypermediaArgs__member_mediatorDereferenceRdf",
|
|
272
|
+
"memberFieldName": "mediatorDereferenceRdf"
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
"@id": "caqshrd:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#IActorQuerySourceDereferenceLinkHypermediaArgs__member_mediatorMetadata",
|
|
276
|
+
"memberFieldName": "mediatorMetadata"
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
"@id": "caqshrd:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#IActorQuerySourceDereferenceLinkHypermediaArgs__member_mediatorMetadataExtract",
|
|
280
|
+
"memberFieldName": "mediatorMetadataExtract"
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
"@id": "caqshrd:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#IActorQuerySourceDereferenceLinkHypermediaArgs__member_mediatorMetadataAccumulate",
|
|
284
|
+
"memberFieldName": "mediatorMetadataAccumulate"
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
"@id": "caqshrd:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#IActorQuerySourceDereferenceLinkHypermediaArgs__member_mediatorQuerySourceIdentifyHypermedia",
|
|
288
|
+
"memberFieldName": "mediatorQuerySourceIdentifyHypermedia"
|
|
289
|
+
}
|
|
290
|
+
],
|
|
291
|
+
"constructorArguments": []
|
|
292
|
+
}
|
|
293
|
+
]
|
|
294
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
{
|
|
2
|
+
"@context": [
|
|
3
|
+
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-query-source-dereference-link-hypermedia/^5.0.0/components/context.jsonld"
|
|
4
|
+
],
|
|
5
|
+
"@id": "npmd:@comunica/actor-query-source-dereference-link-hypermedia",
|
|
6
|
+
"components": [
|
|
7
|
+
{
|
|
8
|
+
"@id": "caqsdlh:components/QuerySourceCachePolicyDereferenceWrapper.jsonld#QuerySourceCachePolicyDereferenceWrapper",
|
|
9
|
+
"@type": "Class",
|
|
10
|
+
"requireElement": "QuerySourceCachePolicyDereferenceWrapper",
|
|
11
|
+
"parameters": [
|
|
12
|
+
{
|
|
13
|
+
"@id": "caqsdlh:components/QuerySourceCachePolicyDereferenceWrapper.jsonld#QuerySourceCachePolicyDereferenceWrapper_cachePolicy",
|
|
14
|
+
"range": {
|
|
15
|
+
"@type": "ParameterRangeWildcard"
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
"memberFields": [
|
|
20
|
+
{
|
|
21
|
+
"@id": "caqsdlh:components/QuerySourceCachePolicyDereferenceWrapper.jsonld#QuerySourceCachePolicyDereferenceWrapper__member_cachePolicy",
|
|
22
|
+
"memberFieldName": "cachePolicy"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"@id": "caqsdlh:components/QuerySourceCachePolicyDereferenceWrapper.jsonld#QuerySourceCachePolicyDereferenceWrapper__member_constructor",
|
|
26
|
+
"memberFieldName": "constructor"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"@id": "caqsdlh:components/QuerySourceCachePolicyDereferenceWrapper.jsonld#QuerySourceCachePolicyDereferenceWrapper__member_storable",
|
|
30
|
+
"memberFieldName": "storable"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"@id": "caqsdlh:components/QuerySourceCachePolicyDereferenceWrapper.jsonld#QuerySourceCachePolicyDereferenceWrapper__member_satisfiesWithoutRevalidation",
|
|
34
|
+
"memberFieldName": "satisfiesWithoutRevalidation"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"@id": "caqsdlh:components/QuerySourceCachePolicyDereferenceWrapper.jsonld#QuerySourceCachePolicyDereferenceWrapper__member_responseHeaders",
|
|
38
|
+
"memberFieldName": "responseHeaders"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"@id": "caqsdlh:components/QuerySourceCachePolicyDereferenceWrapper.jsonld#QuerySourceCachePolicyDereferenceWrapper__member_timeToLive",
|
|
42
|
+
"memberFieldName": "timeToLive"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"@id": "caqsdlh:components/QuerySourceCachePolicyDereferenceWrapper.jsonld#QuerySourceCachePolicyDereferenceWrapper__member_revalidationHeaders",
|
|
46
|
+
"memberFieldName": "revalidationHeaders"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"@id": "caqsdlh:components/QuerySourceCachePolicyDereferenceWrapper.jsonld#QuerySourceCachePolicyDereferenceWrapper__member_revalidatedPolicy",
|
|
50
|
+
"memberFieldName": "revalidatedPolicy"
|
|
51
|
+
}
|
|
52
|
+
],
|
|
53
|
+
"constructorArguments": [
|
|
54
|
+
{
|
|
55
|
+
"@id": "caqsdlh:components/QuerySourceCachePolicyDereferenceWrapper.jsonld#QuerySourceCachePolicyDereferenceWrapper_cachePolicy"
|
|
56
|
+
}
|
|
57
|
+
]
|
|
58
|
+
}
|
|
59
|
+
]
|
|
60
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"@context": [
|
|
3
|
+
"https://linkedsoftwaredependencies.org/bundles/npm/@comunica/actor-query-source-dereference-link-hypermedia/^5.0.0/components/context.jsonld"
|
|
4
|
+
],
|
|
5
|
+
"@id": "npmd:@comunica/actor-query-source-dereference-link-hypermedia",
|
|
6
|
+
"@type": "Module",
|
|
7
|
+
"requireName": "@comunica/actor-query-source-dereference-link-hypermedia",
|
|
8
|
+
"import": [
|
|
9
|
+
"caqsdlh:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld",
|
|
10
|
+
"caqsdlh:components/QuerySourceCachePolicyDereferenceWrapper.jsonld"
|
|
11
|
+
]
|
|
12
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
{
|
|
2
|
+
"@context": [
|
|
3
|
+
"https://linkedsoftwaredependencies.org/bundles/npm/componentsjs/^6.0.0/components/context.jsonld",
|
|
4
|
+
{
|
|
5
|
+
"npmd": "https://linkedsoftwaredependencies.org/bundles/npm/",
|
|
6
|
+
"caqsdlh": "npmd:@comunica/actor-query-source-dereference-link-hypermedia/^5.0.0/",
|
|
7
|
+
"ActorQuerySourceDereferenceLinkHypermedia": {
|
|
8
|
+
"@id": "caqsdlh:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia",
|
|
9
|
+
"@prefix": true,
|
|
10
|
+
"@context": {
|
|
11
|
+
"args_mediatorDereferenceRdf": {
|
|
12
|
+
"@id": "caqsdlh:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_mediatorDereferenceRdf"
|
|
13
|
+
},
|
|
14
|
+
"args_mediatorMetadata": {
|
|
15
|
+
"@id": "caqsdlh:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_mediatorMetadata"
|
|
16
|
+
},
|
|
17
|
+
"args_mediatorMetadataExtract": {
|
|
18
|
+
"@id": "caqsdlh:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_mediatorMetadataExtract"
|
|
19
|
+
},
|
|
20
|
+
"args_mediatorMetadataAccumulate": {
|
|
21
|
+
"@id": "caqsdlh:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_mediatorMetadataAccumulate"
|
|
22
|
+
},
|
|
23
|
+
"args_mediatorQuerySourceIdentifyHypermedia": {
|
|
24
|
+
"@id": "caqsdlh:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_mediatorQuerySourceIdentifyHypermedia"
|
|
25
|
+
},
|
|
26
|
+
"args_name": {
|
|
27
|
+
"@id": "caqsdlh:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_name"
|
|
28
|
+
},
|
|
29
|
+
"args_bus": {
|
|
30
|
+
"@id": "caqsdlh:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_bus"
|
|
31
|
+
},
|
|
32
|
+
"args_busFailMessage": {
|
|
33
|
+
"@id": "caqsdlh:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_busFailMessage"
|
|
34
|
+
},
|
|
35
|
+
"args_beforeActors": {
|
|
36
|
+
"@id": "caqsdlh:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_beforeActors",
|
|
37
|
+
"@container": "@list"
|
|
38
|
+
},
|
|
39
|
+
"mediatorDereferenceRdf": {
|
|
40
|
+
"@id": "caqsdlh:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_mediatorDereferenceRdf"
|
|
41
|
+
},
|
|
42
|
+
"mediatorMetadata": {
|
|
43
|
+
"@id": "caqsdlh:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_mediatorMetadata"
|
|
44
|
+
},
|
|
45
|
+
"mediatorMetadataExtract": {
|
|
46
|
+
"@id": "caqsdlh:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_mediatorMetadataExtract"
|
|
47
|
+
},
|
|
48
|
+
"mediatorMetadataAccumulate": {
|
|
49
|
+
"@id": "caqsdlh:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_mediatorMetadataAccumulate"
|
|
50
|
+
},
|
|
51
|
+
"mediatorQuerySourceIdentifyHypermedia": {
|
|
52
|
+
"@id": "caqsdlh:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_mediatorQuerySourceIdentifyHypermedia"
|
|
53
|
+
},
|
|
54
|
+
"name": {
|
|
55
|
+
"@id": "caqsdlh:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_name"
|
|
56
|
+
},
|
|
57
|
+
"bus": {
|
|
58
|
+
"@id": "caqsdlh:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_bus"
|
|
59
|
+
},
|
|
60
|
+
"busFailMessage": {
|
|
61
|
+
"@id": "caqsdlh:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_busFailMessage"
|
|
62
|
+
},
|
|
63
|
+
"beforeActors": {
|
|
64
|
+
"@id": "caqsdlh:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#ActorQuerySourceDereferenceLinkHypermedia_args_beforeActors",
|
|
65
|
+
"@container": "@list"
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
"IActorQuerySourceDereferenceLinkHypermediaArgs": {
|
|
70
|
+
"@id": "caqsdlh:components/ActorQuerySourceDereferenceLinkHypermedia.jsonld#IActorQuerySourceDereferenceLinkHypermediaArgs",
|
|
71
|
+
"@prefix": true,
|
|
72
|
+
"@context": {}
|
|
73
|
+
},
|
|
74
|
+
"QuerySourceCachePolicyDereferenceWrapper": {
|
|
75
|
+
"@id": "caqsdlh:components/QuerySourceCachePolicyDereferenceWrapper.jsonld#QuerySourceCachePolicyDereferenceWrapper",
|
|
76
|
+
"@prefix": true,
|
|
77
|
+
"@context": {
|
|
78
|
+
"cachePolicy": {
|
|
79
|
+
"@id": "caqsdlh:components/QuerySourceCachePolicyDereferenceWrapper.jsonld#QuerySourceCachePolicyDereferenceWrapper_cachePolicy"
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
]
|
|
85
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { MediatorDereferenceRdf } from '@comunica/bus-dereference-rdf';
|
|
2
|
+
import { ActorQuerySourceDereferenceLink } from '@comunica/bus-query-source-dereference-link';
|
|
3
|
+
import type { IActionQuerySourceDereferenceLink, IActorQuerySourceDereferenceLinkOutput, IActorQuerySourceDereferenceLinkArgs } from '@comunica/bus-query-source-dereference-link';
|
|
4
|
+
import type { MediatorQuerySourceIdentifyHypermedia } from '@comunica/bus-query-source-identify-hypermedia';
|
|
5
|
+
import type { MediatorRdfMetadata } from '@comunica/bus-rdf-metadata';
|
|
6
|
+
import type { MediatorRdfMetadataAccumulate } from '@comunica/bus-rdf-metadata-accumulate';
|
|
7
|
+
import type { MediatorRdfMetadataExtract } from '@comunica/bus-rdf-metadata-extract';
|
|
8
|
+
import type { TestResult, IActorTest } from '@comunica/core';
|
|
9
|
+
/**
|
|
10
|
+
* A comunica Dereference Query Source Hypermedia Resolve Actor.
|
|
11
|
+
*/
|
|
12
|
+
export declare class ActorQuerySourceDereferenceLinkHypermedia extends ActorQuerySourceDereferenceLink {
|
|
13
|
+
readonly mediatorDereferenceRdf: MediatorDereferenceRdf;
|
|
14
|
+
readonly mediatorMetadata: MediatorRdfMetadata;
|
|
15
|
+
readonly mediatorMetadataExtract: MediatorRdfMetadataExtract;
|
|
16
|
+
readonly mediatorMetadataAccumulate: MediatorRdfMetadataAccumulate;
|
|
17
|
+
readonly mediatorQuerySourceIdentifyHypermedia: MediatorQuerySourceIdentifyHypermedia;
|
|
18
|
+
constructor(args: IActorQuerySourceDereferenceLinkHypermediaArgs);
|
|
19
|
+
test(_action: IActionQuerySourceDereferenceLink): Promise<TestResult<IActorTest>>;
|
|
20
|
+
run(action: IActionQuerySourceDereferenceLink): Promise<IActorQuerySourceDereferenceLinkOutput>;
|
|
21
|
+
}
|
|
22
|
+
export interface IActorQuerySourceDereferenceLinkHypermediaArgs extends IActorQuerySourceDereferenceLinkArgs {
|
|
23
|
+
/**
|
|
24
|
+
* The RDF dereference mediator
|
|
25
|
+
*/
|
|
26
|
+
mediatorDereferenceRdf: MediatorDereferenceRdf;
|
|
27
|
+
/**
|
|
28
|
+
* The metadata mediator
|
|
29
|
+
*/
|
|
30
|
+
mediatorMetadata: MediatorRdfMetadata;
|
|
31
|
+
/**
|
|
32
|
+
* The metadata extract mediator
|
|
33
|
+
*/
|
|
34
|
+
mediatorMetadataExtract: MediatorRdfMetadataExtract;
|
|
35
|
+
/**
|
|
36
|
+
* The metadata accumulate mediator
|
|
37
|
+
*/
|
|
38
|
+
mediatorMetadataAccumulate: MediatorRdfMetadataAccumulate;
|
|
39
|
+
/**
|
|
40
|
+
* The hypermedia resolve mediator
|
|
41
|
+
*/
|
|
42
|
+
mediatorQuerySourceIdentifyHypermedia: MediatorQuerySourceIdentifyHypermedia;
|
|
43
|
+
}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ActorQuerySourceDereferenceLinkHypermedia = void 0;
|
|
4
|
+
const bus_query_source_dereference_link_1 = require("@comunica/bus-query-source-dereference-link");
|
|
5
|
+
const context_entries_1 = require("@comunica/context-entries");
|
|
6
|
+
const core_1 = require("@comunica/core");
|
|
7
|
+
const readable_stream_1 = require("readable-stream");
|
|
8
|
+
const QuerySourceCachePolicyDereferenceWrapper_1 = require("./QuerySourceCachePolicyDereferenceWrapper");
|
|
9
|
+
/**
|
|
10
|
+
* A comunica Dereference Query Source Hypermedia Resolve Actor.
|
|
11
|
+
*/
|
|
12
|
+
class ActorQuerySourceDereferenceLinkHypermedia extends bus_query_source_dereference_link_1.ActorQuerySourceDereferenceLink {
|
|
13
|
+
mediatorDereferenceRdf;
|
|
14
|
+
mediatorMetadata;
|
|
15
|
+
mediatorMetadataExtract;
|
|
16
|
+
mediatorMetadataAccumulate;
|
|
17
|
+
mediatorQuerySourceIdentifyHypermedia;
|
|
18
|
+
constructor(args) {
|
|
19
|
+
super(args);
|
|
20
|
+
this.mediatorDereferenceRdf = args.mediatorDereferenceRdf;
|
|
21
|
+
this.mediatorMetadata = args.mediatorMetadata;
|
|
22
|
+
this.mediatorMetadataExtract = args.mediatorMetadataExtract;
|
|
23
|
+
this.mediatorMetadataAccumulate = args.mediatorMetadataAccumulate;
|
|
24
|
+
this.mediatorQuerySourceIdentifyHypermedia = args.mediatorQuerySourceIdentifyHypermedia;
|
|
25
|
+
}
|
|
26
|
+
async test(_action) {
|
|
27
|
+
return (0, core_1.passTestVoid)();
|
|
28
|
+
}
|
|
29
|
+
async run(action) {
|
|
30
|
+
const context = action.link.context ? action.context.merge(action.link.context) : action.context;
|
|
31
|
+
let url = action.link.url;
|
|
32
|
+
let quads;
|
|
33
|
+
let metadata;
|
|
34
|
+
let cachePolicy;
|
|
35
|
+
try {
|
|
36
|
+
const dereferenceRdfOutput = await this.mediatorDereferenceRdf
|
|
37
|
+
.mediate({ context, url });
|
|
38
|
+
url = dereferenceRdfOutput.url;
|
|
39
|
+
if (dereferenceRdfOutput.cachePolicy) {
|
|
40
|
+
cachePolicy = new QuerySourceCachePolicyDereferenceWrapper_1.QuerySourceCachePolicyDereferenceWrapper(dereferenceRdfOutput.cachePolicy);
|
|
41
|
+
}
|
|
42
|
+
// Determine the metadata
|
|
43
|
+
const rdfMetadataOutput = await this.mediatorMetadata.mediate({ context, url, quads: dereferenceRdfOutput.data, triples: dereferenceRdfOutput.metadata?.triples });
|
|
44
|
+
rdfMetadataOutput.data.on('error', () => {
|
|
45
|
+
// Silence errors in the data stream,
|
|
46
|
+
// as they will be emitted again in the metadata stream,
|
|
47
|
+
// and will result in a promise rejection anyways.
|
|
48
|
+
// If we don't do this, we end up with an unhandled error message
|
|
49
|
+
});
|
|
50
|
+
metadata = (await this.mediatorMetadataExtract.mediate({
|
|
51
|
+
context,
|
|
52
|
+
url,
|
|
53
|
+
// The problem appears to be conflicting metadata keys here
|
|
54
|
+
metadata: rdfMetadataOutput.metadata,
|
|
55
|
+
headers: dereferenceRdfOutput.headers,
|
|
56
|
+
requestTime: dereferenceRdfOutput.requestTime,
|
|
57
|
+
})).metadata;
|
|
58
|
+
quads = rdfMetadataOutput.data;
|
|
59
|
+
// Transform quads if needed.
|
|
60
|
+
if (action.link.transform) {
|
|
61
|
+
quads = await action.link.transform(quads);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
// Make sure that dereference errors are only emitted once an actor really needs the read quads
|
|
66
|
+
// This allows SPARQL endpoints that error on service description fetching to still be source-forcible
|
|
67
|
+
quads = new readable_stream_1.Readable();
|
|
68
|
+
quads.read = () => {
|
|
69
|
+
setTimeout(() => quads.emit('error', error));
|
|
70
|
+
return null;
|
|
71
|
+
};
|
|
72
|
+
({ metadata } = await this.mediatorMetadataAccumulate.mediate({ context, mode: 'initialize' }));
|
|
73
|
+
// Log as warning, because the quads above may not always be consumed (e.g. for SPARQL endpoints),
|
|
74
|
+
// so the user would not be notified of something going wrong otherwise.
|
|
75
|
+
this.logWarn(context, `Metadata extraction for ${action.link.url} failed: ${error.message}`);
|
|
76
|
+
}
|
|
77
|
+
// Determine the source
|
|
78
|
+
const { source, dataset } = await this.mediatorQuerySourceIdentifyHypermedia.mediate({
|
|
79
|
+
context,
|
|
80
|
+
forceSourceType: action.link.forceSourceType,
|
|
81
|
+
handledDatasets: action.handledDatasets,
|
|
82
|
+
metadata,
|
|
83
|
+
quads,
|
|
84
|
+
url,
|
|
85
|
+
});
|
|
86
|
+
if (dataset && action.handledDatasets) {
|
|
87
|
+
// Mark the dataset as applied
|
|
88
|
+
// This is needed to make sure that things like QPF search forms are only applied once,
|
|
89
|
+
// and next page links are followed after that.
|
|
90
|
+
action.handledDatasets[dataset] = true;
|
|
91
|
+
}
|
|
92
|
+
// Track dereference event
|
|
93
|
+
context.get(context_entries_1.KeysStatistics.dereferencedLinks)?.updateStatistic({ url: action.link.url, metadata }, source);
|
|
94
|
+
return { source, metadata: metadata, dataset, cachePolicy };
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
exports.ActorQuerySourceDereferenceLinkHypermedia = ActorQuerySourceDereferenceLinkHypermedia;
|
|
98
|
+
//# sourceMappingURL=ActorQuerySourceDereferenceLinkHypermedia.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ActorQuerySourceDereferenceLinkHypermedia.js","sourceRoot":"","sources":["ActorQuerySourceDereferenceLinkHypermedia.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IActorDereferenceRdfOutput, MediatorDereferenceRdf } from '@comunica/bus-dereference-rdf';\nimport {\n ActorQuerySourceDereferenceLink,\n} from '@comunica/bus-query-source-dereference-link';\nimport type {\n IActionQuerySourceDereferenceLink,\n IActorQuerySourceDereferenceLinkOutput,\n IActorQuerySourceDereferenceLinkArgs,\n} from '@comunica/bus-query-source-dereference-link';\nimport type { MediatorQuerySourceIdentifyHypermedia } from '@comunica/bus-query-source-identify-hypermedia';\nimport type { IActorRdfMetadataOutput, MediatorRdfMetadata } from '@comunica/bus-rdf-metadata';\nimport type { MediatorRdfMetadataAccumulate } from '@comunica/bus-rdf-metadata-accumulate';\nimport type { MediatorRdfMetadataExtract } from '@comunica/bus-rdf-metadata-extract';\nimport { KeysStatistics } from '@comunica/context-entries';\nimport type { TestResult, IActorTest } from '@comunica/core';\nimport { passTestVoid } from '@comunica/core';\nimport type { ICachePolicy, MetadataBindings } from '@comunica/types';\nimport type * as RDF from '@rdfjs/types';\nimport { Readable } from 'readable-stream';\nimport { QuerySourceCachePolicyDereferenceWrapper } from './QuerySourceCachePolicyDereferenceWrapper';\n\n/**\n * A comunica Dereference Query Source Hypermedia Resolve Actor.\n */\nexport class ActorQuerySourceDereferenceLinkHypermedia extends ActorQuerySourceDereferenceLink {\n public readonly mediatorDereferenceRdf: MediatorDereferenceRdf;\n public readonly mediatorMetadata: MediatorRdfMetadata;\n public readonly mediatorMetadataExtract: MediatorRdfMetadataExtract;\n public readonly mediatorMetadataAccumulate: MediatorRdfMetadataAccumulate;\n public readonly mediatorQuerySourceIdentifyHypermedia: MediatorQuerySourceIdentifyHypermedia;\n\n public constructor(args: IActorQuerySourceDereferenceLinkHypermediaArgs) {\n super(args);\n this.mediatorDereferenceRdf = args.mediatorDereferenceRdf;\n this.mediatorMetadata = args.mediatorMetadata;\n this.mediatorMetadataExtract = args.mediatorMetadataExtract;\n this.mediatorMetadataAccumulate = args.mediatorMetadataAccumulate;\n this.mediatorQuerySourceIdentifyHypermedia = args.mediatorQuerySourceIdentifyHypermedia;\n }\n\n public async test(_action: IActionQuerySourceDereferenceLink): Promise<TestResult<IActorTest>> {\n return passTestVoid();\n }\n\n public async run(action: IActionQuerySourceDereferenceLink): Promise<IActorQuerySourceDereferenceLinkOutput> {\n const context = action.link.context ? action.context.merge(action.link.context) : action.context;\n let url = action.link.url;\n let quads: RDF.Stream;\n let metadata: Record<string, any>;\n let cachePolicy: ICachePolicy<IActionQuerySourceDereferenceLink> | undefined;\n try {\n const dereferenceRdfOutput: IActorDereferenceRdfOutput = await this.mediatorDereferenceRdf\n .mediate({ context, url });\n url = dereferenceRdfOutput.url;\n if (dereferenceRdfOutput.cachePolicy) {\n cachePolicy = new QuerySourceCachePolicyDereferenceWrapper(dereferenceRdfOutput.cachePolicy);\n }\n\n // Determine the metadata\n const rdfMetadataOutput: IActorRdfMetadataOutput = await this.mediatorMetadata.mediate(\n { context, url, quads: dereferenceRdfOutput.data, triples: dereferenceRdfOutput.metadata?.triples },\n );\n\n rdfMetadataOutput.data.on('error', () => {\n // Silence errors in the data stream,\n // as they will be emitted again in the metadata stream,\n // and will result in a promise rejection anyways.\n // If we don't do this, we end up with an unhandled error message\n });\n\n metadata = (await this.mediatorMetadataExtract.mediate({\n context,\n url,\n // The problem appears to be conflicting metadata keys here\n metadata: rdfMetadataOutput.metadata,\n headers: dereferenceRdfOutput.headers,\n requestTime: dereferenceRdfOutput.requestTime,\n })).metadata;\n quads = rdfMetadataOutput.data;\n\n // Transform quads if needed.\n if (action.link.transform) {\n quads = await action.link.transform(quads);\n }\n } catch (error: unknown) {\n // Make sure that dereference errors are only emitted once an actor really needs the read quads\n // This allows SPARQL endpoints that error on service description fetching to still be source-forcible\n quads = new Readable();\n quads.read = () => {\n setTimeout(() => quads.emit('error', error));\n return null;\n };\n ({ metadata } = await this.mediatorMetadataAccumulate.mediate({ context, mode: 'initialize' }));\n\n // Log as warning, because the quads above may not always be consumed (e.g. for SPARQL endpoints),\n // so the user would not be notified of something going wrong otherwise.\n this.logWarn(context, `Metadata extraction for ${action.link.url} failed: ${(<Error>error).message}`);\n }\n\n // Determine the source\n const { source, dataset } = await this.mediatorQuerySourceIdentifyHypermedia.mediate({\n context,\n forceSourceType: action.link.forceSourceType,\n handledDatasets: action.handledDatasets,\n metadata,\n quads,\n url,\n });\n\n if (dataset && action.handledDatasets) {\n // Mark the dataset as applied\n // This is needed to make sure that things like QPF search forms are only applied once,\n // and next page links are followed after that.\n action.handledDatasets[dataset] = true;\n }\n\n // Track dereference event\n context.get(KeysStatistics.dereferencedLinks)?.updateStatistic({ url: action.link.url, metadata }, source);\n\n return { source, metadata: <MetadataBindings> metadata, dataset, cachePolicy };\n }\n}\n\nexport interface IActorQuerySourceDereferenceLinkHypermediaArgs extends IActorQuerySourceDereferenceLinkArgs {\n /**\n * The RDF dereference mediator\n */\n mediatorDereferenceRdf: MediatorDereferenceRdf;\n /**\n * The metadata mediator\n */\n mediatorMetadata: MediatorRdfMetadata;\n /**\n * The metadata extract mediator\n */\n mediatorMetadataExtract: MediatorRdfMetadataExtract;\n /**\n * The metadata accumulate mediator\n */\n mediatorMetadataAccumulate: MediatorRdfMetadataAccumulate;\n /**\n * The hypermedia resolve mediator\n */\n mediatorQuerySourceIdentifyHypermedia: MediatorQuerySourceIdentifyHypermedia;\n}\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { IActionDereference } from '@comunica/bus-dereference';
|
|
2
|
+
import type { IActionQuerySourceDereferenceLink } from '@comunica/bus-query-source-dereference-link';
|
|
3
|
+
import type { ICachePolicy, ICacheResponseHead, IRevalidationPolicy } from '@comunica/types';
|
|
4
|
+
export declare class QuerySourceCachePolicyDereferenceWrapper implements ICachePolicy<IActionQuerySourceDereferenceLink> {
|
|
5
|
+
private readonly cachePolicy;
|
|
6
|
+
constructor(cachePolicy: ICachePolicy<IActionDereference>);
|
|
7
|
+
storable(): boolean;
|
|
8
|
+
satisfiesWithoutRevalidation(action: IActionQuerySourceDereferenceLink): Promise<boolean>;
|
|
9
|
+
responseHeaders(): Headers;
|
|
10
|
+
timeToLive(): number;
|
|
11
|
+
revalidationHeaders(newAction: IActionQuerySourceDereferenceLink): Promise<Headers>;
|
|
12
|
+
revalidatedPolicy(revalidationAction: IActionQuerySourceDereferenceLink, revalidationResponse: ICacheResponseHead): Promise<IRevalidationPolicy<IActionQuerySourceDereferenceLink>>;
|
|
13
|
+
}
|