@semapps/activitypub-components 0.4.0-alpha.25 → 0.4.0-alpha.28
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 +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +1 -1
- package/dist/index.es.js.map +1 -1
- package/package.json +2 -2
package/dist/index.cjs.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("react-admin"),r=require("@semapps/semantic-data-provider");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=n(e);function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){l(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function c(e,t,r,n,o,a,i){try{var c=e[a](i),u=c.value}catch(e){return void r(e)}c.done?t(u):Promise.resolve(u).then(n,o)}function u(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var a=e.apply(t,r);function i(e){c(a,n,o,i,u,"next",e)}function u(e){c(a,n,o,i,u,"throw",e)}i(void 0)}))}}function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(){return(s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function f(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function p(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==r)return;var n,o,a=[],i=!0,c=!1;try{for(r=r.call(e);!(i=(n=r.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){c=!0,o=e}finally{try{i||null==r.return||r.return()}finally{if(c)throw o}}return a}(e,t)||b(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function d(e){return function(e){if(Array.isArray(e))return v(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||b(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function b(e,t){if(e){if("string"==typeof e)return v(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?v(e,t):void 0}}function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var h=["collectionUrl","resource","children"],y=function(e){var n=e.collectionUrl,a=e.resource,i=e.children,c=f(e,h);if(1!==o.default.Children.count(i))throw new Error("<CollectionList> only accepts a single child");var u=t.useGetOne(a,n,{enabled:!!n}),l=u.data;return u.loading?o.default.createElement("div",{style:{marginTop:8}},o.default.createElement(t.LinearProgress,null)):l?o.default.createElement(r.ReferenceArrayField,s({reference:a,record:l,source:"items"},c),i):null},m=["source","record","reference","children"],E=function(e){var t=e.source,r=e.record,n=e.reference,a=e.children,i=f(e,m);if(1!==o.default.Children.count(a))throw new Error("<ReferenceCollectionField> only accepts a single child");return r&&r[t]?o.default.createElement(y,s({resource:n,collectionUrl:r[t]},i),a):null};E.defaultProps={addLabel:!0};exports.ACTIVITY_TYPES={ACCEPT:"Accept",ADD:"Add",ANNOUNCE:"Announce",ARRIVE:"Arrive",BLOCK:"Block",CREATE:"Create",DELETE:"Delete",DISLIKE:"Dislike",FLAG:"Flag",FOLLOW:"Follow",IGNORE:"Ignore",INVITE:"Invite",JOIN:"Join",LEAVE:"Leave",LIKE:"Like",LISTEN:"Listen",MOVE:"Move",OFFER:"Offer",QUESTION:"Question",REJECT:"Reject",READ:"Read",REMOVE:"Remove",TENTATIVE_REJECT:"TentativeReject",TENTATIVE_ACCEPT:"TentativeAccept",TRAVAL:"Travel",UNDO:"Undo",UPDATE:"Update",VIEW:"View"},exports.ACTOR_TYPES={APPLICATION:"Application",GROUP:"Group",ORGANIZATION:"Organization",PERSON:"Person",SERVICE:"Service"},exports.CollectionList=y,exports.OBJECT_TYPES={ARTICLE:"Article",AUDIO:"Audio",DOCUMENT:"Document",EVENT:"Event",IMAGE:"Image",NOTE:"Note",PAGE:"Page",PLACE:"Place",PROFILE:"Profile",RELATIONSHIP:"Relationship",TOMBSTONE:"Tombstone",VIDEO:"Video"},exports.PUBLIC_URI="https://www.w3.org/ns/activitystreams#Public",exports.ReferenceCollectionField=E,exports.useCollection=function(r){var n=t.useGetIdentity().identity,o=p(e.useState([]),2),a=o[0],i=o[1],c=p(e.useState(!1),2),l=c[0],s=c[1],f=p(e.useState(!1),2),b=f[0],v=f[1],h=p(e.useState(!1),2),y=h[0],m=h[1],E=e.useMemo((function(){if(r){if(r.startsWith("http"))return r;var e;if(null!=n&&n.webIdData)return null==n||null===(e=n.webIdData)||void 0===e?void 0:e[r]}}),[n,r]),w=e.useCallback(u(regeneratorRuntime.mark((function e(){var r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(E){e.next=2;break}return e.abrupt("return");case 2:s(!0),r=new Headers({Accept:"application/ld+json",Authorization:"Bearer "+localStorage.getItem("token")}),t.fetchUtils.fetchJson(E,{headers:r}).then((function(e){var t=e.json;t&&t.items?i(t.items):i([]),m(!1),v(!0),s(!1)})).catch((function(){m(!0),v(!0),s(!1)}));case 5:case"end":return e.stop()}}),e)}))),[i,v,s,m,E]);e.useEffect((function(){l||b||y||w()}),[w,l,b,y]);var O=e.useCallback((function(e){i((function(t){return[].concat(d(t),[e])}))}),[i]),I=e.useCallback((function(e){i((function(t){return t.filter((function(t){return"string"==typeof t?t!==e:t.id!==e}))}))}),[i]);return{items:a,loading:l,loaded:b,error:y,refetch:w,addItem:O,removeItem:I,url:E}},exports.useInbox=function(){var n=t.useGetIdentity().identity,o=e.useMemo((function(){var e;if(null!=n&&n.webIdData)return null==n||null===(e=n.webIdData)||void 0===e?void 0:e.inbox}),[n]),a=e.useMemo((function(){var e,t;if(null!=n&&n.webIdData)return null==n||null===(e=n.webIdData)||void 0===e||null===(t=e.endpoints)||void 0===t?void 0:t["void:sparqlEndpoint"]}),[n]);return{fetch:e.useCallback(function(){var e=u(regeneratorRuntime.mark((function e(n){var i,c,u,l,s,f,p;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=n.filters,a&&o){e.next=3;break}return e.abrupt("return");case 3:return c=localStorage.getItem("token"),u=r.buildDereferenceQuery(["as:object"]),l="",i&&Object.keys(i).forEach((function(e){if(i[e]){var t=i[e].startsWith("http")?"<".concat(i[e],">"):i[e];l+="?s1 ".concat(e," ").concat(t," .")}})),s="\n PREFIX as: <https://www.w3.org/ns/activitystreams#>\n CONSTRUCT {\n ?s1 ?p1 ?o1 .\n ".concat(u.construct,"\n }\n WHERE {\n <").concat(o,"> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n FILTER( (isIRI(?s1)) ) .\n ").concat(l,"\n ").concat(u.where,"\n }\n "),e.next=10,t.fetchUtils.fetchJson(a,{method:"POST",body:s,headers:new Headers({Accept:"application/ld+json",Authorization:"Bearer "+c})});case 10:if(f=e.sent,!(p=f.json)["@graph"]){e.next=16;break}return e.abrupt("return",p["@graph"]);case 16:return e.abrupt("return",null);case 17:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),[a,o]),url:o,owner:null==n?void 0:n.id}},exports.useOutbox=function(){var n=t.useGetIdentity().identity,o=e.useMemo((function(){var e;if(null!=n&&n.webIdData)return null==n||null===(e=n.webIdData)||void 0===e?void 0:e.outbox}),[n]),a=e.useMemo((function(){var e,t;if(null!=n&&n.webIdData)return null==n||null===(e=n.webIdData)||void 0===e||null===(t=e.endpoints)||void 0===t?void 0:t["void:sparqlEndpoint"]}),[n]);return{post:e.useCallback(function(){var e=u(regeneratorRuntime.mark((function e(r){var n,a,c;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=localStorage.getItem("token"),e.prev=1,e.next=4,t.fetchUtils.fetchJson(o,{method:"POST",body:JSON.stringify(i({"@context":"https://www.w3.org/ns/activitystreams"},r)),headers:new Headers({"Content-Type":"application/ld+json",Authorization:"Bearer ".concat(n)})});case 4:return a=e.sent,c=a.headers,e.abrupt("return",c.get("Location"));case 9:return e.prev=9,e.t0=e.catch(1),e.abrupt("return",!1);case 12:case"end":return e.stop()}}),e,null,[[1,9]])})));return function(t){return e.apply(this,arguments)}}(),[o]),fetch:e.useCallback(u(regeneratorRuntime.mark((function e(){var n,i,c,u,l;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a&&o){e.next=2;break}return e.abrupt("return");case 2:return n=localStorage.getItem("token"),i=r.buildDereferenceQuery(["as:object"]),c="\n PREFIX as: <https://www.w3.org/ns/activitystreams#>\n CONSTRUCT {\n ?s1 ?p1 ?o1 .\n ".concat(i.construct,"\n }\n WHERE {\n <").concat(o,"> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n ").concat(i.where,"\n }\n "),e.next=7,t.fetchUtils.fetchJson(a,{method:"POST",body:c,headers:new Headers({Accept:"application/ld+json",Authorization:"Bearer "+n})});case 7:if(u=e.sent,!(l=u.json)["@graph"]){e.next=13;break}return e.abrupt("return",l["@graph"]);case 13:return e.abrupt("return",null);case 14:case"end":return e.stop()}}),e)}))),[a,o]),url:o,owner:null==n?void 0:n.id}},exports.useWebfinger=function(){return{fetch:e.useCallback(function(){var e=u(regeneratorRuntime.mark((function e(r){var n,o,a,i,c,u,l,s,f;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=r.split("@"),o=p(n,3),a=o[1],!(i=o[2])){e.next=18;break}return c=i.includes(":")?"http":"https",u="".concat(c,"://").concat(i,"/.well-known/webfinger?resource=acct:").concat(a,"@").concat(i),e.prev=4,e.next=7,t.fetchUtils.fetchJson(u);case 7:return l=e.sent,s=l.json,f=s.links.find((function(e){return"application/activity+json"===e.type})),e.abrupt("return",f?f.href:null);case 13:return e.prev=13,e.t0=e.catch(4),e.abrupt("return",null);case 16:e.next=19;break;case 18:return e.abrupt("return",null);case 19:case"end":return e.stop()}}),e,null,[[4,13]])})));return function(t){return e.apply(this,arguments)}}(),[])}};
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("react-admin"),r=require("@semapps/semantic-data-provider");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=n(e);function a(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function i(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?a(Object(r),!0).forEach((function(t){l(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):a(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function u(e,t,r,n,o,a,i){try{var u=e[a](i),c=u.value}catch(e){return void r(e)}u.done?t(c):Promise.resolve(c).then(n,o)}function c(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var a=e.apply(t,r);function i(e){u(a,n,o,i,c,"next",e)}function c(e){u(a,n,o,i,c,"throw",e)}i(void 0)}))}}function l(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function s(){return(s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function f(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function p(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==r)return;var n,o,a=[],i=!0,u=!1;try{for(r=r.call(e);!(i=(n=r.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){u=!0,o=e}finally{try{i||null==r.return||r.return()}finally{if(u)throw o}}return a}(e,t)||b(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function d(e){return function(e){if(Array.isArray(e))return v(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||b(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function b(e,t){if(e){if("string"==typeof e)return v(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?v(e,t):void 0}}function v(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var h=["collectionUrl","resource","children"],y=function(e){var n=e.collectionUrl,a=e.resource,i=e.children,u=f(e,h);if(1!==o.default.Children.count(i))throw new Error("<CollectionList> only accepts a single child");var c=t.useGetOne(a,n,{enabled:!!n}),l=c.data;return c.loading?o.default.createElement("div",{style:{marginTop:8}},o.default.createElement(t.LinearProgress,null)):l?o.default.createElement(r.ReferenceArrayField,s({reference:a,record:l,source:"items"},u),i):null},m=["source","record","reference","children"],E=function(e){var t=e.source,r=e.record,n=e.reference,a=e.children,i=f(e,m);if(1!==o.default.Children.count(a))throw new Error("<ReferenceCollectionField> only accepts a single child");return r&&r[t]?o.default.createElement(y,s({resource:n,collectionUrl:r[t]},i),a):null};E.defaultProps={addLabel:!0};exports.ACTIVITY_TYPES={ACCEPT:"Accept",ADD:"Add",ANNOUNCE:"Announce",ARRIVE:"Arrive",BLOCK:"Block",CREATE:"Create",DELETE:"Delete",DISLIKE:"Dislike",FLAG:"Flag",FOLLOW:"Follow",IGNORE:"Ignore",INVITE:"Invite",JOIN:"Join",LEAVE:"Leave",LIKE:"Like",LISTEN:"Listen",MOVE:"Move",OFFER:"Offer",QUESTION:"Question",REJECT:"Reject",READ:"Read",REMOVE:"Remove",TENTATIVE_REJECT:"TentativeReject",TENTATIVE_ACCEPT:"TentativeAccept",TRAVAL:"Travel",UNDO:"Undo",UPDATE:"Update",VIEW:"View"},exports.ACTOR_TYPES={APPLICATION:"Application",GROUP:"Group",ORGANIZATION:"Organization",PERSON:"Person",SERVICE:"Service"},exports.CollectionList=y,exports.OBJECT_TYPES={ARTICLE:"Article",AUDIO:"Audio",DOCUMENT:"Document",EVENT:"Event",IMAGE:"Image",NOTE:"Note",PAGE:"Page",PLACE:"Place",PROFILE:"Profile",RELATIONSHIP:"Relationship",TOMBSTONE:"Tombstone",VIDEO:"Video"},exports.PUBLIC_URI="https://www.w3.org/ns/activitystreams#Public",exports.ReferenceCollectionField=E,exports.useCollection=function(r){var n=t.useGetIdentity().identity,o=p(e.useState([]),2),a=o[0],i=o[1],u=p(e.useState(!1),2),l=u[0],s=u[1],f=p(e.useState(!1),2),b=f[0],v=f[1],h=p(e.useState(!1),2),y=h[0],m=h[1],E=e.useMemo((function(){if(r){if(r.startsWith("http"))return r;var e;if(null!=n&&n.webIdData)return null==n||null===(e=n.webIdData)||void 0===e?void 0:e[r]}}),[n,r]),w=e.useCallback(c(regeneratorRuntime.mark((function e(){var r;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(E){e.next=2;break}return e.abrupt("return");case 2:s(!0),r=new Headers({Accept:"application/ld+json",Authorization:"Bearer "+localStorage.getItem("token")}),t.fetchUtils.fetchJson(E,{headers:r}).then((function(e){var t=e.json;t&&t.items?i(t.items):i([]),m(!1),v(!0),s(!1)})).catch((function(){m(!0),v(!0),s(!1)}));case 5:case"end":return e.stop()}}),e)}))),[i,v,s,m,E]);e.useEffect((function(){l||b||y||w()}),[w,l,b,y]);var O=e.useCallback((function(e){i((function(t){return[].concat(d(t),[e])}))}),[i]),I=e.useCallback((function(e){i((function(t){return t.filter((function(t){return"string"==typeof t?t!==e:t.id!==e}))}))}),[i]);return{items:a,loading:l,loaded:b,error:y,refetch:w,addItem:O,removeItem:I,url:E}},exports.useInbox=function(){var n=t.useGetIdentity().identity,o=e.useMemo((function(){var e;if(null!=n&&n.webIdData)return null==n||null===(e=n.webIdData)||void 0===e?void 0:e.inbox}),[n]),a=e.useMemo((function(){var e,t;if(null!=n&&n.webIdData)return null==n||null===(e=n.webIdData)||void 0===e||null===(t=e.endpoints)||void 0===t?void 0:t["void:sparqlEndpoint"]}),[n]);return{fetch:e.useCallback(function(){var e=c(regeneratorRuntime.mark((function e(n){var i,u,c,l,s,f,p;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(i=n.filters,a&&o){e.next=3;break}return e.abrupt("return");case 3:return u=localStorage.getItem("token"),c=r.buildBlankNodesQuery(["as:object"]),l="",i&&Object.keys(i).forEach((function(e){if(i[e]){var t=i[e].startsWith("http")?"<".concat(i[e],">"):i[e];l+="?s1 ".concat(e," ").concat(t," .")}})),s="\n PREFIX as: <https://www.w3.org/ns/activitystreams#>\n CONSTRUCT {\n ?s1 ?p1 ?o1 .\n ".concat(c.construct,"\n }\n WHERE {\n <").concat(o,"> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n FILTER( (isIRI(?s1)) ) .\n ").concat(l,"\n ").concat(c.where,"\n }\n "),e.next=10,t.fetchUtils.fetchJson(a,{method:"POST",body:s,headers:new Headers({Accept:"application/ld+json",Authorization:"Bearer "+u})});case 10:if(f=e.sent,!(p=f.json)["@graph"]){e.next=16;break}return e.abrupt("return",p["@graph"]);case 16:return e.abrupt("return",null);case 17:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),[a,o]),url:o,owner:null==n?void 0:n.id}},exports.useOutbox=function(){var n=t.useGetIdentity().identity,o=e.useMemo((function(){var e;if(null!=n&&n.webIdData)return null==n||null===(e=n.webIdData)||void 0===e?void 0:e.outbox}),[n]),a=e.useMemo((function(){var e,t;if(null!=n&&n.webIdData)return null==n||null===(e=n.webIdData)||void 0===e||null===(t=e.endpoints)||void 0===t?void 0:t["void:sparqlEndpoint"]}),[n]);return{post:e.useCallback(function(){var e=c(regeneratorRuntime.mark((function e(r){var n,a,u;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=localStorage.getItem("token"),e.prev=1,e.next=4,t.fetchUtils.fetchJson(o,{method:"POST",body:JSON.stringify(i({"@context":"https://www.w3.org/ns/activitystreams"},r)),headers:new Headers({"Content-Type":"application/ld+json",Authorization:"Bearer ".concat(n)})});case 4:return a=e.sent,u=a.headers,e.abrupt("return",u.get("Location"));case 9:return e.prev=9,e.t0=e.catch(1),e.abrupt("return",!1);case 12:case"end":return e.stop()}}),e,null,[[1,9]])})));return function(t){return e.apply(this,arguments)}}(),[o]),fetch:e.useCallback(c(regeneratorRuntime.mark((function e(){var n,i,u,c,l;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(a&&o){e.next=2;break}return e.abrupt("return");case 2:return n=localStorage.getItem("token"),i=r.buildBlankNodesQuery(["as:object"]),u="\n PREFIX as: <https://www.w3.org/ns/activitystreams#>\n CONSTRUCT {\n ?s1 ?p1 ?o1 .\n ".concat(i.construct,"\n }\n WHERE {\n <").concat(o,"> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n ").concat(i.where,"\n }\n "),e.next=7,t.fetchUtils.fetchJson(a,{method:"POST",body:u,headers:new Headers({Accept:"application/ld+json",Authorization:"Bearer "+n})});case 7:if(c=e.sent,!(l=c.json)["@graph"]){e.next=13;break}return e.abrupt("return",l["@graph"]);case 13:return e.abrupt("return",null);case 14:case"end":return e.stop()}}),e)}))),[a,o]),url:o,owner:null==n?void 0:n.id}},exports.useWebfinger=function(){return{fetch:e.useCallback(function(){var e=c(regeneratorRuntime.mark((function e(r){var n,o,a,i,u,c,l,s,f;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=r.split("@"),o=p(n,3),a=o[1],!(i=o[2])){e.next=18;break}return u=i.includes(":")?"http":"https",c="".concat(u,"://").concat(i,"/.well-known/webfinger?resource=acct:").concat(a,"@").concat(i),e.prev=4,e.next=7,t.fetchUtils.fetchJson(c);case 7:return l=e.sent,s=l.json,f=s.links.find((function(e){return"application/activity+json"===e.type})),e.abrupt("return",f?f.href:null);case 13:return e.prev=13,e.t0=e.catch(4),e.abrupt("return",null);case 16:e.next=19;break;case 18:return e.abrupt("return",null);case 19:case"end":return e.stop()}}),e,null,[[4,13]])})));return function(t){return e.apply(this,arguments)}}(),[])}};
|
|
2
2
|
//# sourceMappingURL=index.cjs.js.map
|
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":"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"}
|
|
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 { buildBlankNodesQuery } 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 blankNodesQuery = buildBlankNodesQuery(['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 ${blankNodesQuery.construct}\n }\n WHERE {\n <${inboxUrl}> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n FILTER( (isIRI(?s1)) ) .\n ${filtersWhereQuery}\n ${blankNodesQuery.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 { buildBlankNodesQuery } 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 blankNodesQuery = buildBlankNodesQuery(['as:object']);\n\n const query = `\n PREFIX as: <https://www.w3.org/ns/activitystreams#>\n CONSTRUCT {\n ?s1 ?p1 ?o1 .\n ${blankNodesQuery.construct}\n }\n WHERE {\n <${outboxUrl}> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n ${blankNodesQuery.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","blankNodesQuery","buildBlankNodesQuery","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
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import e,{useState as t,useMemo as r,useCallback as n,useEffect as o}from"react";import{useGetOne as a,LinearProgress as i,useGetIdentity as c,fetchUtils as u}from"react-admin";import{ReferenceArrayField as l,buildDereferenceQuery as s}from"@semapps/semantic-data-provider";function f(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?f(Object(r),!0).forEach((function(t){h(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):f(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function d(e,t,r,n,o,a,i){try{var c=e[a](i),u=c.value}catch(e){return void r(e)}c.done?t(u):Promise.resolve(u).then(n,o)}function v(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var a=e.apply(t,r);function i(e){d(a,n,o,i,c,"next",e)}function c(e){d(a,n,o,i,c,"throw",e)}i(void 0)}))}}function h(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function b(){return(b=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function m(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function y(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==r)return;var n,o,a=[],i=!0,c=!1;try{for(r=r.call(e);!(i=(n=r.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){c=!0,o=e}finally{try{i||null==r.return||r.return()}finally{if(c)throw o}}return a}(e,t)||E(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function w(e){return function(e){if(Array.isArray(e))return O(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||E(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function E(e,t){if(e){if("string"==typeof e)return O(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?O(e,t):void 0}}function O(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var g=["collectionUrl","resource","children"],I=function(t){var r=t.collectionUrl,n=t.resource,o=t.children,c=m(t,g);if(1!==e.Children.count(o))throw new Error("<CollectionList> only accepts a single child");var u=a(n,r,{enabled:!!r}),s=u.data;return u.loading?e.createElement("div",{style:{marginTop:8}},e.createElement(i,null)):s?e.createElement(l,b({reference:n,record:s,source:"items"},c),o):null},A=["source","record","reference","children"],T=function(t){var r=t.source,n=t.record,o=t.reference,a=t.children,i=m(t,A);if(1!==e.Children.count(a))throw new Error("<ReferenceCollectionField> only accepts a single child");return n&&n[r]?e.createElement(I,b({resource:o,collectionUrl:n[r]},i),a):null};T.defaultProps={addLabel:!0};var R=function(e){var a=c().identity,i=y(t([]),2),l=i[0],s=i[1],f=y(t(!1),2),p=f[0],d=f[1],h=y(t(!1),2),b=h[0],m=h[1],E=y(t(!1),2),O=E[0],g=E[1],I=r((function(){if(e){if(e.startsWith("http"))return e;var t;if(null!=a&&a.webIdData)return null==a||null===(t=a.webIdData)||void 0===t?void 0:t[e]}}),[a,e]),A=n(v(regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(I){e.next=2;break}return e.abrupt("return");case 2:d(!0),t=new Headers({Accept:"application/ld+json",Authorization:"Bearer "+localStorage.getItem("token")}),u.fetchJson(I,{headers:t}).then((function(e){var t=e.json;t&&t.items?s(t.items):s([]),g(!1),m(!0),d(!1)})).catch((function(){g(!0),m(!0),d(!1)}));case 5:case"end":return e.stop()}}),e)}))),[s,m,d,g,I]);o((function(){p||b||O||A()}),[A,p,b,O]);var T=n((function(e){s((function(t){return[].concat(w(t),[e])}))}),[s]),R=n((function(e){s((function(t){return t.filter((function(t){return"string"==typeof t?t!==e:t.id!==e}))}))}),[s]);return{items:l,loading:p,loaded:b,error:O,refetch:A,addItem:T,removeItem:R,url:I}},j=function(){var e=c().identity,t=r((function(){var t;if(null!=e&&e.webIdData)return null==e||null===(t=e.webIdData)||void 0===t?void 0:t.inbox}),[e]),o=r((function(){var t,r;if(null!=e&&e.webIdData)return null==e||null===(t=e.webIdData)||void 0===t||null===(r=t.endpoints)||void 0===r?void 0:r["void:sparqlEndpoint"]}),[e]);return{fetch:n(function(){var e=v(regeneratorRuntime.mark((function e(r){var n,a,i,c,l,f,p;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=r.filters,o&&t){e.next=3;break}return e.abrupt("return");case 3:return a=localStorage.getItem("token"),i=s(["as:object"]),c="",n&&Object.keys(n).forEach((function(e){if(n[e]){var t=n[e].startsWith("http")?"<".concat(n[e],">"):n[e];c+="?s1 ".concat(e," ").concat(t," .")}})),l="\n PREFIX as: <https://www.w3.org/ns/activitystreams#>\n CONSTRUCT {\n ?s1 ?p1 ?o1 .\n ".concat(i.construct,"\n }\n WHERE {\n <").concat(t,"> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n FILTER( (isIRI(?s1)) ) .\n ").concat(c,"\n ").concat(i.where,"\n }\n "),e.next=10,u.fetchJson(o,{method:"POST",body:l,headers:new Headers({Accept:"application/ld+json",Authorization:"Bearer "+a})});case 10:if(f=e.sent,!(p=f.json)["@graph"]){e.next=16;break}return e.abrupt("return",p["@graph"]);case 16:return e.abrupt("return",null);case 17:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),[o,t]),url:t,owner:null==e?void 0:e.id}},P=function(){var e=c().identity,t=r((function(){var t;if(null!=e&&e.webIdData)return null==e||null===(t=e.webIdData)||void 0===t?void 0:t.outbox}),[e]),o=r((function(){var t,r;if(null!=e&&e.webIdData)return null==e||null===(t=e.webIdData)||void 0===t||null===(r=t.endpoints)||void 0===r?void 0:r["void:sparqlEndpoint"]}),[e]);return{post:n(function(){var e=v(regeneratorRuntime.mark((function e(r){var n,o,a;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=localStorage.getItem("token"),e.prev=1,e.next=4,u.fetchJson(t,{method:"POST",body:JSON.stringify(p({"@context":"https://www.w3.org/ns/activitystreams"},r)),headers:new Headers({"Content-Type":"application/ld+json",Authorization:"Bearer ".concat(n)})});case 4:return o=e.sent,a=o.headers,e.abrupt("return",a.get("Location"));case 9:return e.prev=9,e.t0=e.catch(1),e.abrupt("return",!1);case 12:case"end":return e.stop()}}),e,null,[[1,9]])})));return function(t){return e.apply(this,arguments)}}(),[t]),fetch:n(v(regeneratorRuntime.mark((function e(){var r,n,a,i,c;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o&&t){e.next=2;break}return e.abrupt("return");case 2:return r=localStorage.getItem("token"),n=s(["as:object"]),a="\n PREFIX as: <https://www.w3.org/ns/activitystreams#>\n CONSTRUCT {\n ?s1 ?p1 ?o1 .\n ".concat(n.construct,"\n }\n WHERE {\n <").concat(t,"> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n ").concat(n.where,"\n }\n "),e.next=7,u.fetchJson(o,{method:"POST",body:a,headers:new Headers({Accept:"application/ld+json",Authorization:"Bearer "+r})});case 7:if(i=e.sent,!(c=i.json)["@graph"]){e.next=13;break}return e.abrupt("return",c["@graph"]);case 13:return e.abrupt("return",null);case 14:case"end":return e.stop()}}),e)}))),[o,t]),url:t,owner:null==e?void 0:e.id}},S=function(){return{fetch:n(function(){var e=v(regeneratorRuntime.mark((function e(t){var r,n,o,a,i,c,l,s,f;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t.split("@"),n=y(r,3),o=n[1],!(a=n[2])){e.next=18;break}return i=a.includes(":")?"http":"https",c="".concat(i,"://").concat(a,"/.well-known/webfinger?resource=acct:").concat(o,"@").concat(a),e.prev=4,e.next=7,u.fetchJson(c);case 7:return l=e.sent,s=l.json,f=s.links.find((function(e){return"application/activity+json"===e.type})),e.abrupt("return",f?f.href:null);case 13:return e.prev=13,e.t0=e.catch(4),e.abrupt("return",null);case 16:e.next=19;break;case 18:return e.abrupt("return",null);case 19:case"end":return e.stop()}}),e,null,[[4,13]])})));return function(t){return e.apply(this,arguments)}}(),[])}},D={ACCEPT:"Accept",ADD:"Add",ANNOUNCE:"Announce",ARRIVE:"Arrive",BLOCK:"Block",CREATE:"Create",DELETE:"Delete",DISLIKE:"Dislike",FLAG:"Flag",FOLLOW:"Follow",IGNORE:"Ignore",INVITE:"Invite",JOIN:"Join",LEAVE:"Leave",LIKE:"Like",LISTEN:"Listen",MOVE:"Move",OFFER:"Offer",QUESTION:"Question",REJECT:"Reject",READ:"Read",REMOVE:"Remove",TENTATIVE_REJECT:"TentativeReject",TENTATIVE_ACCEPT:"TentativeAccept",TRAVAL:"Travel",UNDO:"Undo",UPDATE:"Update",VIEW:"View"},C={APPLICATION:"Application",GROUP:"Group",ORGANIZATION:"Organization",PERSON:"Person",SERVICE:"Service"},k={ARTICLE:"Article",AUDIO:"Audio",DOCUMENT:"Document",EVENT:"Event",IMAGE:"Image",NOTE:"Note",PAGE:"Page",PLACE:"Place",PROFILE:"Profile",RELATIONSHIP:"Relationship",TOMBSTONE:"Tombstone",VIDEO:"Video"},x="https://www.w3.org/ns/activitystreams#Public";export{D as ACTIVITY_TYPES,C as ACTOR_TYPES,I as CollectionList,k as OBJECT_TYPES,x as PUBLIC_URI,T as ReferenceCollectionField,R as useCollection,j as useInbox,P as useOutbox,S as useWebfinger};
|
|
1
|
+
import e,{useState as t,useMemo as r,useCallback as n,useEffect as o}from"react";import{useGetOne as a,LinearProgress as i,useGetIdentity as c,fetchUtils as u}from"react-admin";import{ReferenceArrayField as l,buildBlankNodesQuery as s}from"@semapps/semantic-data-provider";function f(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function p(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?f(Object(r),!0).forEach((function(t){h(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):f(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function d(e,t,r,n,o,a,i){try{var c=e[a](i),u=c.value}catch(e){return void r(e)}c.done?t(u):Promise.resolve(u).then(n,o)}function v(e){return function(){var t=this,r=arguments;return new Promise((function(n,o){var a=e.apply(t,r);function i(e){d(a,n,o,i,c,"next",e)}function c(e){d(a,n,o,i,c,"throw",e)}i(void 0)}))}}function h(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function b(){return(b=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e}).apply(this,arguments)}function m(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},a=Object.keys(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(n=0;n<a.length;n++)r=a[n],t.indexOf(r)>=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function y(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==r)return;var n,o,a=[],i=!0,c=!1;try{for(r=r.call(e);!(i=(n=r.next()).done)&&(a.push(n.value),!t||a.length!==t);i=!0);}catch(e){c=!0,o=e}finally{try{i||null==r.return||r.return()}finally{if(c)throw o}}return a}(e,t)||E(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function w(e){return function(e){if(Array.isArray(e))return O(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||E(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function E(e,t){if(e){if("string"==typeof e)return O(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?O(e,t):void 0}}function O(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var g=["collectionUrl","resource","children"],I=function(t){var r=t.collectionUrl,n=t.resource,o=t.children,c=m(t,g);if(1!==e.Children.count(o))throw new Error("<CollectionList> only accepts a single child");var u=a(n,r,{enabled:!!r}),s=u.data;return u.loading?e.createElement("div",{style:{marginTop:8}},e.createElement(i,null)):s?e.createElement(l,b({reference:n,record:s,source:"items"},c),o):null},A=["source","record","reference","children"],T=function(t){var r=t.source,n=t.record,o=t.reference,a=t.children,i=m(t,A);if(1!==e.Children.count(a))throw new Error("<ReferenceCollectionField> only accepts a single child");return n&&n[r]?e.createElement(I,b({resource:o,collectionUrl:n[r]},i),a):null};T.defaultProps={addLabel:!0};var R=function(e){var a=c().identity,i=y(t([]),2),l=i[0],s=i[1],f=y(t(!1),2),p=f[0],d=f[1],h=y(t(!1),2),b=h[0],m=h[1],E=y(t(!1),2),O=E[0],g=E[1],I=r((function(){if(e){if(e.startsWith("http"))return e;var t;if(null!=a&&a.webIdData)return null==a||null===(t=a.webIdData)||void 0===t?void 0:t[e]}}),[a,e]),A=n(v(regeneratorRuntime.mark((function e(){var t;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(I){e.next=2;break}return e.abrupt("return");case 2:d(!0),t=new Headers({Accept:"application/ld+json",Authorization:"Bearer "+localStorage.getItem("token")}),u.fetchJson(I,{headers:t}).then((function(e){var t=e.json;t&&t.items?s(t.items):s([]),g(!1),m(!0),d(!1)})).catch((function(){g(!0),m(!0),d(!1)}));case 5:case"end":return e.stop()}}),e)}))),[s,m,d,g,I]);o((function(){p||b||O||A()}),[A,p,b,O]);var T=n((function(e){s((function(t){return[].concat(w(t),[e])}))}),[s]),R=n((function(e){s((function(t){return t.filter((function(t){return"string"==typeof t?t!==e:t.id!==e}))}))}),[s]);return{items:l,loading:p,loaded:b,error:O,refetch:A,addItem:T,removeItem:R,url:I}},j=function(){var e=c().identity,t=r((function(){var t;if(null!=e&&e.webIdData)return null==e||null===(t=e.webIdData)||void 0===t?void 0:t.inbox}),[e]),o=r((function(){var t,r;if(null!=e&&e.webIdData)return null==e||null===(t=e.webIdData)||void 0===t||null===(r=t.endpoints)||void 0===r?void 0:r["void:sparqlEndpoint"]}),[e]);return{fetch:n(function(){var e=v(regeneratorRuntime.mark((function e(r){var n,a,i,c,l,f,p;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n=r.filters,o&&t){e.next=3;break}return e.abrupt("return");case 3:return a=localStorage.getItem("token"),i=s(["as:object"]),c="",n&&Object.keys(n).forEach((function(e){if(n[e]){var t=n[e].startsWith("http")?"<".concat(n[e],">"):n[e];c+="?s1 ".concat(e," ").concat(t," .")}})),l="\n PREFIX as: <https://www.w3.org/ns/activitystreams#>\n CONSTRUCT {\n ?s1 ?p1 ?o1 .\n ".concat(i.construct,"\n }\n WHERE {\n <").concat(t,"> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n FILTER( (isIRI(?s1)) ) .\n ").concat(c,"\n ").concat(i.where,"\n }\n "),e.next=10,u.fetchJson(o,{method:"POST",body:l,headers:new Headers({Accept:"application/ld+json",Authorization:"Bearer "+a})});case 10:if(f=e.sent,!(p=f.json)["@graph"]){e.next=16;break}return e.abrupt("return",p["@graph"]);case 16:return e.abrupt("return",null);case 17:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}(),[o,t]),url:t,owner:null==e?void 0:e.id}},P=function(){var e=c().identity,t=r((function(){var t;if(null!=e&&e.webIdData)return null==e||null===(t=e.webIdData)||void 0===t?void 0:t.outbox}),[e]),o=r((function(){var t,r;if(null!=e&&e.webIdData)return null==e||null===(t=e.webIdData)||void 0===t||null===(r=t.endpoints)||void 0===r?void 0:r["void:sparqlEndpoint"]}),[e]);return{post:n(function(){var e=v(regeneratorRuntime.mark((function e(r){var n,o,a;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n=localStorage.getItem("token"),e.prev=1,e.next=4,u.fetchJson(t,{method:"POST",body:JSON.stringify(p({"@context":"https://www.w3.org/ns/activitystreams"},r)),headers:new Headers({"Content-Type":"application/ld+json",Authorization:"Bearer ".concat(n)})});case 4:return o=e.sent,a=o.headers,e.abrupt("return",a.get("Location"));case 9:return e.prev=9,e.t0=e.catch(1),e.abrupt("return",!1);case 12:case"end":return e.stop()}}),e,null,[[1,9]])})));return function(t){return e.apply(this,arguments)}}(),[t]),fetch:n(v(regeneratorRuntime.mark((function e(){var r,n,a,i,c;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(o&&t){e.next=2;break}return e.abrupt("return");case 2:return r=localStorage.getItem("token"),n=s(["as:object"]),a="\n PREFIX as: <https://www.w3.org/ns/activitystreams#>\n CONSTRUCT {\n ?s1 ?p1 ?o1 .\n ".concat(n.construct,"\n }\n WHERE {\n <").concat(t,"> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n ").concat(n.where,"\n }\n "),e.next=7,u.fetchJson(o,{method:"POST",body:a,headers:new Headers({Accept:"application/ld+json",Authorization:"Bearer "+r})});case 7:if(i=e.sent,!(c=i.json)["@graph"]){e.next=13;break}return e.abrupt("return",c["@graph"]);case 13:return e.abrupt("return",null);case 14:case"end":return e.stop()}}),e)}))),[o,t]),url:t,owner:null==e?void 0:e.id}},S=function(){return{fetch:n(function(){var e=v(regeneratorRuntime.mark((function e(t){var r,n,o,a,i,c,l,s,f;return regeneratorRuntime.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(r=t.split("@"),n=y(r,3),o=n[1],!(a=n[2])){e.next=18;break}return i=a.includes(":")?"http":"https",c="".concat(i,"://").concat(a,"/.well-known/webfinger?resource=acct:").concat(o,"@").concat(a),e.prev=4,e.next=7,u.fetchJson(c);case 7:return l=e.sent,s=l.json,f=s.links.find((function(e){return"application/activity+json"===e.type})),e.abrupt("return",f?f.href:null);case 13:return e.prev=13,e.t0=e.catch(4),e.abrupt("return",null);case 16:e.next=19;break;case 18:return e.abrupt("return",null);case 19:case"end":return e.stop()}}),e,null,[[4,13]])})));return function(t){return e.apply(this,arguments)}}(),[])}},D={ACCEPT:"Accept",ADD:"Add",ANNOUNCE:"Announce",ARRIVE:"Arrive",BLOCK:"Block",CREATE:"Create",DELETE:"Delete",DISLIKE:"Dislike",FLAG:"Flag",FOLLOW:"Follow",IGNORE:"Ignore",INVITE:"Invite",JOIN:"Join",LEAVE:"Leave",LIKE:"Like",LISTEN:"Listen",MOVE:"Move",OFFER:"Offer",QUESTION:"Question",REJECT:"Reject",READ:"Read",REMOVE:"Remove",TENTATIVE_REJECT:"TentativeReject",TENTATIVE_ACCEPT:"TentativeAccept",TRAVAL:"Travel",UNDO:"Undo",UPDATE:"Update",VIEW:"View"},C={APPLICATION:"Application",GROUP:"Group",ORGANIZATION:"Organization",PERSON:"Person",SERVICE:"Service"},k={ARTICLE:"Article",AUDIO:"Audio",DOCUMENT:"Document",EVENT:"Event",IMAGE:"Image",NOTE:"Note",PAGE:"Page",PLACE:"Place",PROFILE:"Profile",RELATIONSHIP:"Relationship",TOMBSTONE:"Tombstone",VIDEO:"Video"},x="https://www.w3.org/ns/activitystreams#Public";export{D as ACTIVITY_TYPES,C as ACTOR_TYPES,I as CollectionList,k as OBJECT_TYPES,x as PUBLIC_URI,T as ReferenceCollectionField,R as useCollection,j as useInbox,P as useOutbox,S as useWebfinger};
|
|
2
2
|
//# sourceMappingURL=index.es.js.map
|
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 { buildBlankNodesQuery } 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 blankNodesQuery = buildBlankNodesQuery(['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 ${blankNodesQuery.construct}\n }\n WHERE {\n <${inboxUrl}> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n FILTER( (isIRI(?s1)) ) .\n ${filtersWhereQuery}\n ${blankNodesQuery.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 { buildBlankNodesQuery } 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 blankNodesQuery = buildBlankNodesQuery(['as:object']);\n\n const query = `\n PREFIX as: <https://www.w3.org/ns/activitystreams#>\n CONSTRUCT {\n ?s1 ?p1 ?o1 .\n ${blankNodesQuery.construct}\n }\n WHERE {\n <${outboxUrl}> as:items ?s1 .\n ?s1 ?p1 ?o1 .\n ${blankNodesQuery.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","blankNodesQuery","buildBlankNodesQuery","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.28",
|
|
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": "e42f6e847f55cb8be34d5f88641876349ecb8154"
|
|
38
38
|
}
|