@semapps/semantic-data-provider 0.6.4 → 0.6.6
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 +136 -81
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.d.ts +105 -69
- package/dist/index.d.ts.map +1 -1
- package/dist/index.es.js +135 -81
- package/dist/index.es.js.map +1 -1
- package/package.json +4 -4
package/dist/index.d.ts
CHANGED
|
@@ -1,52 +1,101 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
type DataServerKey = string & {
|
|
2
|
+
readonly _type?: 'DataServerKey';
|
|
3
|
+
};
|
|
4
|
+
type DataServerConfig = {
|
|
5
|
+
/** Server base url */
|
|
6
|
+
baseUrl: string;
|
|
7
|
+
/** Default server (used for the creation of resources) */
|
|
8
|
+
default?: boolean;
|
|
9
|
+
/** True if this is the server where users are autenticated */
|
|
10
|
+
authServer?: boolean;
|
|
11
|
+
/** True if we should fetch void endpoint */
|
|
12
|
+
void?: boolean;
|
|
13
|
+
/** True if the server is a pod */
|
|
14
|
+
pod?: boolean;
|
|
15
|
+
/** Container used for uploaded files */
|
|
16
|
+
uploadsContainer?: string;
|
|
17
|
+
proxyUrl?: string;
|
|
18
|
+
noProxy?: boolean;
|
|
19
|
+
externalLinks?: boolean;
|
|
20
|
+
name: string;
|
|
21
|
+
description: string;
|
|
22
|
+
sparqlEndpoint: string;
|
|
23
|
+
containers?: Record<DataServerKey, Record<string, string[]>>;
|
|
24
|
+
blankNodes: any;
|
|
25
|
+
};
|
|
26
|
+
type DataServersConfig = Record<DataServerKey, DataServerConfig>;
|
|
27
|
+
type DataModel = {
|
|
28
|
+
/** Type(s) of resources to fetch or create (example: [pair:Organization]) */
|
|
29
|
+
types: string | string[];
|
|
30
|
+
list?: {
|
|
31
|
+
/** The servers where to fetch the resource. Default to @all */
|
|
32
|
+
servers?: DataServerKey[] | DataServerKey | '@all' | '@remote' | '@default' | '@auth' | '@pod';
|
|
33
|
+
/** URL(s) of the container(s) to fetch. If specified, will bypass the list.servers config */
|
|
34
|
+
containers?: Record<DataServerKey, string[]>;
|
|
35
|
+
/** Predicates listed are blank nodes and will be dereferenced in SPARQL queries. Automatically set if Void endpoints are found */
|
|
36
|
+
blankNodes?: string[];
|
|
37
|
+
/** @deprecated Predicates listed will be turned to arrays if they are simple strings. Used by for reified relationship */
|
|
38
|
+
forceArray?: [];
|
|
39
|
+
/** Will only fetch the given predicates (and the @type) */
|
|
40
|
+
predicates?: string[];
|
|
41
|
+
/** React-Admin permanent filter applied to all requests */
|
|
42
|
+
filter?: Record<string, unknown>;
|
|
43
|
+
/** If true, the data provider will fetch the LDP containers instead of doing a SPARQL request */
|
|
44
|
+
fetchContainer?: boolean;
|
|
45
|
+
/** If false, improve performances by not including the @embed rule in post-request JSON-LD framing */
|
|
46
|
+
explicitEmbedOnFraming?: boolean;
|
|
47
|
+
};
|
|
48
|
+
create?: {
|
|
49
|
+
/** The server where to create new resources. Default to @default */
|
|
50
|
+
server?: '@default' | '@auth' | '@pod' | DataServerKey;
|
|
51
|
+
/** URL of the container where to create new resources. If specified, will bypass the create.server config */
|
|
52
|
+
container?: Record<DataServerKey, string>;
|
|
53
|
+
};
|
|
54
|
+
fieldsMapping?: {
|
|
55
|
+
/** The predicate of the title */
|
|
56
|
+
title: string;
|
|
57
|
+
};
|
|
58
|
+
};
|
|
59
|
+
export function buildBlankNodesQuery(blankNodes: any, baseQuery: any, ontologies: any): {
|
|
60
|
+
construct: import("@rdfjs/types").Quad[] | null;
|
|
61
|
+
where: {
|
|
9
62
|
type: string;
|
|
10
63
|
patterns: any[];
|
|
11
|
-
};
|
|
12
|
-
}
|
|
13
|
-
| {
|
|
14
|
-
construct: string;
|
|
15
|
-
where: string;
|
|
16
64
|
};
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
ontologies: any;
|
|
65
|
+
} | {
|
|
66
|
+
construct: string;
|
|
67
|
+
where: string;
|
|
68
|
+
};
|
|
69
|
+
export function buildSparqlQuery({ containers, params, dataModel, ontologies }: {
|
|
70
|
+
containers: any;
|
|
71
|
+
params: any;
|
|
72
|
+
dataModel: any;
|
|
73
|
+
ontologies: any;
|
|
27
74
|
}): any;
|
|
28
75
|
export function dataProvider(config: any): {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
76
|
+
getList: (...arg: any[]) => Promise<any>;
|
|
77
|
+
getMany: (...arg: any[]) => Promise<any>;
|
|
78
|
+
getManyReference: (...arg: any[]) => Promise<any>;
|
|
79
|
+
getOne: (...arg: any[]) => Promise<any>;
|
|
80
|
+
create: (...arg: any[]) => Promise<any>;
|
|
81
|
+
update: (...arg: any[]) => Promise<any>;
|
|
82
|
+
updateMany: () => never;
|
|
83
|
+
delete: (...arg: any[]) => Promise<any>;
|
|
84
|
+
deleteMany: (...arg: any[]) => Promise<any>;
|
|
85
|
+
getDataModels: (...arg: any[]) => Promise<any>;
|
|
86
|
+
getDataServers: (...arg: any[]) => Promise<any>;
|
|
87
|
+
getLocalDataServers: () => any;
|
|
88
|
+
fetch: (...arg: any[]) => Promise<any>;
|
|
89
|
+
refreshConfig: () => Promise<any>;
|
|
43
90
|
};
|
|
44
91
|
export function useGetExternalLink(componentExternalLinks: any): (record: any) => any;
|
|
45
92
|
export const useDataModel: (resourceId: string) => any;
|
|
46
|
-
export
|
|
47
|
-
export const useContainers: (resourceId: string, serverKeys?: string) => Record<
|
|
93
|
+
export const useDataServers: () => DataServersConfig | undefined;
|
|
94
|
+
export const useContainers: (resourceId: string, serverKeys?: string) => Record<DataServerKey, string[]> | undefined;
|
|
95
|
+
/** @deprecated Use "useCreateContainerUri" instead */
|
|
48
96
|
export function useCreateContainer(resourceId: any): undefined;
|
|
49
|
-
export
|
|
97
|
+
export const useDataModels: () => Record<string, DataModel> | undefined;
|
|
98
|
+
export const useCreateContainerUri: () => (resourceId: string) => string | undefined;
|
|
50
99
|
/**
|
|
51
100
|
* @example
|
|
52
101
|
* <Show>
|
|
@@ -61,34 +110,21 @@ export function useDataModels(): undefined;
|
|
|
61
110
|
* </FilterHandler>
|
|
62
111
|
* </Show>
|
|
63
112
|
*/
|
|
64
|
-
export function FilterHandler({
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
}:
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
groupLabel,
|
|
81
|
-
groupHeader,
|
|
82
|
-
filterProperty,
|
|
83
|
-
...otherProps
|
|
84
|
-
}: {
|
|
85
|
-
[x: string]: any;
|
|
86
|
-
children: any;
|
|
87
|
-
groupReference: any;
|
|
88
|
-
groupLabel: any;
|
|
89
|
-
groupHeader: any;
|
|
90
|
-
filterProperty: any;
|
|
91
|
-
}): import('react/jsx-runtime').JSX.Element;
|
|
92
|
-
export function ReificationArrayInput(props: any): import('react/jsx-runtime').JSX.Element;
|
|
113
|
+
export function FilterHandler({ children, record, filter, source, ...otherProps }: {
|
|
114
|
+
[x: string]: any;
|
|
115
|
+
children: any;
|
|
116
|
+
record: any;
|
|
117
|
+
filter: any;
|
|
118
|
+
source: any;
|
|
119
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
120
|
+
export function GroupedReferenceHandler({ children, groupReference, groupLabel, groupHeader, filterProperty, ...otherProps }: {
|
|
121
|
+
[x: string]: any;
|
|
122
|
+
children: any;
|
|
123
|
+
groupReference: any;
|
|
124
|
+
groupLabel: any;
|
|
125
|
+
groupHeader: any;
|
|
126
|
+
filterProperty: any;
|
|
127
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
128
|
+
export function ReificationArrayInput(props: any): import("react/jsx-runtime").JSX.Element;
|
|
93
129
|
|
|
94
130
|
//# sourceMappingURL=index.d.ts.map
|
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 || 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;
|
|
@@ -1199,25 +1221,26 @@ var $e5a0eacd756fd1d5$export$2e2bcd8739ae039 = $e5a0eacd756fd1d5$var$useDataMode
|
|
|
1199
1221
|
|
|
1200
1222
|
|
|
1201
1223
|
|
|
1202
|
-
const $
|
|
1203
|
-
|
|
1204
|
-
const dataProvider = (0, $fj9kP$useContext)((0, $fj9kP$DataProviderContext));
|
|
1224
|
+
const $4daf4cf698ee4eed$var$useDataServers = ()=>{
|
|
1225
|
+
const dataProvider = (0, $fj9kP$useDataProvider)();
|
|
1205
1226
|
const [dataServers, setDataServers] = (0, $fj9kP$useState)();
|
|
1206
1227
|
(0, $fj9kP$useEffect)(()=>{
|
|
1207
|
-
dataProvider.getDataServers().then((results)=>
|
|
1228
|
+
dataProvider.getDataServers().then((results)=>{
|
|
1229
|
+
setDataServers(results);
|
|
1230
|
+
});
|
|
1208
1231
|
}, [
|
|
1209
1232
|
dataProvider,
|
|
1210
1233
|
setDataServers
|
|
1211
1234
|
]);
|
|
1212
1235
|
return dataServers;
|
|
1213
1236
|
};
|
|
1214
|
-
var $
|
|
1237
|
+
var $4daf4cf698ee4eed$export$2e2bcd8739ae039 = $4daf4cf698ee4eed$var$useDataServers;
|
|
1215
1238
|
|
|
1216
1239
|
|
|
1217
1240
|
|
|
1218
1241
|
const $586fa0ea9d02fa12$var$useContainers = (resourceId, serverKeys = "@all")=>{
|
|
1219
1242
|
const dataModel = (0, $e5a0eacd756fd1d5$export$2e2bcd8739ae039)(resourceId);
|
|
1220
|
-
const dataServers = (0, $
|
|
1243
|
+
const dataServers = (0, $4daf4cf698ee4eed$export$2e2bcd8739ae039)();
|
|
1221
1244
|
const [containers, setContainers] = (0, $fj9kP$useState)();
|
|
1222
1245
|
(0, $fj9kP$useEffect)(()=>{
|
|
1223
1246
|
if (dataModel && dataServers) setContainers((0, $15b841e67a1ba752$export$2e2bcd8739ae039)(dataModel.types, serverKeys, dataServers));
|
|
@@ -1236,10 +1259,10 @@ var $586fa0ea9d02fa12$export$2e2bcd8739ae039 = $586fa0ea9d02fa12$var$useContaine
|
|
|
1236
1259
|
|
|
1237
1260
|
|
|
1238
1261
|
|
|
1239
|
-
const $
|
|
1262
|
+
const $7d9911a250866af6$var$findCreateContainerWithTypes = (types, createServerKey, dataServers)=>{
|
|
1240
1263
|
const containers = [];
|
|
1241
|
-
|
|
1242
|
-
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)=>{
|
|
1243
1266
|
const containerUri = (0, $fj9kP$urljoin)(dataServers[createServerKey].baseUrl, path);
|
|
1244
1267
|
if (!containers.includes(containerUri)) containers.push(containerUri);
|
|
1245
1268
|
});
|
|
@@ -1248,13 +1271,13 @@ const $a6f9067f89a63589$var$findCreateContainerWithTypes = (types, createServerK
|
|
|
1248
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.`);
|
|
1249
1272
|
return containers[0];
|
|
1250
1273
|
};
|
|
1251
|
-
var $
|
|
1274
|
+
var $7d9911a250866af6$export$2e2bcd8739ae039 = $7d9911a250866af6$var$findCreateContainerWithTypes;
|
|
1252
1275
|
|
|
1253
1276
|
|
|
1254
1277
|
|
|
1255
|
-
const $7bd037d7ec9d51f8$var$useCreateContainer = (resourceId)=>{
|
|
1278
|
+
/** @deprecated Use "useCreateContainerUri" instead */ const $7bd037d7ec9d51f8$var$useCreateContainer = (resourceId)=>{
|
|
1256
1279
|
const dataModel = (0, $e5a0eacd756fd1d5$export$2e2bcd8739ae039)(resourceId);
|
|
1257
|
-
const dataServers = (0, $
|
|
1280
|
+
const dataServers = (0, $4daf4cf698ee4eed$export$2e2bcd8739ae039)();
|
|
1258
1281
|
const [createContainer, setCreateContainer] = (0, $fj9kP$useState)();
|
|
1259
1282
|
(0, $fj9kP$useEffect)(()=>{
|
|
1260
1283
|
if (dataModel && dataServers) {
|
|
@@ -1262,10 +1285,10 @@ const $7bd037d7ec9d51f8$var$useCreateContainer = (resourceId)=>{
|
|
|
1262
1285
|
const [serverKey, path] = Object.entries(dataModel.create.container)[0];
|
|
1263
1286
|
if (!serverKey || !dataServers[serverKey]) throw new Error(`Wrong key for the dataModel.create.container config of resource ${resourceId}`);
|
|
1264
1287
|
setCreateContainer((0, $fj9kP$urljoin)(dataServers[serverKey].baseUrl, path));
|
|
1265
|
-
} else if (dataModel.create?.server) setCreateContainer((0, $
|
|
1288
|
+
} else if (dataModel.create?.server) setCreateContainer((0, $7d9911a250866af6$export$2e2bcd8739ae039)(dataModel.types, dataModel.create?.server, dataServers));
|
|
1266
1289
|
else {
|
|
1267
1290
|
const defaultServerKey = (0, $8326b88c1a913ca9$export$2e2bcd8739ae039)("default", dataServers);
|
|
1268
|
-
setCreateContainer((0, $
|
|
1291
|
+
setCreateContainer((0, $7d9911a250866af6$export$2e2bcd8739ae039)(dataModel.types, defaultServerKey, dataServers));
|
|
1269
1292
|
}
|
|
1270
1293
|
}
|
|
1271
1294
|
}, [
|
|
@@ -1281,19 +1304,50 @@ var $7bd037d7ec9d51f8$export$2e2bcd8739ae039 = $7bd037d7ec9d51f8$var$useCreateCo
|
|
|
1281
1304
|
|
|
1282
1305
|
|
|
1283
1306
|
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1307
|
+
|
|
1308
|
+
|
|
1309
|
+
|
|
1310
|
+
|
|
1311
|
+
const $3a9656756670cb78$var$useDataModels = ()=>{
|
|
1312
|
+
const dataProvider = (0, $fj9kP$useDataProvider)();
|
|
1287
1313
|
const [dataModels, setDataModels] = (0, $fj9kP$useState)();
|
|
1288
1314
|
(0, $fj9kP$useEffect)(()=>{
|
|
1289
|
-
dataProvider.getDataModels().then((results)=>
|
|
1315
|
+
dataProvider.getDataModels().then((results)=>{
|
|
1316
|
+
setDataModels(results);
|
|
1317
|
+
});
|
|
1290
1318
|
}, [
|
|
1291
1319
|
dataProvider,
|
|
1292
1320
|
setDataModels
|
|
1293
1321
|
]);
|
|
1294
1322
|
return dataModels;
|
|
1295
1323
|
};
|
|
1296
|
-
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
|
+
|
|
1297
1351
|
|
|
1298
1352
|
|
|
1299
1353
|
|
|
@@ -1490,5 +1544,5 @@ var $6844bbce0ad66151$export$2e2bcd8739ae039 = $6844bbce0ad66151$var$Reification
|
|
|
1490
1544
|
|
|
1491
1545
|
|
|
1492
1546
|
|
|
1493
|
-
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};
|
|
1494
1548
|
//# sourceMappingURL=index.es.js.map
|