@semapps/semantic-data-provider 0.6.3 → 0.6.5
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/index.cjs.js +165 -95
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +64 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.es.js +164 -95
- package/dist/index.es.js.map +1 -1
- package/package.json +4 -4
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"mappings":"
|
|
1
|
+
{"mappings":"AEGA,qBAA4B,MAAM,GAAG;IAAE,QAAQ,CAAC,KAAK,CAAC,EAAE,eAAe,CAAA;CAAE,CAAC;AAG1E,wBAAwB;IACtB,sBAAsB;IACtB,OAAO,EAAE,MAAM,CAAC;IAEhB,0DAA0D;IAC1D,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,kCAAkC;IAClC,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd,wCAAwC;IACxC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,aAAa,CAAC,EAAE,OAAO,CAAC;IAGxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;IAC7D,UAAU,EAAE,GAAG,CAAC;CACjB,CAAC;AAEF,yBAAgC,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;AAQxE,iBAAwB;IACtB,6EAA6E;IAC7E,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE;QACL,+DAA+D;QAC/D,OAAO,CAAC,EAAE,aAAa,EAAE,GAAG,aAAa,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CAAC;QAE/F,6FAA6F;QAC7F,UAAU,CAAC,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC;QAE7C,kIAAkI;QAClI,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QAEtB,0HAA0H;QAC1H,UAAU,CAAC,EAAE,EAAE,CAAC;QAEhB,2DAA2D;QAC3D,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QAEtB,2DAA2D;QAC3D,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEjC,iGAAiG;QACjG,cAAc,CAAC,EAAE,OAAO,CAAC;QAEzB,sGAAsG;QACtG,sBAAsB,CAAC,EAAE,OAAO,CAAC;KAClC,CAAC;IACF,MAAM,CAAC,EAAE;QACP,oEAAoE;QACpE,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,aAAa,CAAC;QAEvD,6GAA6G;QAC7G,SAAS,CAAC,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;KAC3C,CAAC;IACF,aAAa,CAAC,EAAE;QACd,iCAAiC;QACjC,KAAK,EAAE,MAAM,CAAC;KACf,CAAC;CACH,CAAC;Ae5CF;;;;;;;;;EAoCC;AE7DD;;;;;QA4JC;AW7JD;;;;;;;;;;;;;;;EAmDC;AC3DD,sFA2CC;AC/CD,OAAA,MAAM,2BAA4B,MAAM,QAUvC,CAAC;ACTF,OAAA,MAAM,mDAWL,CAAC;ACTF,OAAA,MAAM,4BAA6B,MAAM,qEAYxC,CAAC;AEXF,sDAAsD;AACtD,+DAuBC;AC3BD,OAAA,MAAM,0DAWL,CAAC;ACRF,OAAA,MAAM,0CAKW,MAAM,uBAiCtB,CAAC;AC3CF;;;;;;;;;;;;;GAaG;AAEH;;;;;;4CAsCC;ACUD;;;;;;;4CA2BC;ACzED,2FAiBC","sources":["packages/semantic-data-provider/src/src/dataProvider/utils/fetchResource.js","packages/semantic-data-provider/src/src/dataProvider/methods/getOne.js","packages/semantic-data-provider/src/src/dataProvider/types.ts","packages/semantic-data-provider/src/src/dataProvider/utils/handleFiles.ts","packages/semantic-data-provider/src/src/dataProvider/utils/getServerKeyFromType.js","packages/semantic-data-provider/src/src/dataProvider/utils/parseServerKeys.js","packages/semantic-data-provider/src/src/dataProvider/utils/findContainersWithTypes.ts","packages/semantic-data-provider/src/src/dataProvider/methods/create.js","packages/semantic-data-provider/src/src/dataProvider/methods/delete.ts","packages/semantic-data-provider/src/src/dataProvider/methods/deleteMany.js","packages/semantic-data-provider/src/src/dataProvider/methods/getDataServers.js","packages/semantic-data-provider/src/src/dataProvider/methods/getDataModels.js","packages/semantic-data-provider/src/src/dataProvider/utils/arrayOf.ts","packages/semantic-data-provider/src/src/dataProvider/utils/fetchContainers.ts","packages/semantic-data-provider/src/src/dataProvider/utils/getEmbedFrame.js","packages/semantic-data-provider/src/src/dataProvider/utils/resolvePrefix.js","packages/semantic-data-provider/src/src/dataProvider/utils/buildBaseQuery.js","packages/semantic-data-provider/src/src/dataProvider/utils/buildBlankNodesQuery.js","packages/semantic-data-provider/src/src/dataProvider/utils/buildAutoDetectBlankNodesQuery.js","packages/semantic-data-provider/src/src/dataProvider/utils/buildSparqlQuery.js","packages/semantic-data-provider/src/src/dataProvider/utils/fetchSparqlEndpoints.js","packages/semantic-data-provider/src/src/dataProvider/utils/findContainersWithPath.js","packages/semantic-data-provider/src/src/dataProvider/methods/getList.js","packages/semantic-data-provider/src/src/dataProvider/methods/getMany.js","packages/semantic-data-provider/src/src/dataProvider/methods/getManyReference.js","packages/semantic-data-provider/src/src/dataProvider/methods/update.ts","packages/semantic-data-provider/src/src/dataProvider/utils/fetchUserConfig.js","packages/semantic-data-provider/src/src/dataProvider/utils/fetchVoidEndpoints.js","packages/semantic-data-provider/src/src/dataProvider/utils/getServerKeyFromUri.js","packages/semantic-data-provider/src/src/dataProvider/httpClient.js","packages/semantic-data-provider/src/src/dataProvider/dataProvider.js","packages/semantic-data-provider/src/src/hooks/useGetExternalLink.js","packages/semantic-data-provider/src/src/hooks/useDataModel.ts","packages/semantic-data-provider/src/src/hooks/useDataServers.ts","packages/semantic-data-provider/src/src/hooks/useContainers.ts","packages/semantic-data-provider/src/src/dataProvider/utils/findCreateContainerWithTypes.ts","packages/semantic-data-provider/src/src/hooks/useCreateContainer.js","packages/semantic-data-provider/src/src/hooks/useDataModels.ts","packages/semantic-data-provider/src/src/hooks/useCreateContainerUri.ts","packages/semantic-data-provider/src/src/reification/FilterHandler.js","packages/semantic-data-provider/src/src/reification/GroupedReferenceHandler.js","packages/semantic-data-provider/src/src/reification/ReificationArrayInput.js","packages/semantic-data-provider/src/src/index.ts","packages/semantic-data-provider/src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"export { default as dataProvider } from './dataProvider/dataProvider';\n\nexport { default as buildSparqlQuery } from './dataProvider/utils/buildSparqlQuery';\nexport { default as buildBlankNodesQuery } from './dataProvider/utils/buildBlankNodesQuery';\n\nexport { default as useGetExternalLink } from './hooks/useGetExternalLink';\nexport { default as useContainers } from './hooks/useContainers';\nexport { default as useCreateContainer } from './hooks/useCreateContainer';\nexport { default as useCreateContainerUri } from './hooks/useCreateContainerUri';\nexport { default as useDataModel } from './hooks/useDataModel';\nexport { default as useDataModels } from './hooks/useDataModels';\nexport { default as useDataServers } from './hooks/useDataServers';\n\nexport { default as FilterHandler } from './reification/FilterHandler';\nexport { default as GroupedReferenceHandler } from './reification/GroupedReferenceHandler';\nexport { default as ReificationArrayInput } from './reification/ReificationArrayInput';\n"],"names":[],"version":3,"file":"index.d.ts.map"}
|
package/dist/index.es.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import $fj9kP$urljoin from "url-join";
|
|
2
2
|
import $fj9kP$jsonld from "jsonld";
|
|
3
|
-
import $fj9kP$isobject from "isobject";
|
|
4
3
|
import $fj9kP$rdfjsdatamodel, {triple as $fj9kP$triple, variable as $fj9kP$variable, namedNode as $fj9kP$namedNode} from "@rdfjs/data-model";
|
|
5
4
|
import {Generator as $fj9kP$Generator} from "sparqljs";
|
|
6
5
|
import $fj9kP$cryptojsmd5 from "crypto-js/md5";
|
|
7
6
|
import $fj9kP$jwtdecode from "jwt-decode";
|
|
8
|
-
import {fetchUtils as $fj9kP$fetchUtils, DataProviderContext as $fj9kP$DataProviderContext, useRecordContext as $fj9kP$useRecordContext, useGetList as $fj9kP$useGetList, ArrayInput as $fj9kP$ArrayInput, SimpleFormIterator as $fj9kP$SimpleFormIterator, TextInput as $fj9kP$TextInput} from "react-admin";
|
|
7
|
+
import {fetchUtils as $fj9kP$fetchUtils, DataProviderContext as $fj9kP$DataProviderContext, useDataProvider as $fj9kP$useDataProvider, useRecordContext as $fj9kP$useRecordContext, useGetList as $fj9kP$useGetList, ArrayInput as $fj9kP$ArrayInput, SimpleFormIterator as $fj9kP$SimpleFormIterator, TextInput as $fj9kP$TextInput} from "react-admin";
|
|
9
8
|
import $fj9kP$react, {useContext as $fj9kP$useContext, useMemo as $fj9kP$useMemo, useCallback as $fj9kP$useCallback, useState as $fj9kP$useState, useEffect as $fj9kP$useEffect} from "react";
|
|
10
9
|
import {jsx as $fj9kP$jsx, Fragment as $fj9kP$Fragment, jsxs as $fj9kP$jsxs} from "react/jsx-runtime";
|
|
11
10
|
import $fj9kP$muistylesmakeStyles from "@mui/styles/makeStyles";
|
|
@@ -175,7 +174,7 @@ const $15b841e67a1ba752$var$findContainersWithTypes = (types, serverKeys, dataSe
|
|
|
175
174
|
const existingContainers = [];
|
|
176
175
|
const parsedServerKeys = (0, $64441f6e76bd15b6$export$2e2bcd8739ae039)(serverKeys, dataServers);
|
|
177
176
|
Object.keys(dataServers).filter((dataServerKey)=>dataServers[dataServerKey].containers).forEach((dataServerKey)=>{
|
|
178
|
-
Object.keys(dataServers[dataServerKey].containers).forEach((containerKey)=>{
|
|
177
|
+
Object.keys(dataServers[dataServerKey].containers || {}).forEach((containerKey)=>{
|
|
179
178
|
if (!parsedServerKeys || parsedServerKeys.includes(containerKey)) Object.keys(dataServers[dataServerKey].containers[containerKey]).forEach((type)=>{
|
|
180
179
|
if (types.includes(type)) dataServers[dataServerKey].containers[containerKey][type].map((path)=>{
|
|
181
180
|
const containerUri = (0, $fj9kP$urljoin)(dataServers[containerKey].baseUrl, path);
|
|
@@ -306,8 +305,7 @@ var $54a3fa40eed06111$export$2e2bcd8739ae039 = $54a3fa40eed06111$var$getDataMode
|
|
|
306
305
|
|
|
307
306
|
|
|
308
307
|
|
|
309
|
-
|
|
310
|
-
const $db0064b52a991847$var$arrayOf = (value)=>{
|
|
308
|
+
const $cc8adac4b83414eb$var$arrayOf = (value)=>{
|
|
311
309
|
// If the field is null-ish, we suppose there are no values.
|
|
312
310
|
if (!value) return [];
|
|
313
311
|
// Return as is.
|
|
@@ -317,86 +315,110 @@ const $db0064b52a991847$var$arrayOf = (value)=>{
|
|
|
317
315
|
value
|
|
318
316
|
];
|
|
319
317
|
};
|
|
320
|
-
var $
|
|
318
|
+
var $cc8adac4b83414eb$export$2e2bcd8739ae039 = $cc8adac4b83414eb$var$arrayOf;
|
|
321
319
|
|
|
322
320
|
|
|
323
|
-
const $
|
|
324
|
-
const resourceType =
|
|
325
|
-
return Array.isArray(resourceType) ? resourceType.includes(
|
|
321
|
+
const $aba124ea15ea8bc6$var$isValidLDPContainer = (container)=>{
|
|
322
|
+
const resourceType = container.type || container["@type"];
|
|
323
|
+
return Array.isArray(resourceType) ? resourceType.includes("ldp:Container") : resourceType === "ldp:Container";
|
|
326
324
|
};
|
|
327
|
-
const $
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
serverKey
|
|
335
|
-
]))
|
|
336
|
-
}), {});
|
|
337
|
-
const fetchPromises = Object.keys(containersServers).map((containerUri)=>httpClient(containerUri).then(({ json: json })=>{
|
|
325
|
+
const $aba124ea15ea8bc6$var$isObject = (val)=>{
|
|
326
|
+
return val != null && typeof val === "object" && !Array.isArray(val);
|
|
327
|
+
};
|
|
328
|
+
const $aba124ea15ea8bc6$var$fetchContainers = async (containers, params, { httpClient: httpClient, jsonContext: jsonContext })=>{
|
|
329
|
+
const containersUri = Object.values(containers).flat();
|
|
330
|
+
const fetchPromises = containersUri.map((containerUri)=>httpClient(containerUri).then(async ({ json: json })=>{
|
|
331
|
+
const jsonResponse = json;
|
|
338
332
|
// If container's context is different, compact it to have an uniform result
|
|
339
333
|
// TODO deep compare if the context is an object
|
|
340
|
-
if (
|
|
341
|
-
return
|
|
334
|
+
if (jsonResponse["@context"] !== jsonContext) return (0, $fj9kP$jsonld).compact(jsonResponse, jsonContext);
|
|
335
|
+
return jsonResponse;
|
|
342
336
|
}).then((json)=>{
|
|
343
|
-
if ($
|
|
337
|
+
if (!$aba124ea15ea8bc6$var$isValidLDPContainer(json)) throw new Error(`${containerUri} is not a LDP container`);
|
|
338
|
+
return (0, $cc8adac4b83414eb$export$2e2bcd8739ae039)(json["ldp:contains"]).map((resource)=>({
|
|
344
339
|
"@context": json["@context"],
|
|
345
340
|
...resource
|
|
346
341
|
}));
|
|
347
|
-
throw new Error(`${containerUri} is not a LDP container`);
|
|
348
342
|
}));
|
|
349
343
|
// Fetch simultaneously all containers
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
// Merge all results in one array
|
|
356
|
-
results = [].concat.apply(...results);
|
|
357
|
-
let returnData = results.map((item)=>{
|
|
358
|
-
item.id = item.id || item["@id"];
|
|
359
|
-
return item;
|
|
344
|
+
const results = await Promise.all(fetchPromises);
|
|
345
|
+
let resources = results.flat();
|
|
346
|
+
resources = resources.map((resource)=>{
|
|
347
|
+
resource.id ||= resource["@id"];
|
|
348
|
+
return resource;
|
|
360
349
|
});
|
|
361
350
|
// Apply filter to results
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
});
|
|
381
|
-
if (resource[k]) return Array.isArray(resource[k]) ? resource[k].some((va)=>va.includes(v)) : resource[k].includes(v);
|
|
382
|
-
return false;
|
|
351
|
+
const filters = params.filter;
|
|
352
|
+
// For SPARQL queries, we use "a" to filter types, but in containers it must be "type"
|
|
353
|
+
if (filters.a) {
|
|
354
|
+
filters.type = filters.a;
|
|
355
|
+
delete filters.a;
|
|
356
|
+
}
|
|
357
|
+
// Filter resources attributes according to _predicates list
|
|
358
|
+
if (filters._predicates && Array.isArray(filters._predicates)) {
|
|
359
|
+
const predicates = filters._predicates;
|
|
360
|
+
const mandatoryAttributes = [
|
|
361
|
+
"id"
|
|
362
|
+
];
|
|
363
|
+
resources = resources.map((resource)=>{
|
|
364
|
+
return Object.keys(resource).filter((key)=>predicates.includes(key) || mandatoryAttributes.includes(key)).reduce((filteredResource, key)=>{
|
|
365
|
+
filteredResource[key] = resource[key];
|
|
366
|
+
return filteredResource;
|
|
367
|
+
}, {
|
|
368
|
+
"@context": []
|
|
383
369
|
});
|
|
384
370
|
});
|
|
385
371
|
}
|
|
386
|
-
if (
|
|
372
|
+
if (Object.keys(filters).filter((f)=>![
|
|
373
|
+
"_predicates",
|
|
374
|
+
"_servers"
|
|
375
|
+
].includes(f)).length > 0) resources = resources.filter((resource)=>{
|
|
376
|
+
// Full text filtering
|
|
377
|
+
if (filters.q) return Object.values(resource).some((attributeValue)=>{
|
|
378
|
+
if (!$aba124ea15ea8bc6$var$isObject(attributeValue)) {
|
|
379
|
+
const arrayValues = Array.isArray(attributeValue) ? attributeValue : [
|
|
380
|
+
attributeValue
|
|
381
|
+
];
|
|
382
|
+
return arrayValues.some((value)=>{
|
|
383
|
+
if (typeof value === "string") return value.toLowerCase().normalize("NFD").includes(filters.q.toLowerCase().normalize("NFD"));
|
|
384
|
+
return false;
|
|
385
|
+
});
|
|
386
|
+
}
|
|
387
|
+
return false;
|
|
388
|
+
});
|
|
389
|
+
// Attribute filtering
|
|
390
|
+
const attributesFilters = Object.keys(filters).filter((f)=>![
|
|
391
|
+
"_predicates",
|
|
392
|
+
"_servers",
|
|
393
|
+
"q"
|
|
394
|
+
].includes(f));
|
|
395
|
+
return attributesFilters.every((attribute)=>{
|
|
396
|
+
if (resource[attribute]) {
|
|
397
|
+
const arrayValues = Array.isArray(resource[attribute]) ? resource[attribute] : [
|
|
398
|
+
resource[attribute]
|
|
399
|
+
];
|
|
400
|
+
return arrayValues.some((value)=>typeof value === "string" && value.includes(filters[attribute]));
|
|
401
|
+
}
|
|
402
|
+
return false;
|
|
403
|
+
});
|
|
404
|
+
});
|
|
405
|
+
// Sorting
|
|
406
|
+
if (params.sort) resources = resources.sort((a, b)=>{
|
|
387
407
|
if (a[params.sort.field] && b[params.sort.field]) {
|
|
388
408
|
if (params.sort.order === "ASC") return a[params.sort.field].localeCompare(b[params.sort.field]);
|
|
389
409
|
return b[params.sort.field].localeCompare(a[params.sort.field]);
|
|
390
410
|
}
|
|
391
411
|
return true;
|
|
392
412
|
});
|
|
393
|
-
|
|
413
|
+
// Pagination
|
|
414
|
+
const total = resources.length;
|
|
415
|
+
if (params.pagination) resources = resources.slice((params.pagination.page - 1) * params.pagination.perPage, params.pagination.page * params.pagination.perPage);
|
|
394
416
|
return {
|
|
395
|
-
data:
|
|
396
|
-
total:
|
|
417
|
+
data: resources,
|
|
418
|
+
total: total
|
|
397
419
|
};
|
|
398
420
|
};
|
|
399
|
-
var $
|
|
421
|
+
var $aba124ea15ea8bc6$export$2e2bcd8739ae039 = $aba124ea15ea8bc6$var$fetchContainers;
|
|
400
422
|
|
|
401
423
|
|
|
402
424
|
|
|
@@ -861,7 +883,7 @@ const $7add415f7ebb1122$var$getListMethod = (config)=>async (resourceId, params
|
|
|
861
883
|
containers = (0, $4a0be4f601906b75$export$2e2bcd8739ae039)(dataModel.list.containers, dataServers);
|
|
862
884
|
} else // Otherwise find the container URIs on the given servers (either in the filter or the data model)
|
|
863
885
|
containers = (0, $15b841e67a1ba752$export$2e2bcd8739ae039)(dataModel.types, params.filter?._servers || dataModel.list?.servers, dataServers);
|
|
864
|
-
if (dataModel.list?.fetchContainer) return (0, $
|
|
886
|
+
if (dataModel.list?.fetchContainer) return (0, $aba124ea15ea8bc6$export$2e2bcd8739ae039)(containers, params, config);
|
|
865
887
|
return (0, $05a1b4063d50f1b7$export$2e2bcd8739ae039)(containers, resourceId, params, config);
|
|
866
888
|
};
|
|
867
889
|
var $7add415f7ebb1122$export$2e2bcd8739ae039 = $7add415f7ebb1122$var$getListMethod;
|
|
@@ -1020,6 +1042,7 @@ var $31a4627920feab4a$export$2e2bcd8739ae039 = $31a4627920feab4a$var$fetchVoidEn
|
|
|
1020
1042
|
|
|
1021
1043
|
// Return the first server matching with the baseUrl
|
|
1022
1044
|
const $47e21ee81eed09a6$var$getServerKeyFromUri = (uri, dataServers)=>{
|
|
1045
|
+
if (!uri) throw Error(`No URI provided to getServerKeyFromUri`);
|
|
1023
1046
|
return Object.keys(dataServers).find((key)=>{
|
|
1024
1047
|
if (dataServers[key].pod) // The baseUrl ends with /data so remove this part to match with the webId and webId-related URLs (/inbox, /outbox...)
|
|
1025
1048
|
return dataServers[key].baseUrl && uri.startsWith(dataServers[key].baseUrl.replace("/data", ""));
|
|
@@ -1090,30 +1113,44 @@ const $243bf28fbb1b868f$var$dataProvider = (config)=>{
|
|
|
1090
1113
|
if (!config.returnFailedResources) config.returnFailedResources = false;
|
|
1091
1114
|
// Configure httpClient with data servers (this is needed for proxy calls)
|
|
1092
1115
|
config.httpClient = (0, $22b4895a4ca7d626$export$2e2bcd8739ae039)(config.dataServers);
|
|
1093
|
-
|
|
1094
|
-
const
|
|
1095
|
-
|
|
1116
|
+
// Keep in memory for refresh
|
|
1117
|
+
const originalConfig = {
|
|
1118
|
+
...config
|
|
1119
|
+
};
|
|
1120
|
+
let fetchUserConfigPromise = (0, $81a8da127161495a$export$2e2bcd8739ae039)(config);
|
|
1121
|
+
let fetchVoidEndpointsPromise = (0, $31a4627920feab4a$export$2e2bcd8739ae039)(config);
|
|
1122
|
+
const waitForConfig = (method)=>async (...arg)=>{
|
|
1096
1123
|
await fetchUserConfigPromise;
|
|
1097
1124
|
await fetchVoidEndpointsPromise; // Return immediately if promise is fulfilled
|
|
1098
1125
|
return await method(...arg);
|
|
1099
1126
|
};
|
|
1100
1127
|
return {
|
|
1101
|
-
getList:
|
|
1102
|
-
getMany:
|
|
1103
|
-
getManyReference:
|
|
1104
|
-
getOne:
|
|
1105
|
-
create:
|
|
1106
|
-
update:
|
|
1128
|
+
getList: waitForConfig((0, $7add415f7ebb1122$export$2e2bcd8739ae039)(config)),
|
|
1129
|
+
getMany: waitForConfig((0, $f1e05270f9a21255$export$2e2bcd8739ae039)(config)),
|
|
1130
|
+
getManyReference: waitForConfig((0, $b5979a9678f57756$export$2e2bcd8739ae039)(config)),
|
|
1131
|
+
getOne: waitForConfig((0, $ed447224dd38ce82$export$2e2bcd8739ae039)(config)),
|
|
1132
|
+
create: waitForConfig((0, $5a7a2f7583392866$export$2e2bcd8739ae039)(config)),
|
|
1133
|
+
update: waitForConfig((0, $c5031381f4dfc62d$export$2e2bcd8739ae039)(config)),
|
|
1107
1134
|
updateMany: ()=>{
|
|
1108
1135
|
throw new Error("updateMany is not implemented yet");
|
|
1109
1136
|
},
|
|
1110
|
-
delete:
|
|
1111
|
-
deleteMany:
|
|
1137
|
+
delete: waitForConfig((0, $9510970b8e7eb9e2$export$2e2bcd8739ae039)(config)),
|
|
1138
|
+
deleteMany: waitForConfig((0, $298dd1ae21173ea0$export$2e2bcd8739ae039)(config)),
|
|
1112
1139
|
// Custom methods
|
|
1113
|
-
getDataModels:
|
|
1114
|
-
getDataServers:
|
|
1140
|
+
getDataModels: waitForConfig((0, $54a3fa40eed06111$export$2e2bcd8739ae039)(config)),
|
|
1141
|
+
getDataServers: waitForConfig((0, $7dd5bf9323d2d9c1$export$2e2bcd8739ae039)(config)),
|
|
1115
1142
|
getLocalDataServers: (0, $7dd5bf9323d2d9c1$export$2e2bcd8739ae039)(config),
|
|
1116
|
-
fetch:
|
|
1143
|
+
fetch: waitForConfig(config.httpClient),
|
|
1144
|
+
refreshConfig: async ()=>{
|
|
1145
|
+
config = {
|
|
1146
|
+
...originalConfig
|
|
1147
|
+
};
|
|
1148
|
+
fetchUserConfigPromise = (0, $81a8da127161495a$export$2e2bcd8739ae039)(config);
|
|
1149
|
+
fetchVoidEndpointsPromise = (0, $31a4627920feab4a$export$2e2bcd8739ae039)(config);
|
|
1150
|
+
await fetchUserConfigPromise;
|
|
1151
|
+
await fetchVoidEndpointsPromise;
|
|
1152
|
+
return config;
|
|
1153
|
+
}
|
|
1117
1154
|
};
|
|
1118
1155
|
};
|
|
1119
1156
|
var $243bf28fbb1b868f$export$2e2bcd8739ae039 = $243bf28fbb1b868f$var$dataProvider;
|
|
@@ -1184,25 +1221,26 @@ var $e5a0eacd756fd1d5$export$2e2bcd8739ae039 = $e5a0eacd756fd1d5$var$useDataMode
|
|
|
1184
1221
|
|
|
1185
1222
|
|
|
1186
1223
|
|
|
1187
|
-
const $
|
|
1188
|
-
|
|
1189
|
-
const dataProvider = (0, $fj9kP$useContext)((0, $fj9kP$DataProviderContext));
|
|
1224
|
+
const $4daf4cf698ee4eed$var$useDataServers = ()=>{
|
|
1225
|
+
const dataProvider = (0, $fj9kP$useDataProvider)();
|
|
1190
1226
|
const [dataServers, setDataServers] = (0, $fj9kP$useState)();
|
|
1191
1227
|
(0, $fj9kP$useEffect)(()=>{
|
|
1192
|
-
dataProvider.getDataServers().then((results)=>
|
|
1228
|
+
dataProvider.getDataServers().then((results)=>{
|
|
1229
|
+
setDataServers(results);
|
|
1230
|
+
});
|
|
1193
1231
|
}, [
|
|
1194
1232
|
dataProvider,
|
|
1195
1233
|
setDataServers
|
|
1196
1234
|
]);
|
|
1197
1235
|
return dataServers;
|
|
1198
1236
|
};
|
|
1199
|
-
var $
|
|
1237
|
+
var $4daf4cf698ee4eed$export$2e2bcd8739ae039 = $4daf4cf698ee4eed$var$useDataServers;
|
|
1200
1238
|
|
|
1201
1239
|
|
|
1202
1240
|
|
|
1203
1241
|
const $586fa0ea9d02fa12$var$useContainers = (resourceId, serverKeys = "@all")=>{
|
|
1204
1242
|
const dataModel = (0, $e5a0eacd756fd1d5$export$2e2bcd8739ae039)(resourceId);
|
|
1205
|
-
const dataServers = (0, $
|
|
1243
|
+
const dataServers = (0, $4daf4cf698ee4eed$export$2e2bcd8739ae039)();
|
|
1206
1244
|
const [containers, setContainers] = (0, $fj9kP$useState)();
|
|
1207
1245
|
(0, $fj9kP$useEffect)(()=>{
|
|
1208
1246
|
if (dataModel && dataServers) setContainers((0, $15b841e67a1ba752$export$2e2bcd8739ae039)(dataModel.types, serverKeys, dataServers));
|
|
@@ -1221,10 +1259,10 @@ var $586fa0ea9d02fa12$export$2e2bcd8739ae039 = $586fa0ea9d02fa12$var$useContaine
|
|
|
1221
1259
|
|
|
1222
1260
|
|
|
1223
1261
|
|
|
1224
|
-
const $
|
|
1262
|
+
const $7d9911a250866af6$var$findCreateContainerWithTypes = (types, createServerKey, dataServers)=>{
|
|
1225
1263
|
const containers = [];
|
|
1226
|
-
|
|
1227
|
-
if (types.includes(type)) dataServers[createServerKey].containers[createServerKey][type].
|
|
1264
|
+
Object.keys(dataServers[createServerKey].containers?.[createServerKey] || {}).forEach((type)=>{
|
|
1265
|
+
if (types.includes(type)) dataServers[createServerKey].containers[createServerKey][type].forEach((path)=>{
|
|
1228
1266
|
const containerUri = (0, $fj9kP$urljoin)(dataServers[createServerKey].baseUrl, path);
|
|
1229
1267
|
if (!containers.includes(containerUri)) containers.push(containerUri);
|
|
1230
1268
|
});
|
|
@@ -1233,13 +1271,13 @@ const $a6f9067f89a63589$var$findCreateContainerWithTypes = (types, createServerK
|
|
|
1233
1271
|
else if (containers.length > 1) throw new Error(`More than one container found matching with types ${JSON.stringify(types)}. You must set the create.server or create.container property for the resource.`);
|
|
1234
1272
|
return containers[0];
|
|
1235
1273
|
};
|
|
1236
|
-
var $
|
|
1274
|
+
var $7d9911a250866af6$export$2e2bcd8739ae039 = $7d9911a250866af6$var$findCreateContainerWithTypes;
|
|
1237
1275
|
|
|
1238
1276
|
|
|
1239
1277
|
|
|
1240
|
-
const $7bd037d7ec9d51f8$var$useCreateContainer = (resourceId)=>{
|
|
1278
|
+
/** @deprecated Use "useCreateContainerUri" instead */ const $7bd037d7ec9d51f8$var$useCreateContainer = (resourceId)=>{
|
|
1241
1279
|
const dataModel = (0, $e5a0eacd756fd1d5$export$2e2bcd8739ae039)(resourceId);
|
|
1242
|
-
const dataServers = (0, $
|
|
1280
|
+
const dataServers = (0, $4daf4cf698ee4eed$export$2e2bcd8739ae039)();
|
|
1243
1281
|
const [createContainer, setCreateContainer] = (0, $fj9kP$useState)();
|
|
1244
1282
|
(0, $fj9kP$useEffect)(()=>{
|
|
1245
1283
|
if (dataModel && dataServers) {
|
|
@@ -1247,10 +1285,10 @@ const $7bd037d7ec9d51f8$var$useCreateContainer = (resourceId)=>{
|
|
|
1247
1285
|
const [serverKey, path] = Object.entries(dataModel.create.container)[0];
|
|
1248
1286
|
if (!serverKey || !dataServers[serverKey]) throw new Error(`Wrong key for the dataModel.create.container config of resource ${resourceId}`);
|
|
1249
1287
|
setCreateContainer((0, $fj9kP$urljoin)(dataServers[serverKey].baseUrl, path));
|
|
1250
|
-
} else if (dataModel.create?.server) setCreateContainer((0, $
|
|
1288
|
+
} else if (dataModel.create?.server) setCreateContainer((0, $7d9911a250866af6$export$2e2bcd8739ae039)(dataModel.types, dataModel.create?.server, dataServers));
|
|
1251
1289
|
else {
|
|
1252
1290
|
const defaultServerKey = (0, $8326b88c1a913ca9$export$2e2bcd8739ae039)("default", dataServers);
|
|
1253
|
-
setCreateContainer((0, $
|
|
1291
|
+
setCreateContainer((0, $7d9911a250866af6$export$2e2bcd8739ae039)(dataModel.types, defaultServerKey, dataServers));
|
|
1254
1292
|
}
|
|
1255
1293
|
}
|
|
1256
1294
|
}, [
|
|
@@ -1266,19 +1304,50 @@ var $7bd037d7ec9d51f8$export$2e2bcd8739ae039 = $7bd037d7ec9d51f8$var$useCreateCo
|
|
|
1266
1304
|
|
|
1267
1305
|
|
|
1268
1306
|
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1307
|
+
|
|
1308
|
+
|
|
1309
|
+
|
|
1310
|
+
|
|
1311
|
+
const $3a9656756670cb78$var$useDataModels = ()=>{
|
|
1312
|
+
const dataProvider = (0, $fj9kP$useDataProvider)();
|
|
1272
1313
|
const [dataModels, setDataModels] = (0, $fj9kP$useState)();
|
|
1273
1314
|
(0, $fj9kP$useEffect)(()=>{
|
|
1274
|
-
dataProvider.getDataModels().then((results)=>
|
|
1315
|
+
dataProvider.getDataModels().then((results)=>{
|
|
1316
|
+
setDataModels(results);
|
|
1317
|
+
});
|
|
1275
1318
|
}, [
|
|
1276
1319
|
dataProvider,
|
|
1277
1320
|
setDataModels
|
|
1278
1321
|
]);
|
|
1279
1322
|
return dataModels;
|
|
1280
1323
|
};
|
|
1281
|
-
var $
|
|
1324
|
+
var $3a9656756670cb78$export$2e2bcd8739ae039 = $3a9656756670cb78$var$useDataModels;
|
|
1325
|
+
|
|
1326
|
+
|
|
1327
|
+
const $35f3e75c86e51f35$var$useCreateContainerUri = ()=>{
|
|
1328
|
+
const dataModels = (0, $3a9656756670cb78$export$2e2bcd8739ae039)();
|
|
1329
|
+
const dataServers = (0, $4daf4cf698ee4eed$export$2e2bcd8739ae039)();
|
|
1330
|
+
const getContainerUri = (0, $fj9kP$useCallback)((resourceId)=>{
|
|
1331
|
+
if (!dataModels || !dataServers || !dataModels[resourceId]) return undefined;
|
|
1332
|
+
const dataModel = dataModels[resourceId];
|
|
1333
|
+
if (dataModel.create?.container) {
|
|
1334
|
+
const [serverKey, path] = Object.entries(dataModel.create.container)[0];
|
|
1335
|
+
if (!serverKey || !dataServers[serverKey]) throw new Error(`Wrong key for the dataModel.create.container config of resource ${resourceId}`);
|
|
1336
|
+
return (0, $fj9kP$urljoin)(dataServers[serverKey].baseUrl, path);
|
|
1337
|
+
}
|
|
1338
|
+
if (dataModel.create?.server) return (0, $7d9911a250866af6$export$2e2bcd8739ae039)(dataModel.types, dataModel.create?.server, dataServers);
|
|
1339
|
+
const defaultServerKey = (0, $8326b88c1a913ca9$export$2e2bcd8739ae039)("default", dataServers);
|
|
1340
|
+
if (!defaultServerKey) throw new Error(`No default dataServer found. You can set explicitly one setting the "default" attribute to true`);
|
|
1341
|
+
return (0, $7d9911a250866af6$export$2e2bcd8739ae039)(dataModel.types, defaultServerKey, dataServers);
|
|
1342
|
+
}, [
|
|
1343
|
+
dataModels,
|
|
1344
|
+
dataServers
|
|
1345
|
+
]);
|
|
1346
|
+
return getContainerUri;
|
|
1347
|
+
};
|
|
1348
|
+
var $35f3e75c86e51f35$export$2e2bcd8739ae039 = $35f3e75c86e51f35$var$useCreateContainerUri;
|
|
1349
|
+
|
|
1350
|
+
|
|
1282
1351
|
|
|
1283
1352
|
|
|
1284
1353
|
|
|
@@ -1475,5 +1544,5 @@ var $6844bbce0ad66151$export$2e2bcd8739ae039 = $6844bbce0ad66151$var$Reification
|
|
|
1475
1544
|
|
|
1476
1545
|
|
|
1477
1546
|
|
|
1478
|
-
export {$243bf28fbb1b868f$export$2e2bcd8739ae039 as dataProvider, $6cde9a8fbbde3ffb$export$2e2bcd8739ae039 as buildSparqlQuery, $865f630cc944e818$export$2e2bcd8739ae039 as buildBlankNodesQuery, $87656edf926c0f1f$export$2e2bcd8739ae039 as useGetExternalLink, $586fa0ea9d02fa12$export$2e2bcd8739ae039 as useContainers, $7bd037d7ec9d51f8$export$2e2bcd8739ae039 as useCreateContainer, $e5a0eacd756fd1d5$export$2e2bcd8739ae039 as useDataModel, $
|
|
1547
|
+
export {$243bf28fbb1b868f$export$2e2bcd8739ae039 as dataProvider, $6cde9a8fbbde3ffb$export$2e2bcd8739ae039 as buildSparqlQuery, $865f630cc944e818$export$2e2bcd8739ae039 as buildBlankNodesQuery, $87656edf926c0f1f$export$2e2bcd8739ae039 as useGetExternalLink, $586fa0ea9d02fa12$export$2e2bcd8739ae039 as useContainers, $7bd037d7ec9d51f8$export$2e2bcd8739ae039 as useCreateContainer, $35f3e75c86e51f35$export$2e2bcd8739ae039 as useCreateContainerUri, $e5a0eacd756fd1d5$export$2e2bcd8739ae039 as useDataModel, $3a9656756670cb78$export$2e2bcd8739ae039 as useDataModels, $4daf4cf698ee4eed$export$2e2bcd8739ae039 as useDataServers, $406574efa35ec6f1$export$2e2bcd8739ae039 as FilterHandler, $1d8c1cbe606a94ae$export$2e2bcd8739ae039 as GroupedReferenceHandler, $6844bbce0ad66151$export$2e2bcd8739ae039 as ReificationArrayInput};
|
|
1479
1548
|
//# sourceMappingURL=index.es.js.map
|