@semapps/activitypub-components 0.4.0-alpha.22 → 0.4.0-alpha.25
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.map +1 -1
- package/dist/index.es.js.map +1 -1
- package/package.json +2 -2
package/dist/index.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.js","sources":["../src/components/CollectionList.js","../src/components/ReferenceCollectionField.js","../src/constants.js","../src/hooks/useCollection.js","../src/hooks/useInbox.js","../src/hooks/useOutbox.js","../src/hooks/useWebfinger.js"],"sourcesContent":["import React from 'react';\nimport { useGetOne, LinearProgress } from 'react-admin';\nimport { ReferenceArrayField } from '@semapps/semantic-data-provider';\n\nconst CollectionList = ({ collectionUrl, resource, children, ...rest }) => {\n if (React.Children.count(children) !== 1) {\n throw new Error('<CollectionList> only accepts a single child');\n }\n\n // TODO use a simple fetch call, as the resource is not good and it is useless\n const { data: collection, loading } = useGetOne(resource, collectionUrl, { enabled: !!collectionUrl });\n\n if (loading) {\n return (\n <div style={{ marginTop: 8 }}>\n <LinearProgress />\n </div>\n );\n } else if (!collection) {\n return null;\n }\n\n return (\n <ReferenceArrayField reference={resource} record={collection} source=\"items\" {...rest}>\n {children}\n </ReferenceArrayField>\n );\n};\n\nexport default CollectionList;\n","import React from 'react';\nimport CollectionList from './CollectionList';\n\nconst ReferenceCollectionField = ({ source, record, reference, children, ...rest }) => {\n if (React.Children.count(children) !== 1) {\n throw new Error('<ReferenceCollectionField> only accepts a single child');\n }\n\n if (!record || !record[source]) return null;\n\n return (\n <CollectionList resource={reference} collectionUrl={record[source]} {...rest}>\n {children}\n </CollectionList>\n );\n};\n\nReferenceCollectionField.defaultProps = {\n addLabel: true\n};\n\nexport default ReferenceCollectionField;\n","export const ACTIVITY_TYPES = {\n ACCEPT: 'Accept',\n ADD: 'Add',\n ANNOUNCE: 'Announce',\n ARRIVE: 'Arrive',\n BLOCK: 'Block',\n CREATE: 'Create',\n DELETE: 'Delete',\n DISLIKE: 'Dislike',\n FLAG: 'Flag',\n FOLLOW: 'Follow',\n IGNORE: 'Ignore',\n INVITE: 'Invite',\n JOIN: 'Join',\n LEAVE: 'Leave',\n LIKE: 'Like',\n LISTEN: 'Listen',\n MOVE: 'Move',\n OFFER: 'Offer',\n QUESTION: 'Question',\n REJECT: 'Reject',\n READ: 'Read',\n REMOVE: 'Remove',\n TENTATIVE_REJECT: 'TentativeReject',\n TENTATIVE_ACCEPT: 'TentativeAccept',\n TRAVAL: 'Travel',\n UNDO: 'Undo',\n UPDATE: 'Update',\n VIEW: 'View'\n};\n\nexport const ACTOR_TYPES = {\n APPLICATION: 'Application',\n GROUP: 'Group',\n ORGANIZATION: 'Organization',\n PERSON: 'Person',\n SERVICE: 'Service'\n};\n\nexport const OBJECT_TYPES = {\n ARTICLE: 'Article',\n AUDIO: 'Audio',\n DOCUMENT: 'Document',\n EVENT: 'Event',\n IMAGE: 'Image',\n NOTE: 'Note',\n PAGE: 'Page',\n PLACE: 'Place',\n PROFILE: 'Profile',\n RELATIONSHIP: 'Relationship',\n TOMBSTONE: 'Tombstone',\n VIDEO: 'Video'\n};\n\nexport const PUBLIC_URI = 'https://www.w3.org/ns/activitystreams#Public';\n","import { useCallback, useMemo, useState, useEffect } from 'react';\nimport { useGetIdentity, fetchUtils } from 'react-admin';\n\nconst useCollection = predicateOrUrl => {\n const { identity } = useGetIdentity();\n const [items, setItems] = useState([]);\n const [loading, setLoading] = useState(false);\n const [loaded, setLoaded] = useState(false);\n const [error, setError] = useState(false);\n\n const collectionUrl = useMemo(() => {\n if (predicateOrUrl) {\n if (predicateOrUrl.startsWith('http')) {\n return predicateOrUrl;\n } else if (identity?.webIdData) {\n return identity?.webIdData?.[predicateOrUrl];\n }\n }\n }, [identity, predicateOrUrl]);\n\n const fetch = useCallback(async () => {\n if (!collectionUrl) return;\n\n setLoading(true);\n const headers = new Headers({\n Accept: 'application/ld+json',\n Authorization: 'Bearer ' + localStorage.getItem('token')\n });\n\n fetchUtils\n .fetchJson(collectionUrl, { headers })\n .then(({ json }) => {\n if (json && json.items) {\n setItems(json.items);\n } else {\n setItems([]);\n }\n setError(false);\n setLoaded(true);\n setLoading(false);\n })\n .catch(() => {\n setError(true);\n setLoaded(true);\n setLoading(false);\n });\n }, [setItems, setLoaded, setLoading, setError, collectionUrl]);\n\n useEffect(() => {\n if (!loading && !loaded && !error) {\n fetch();\n }\n }, [fetch, loading, loaded, error]);\n\n const addItem = useCallback(\n item => {\n setItems(oldItems => [...oldItems, item]);\n },\n [setItems]\n );\n\n const removeItem = useCallback(\n itemId => {\n setItems(oldItems => oldItems.filter(item => typeof item === 'string' ? item !== itemId : item.id !== itemId));\n },\n [setItems]\n );\n\n return { items, loading, loaded, error, refetch: fetch, addItem, removeItem, url: collectionUrl };\n};\n\nexport default useCollection;\n","import { useCallback, useMemo } from 'react';\nimport { useGetIdentity, fetchUtils } from 'react-admin';\nimport { buildDereferenceQuery } from '@semapps/semantic-data-provider';\n\nconst useInbox = () => {\n const { identity } = useGetIdentity();\n\n const inboxUrl = useMemo(() => {\n if (identity?.webIdData) {\n return identity?.webIdData?.inbox;\n }\n }, [identity]);\n\n const sparqlEndpoint = useMemo(() => {\n if (identity?.webIdData) {\n return identity?.webIdData?.endpoints?.['void:sparqlEndpoint'];\n }\n }, [identity]);\n\n const fetch = useCallback(\n async ({ filters }) => {\n if (!sparqlEndpoint || !inboxUrl) return;\n\n const token = localStorage.getItem('token');\n const dereferenceQuery = buildDereferenceQuery(['as:object']);\n\n let filtersWhereQuery = '';\n if (filters) {\n Object.keys(filters).forEach(predicate => {\n if (filters[predicate]) {\n const object = filters[predicate].startsWith('http') ? `<${filters[predicate]}>` : filters[predicate];\n filtersWhereQuery += `?s1 ${predicate} ${object} .`;\n }\n });\n }\n\n const query = `\n PREFIX as: <https://www.w3.org/ns/activitystreams#>\n CONSTRUCT {\n ?s1 ?p1 ?o1 .\n ${dereferenceQuery.construct}\n }\n WHERE {\n <${inboxUrl}> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n FILTER( (isIRI(?s1)) ) .\n ${filtersWhereQuery}\n ${dereferenceQuery.where}\n }\n `;\n\n const { json } = await fetchUtils.fetchJson(sparqlEndpoint, {\n method: 'POST',\n body: query,\n headers: new Headers({\n Accept: 'application/ld+json',\n Authorization: 'Bearer ' + token\n })\n });\n\n if (json['@graph']) {\n return json['@graph'];\n } else {\n return null;\n }\n },\n [sparqlEndpoint, inboxUrl]\n );\n\n return { fetch, url: inboxUrl, owner: identity?.id };\n};\n\nexport default useInbox;\n","import { useCallback, useMemo } from 'react';\nimport { useGetIdentity, fetchUtils } from 'react-admin';\nimport { buildDereferenceQuery } from '@semapps/semantic-data-provider';\n\nconst useOutbox = () => {\n const { identity } = useGetIdentity();\n\n const outboxUrl = useMemo(() => {\n if (identity?.webIdData) {\n return identity?.webIdData?.outbox;\n }\n }, [identity]);\n\n const sparqlEndpoint = useMemo(() => {\n if (identity?.webIdData) {\n return identity?.webIdData?.endpoints?.['void:sparqlEndpoint'];\n }\n }, [identity]);\n\n // Post an activity to the logged user's outbox and return its URI\n const post = useCallback(\n async activity => {\n const token = localStorage.getItem('token');\n try {\n const { headers } = await fetchUtils.fetchJson(outboxUrl, {\n method: 'POST',\n body: JSON.stringify({\n '@context': 'https://www.w3.org/ns/activitystreams',\n ...activity\n }),\n headers: new Headers({\n 'Content-Type': 'application/ld+json',\n Authorization: `Bearer ${token}`\n })\n });\n return headers.get('Location');\n } catch (e) {\n return false;\n }\n },\n [outboxUrl]\n );\n\n const fetch = useCallback(async () => {\n if (!sparqlEndpoint || !outboxUrl) return;\n\n const token = localStorage.getItem('token');\n const dereferenceQuery = buildDereferenceQuery(['as:object']);\n\n const query = `\n PREFIX as: <https://www.w3.org/ns/activitystreams#>\n CONSTRUCT {\n ?s1 ?p1 ?o1 .\n ${dereferenceQuery.construct}\n }\n WHERE {\n <${outboxUrl}> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n ${dereferenceQuery.where}\n }\n `;\n\n const { json } = await fetchUtils.fetchJson(sparqlEndpoint, {\n method: 'POST',\n body: query,\n headers: new Headers({\n Accept: 'application/ld+json',\n Authorization: 'Bearer ' + token\n })\n });\n\n if (json['@graph']) {\n return json['@graph'];\n } else {\n return null;\n }\n }, [sparqlEndpoint, outboxUrl]);\n\n return { post, fetch, url: outboxUrl, owner: identity?.id };\n};\n\nexport default useOutbox;\n","import { useCallback } from 'react';\nimport { fetchUtils } from 'react-admin';\n\nconst useWebfinger = () => {\n // Post an activity to the logged user's outbox and return its URI\n const fetch = useCallback(async id => {\n // eslint-disable-next-line\n const [_, username, host] = id.split('@');\n if (host) {\n const protocol = host.includes(':') ? 'http' : 'https'; // If the host has a port, we are most likely on localhost\n const webfingerUrl = `${protocol}://${host}/.well-known/webfinger?resource=acct:${username}@${host}`;\n\n try {\n const { json } = await fetchUtils.fetchJson(webfingerUrl);\n\n const link = json.links.find(l => l.type === 'application/activity+json');\n\n return link ? link.href : null;\n } catch (e) {\n return null;\n }\n } else {\n return null;\n }\n }, []);\n\n return { fetch };\n};\n\nexport default useWebfinger;\n"],"names":["CollectionList","collectionUrl","resource","children","rest","React","Children","count","Error","useGetOne","enabled","collection","data","loading","style","marginTop","LinearProgress","ReferenceArrayField","reference","record","source","ReferenceCollectionField","defaultProps","addLabel","ACCEPT","ADD","ANNOUNCE","ARRIVE","BLOCK","CREATE","DELETE","DISLIKE","FLAG","FOLLOW","IGNORE","INVITE","JOIN","LEAVE","LIKE","LISTEN","MOVE","OFFER","QUESTION","REJECT","READ","REMOVE","TENTATIVE_REJECT","TENTATIVE_ACCEPT","TRAVAL","UNDO","UPDATE","VIEW","APPLICATION","GROUP","ORGANIZATION","PERSON","SERVICE","ARTICLE","AUDIO","DOCUMENT","EVENT","IMAGE","NOTE","PAGE","PLACE","PROFILE","RELATIONSHIP","TOMBSTONE","VIDEO","predicateOrUrl","identity","useGetIdentity","useState","items","setItems","setLoading","loaded","setLoaded","error","setError","useMemo","startsWith","webIdData","_identity$webIdData","fetch","useCallback","headers","Headers","Accept","Authorization","localStorage","getItem","fetchUtils","fetchJson","then","json","useEffect","addItem","item","oldItems","removeItem","itemId","filter","id","refetch","url","inboxUrl","inbox","sparqlEndpoint","_identity$webIdData2","endpoints","_identity$webIdData2$","filters","token","dereferenceQuery","buildDereferenceQuery","filtersWhereQuery","Object","keys","forEach","predicate","object","query","construct","where","method","body","owner","outboxUrl","outbox","post","activity","JSON","stringify","get","split","username","host","protocol","includes","webfingerUrl","link","links","find","l","type","href"],"mappings":"yoGAIMA,EAAiB,gBAAGC,IAAAA,cAAeC,IAAAA,SAAUC,IAAAA,SAAaC,YACvB,IAAnCC,UAAMC,SAASC,MAAMJ,SACjB,IAAIK,MAAM,sDAIoBC,YAAUP,EAAUD,EAAe,CAAES,UAAWT,IAAxEU,IAANC,cAAkBC,QAItBR,+BAAKS,MAAO,CAAEC,UAAW,IACvBV,wBAACW,wBAGKL,EAKVN,wBAACY,yBAAoBC,UAAWhB,EAAUiB,OAAQR,EAAYS,OAAO,SAAYhB,GAC9ED,GALI,mDChBLkB,EAA2B,gBAAGD,IAAAA,OAAQD,IAAAA,OAAQD,IAAAA,UAAWf,IAAAA,SAAaC,YACnC,IAAnCC,UAAMC,SAASC,MAAMJ,SACjB,IAAIK,MAAM,iEAGbW,GAAWA,EAAOC,GAGrBf,wBAACL,KAAeE,SAAUgB,EAAWjB,cAAekB,EAAOC,IAAahB,GACrED,GAJkC,MASzCkB,EAAyBC,aAAe,CACtCC,UAAU,0BClBkB,CAC5BC,OAAQ,SACRC,IAAK,MACLC,SAAU,WACVC,OAAQ,SACRC,MAAO,QACPC,OAAQ,SACRC,OAAQ,SACRC,QAAS,UACTC,KAAM,OACNC,OAAQ,SACRC,OAAQ,SACRC,OAAQ,SACRC,KAAM,OACNC,MAAO,QACPC,KAAM,OACNC,OAAQ,SACRC,KAAM,OACNC,MAAO,QACPC,SAAU,WACVC,OAAQ,SACRC,KAAM,OACNC,OAAQ,SACRC,iBAAkB,kBAClBC,iBAAkB,kBAClBC,OAAQ,SACRC,KAAM,OACNC,OAAQ,SACRC,KAAM,4BAGmB,CACzBC,YAAa,cACbC,MAAO,QACPC,aAAc,eACdC,OAAQ,SACRC,QAAS,yDAGiB,CAC1BC,QAAS,UACTC,MAAO,QACPC,SAAU,WACVC,MAAO,QACPC,MAAO,QACPC,KAAM,OACNC,KAAM,OACNC,MAAO,QACPC,QAAS,UACTC,aAAc,eACdC,UAAW,YACXC,MAAO,4BAGiB,wGCnDJ,SAAAC,OACZC,EAAaC,mBAAbD,aACkBE,WAAS,OAA5BC,OAAOC,WACgBF,YAAS,MAAhC3D,OAAS8D,WACYH,YAAS,MAA9BI,OAAQC,WACWL,YAAS,MAA5BM,OAAOC,OAER9E,EAAgB+E,WAAQ,cACxBX,EAAgB,IACdA,EAAeY,WAAW,eACrBZ,QACF,GAAIC,MAAAA,GAAAA,EAAUY,iBACZZ,MAAAA,aAAAA,EAAUY,8BAAVC,EAAsBd,MAGhC,CAACC,EAAUD,IAERe,EAAQC,yCAAY,sGACnBpF,mDAEL0E,GAAW,GACLW,EAAU,IAAIC,QAAQ,CAC1BC,OAAQ,sBACRC,cAAe,UAAYC,aAAaC,QAAQ,WAGlDC,aACGC,UAAU5F,EAAe,CAAEqF,QAAAA,IAC3BQ,MAAK,gBAAGC,IAAAA,KACHA,GAAQA,EAAKtB,MACfC,EAASqB,EAAKtB,OAEdC,EAAS,IAEXK,GAAS,GACTF,GAAU,GACVF,GAAW,aAEN,WACLI,GAAS,GACTF,GAAU,GACVF,GAAW,iDAEd,CAACD,EAAUG,EAAWF,EAAYI,EAAU9E,IAE/C+F,aAAU,WACHnF,GAAY+D,GAAWE,GAC1BM,MAED,CAACA,EAAOvE,EAAS+D,EAAQE,QAEtBmB,EAAUZ,eACd,SAAAa,GACExB,GAAS,SAAAyB,qBAAgBA,IAAUD,SAErC,CAACxB,IAGG0B,EAAaf,eACjB,SAAAgB,GACE3B,GAAS,SAAAyB,UAAYA,EAASG,QAAO,SAAAJ,SAAwB,iBAATA,EAAoBA,IAASG,EAASH,EAAKK,KAAOF,UAExG,CAAC3B,UAGI,CAAED,MAAAA,EAAO5D,QAAAA,EAAS+D,OAAAA,EAAQE,MAAAA,EAAO0B,QAASpB,EAAOa,QAAAA,EAASG,WAAAA,EAAYK,IAAKxG,qBChEnE,eACPqE,EAAaC,mBAAbD,SAEFoC,EAAW1B,WAAQ,oBACnBV,MAAAA,GAAAA,EAAUY,iBACLZ,MAAAA,aAAAA,EAAUY,8BAAVC,EAAqBwB,QAE7B,CAACrC,IAEEsC,EAAiB5B,WAAQ,sBACzBV,MAAAA,GAAAA,EAAUY,iBACLZ,MAAAA,aAAAA,EAAUY,kCAAV2B,EAAqBC,8BAArBC,EAAiC,yBAEzC,CAACzC,UAoDG,CAAEc,MAlDKC,0DACZ,mHAAS2B,IAAAA,QACFJ,GAAmBF,0DAElBO,EAAQvB,aAAaC,QAAQ,SAC7BuB,EAAmBC,wBAAsB,CAAC,cAE5CC,EAAoB,GACpBJ,GACFK,OAAOC,KAAKN,GAASO,SAAQ,SAAAC,MACvBR,EAAQQ,GAAY,KAChBC,EAAST,EAAQQ,GAAWvC,WAAW,mBAAc+B,EAAQQ,QAAgBR,EAAQQ,GAC3FJ,iBAA4BI,cAAaC,YAKzCC,mIAIAR,EAAiBS,8DAGhBjB,sGAGDU,yBACAF,EAAiBU,uCAIAhC,aAAWC,UAAUe,EAAgB,CAC1DiB,OAAQ,OACRC,KAAMJ,EACNpC,QAAS,IAAIC,QAAQ,CACnBC,OAAQ,sBACRC,cAAe,UAAYwB,4BALvBlB,IAAAA,MASC,oDACAA,EAAK,4CAEL,wGAGX,CAACa,EAAgBF,IAGHD,IAAKC,EAAUqB,MAAOzD,MAAAA,SAAAA,EAAUiC,uBCjEhC,eACRjC,EAAaC,mBAAbD,SAEF0D,EAAYhD,WAAQ,oBACpBV,MAAAA,GAAAA,EAAUY,iBACLZ,MAAAA,aAAAA,EAAUY,8BAAVC,EAAqB8C,SAE7B,CAAC3D,IAEEsC,EAAiB5B,WAAQ,sBACzBV,MAAAA,GAAAA,EAAUY,iBACLZ,MAAAA,aAAAA,EAAUY,kCAAV2B,EAAqBC,8BAArBC,EAAiC,yBAEzC,CAACzC,UA6DG,CAAE4D,KA1DI7C,0DACX,WAAM8C,oGACElB,EAAQvB,aAAaC,QAAQ,2BAEPC,aAAWC,UAAUmC,EAAW,CACxDH,OAAQ,OACRC,KAAMM,KAAKC,wBACG,yCACTF,IAEL7C,QAAS,IAAIC,QAAQ,gBACH,sBAChBE,+BAAyBwB,8BARrB3B,IAAAA,0BAWDA,EAAQgD,IAAI,uEAEZ,kHAGX,CAACN,IAsCY5C,MAnCDC,yCAAY,8GACnBuB,GAAmBoB,0DAElBf,EAAQvB,aAAaC,QAAQ,SAC7BuB,EAAmBC,wBAAsB,CAAC,cAE1CO,2HAIAR,EAAiBS,wDAGhBK,8DAEDd,EAAiBU,kCAIAhC,aAAWC,UAAUe,EAAgB,CAC1DiB,OAAQ,OACRC,KAAMJ,EACNpC,QAAS,IAAIC,QAAQ,CACnBC,OAAQ,sBACRC,cAAe,UAAYwB,2BALvBlB,IAAAA,MASC,oDACAA,EAAK,4CAEL,kDAER,CAACa,EAAgBoB,IAEEvB,IAAKuB,EAAWD,MAAOzD,MAAAA,SAAAA,EAAUiC,0BC3EpC,iBAuBZ,CAAEnB,MArBKC,0DAAY,WAAMkB,8GAEFA,EAAGgC,MAAM,cAA3BC,SAAUC,gCAEZC,EAAWD,EAAKE,SAAS,KAAO,OAAS,QACzCC,YAAkBF,gBAAcD,kDAA4CD,cAAYC,qBAGrE7C,aAAWC,UAAU+C,0BAApC7C,IAAAA,KAEF8C,EAAO9C,EAAK+C,MAAMC,MAAK,SAAAC,SAAgB,8BAAXA,EAAEC,0BAE7BJ,EAAOA,EAAKK,KAAO,iEAEnB,+DAGF,sHAER"}
|
|
1
|
+
{"version":3,"file":"index.cjs.js","sources":["../src/components/CollectionList.js","../src/components/ReferenceCollectionField.js","../src/constants.js","../src/hooks/useCollection.js","../src/hooks/useInbox.js","../src/hooks/useOutbox.js","../src/hooks/useWebfinger.js"],"sourcesContent":["import React from 'react';\nimport { useGetOne, LinearProgress } from 'react-admin';\nimport { ReferenceArrayField } from '@semapps/semantic-data-provider';\n\nconst CollectionList = ({ collectionUrl, resource, children, ...rest }) => {\n if (React.Children.count(children) !== 1) {\n throw new Error('<CollectionList> only accepts a single child');\n }\n\n // TODO use a simple fetch call, as the resource is not good and it is useless\n const { data: collection, loading } = useGetOne(resource, collectionUrl, { enabled: !!collectionUrl });\n\n if (loading) {\n return (\n <div style={{ marginTop: 8 }}>\n <LinearProgress />\n </div>\n );\n } else if (!collection) {\n return null;\n }\n\n return (\n <ReferenceArrayField reference={resource} record={collection} source=\"items\" {...rest}>\n {children}\n </ReferenceArrayField>\n );\n};\n\nexport default CollectionList;\n","import React from 'react';\nimport CollectionList from './CollectionList';\n\nconst ReferenceCollectionField = ({ source, record, reference, children, ...rest }) => {\n if (React.Children.count(children) !== 1) {\n throw new Error('<ReferenceCollectionField> only accepts a single child');\n }\n\n if (!record || !record[source]) return null;\n\n return (\n <CollectionList resource={reference} collectionUrl={record[source]} {...rest}>\n {children}\n </CollectionList>\n );\n};\n\nReferenceCollectionField.defaultProps = {\n addLabel: true\n};\n\nexport default ReferenceCollectionField;\n","export const ACTIVITY_TYPES = {\n ACCEPT: 'Accept',\n ADD: 'Add',\n ANNOUNCE: 'Announce',\n ARRIVE: 'Arrive',\n BLOCK: 'Block',\n CREATE: 'Create',\n DELETE: 'Delete',\n DISLIKE: 'Dislike',\n FLAG: 'Flag',\n FOLLOW: 'Follow',\n IGNORE: 'Ignore',\n INVITE: 'Invite',\n JOIN: 'Join',\n LEAVE: 'Leave',\n LIKE: 'Like',\n LISTEN: 'Listen',\n MOVE: 'Move',\n OFFER: 'Offer',\n QUESTION: 'Question',\n REJECT: 'Reject',\n READ: 'Read',\n REMOVE: 'Remove',\n TENTATIVE_REJECT: 'TentativeReject',\n TENTATIVE_ACCEPT: 'TentativeAccept',\n TRAVAL: 'Travel',\n UNDO: 'Undo',\n UPDATE: 'Update',\n VIEW: 'View'\n};\n\nexport const ACTOR_TYPES = {\n APPLICATION: 'Application',\n GROUP: 'Group',\n ORGANIZATION: 'Organization',\n PERSON: 'Person',\n SERVICE: 'Service'\n};\n\nexport const OBJECT_TYPES = {\n ARTICLE: 'Article',\n AUDIO: 'Audio',\n DOCUMENT: 'Document',\n EVENT: 'Event',\n IMAGE: 'Image',\n NOTE: 'Note',\n PAGE: 'Page',\n PLACE: 'Place',\n PROFILE: 'Profile',\n RELATIONSHIP: 'Relationship',\n TOMBSTONE: 'Tombstone',\n VIDEO: 'Video'\n};\n\nexport const PUBLIC_URI = 'https://www.w3.org/ns/activitystreams#Public';\n","import { useCallback, useMemo, useState, useEffect } from 'react';\nimport { useGetIdentity, fetchUtils } from 'react-admin';\n\nconst useCollection = predicateOrUrl => {\n const { identity } = useGetIdentity();\n const [items, setItems] = useState([]);\n const [loading, setLoading] = useState(false);\n const [loaded, setLoaded] = useState(false);\n const [error, setError] = useState(false);\n\n const collectionUrl = useMemo(() => {\n if (predicateOrUrl) {\n if (predicateOrUrl.startsWith('http')) {\n return predicateOrUrl;\n } else if (identity?.webIdData) {\n return identity?.webIdData?.[predicateOrUrl];\n }\n }\n }, [identity, predicateOrUrl]);\n\n const fetch = useCallback(async () => {\n if (!collectionUrl) return;\n\n setLoading(true);\n const headers = new Headers({\n Accept: 'application/ld+json',\n Authorization: 'Bearer ' + localStorage.getItem('token')\n });\n\n fetchUtils\n .fetchJson(collectionUrl, { headers })\n .then(({ json }) => {\n if (json && json.items) {\n setItems(json.items);\n } else {\n setItems([]);\n }\n setError(false);\n setLoaded(true);\n setLoading(false);\n })\n .catch(() => {\n setError(true);\n setLoaded(true);\n setLoading(false);\n });\n }, [setItems, setLoaded, setLoading, setError, collectionUrl]);\n\n useEffect(() => {\n if (!loading && !loaded && !error) {\n fetch();\n }\n }, [fetch, loading, loaded, error]);\n\n const addItem = useCallback(\n item => {\n setItems(oldItems => [...oldItems, item]);\n },\n [setItems]\n );\n\n const removeItem = useCallback(\n itemId => {\n setItems(oldItems => oldItems.filter(item => (typeof item === 'string' ? item !== itemId : item.id !== itemId)));\n },\n [setItems]\n );\n\n return { items, loading, loaded, error, refetch: fetch, addItem, removeItem, url: collectionUrl };\n};\n\nexport default useCollection;\n","import { useCallback, useMemo } from 'react';\nimport { useGetIdentity, fetchUtils } from 'react-admin';\nimport { buildDereferenceQuery } from '@semapps/semantic-data-provider';\n\nconst useInbox = () => {\n const { identity } = useGetIdentity();\n\n const inboxUrl = useMemo(() => {\n if (identity?.webIdData) {\n return identity?.webIdData?.inbox;\n }\n }, [identity]);\n\n const sparqlEndpoint = useMemo(() => {\n if (identity?.webIdData) {\n return identity?.webIdData?.endpoints?.['void:sparqlEndpoint'];\n }\n }, [identity]);\n\n const fetch = useCallback(\n async ({ filters }) => {\n if (!sparqlEndpoint || !inboxUrl) return;\n\n const token = localStorage.getItem('token');\n const dereferenceQuery = buildDereferenceQuery(['as:object']);\n\n let filtersWhereQuery = '';\n if (filters) {\n Object.keys(filters).forEach(predicate => {\n if (filters[predicate]) {\n const object = filters[predicate].startsWith('http') ? `<${filters[predicate]}>` : filters[predicate];\n filtersWhereQuery += `?s1 ${predicate} ${object} .`;\n }\n });\n }\n\n const query = `\n PREFIX as: <https://www.w3.org/ns/activitystreams#>\n CONSTRUCT {\n ?s1 ?p1 ?o1 .\n ${dereferenceQuery.construct}\n }\n WHERE {\n <${inboxUrl}> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n FILTER( (isIRI(?s1)) ) .\n ${filtersWhereQuery}\n ${dereferenceQuery.where}\n }\n `;\n\n const { json } = await fetchUtils.fetchJson(sparqlEndpoint, {\n method: 'POST',\n body: query,\n headers: new Headers({\n Accept: 'application/ld+json',\n Authorization: 'Bearer ' + token\n })\n });\n\n if (json['@graph']) {\n return json['@graph'];\n } else {\n return null;\n }\n },\n [sparqlEndpoint, inboxUrl]\n );\n\n return { fetch, url: inboxUrl, owner: identity?.id };\n};\n\nexport default useInbox;\n","import { useCallback, useMemo } from 'react';\nimport { useGetIdentity, fetchUtils } from 'react-admin';\nimport { buildDereferenceQuery } from '@semapps/semantic-data-provider';\n\nconst useOutbox = () => {\n const { identity } = useGetIdentity();\n\n const outboxUrl = useMemo(() => {\n if (identity?.webIdData) {\n return identity?.webIdData?.outbox;\n }\n }, [identity]);\n\n const sparqlEndpoint = useMemo(() => {\n if (identity?.webIdData) {\n return identity?.webIdData?.endpoints?.['void:sparqlEndpoint'];\n }\n }, [identity]);\n\n // Post an activity to the logged user's outbox and return its URI\n const post = useCallback(\n async activity => {\n const token = localStorage.getItem('token');\n try {\n const { headers } = await fetchUtils.fetchJson(outboxUrl, {\n method: 'POST',\n body: JSON.stringify({\n '@context': 'https://www.w3.org/ns/activitystreams',\n ...activity\n }),\n headers: new Headers({\n 'Content-Type': 'application/ld+json',\n Authorization: `Bearer ${token}`\n })\n });\n return headers.get('Location');\n } catch (e) {\n return false;\n }\n },\n [outboxUrl]\n );\n\n const fetch = useCallback(async () => {\n if (!sparqlEndpoint || !outboxUrl) return;\n\n const token = localStorage.getItem('token');\n const dereferenceQuery = buildDereferenceQuery(['as:object']);\n\n const query = `\n PREFIX as: <https://www.w3.org/ns/activitystreams#>\n CONSTRUCT {\n ?s1 ?p1 ?o1 .\n ${dereferenceQuery.construct}\n }\n WHERE {\n <${outboxUrl}> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n ${dereferenceQuery.where}\n }\n `;\n\n const { json } = await fetchUtils.fetchJson(sparqlEndpoint, {\n method: 'POST',\n body: query,\n headers: new Headers({\n Accept: 'application/ld+json',\n Authorization: 'Bearer ' + token\n })\n });\n\n if (json['@graph']) {\n return json['@graph'];\n } else {\n return null;\n }\n }, [sparqlEndpoint, outboxUrl]);\n\n return { post, fetch, url: outboxUrl, owner: identity?.id };\n};\n\nexport default useOutbox;\n","import { useCallback } from 'react';\nimport { fetchUtils } from 'react-admin';\n\nconst useWebfinger = () => {\n // Post an activity to the logged user's outbox and return its URI\n const fetch = useCallback(async id => {\n // eslint-disable-next-line\n const [_, username, host] = id.split('@');\n if (host) {\n const protocol = host.includes(':') ? 'http' : 'https'; // If the host has a port, we are most likely on localhost\n const webfingerUrl = `${protocol}://${host}/.well-known/webfinger?resource=acct:${username}@${host}`;\n\n try {\n const { json } = await fetchUtils.fetchJson(webfingerUrl);\n\n const link = json.links.find(l => l.type === 'application/activity+json');\n\n return link ? link.href : null;\n } catch (e) {\n return null;\n }\n } else {\n return null;\n }\n }, []);\n\n return { fetch };\n};\n\nexport default useWebfinger;\n"],"names":["CollectionList","collectionUrl","resource","children","rest","React","Children","count","Error","useGetOne","enabled","collection","data","loading","style","marginTop","LinearProgress","ReferenceArrayField","reference","record","source","ReferenceCollectionField","defaultProps","addLabel","ACCEPT","ADD","ANNOUNCE","ARRIVE","BLOCK","CREATE","DELETE","DISLIKE","FLAG","FOLLOW","IGNORE","INVITE","JOIN","LEAVE","LIKE","LISTEN","MOVE","OFFER","QUESTION","REJECT","READ","REMOVE","TENTATIVE_REJECT","TENTATIVE_ACCEPT","TRAVAL","UNDO","UPDATE","VIEW","APPLICATION","GROUP","ORGANIZATION","PERSON","SERVICE","ARTICLE","AUDIO","DOCUMENT","EVENT","IMAGE","NOTE","PAGE","PLACE","PROFILE","RELATIONSHIP","TOMBSTONE","VIDEO","predicateOrUrl","identity","useGetIdentity","useState","items","setItems","setLoading","loaded","setLoaded","error","setError","useMemo","startsWith","webIdData","_identity$webIdData","fetch","useCallback","headers","Headers","Accept","Authorization","localStorage","getItem","fetchUtils","fetchJson","then","json","useEffect","addItem","item","oldItems","removeItem","itemId","filter","id","refetch","url","inboxUrl","inbox","sparqlEndpoint","_identity$webIdData2","endpoints","_identity$webIdData2$","filters","token","dereferenceQuery","buildDereferenceQuery","filtersWhereQuery","Object","keys","forEach","predicate","object","query","construct","where","method","body","owner","outboxUrl","outbox","post","activity","JSON","stringify","get","split","username","host","protocol","includes","webfingerUrl","link","links","find","l","type","href"],"mappings":"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"}
|
package/dist/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../src/components/CollectionList.js","../src/components/ReferenceCollectionField.js","../src/hooks/useCollection.js","../src/hooks/useInbox.js","../src/hooks/useOutbox.js","../src/hooks/useWebfinger.js","../src/constants.js"],"sourcesContent":["import React from 'react';\nimport { useGetOne, LinearProgress } from 'react-admin';\nimport { ReferenceArrayField } from '@semapps/semantic-data-provider';\n\nconst CollectionList = ({ collectionUrl, resource, children, ...rest }) => {\n if (React.Children.count(children) !== 1) {\n throw new Error('<CollectionList> only accepts a single child');\n }\n\n // TODO use a simple fetch call, as the resource is not good and it is useless\n const { data: collection, loading } = useGetOne(resource, collectionUrl, { enabled: !!collectionUrl });\n\n if (loading) {\n return (\n <div style={{ marginTop: 8 }}>\n <LinearProgress />\n </div>\n );\n } else if (!collection) {\n return null;\n }\n\n return (\n <ReferenceArrayField reference={resource} record={collection} source=\"items\" {...rest}>\n {children}\n </ReferenceArrayField>\n );\n};\n\nexport default CollectionList;\n","import React from 'react';\nimport CollectionList from './CollectionList';\n\nconst ReferenceCollectionField = ({ source, record, reference, children, ...rest }) => {\n if (React.Children.count(children) !== 1) {\n throw new Error('<ReferenceCollectionField> only accepts a single child');\n }\n\n if (!record || !record[source]) return null;\n\n return (\n <CollectionList resource={reference} collectionUrl={record[source]} {...rest}>\n {children}\n </CollectionList>\n );\n};\n\nReferenceCollectionField.defaultProps = {\n addLabel: true\n};\n\nexport default ReferenceCollectionField;\n","import { useCallback, useMemo, useState, useEffect } from 'react';\nimport { useGetIdentity, fetchUtils } from 'react-admin';\n\nconst useCollection = predicateOrUrl => {\n const { identity } = useGetIdentity();\n const [items, setItems] = useState([]);\n const [loading, setLoading] = useState(false);\n const [loaded, setLoaded] = useState(false);\n const [error, setError] = useState(false);\n\n const collectionUrl = useMemo(() => {\n if (predicateOrUrl) {\n if (predicateOrUrl.startsWith('http')) {\n return predicateOrUrl;\n } else if (identity?.webIdData) {\n return identity?.webIdData?.[predicateOrUrl];\n }\n }\n }, [identity, predicateOrUrl]);\n\n const fetch = useCallback(async () => {\n if (!collectionUrl) return;\n\n setLoading(true);\n const headers = new Headers({\n Accept: 'application/ld+json',\n Authorization: 'Bearer ' + localStorage.getItem('token')\n });\n\n fetchUtils\n .fetchJson(collectionUrl, { headers })\n .then(({ json }) => {\n if (json && json.items) {\n setItems(json.items);\n } else {\n setItems([]);\n }\n setError(false);\n setLoaded(true);\n setLoading(false);\n })\n .catch(() => {\n setError(true);\n setLoaded(true);\n setLoading(false);\n });\n }, [setItems, setLoaded, setLoading, setError, collectionUrl]);\n\n useEffect(() => {\n if (!loading && !loaded && !error) {\n fetch();\n }\n }, [fetch, loading, loaded, error]);\n\n const addItem = useCallback(\n item => {\n setItems(oldItems => [...oldItems, item]);\n },\n [setItems]\n );\n\n const removeItem = useCallback(\n itemId => {\n setItems(oldItems => oldItems.filter(item => typeof item === 'string' ? item !== itemId : item.id !== itemId));\n },\n [setItems]\n );\n\n return { items, loading, loaded, error, refetch: fetch, addItem, removeItem, url: collectionUrl };\n};\n\nexport default useCollection;\n","import { useCallback, useMemo } from 'react';\nimport { useGetIdentity, fetchUtils } from 'react-admin';\nimport { buildDereferenceQuery } from '@semapps/semantic-data-provider';\n\nconst useInbox = () => {\n const { identity } = useGetIdentity();\n\n const inboxUrl = useMemo(() => {\n if (identity?.webIdData) {\n return identity?.webIdData?.inbox;\n }\n }, [identity]);\n\n const sparqlEndpoint = useMemo(() => {\n if (identity?.webIdData) {\n return identity?.webIdData?.endpoints?.['void:sparqlEndpoint'];\n }\n }, [identity]);\n\n const fetch = useCallback(\n async ({ filters }) => {\n if (!sparqlEndpoint || !inboxUrl) return;\n\n const token = localStorage.getItem('token');\n const dereferenceQuery = buildDereferenceQuery(['as:object']);\n\n let filtersWhereQuery = '';\n if (filters) {\n Object.keys(filters).forEach(predicate => {\n if (filters[predicate]) {\n const object = filters[predicate].startsWith('http') ? `<${filters[predicate]}>` : filters[predicate];\n filtersWhereQuery += `?s1 ${predicate} ${object} .`;\n }\n });\n }\n\n const query = `\n PREFIX as: <https://www.w3.org/ns/activitystreams#>\n CONSTRUCT {\n ?s1 ?p1 ?o1 .\n ${dereferenceQuery.construct}\n }\n WHERE {\n <${inboxUrl}> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n FILTER( (isIRI(?s1)) ) .\n ${filtersWhereQuery}\n ${dereferenceQuery.where}\n }\n `;\n\n const { json } = await fetchUtils.fetchJson(sparqlEndpoint, {\n method: 'POST',\n body: query,\n headers: new Headers({\n Accept: 'application/ld+json',\n Authorization: 'Bearer ' + token\n })\n });\n\n if (json['@graph']) {\n return json['@graph'];\n } else {\n return null;\n }\n },\n [sparqlEndpoint, inboxUrl]\n );\n\n return { fetch, url: inboxUrl, owner: identity?.id };\n};\n\nexport default useInbox;\n","import { useCallback, useMemo } from 'react';\nimport { useGetIdentity, fetchUtils } from 'react-admin';\nimport { buildDereferenceQuery } from '@semapps/semantic-data-provider';\n\nconst useOutbox = () => {\n const { identity } = useGetIdentity();\n\n const outboxUrl = useMemo(() => {\n if (identity?.webIdData) {\n return identity?.webIdData?.outbox;\n }\n }, [identity]);\n\n const sparqlEndpoint = useMemo(() => {\n if (identity?.webIdData) {\n return identity?.webIdData?.endpoints?.['void:sparqlEndpoint'];\n }\n }, [identity]);\n\n // Post an activity to the logged user's outbox and return its URI\n const post = useCallback(\n async activity => {\n const token = localStorage.getItem('token');\n try {\n const { headers } = await fetchUtils.fetchJson(outboxUrl, {\n method: 'POST',\n body: JSON.stringify({\n '@context': 'https://www.w3.org/ns/activitystreams',\n ...activity\n }),\n headers: new Headers({\n 'Content-Type': 'application/ld+json',\n Authorization: `Bearer ${token}`\n })\n });\n return headers.get('Location');\n } catch (e) {\n return false;\n }\n },\n [outboxUrl]\n );\n\n const fetch = useCallback(async () => {\n if (!sparqlEndpoint || !outboxUrl) return;\n\n const token = localStorage.getItem('token');\n const dereferenceQuery = buildDereferenceQuery(['as:object']);\n\n const query = `\n PREFIX as: <https://www.w3.org/ns/activitystreams#>\n CONSTRUCT {\n ?s1 ?p1 ?o1 .\n ${dereferenceQuery.construct}\n }\n WHERE {\n <${outboxUrl}> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n ${dereferenceQuery.where}\n }\n `;\n\n const { json } = await fetchUtils.fetchJson(sparqlEndpoint, {\n method: 'POST',\n body: query,\n headers: new Headers({\n Accept: 'application/ld+json',\n Authorization: 'Bearer ' + token\n })\n });\n\n if (json['@graph']) {\n return json['@graph'];\n } else {\n return null;\n }\n }, [sparqlEndpoint, outboxUrl]);\n\n return { post, fetch, url: outboxUrl, owner: identity?.id };\n};\n\nexport default useOutbox;\n","import { useCallback } from 'react';\nimport { fetchUtils } from 'react-admin';\n\nconst useWebfinger = () => {\n // Post an activity to the logged user's outbox and return its URI\n const fetch = useCallback(async id => {\n // eslint-disable-next-line\n const [_, username, host] = id.split('@');\n if (host) {\n const protocol = host.includes(':') ? 'http' : 'https'; // If the host has a port, we are most likely on localhost\n const webfingerUrl = `${protocol}://${host}/.well-known/webfinger?resource=acct:${username}@${host}`;\n\n try {\n const { json } = await fetchUtils.fetchJson(webfingerUrl);\n\n const link = json.links.find(l => l.type === 'application/activity+json');\n\n return link ? link.href : null;\n } catch (e) {\n return null;\n }\n } else {\n return null;\n }\n }, []);\n\n return { fetch };\n};\n\nexport default useWebfinger;\n","export const ACTIVITY_TYPES = {\n ACCEPT: 'Accept',\n ADD: 'Add',\n ANNOUNCE: 'Announce',\n ARRIVE: 'Arrive',\n BLOCK: 'Block',\n CREATE: 'Create',\n DELETE: 'Delete',\n DISLIKE: 'Dislike',\n FLAG: 'Flag',\n FOLLOW: 'Follow',\n IGNORE: 'Ignore',\n INVITE: 'Invite',\n JOIN: 'Join',\n LEAVE: 'Leave',\n LIKE: 'Like',\n LISTEN: 'Listen',\n MOVE: 'Move',\n OFFER: 'Offer',\n QUESTION: 'Question',\n REJECT: 'Reject',\n READ: 'Read',\n REMOVE: 'Remove',\n TENTATIVE_REJECT: 'TentativeReject',\n TENTATIVE_ACCEPT: 'TentativeAccept',\n TRAVAL: 'Travel',\n UNDO: 'Undo',\n UPDATE: 'Update',\n VIEW: 'View'\n};\n\nexport const ACTOR_TYPES = {\n APPLICATION: 'Application',\n GROUP: 'Group',\n ORGANIZATION: 'Organization',\n PERSON: 'Person',\n SERVICE: 'Service'\n};\n\nexport const OBJECT_TYPES = {\n ARTICLE: 'Article',\n AUDIO: 'Audio',\n DOCUMENT: 'Document',\n EVENT: 'Event',\n IMAGE: 'Image',\n NOTE: 'Note',\n PAGE: 'Page',\n PLACE: 'Place',\n PROFILE: 'Profile',\n RELATIONSHIP: 'Relationship',\n TOMBSTONE: 'Tombstone',\n VIDEO: 'Video'\n};\n\nexport const PUBLIC_URI = 'https://www.w3.org/ns/activitystreams#Public';\n"],"names":["CollectionList","collectionUrl","resource","children","rest","React","Children","count","Error","useGetOne","enabled","collection","data","loading","style","marginTop","LinearProgress","ReferenceArrayField","reference","record","source","ReferenceCollectionField","defaultProps","addLabel","useCollection","predicateOrUrl","identity","useGetIdentity","useState","items","setItems","setLoading","loaded","setLoaded","error","setError","useMemo","startsWith","webIdData","_identity$webIdData","fetch","useCallback","headers","Headers","Accept","Authorization","localStorage","getItem","fetchUtils","fetchJson","then","json","useEffect","addItem","item","oldItems","removeItem","itemId","filter","id","refetch","url","useInbox","inboxUrl","inbox","sparqlEndpoint","_identity$webIdData2","endpoints","_identity$webIdData2$","filters","token","dereferenceQuery","buildDereferenceQuery","filtersWhereQuery","Object","keys","forEach","predicate","object","query","construct","where","method","body","owner","useOutbox","outboxUrl","outbox","post","activity","JSON","stringify","get","useWebfinger","split","username","host","protocol","includes","webfingerUrl","link","links","find","l","type","href","ACTIVITY_TYPES","ACCEPT","ADD","ANNOUNCE","ARRIVE","BLOCK","CREATE","DELETE","DISLIKE","FLAG","FOLLOW","IGNORE","INVITE","JOIN","LEAVE","LIKE","LISTEN","MOVE","OFFER","QUESTION","REJECT","READ","REMOVE","TENTATIVE_REJECT","TENTATIVE_ACCEPT","TRAVAL","UNDO","UPDATE","VIEW","ACTOR_TYPES","APPLICATION","GROUP","ORGANIZATION","PERSON","SERVICE","OBJECT_TYPES","ARTICLE","AUDIO","DOCUMENT","EVENT","IMAGE","NOTE","PAGE","PLACE","PROFILE","RELATIONSHIP","TOMBSTONE","VIDEO","PUBLIC_URI"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../src/components/CollectionList.js","../src/components/ReferenceCollectionField.js","../src/hooks/useCollection.js","../src/hooks/useInbox.js","../src/hooks/useOutbox.js","../src/hooks/useWebfinger.js","../src/constants.js"],"sourcesContent":["import React from 'react';\nimport { useGetOne, LinearProgress } from 'react-admin';\nimport { ReferenceArrayField } from '@semapps/semantic-data-provider';\n\nconst CollectionList = ({ collectionUrl, resource, children, ...rest }) => {\n if (React.Children.count(children) !== 1) {\n throw new Error('<CollectionList> only accepts a single child');\n }\n\n // TODO use a simple fetch call, as the resource is not good and it is useless\n const { data: collection, loading } = useGetOne(resource, collectionUrl, { enabled: !!collectionUrl });\n\n if (loading) {\n return (\n <div style={{ marginTop: 8 }}>\n <LinearProgress />\n </div>\n );\n } else if (!collection) {\n return null;\n }\n\n return (\n <ReferenceArrayField reference={resource} record={collection} source=\"items\" {...rest}>\n {children}\n </ReferenceArrayField>\n );\n};\n\nexport default CollectionList;\n","import React from 'react';\nimport CollectionList from './CollectionList';\n\nconst ReferenceCollectionField = ({ source, record, reference, children, ...rest }) => {\n if (React.Children.count(children) !== 1) {\n throw new Error('<ReferenceCollectionField> only accepts a single child');\n }\n\n if (!record || !record[source]) return null;\n\n return (\n <CollectionList resource={reference} collectionUrl={record[source]} {...rest}>\n {children}\n </CollectionList>\n );\n};\n\nReferenceCollectionField.defaultProps = {\n addLabel: true\n};\n\nexport default ReferenceCollectionField;\n","import { useCallback, useMemo, useState, useEffect } from 'react';\nimport { useGetIdentity, fetchUtils } from 'react-admin';\n\nconst useCollection = predicateOrUrl => {\n const { identity } = useGetIdentity();\n const [items, setItems] = useState([]);\n const [loading, setLoading] = useState(false);\n const [loaded, setLoaded] = useState(false);\n const [error, setError] = useState(false);\n\n const collectionUrl = useMemo(() => {\n if (predicateOrUrl) {\n if (predicateOrUrl.startsWith('http')) {\n return predicateOrUrl;\n } else if (identity?.webIdData) {\n return identity?.webIdData?.[predicateOrUrl];\n }\n }\n }, [identity, predicateOrUrl]);\n\n const fetch = useCallback(async () => {\n if (!collectionUrl) return;\n\n setLoading(true);\n const headers = new Headers({\n Accept: 'application/ld+json',\n Authorization: 'Bearer ' + localStorage.getItem('token')\n });\n\n fetchUtils\n .fetchJson(collectionUrl, { headers })\n .then(({ json }) => {\n if (json && json.items) {\n setItems(json.items);\n } else {\n setItems([]);\n }\n setError(false);\n setLoaded(true);\n setLoading(false);\n })\n .catch(() => {\n setError(true);\n setLoaded(true);\n setLoading(false);\n });\n }, [setItems, setLoaded, setLoading, setError, collectionUrl]);\n\n useEffect(() => {\n if (!loading && !loaded && !error) {\n fetch();\n }\n }, [fetch, loading, loaded, error]);\n\n const addItem = useCallback(\n item => {\n setItems(oldItems => [...oldItems, item]);\n },\n [setItems]\n );\n\n const removeItem = useCallback(\n itemId => {\n setItems(oldItems => oldItems.filter(item => (typeof item === 'string' ? item !== itemId : item.id !== itemId)));\n },\n [setItems]\n );\n\n return { items, loading, loaded, error, refetch: fetch, addItem, removeItem, url: collectionUrl };\n};\n\nexport default useCollection;\n","import { useCallback, useMemo } from 'react';\nimport { useGetIdentity, fetchUtils } from 'react-admin';\nimport { buildDereferenceQuery } from '@semapps/semantic-data-provider';\n\nconst useInbox = () => {\n const { identity } = useGetIdentity();\n\n const inboxUrl = useMemo(() => {\n if (identity?.webIdData) {\n return identity?.webIdData?.inbox;\n }\n }, [identity]);\n\n const sparqlEndpoint = useMemo(() => {\n if (identity?.webIdData) {\n return identity?.webIdData?.endpoints?.['void:sparqlEndpoint'];\n }\n }, [identity]);\n\n const fetch = useCallback(\n async ({ filters }) => {\n if (!sparqlEndpoint || !inboxUrl) return;\n\n const token = localStorage.getItem('token');\n const dereferenceQuery = buildDereferenceQuery(['as:object']);\n\n let filtersWhereQuery = '';\n if (filters) {\n Object.keys(filters).forEach(predicate => {\n if (filters[predicate]) {\n const object = filters[predicate].startsWith('http') ? `<${filters[predicate]}>` : filters[predicate];\n filtersWhereQuery += `?s1 ${predicate} ${object} .`;\n }\n });\n }\n\n const query = `\n PREFIX as: <https://www.w3.org/ns/activitystreams#>\n CONSTRUCT {\n ?s1 ?p1 ?o1 .\n ${dereferenceQuery.construct}\n }\n WHERE {\n <${inboxUrl}> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n FILTER( (isIRI(?s1)) ) .\n ${filtersWhereQuery}\n ${dereferenceQuery.where}\n }\n `;\n\n const { json } = await fetchUtils.fetchJson(sparqlEndpoint, {\n method: 'POST',\n body: query,\n headers: new Headers({\n Accept: 'application/ld+json',\n Authorization: 'Bearer ' + token\n })\n });\n\n if (json['@graph']) {\n return json['@graph'];\n } else {\n return null;\n }\n },\n [sparqlEndpoint, inboxUrl]\n );\n\n return { fetch, url: inboxUrl, owner: identity?.id };\n};\n\nexport default useInbox;\n","import { useCallback, useMemo } from 'react';\nimport { useGetIdentity, fetchUtils } from 'react-admin';\nimport { buildDereferenceQuery } from '@semapps/semantic-data-provider';\n\nconst useOutbox = () => {\n const { identity } = useGetIdentity();\n\n const outboxUrl = useMemo(() => {\n if (identity?.webIdData) {\n return identity?.webIdData?.outbox;\n }\n }, [identity]);\n\n const sparqlEndpoint = useMemo(() => {\n if (identity?.webIdData) {\n return identity?.webIdData?.endpoints?.['void:sparqlEndpoint'];\n }\n }, [identity]);\n\n // Post an activity to the logged user's outbox and return its URI\n const post = useCallback(\n async activity => {\n const token = localStorage.getItem('token');\n try {\n const { headers } = await fetchUtils.fetchJson(outboxUrl, {\n method: 'POST',\n body: JSON.stringify({\n '@context': 'https://www.w3.org/ns/activitystreams',\n ...activity\n }),\n headers: new Headers({\n 'Content-Type': 'application/ld+json',\n Authorization: `Bearer ${token}`\n })\n });\n return headers.get('Location');\n } catch (e) {\n return false;\n }\n },\n [outboxUrl]\n );\n\n const fetch = useCallback(async () => {\n if (!sparqlEndpoint || !outboxUrl) return;\n\n const token = localStorage.getItem('token');\n const dereferenceQuery = buildDereferenceQuery(['as:object']);\n\n const query = `\n PREFIX as: <https://www.w3.org/ns/activitystreams#>\n CONSTRUCT {\n ?s1 ?p1 ?o1 .\n ${dereferenceQuery.construct}\n }\n WHERE {\n <${outboxUrl}> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n ${dereferenceQuery.where}\n }\n `;\n\n const { json } = await fetchUtils.fetchJson(sparqlEndpoint, {\n method: 'POST',\n body: query,\n headers: new Headers({\n Accept: 'application/ld+json',\n Authorization: 'Bearer ' + token\n })\n });\n\n if (json['@graph']) {\n return json['@graph'];\n } else {\n return null;\n }\n }, [sparqlEndpoint, outboxUrl]);\n\n return { post, fetch, url: outboxUrl, owner: identity?.id };\n};\n\nexport default useOutbox;\n","import { useCallback } from 'react';\nimport { fetchUtils } from 'react-admin';\n\nconst useWebfinger = () => {\n // Post an activity to the logged user's outbox and return its URI\n const fetch = useCallback(async id => {\n // eslint-disable-next-line\n const [_, username, host] = id.split('@');\n if (host) {\n const protocol = host.includes(':') ? 'http' : 'https'; // If the host has a port, we are most likely on localhost\n const webfingerUrl = `${protocol}://${host}/.well-known/webfinger?resource=acct:${username}@${host}`;\n\n try {\n const { json } = await fetchUtils.fetchJson(webfingerUrl);\n\n const link = json.links.find(l => l.type === 'application/activity+json');\n\n return link ? link.href : null;\n } catch (e) {\n return null;\n }\n } else {\n return null;\n }\n }, []);\n\n return { fetch };\n};\n\nexport default useWebfinger;\n","export const ACTIVITY_TYPES = {\n ACCEPT: 'Accept',\n ADD: 'Add',\n ANNOUNCE: 'Announce',\n ARRIVE: 'Arrive',\n BLOCK: 'Block',\n CREATE: 'Create',\n DELETE: 'Delete',\n DISLIKE: 'Dislike',\n FLAG: 'Flag',\n FOLLOW: 'Follow',\n IGNORE: 'Ignore',\n INVITE: 'Invite',\n JOIN: 'Join',\n LEAVE: 'Leave',\n LIKE: 'Like',\n LISTEN: 'Listen',\n MOVE: 'Move',\n OFFER: 'Offer',\n QUESTION: 'Question',\n REJECT: 'Reject',\n READ: 'Read',\n REMOVE: 'Remove',\n TENTATIVE_REJECT: 'TentativeReject',\n TENTATIVE_ACCEPT: 'TentativeAccept',\n TRAVAL: 'Travel',\n UNDO: 'Undo',\n UPDATE: 'Update',\n VIEW: 'View'\n};\n\nexport const ACTOR_TYPES = {\n APPLICATION: 'Application',\n GROUP: 'Group',\n ORGANIZATION: 'Organization',\n PERSON: 'Person',\n SERVICE: 'Service'\n};\n\nexport const OBJECT_TYPES = {\n ARTICLE: 'Article',\n AUDIO: 'Audio',\n DOCUMENT: 'Document',\n EVENT: 'Event',\n IMAGE: 'Image',\n NOTE: 'Note',\n PAGE: 'Page',\n PLACE: 'Place',\n PROFILE: 'Profile',\n RELATIONSHIP: 'Relationship',\n TOMBSTONE: 'Tombstone',\n VIDEO: 'Video'\n};\n\nexport const PUBLIC_URI = 'https://www.w3.org/ns/activitystreams#Public';\n"],"names":["CollectionList","collectionUrl","resource","children","rest","React","Children","count","Error","useGetOne","enabled","collection","data","loading","style","marginTop","LinearProgress","ReferenceArrayField","reference","record","source","ReferenceCollectionField","defaultProps","addLabel","useCollection","predicateOrUrl","identity","useGetIdentity","useState","items","setItems","setLoading","loaded","setLoaded","error","setError","useMemo","startsWith","webIdData","_identity$webIdData","fetch","useCallback","headers","Headers","Accept","Authorization","localStorage","getItem","fetchUtils","fetchJson","then","json","useEffect","addItem","item","oldItems","removeItem","itemId","filter","id","refetch","url","useInbox","inboxUrl","inbox","sparqlEndpoint","_identity$webIdData2","endpoints","_identity$webIdData2$","filters","token","dereferenceQuery","buildDereferenceQuery","filtersWhereQuery","Object","keys","forEach","predicate","object","query","construct","where","method","body","owner","useOutbox","outboxUrl","outbox","post","activity","JSON","stringify","get","useWebfinger","split","username","host","protocol","includes","webfingerUrl","link","links","find","l","type","href","ACTIVITY_TYPES","ACCEPT","ADD","ANNOUNCE","ARRIVE","BLOCK","CREATE","DELETE","DISLIKE","FLAG","FOLLOW","IGNORE","INVITE","JOIN","LEAVE","LIKE","LISTEN","MOVE","OFFER","QUESTION","REJECT","READ","REMOVE","TENTATIVE_REJECT","TENTATIVE_ACCEPT","TRAVAL","UNDO","UPDATE","VIEW","ACTOR_TYPES","APPLICATION","GROUP","ORGANIZATION","PERSON","SERVICE","OBJECT_TYPES","ARTICLE","AUDIO","DOCUMENT","EVENT","IMAGE","NOTE","PAGE","PLACE","PROFILE","RELATIONSHIP","TOMBSTONE","VIDEO","PUBLIC_URI"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@semapps/activitypub-components",
|
|
3
|
-
"version": "0.4.0-alpha.
|
|
3
|
+
"version": "0.4.0-alpha.25",
|
|
4
4
|
"description": "React-Admin components for ActivityPub display",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Virtual Assembly",
|
|
@@ -34,5 +34,5 @@
|
|
|
34
34
|
"rollup-plugin-terser": "^5.3.0",
|
|
35
35
|
"rollup-pluginutils": "^2.8.2"
|
|
36
36
|
},
|
|
37
|
-
"gitHead": "
|
|
37
|
+
"gitHead": "3fb3921427ff0ac38d67666d8799e448485dc3b0"
|
|
38
38
|
}
|