@semapps/semantic-data-provider 0.6.4 → 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.d.ts CHANGED
@@ -1,52 +1,101 @@
1
- export function buildBlankNodesQuery(
2
- blankNodes: any,
3
- baseQuery: any,
4
- ontologies: any
5
- ):
6
- | {
7
- construct: import('@rdfjs/types').Quad[] | null;
8
- where: {
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
- export function buildSparqlQuery({
18
- containers,
19
- params,
20
- dataModel,
21
- ontologies
22
- }: {
23
- containers: any;
24
- params: any;
25
- dataModel: any;
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
- getList: (...arg: any[]) => Promise<any>;
30
- getMany: (...arg: any[]) => Promise<any>;
31
- getManyReference: (...arg: any[]) => Promise<any>;
32
- getOne: (...arg: any[]) => Promise<any>;
33
- create: (...arg: any[]) => Promise<any>;
34
- update: (...arg: any[]) => Promise<any>;
35
- updateMany: () => never;
36
- delete: (...arg: any[]) => Promise<any>;
37
- deleteMany: (...arg: any[]) => Promise<any>;
38
- getDataModels: (...arg: any[]) => Promise<any>;
39
- getDataServers: (...arg: any[]) => Promise<any>;
40
- getLocalDataServers: () => any;
41
- fetch: (...arg: any[]) => Promise<any>;
42
- refreshConfig: () => Promise<any>;
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 function useDataServers(): undefined;
47
- export const useContainers: (resourceId: string, serverKeys?: string) => Record<string, string[]> | undefined;
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 function useDataModels(): undefined;
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
- children,
66
- record,
67
- filter,
68
- source,
69
- ...otherProps
70
- }: {
71
- [x: string]: any;
72
- children: any;
73
- record: any;
74
- filter: any;
75
- source: any;
76
- }): import('react/jsx-runtime').JSX.Element;
77
- export function GroupedReferenceHandler({
78
- children,
79
- groupReference,
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
@@ -1 +1 @@
1
- {"mappings":"AiByCA;;;;;;;;;EAoCC;AE7DD;;;;;QA4JC;AW7JD;;;;;;;;;;;;;;;EAmDC;AC3DD,sFA2CC;AC/CD,OAAA,MAAM,2BAA4B,MAAM,QAUvC,CAAC;ACVF,4CAUC;ACPD,OAAA,MAAM,4BAA6B,MAAM,8DAYxC,CAAC;AEXF,+DAuBC;AC3BD,2CAUC;ACXD;;;;;;;;;;;;;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.js","packages/semantic-data-provider/src/src/dataProvider/utils/fetchContainers.js","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.js","packages/semantic-data-provider/src/src/hooks/useContainers.ts","packages/semantic-data-provider/src/src/dataProvider/utils/findCreateContainerWithTypes.js","packages/semantic-data-provider/src/src/hooks/useCreateContainer.js","packages/semantic-data-provider/src/src/hooks/useDataModels.js","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,"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 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"}
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 $db0064b52a991847$export$2e2bcd8739ae039 = $db0064b52a991847$var$arrayOf;
318
+ var $cc8adac4b83414eb$export$2e2bcd8739ae039 = $cc8adac4b83414eb$var$arrayOf;
321
319
 
322
320
 
323
- const $3aeefa4731ce9a96$export$26b9f946b448f23e = (type, resource)=>{
324
- const resourceType = resource.type || resource["@type"];
325
- return Array.isArray(resourceType) ? resourceType.includes(type) : resourceType === type;
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 $3aeefa4731ce9a96$var$fetchContainers = async (containers, resourceId, params, config)=>{
328
- const { httpClient: httpClient, jsonContext: jsonContext } = config;
329
- // Transform in an containerUri:serverKey object
330
- const containersServers = Object.keys(containers).reduce((acc, serverKey)=>({
331
- ...acc,
332
- ...Object.fromEntries(containers[serverKey].map((containerUri)=>[
333
- containerUri,
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 (json["@context"] !== jsonContext) return (0, $fj9kP$jsonld).compact(json, jsonContext);
341
- return json;
334
+ if (jsonResponse["@context"] !== jsonContext) return (0, $fj9kP$jsonld).compact(jsonResponse, jsonContext);
335
+ return jsonResponse;
342
336
  }).then((json)=>{
343
- if ($3aeefa4731ce9a96$export$26b9f946b448f23e("ldp:Container", json)) return (0, $db0064b52a991847$export$2e2bcd8739ae039)(json["ldp:contains"]).map((resource)=>({
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
- let results = await Promise.all(fetchPromises);
351
- if (results.length === 0) return {
352
- data: [],
353
- total: 0
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
- if (params.filter) {
363
- // For SPARQL queries, we use "a" to filter types, but in containers it must be "type"
364
- if (params.filter.a) {
365
- params.filter.type = params.filter.a;
366
- delete params.filter.a;
367
- }
368
- if (Object.keys(params.filter).length > 0) returnData = returnData.filter((resource)=>{
369
- return Object.entries(params.filter).every(([k, v])=>{
370
- if (k == "q") return Object.entries(resource).some(([kr, vr])=>{
371
- if (!(0, $fj9kP$isobject)(vr)) {
372
- const arrayValues = Array.isArray(vr) ? vr : [
373
- vr
374
- ];
375
- return arrayValues.some((va)=>{
376
- if (typeof va === "string" || va instanceof String) return va.toLowerCase().normalize("NFD").includes(v.toLowerCase().normalize("NFD"));
377
- });
378
- }
379
- return false;
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 (params.sort) returnData = returnData.sort((a, b)=>{
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
- if (params.pagination) returnData = returnData.slice((params.pagination.page - 1) * params.pagination.perPage, params.pagination.page * params.pagination.perPage);
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: returnData,
396
- total: results.length
417
+ data: resources,
418
+ total: total
397
419
  };
398
420
  };
399
- var $3aeefa4731ce9a96$export$2e2bcd8739ae039 = $3aeefa4731ce9a96$var$fetchContainers;
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, $3aeefa4731ce9a96$export$2e2bcd8739ae039)(containers, resourceId, params, config);
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 $11b469d0a927fb46$var$useDataServers = ()=>{
1203
- // Get the raw data provider, since useDataProvider returns a wrapper
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)=>setDataServers(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 $11b469d0a927fb46$export$2e2bcd8739ae039 = $11b469d0a927fb46$var$useDataServers;
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, $11b469d0a927fb46$export$2e2bcd8739ae039)();
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 $a6f9067f89a63589$var$findCreateContainerWithTypes = (types, createServerKey, dataServers)=>{
1262
+ const $7d9911a250866af6$var$findCreateContainerWithTypes = (types, createServerKey, dataServers)=>{
1240
1263
  const containers = [];
1241
- if (dataServers[createServerKey].containers?.[createServerKey] && Object.keys(dataServers[createServerKey].containers[createServerKey]).length > 0) Object.keys(dataServers[createServerKey].containers[createServerKey]).forEach((type)=>{
1242
- if (types.includes(type)) dataServers[createServerKey].containers[createServerKey][type].map((path)=>{
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 $a6f9067f89a63589$export$2e2bcd8739ae039 = $a6f9067f89a63589$var$findCreateContainerWithTypes;
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, $11b469d0a927fb46$export$2e2bcd8739ae039)();
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, $a6f9067f89a63589$export$2e2bcd8739ae039)(dataModel.types, dataModel.create?.server, dataServers));
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, $a6f9067f89a63589$export$2e2bcd8739ae039)(dataModel.types, defaultServerKey, dataServers));
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
- const $349fed82907088e5$var$useDataModels = ()=>{
1285
- // Get the raw data provider, since useDataProvider returns a wrapper
1286
- const dataProvider = (0, $fj9kP$useContext)((0, $fj9kP$DataProviderContext));
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)=>setDataModels(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 $349fed82907088e5$export$2e2bcd8739ae039 = $349fed82907088e5$var$useDataModels;
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, $349fed82907088e5$export$2e2bcd8739ae039 as useDataModels, $11b469d0a927fb46$export$2e2bcd8739ae039 as useDataServers, $406574efa35ec6f1$export$2e2bcd8739ae039 as FilterHandler, $1d8c1cbe606a94ae$export$2e2bcd8739ae039 as GroupedReferenceHandler, $6844bbce0ad66151$export$2e2bcd8739ae039 as ReificationArrayInput};
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