diff --git a/package.json b/package.json index ed4b6d1..aa2f990 100644 --- a/package.json +++ b/package.json @@ -130,6 +130,7 @@ "postcss-loader": "^7.1.0", "prettier": "^2.8.6", "raw-loader": "^4.0.2", + "rdf-ext": "^2.5.0", "rdf-js": "^4.0.2", "react": "^18.2.0", "react-dom": "^18.2.0", @@ -138,6 +139,7 @@ "recoil": "^0.7.7", "rocketrml": "^2.1.2", "sass-loader": "^13.2.1", + "shacl-engine": "^0.1.0", "source-map-loader": "^4.0.1", "source-map-support": "^0.5.21", "style-loader": "^3.3.2", diff --git a/public/Person.ttl b/public/Person.ttl index 730b0fd..e1c14df 100644 --- a/public/Person.ttl +++ b/public/Person.ttl @@ -14,52 +14,26 @@ self:Philosopher sh:property [ sh:path schema:givenName ; - sh:datatype rdf:langString ; - sh:languageIn ( "en" "nl" ) ; + sh:datatype xsd:string ; sh:minCount 1 ; sh:maxCount 1 ; ] ; sh:property [ sh:path schema:familyName ; + sh:datatype xsd:string ; sh:minCount 1 ; sh:maxCount 1 ; ] ; - # sh:property [ - # sh:path rdf:type ; - # sh:in ( dbo:Philosopher ) ; - # sh:minCount 1 ; - # sh:maxCount 1 ; - # ] ; - sh:property [ sh:path dbo:birthPlace ; - sh:nodeKind sh:IRI ; - sh:node self:Location ; + sh:datatype xsd:string1 ; + sh:maxCount 1 ; ] ; sh:property [ sh:path dbo:birthDate ; - sh:datatype xsd:date; + sh:datatype xsd:string ; sh:maxCount 1 ; ] . - -# self:Location -# a sh:NodeShape ; - -# sh:targetClass ; - -# # sh:property [ -# # sh:path rdf:type ; -# # sh:minCount 1 ; -# # sh:maxCount 1 ; -# # ] ; - -# sh:property [ -# sh:path rdfs:label ; -# sh:datatype rdf:langString ; -# sh:languageIn ( "de" "fr" ) ; -# sh:minCount 1 ; -# sh:maxCount 1 ; -# ] . \ No newline at end of file diff --git a/src/containers/Configure/InteractiveTableHeaders.tsx b/src/containers/Configure/InteractiveTableHeaders.tsx index fbe40f2..5336436 100644 --- a/src/containers/Configure/InteractiveTableHeaders.tsx +++ b/src/containers/Configure/InteractiveTableHeaders.tsx @@ -32,6 +32,7 @@ const TableHeaders: React.FC = ({ shaclShapeMeta }) => { const [transformationConfig, setTransformationConfig] = useRecoilState(transformationConfigState); const [selectedHeader, setSelectedHeader] = React.useState(); const prefixes = useRecoilValue(prefixState); + const [activeDragOverColumn, setActiveDragOverColumn] = React.useState('') let columns = transformationConfig.columnConfiguration @@ -46,12 +47,21 @@ const TableHeaders: React.FC = ({ shaclShapeMeta }) => { const dragOver = (columnConfig: ColumnConfiguration) => !columnConfig.shaclColumn ? (event: any) => { event.preventDefault(); + setActiveDragOverColumn(columnConfig.columnName) event.dataTransfer.dropEffect = "move"; } : undefined + + const dragOut = (columnConfig: ColumnConfiguration) => !columnConfig.shaclColumn ? (event: any) => { + setActiveDragOverColumn('') + } : undefined + + + const dropArea = (columnConfig: ColumnConfiguration) => !columnConfig.shaclColumn ? (event: any) => { event.preventDefault(); const propertyIri = event.dataTransfer.getData("application/ld-wizard"); + setActiveDragOverColumn('') setTransformationConfig((state) => { const columnConfiguration = [...state.columnConfiguration]; @@ -90,12 +100,13 @@ const TableHeaders: React.FC = ({ shaclShapeMeta }) => { return ( setSelectedHeader(columnConfig)} // Replace Default tableCell with ButtonBase to create ripple effects on click diff --git a/src/containers/Configure/style.scss b/src/containers/Configure/style.scss index 9280382..fb4bc85 100644 --- a/src/containers/Configure/style.scss +++ b/src/containers/Configure/style.scss @@ -32,6 +32,7 @@ th.tableHeader { cursor: default; background-color: #ccc; } + &.shaclColumn { cursor: move; /* fallback if grab cursor is unsupported */ cursor: grab; @@ -39,6 +40,10 @@ th.tableHeader { cursor: -webkit-grab; background-color: #ffdec4; } + + &.draggingOver { + background-color: #ffdec4; + } } .hint { pointer-events: none; diff --git a/src/containers/Publish/DownloadResults.tsx b/src/containers/Publish/DownloadResults.tsx index d9dc9f8..eae1ebe 100644 --- a/src/containers/Publish/DownloadResults.tsx +++ b/src/containers/Publish/DownloadResults.tsx @@ -12,14 +12,15 @@ import { getFileBaseName } from "../../utils/helpers.ts"; interface Props { transformationResult: string; refinedCsv: Matrix | undefined; + shaclConforms: boolean | null, + shaclReport?: string } -const DownloadResults: React.FC = ({ transformationResult, refinedCsv }) => { +const DownloadResults: React.FC = ({ transformationResult, refinedCsv, shaclConforms, shaclReport }) => { const downloadRef = React.useRef(null); const source = useRecoilValue(sourceState); const transformationConfig = useRecoilValue(transformationConfigState); - const downloadFile = (content: File | string | undefined, defaultName: string, mediaType: string) => { if (!downloadRef.current || !content) return; if (typeof content === "string") { @@ -87,8 +88,12 @@ const DownloadResults: React.FC = ({ transformationResult, refinedCsv }) } /> Download the transformed Linked Data (RDF) to your local machine. + + {shaclConforms === false ?

The data does not conform to the selected SHACL shape
: null} + {shaclConforms === true ?

The data does conform to the selected SHACL shape
: null}
+ {shaclConforms !== false ? + : + option === 'rdf' ? `RDF` : 'SHACL report'} + getButtonlabel={(selectedOption) => selectedOption === 'rdf' ? `Download RDF` : 'Download SHACL report'} + onActionSelected={(result) => { + if (result === 'rdf') { + downloadFile(transformationResult, rdfFileName, "application/n-triples") + } + else { + downloadFile(shaclReport, 'shacl-validation-report.nt', "application/n-triples") + } + }} + />} diff --git a/src/containers/Publish/index.tsx b/src/containers/Publish/index.tsx index f826bb7..1f86d39 100644 --- a/src/containers/Publish/index.tsx +++ b/src/containers/Publish/index.tsx @@ -10,6 +10,10 @@ import { currentTokenState } from "../../state/clientJs.ts"; import DownloadResults from "./DownloadResults.tsx"; import { wizardAppConfig, PublishElement } from "../../config/index.ts"; import { Matrix } from "../../Definitions.ts"; +import { Validator } from 'shacl-engine' +import rdf from 'rdf-ext' +import { Parser, Store, Writer } from 'n3' + interface Props { } export const Step = 3; const Publish: React.FC = ({ }) => { @@ -21,6 +25,9 @@ const Publish: React.FC = ({ }) => { const [transformationResult, setTransformationResult] = React.useState(); const [transformationError, setTransformationError] = React.useState(); const [progress, setProgress] = React.useState(0); + const [conforms, setConforms] = React.useState(null); + const [shaclReportTurtle, setShaclReportTurtle] = React.useState(''); + function LinearProgressWithLabel(props: LinearProgressProps & { value: number }) { return ( @@ -252,6 +259,25 @@ function LinearProgressWithLabel(props: LinearProgressProps & { value: number }) source: tempRefinedCsv || parsedCsv, type: "rml", }); + + if (transformationConfig.shaclShape) { + const shaclShapes = await wizardAppConfig.getShaclShapes() + + const selectedShaclShape = shaclShapes.find(shaclShape => shaclShape.iri === transformationConfig.shaclShape) + const parser = new Parser() + const quads = await parser.parse(transformationResult) + const store = new Store(quads) + const validator = new Validator(selectedShaclShape.store, { factory: rdf }) + const report = await validator.validate({ dataset: store }) + + setConforms(report.conforms) + + if (!report.conforms) { + const writer = new Writer() + for (const quad of report.dataset) writer.addQuad(quad) + writer.end((error, result) => setShaclReportTurtle(result)) + } + } setTransformationResult(transformationResult); } }; @@ -296,7 +322,7 @@ function LinearProgressWithLabel(props: LinearProgressProps & { value: number }) } const publishOptions: { [P in PublishElement]: React.ReactElement } = { download: ( - + ), triplyDB: ( =1.0.1" + +"@rdfjs/data-model@^2.0.0", "@rdfjs/data-model@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@rdfjs/data-model/-/data-model-2.0.1.tgz#410aeaea65de9bac605b63172baa64384b65ca98" + integrity sha512-oRDYpy7/fJ9NNjS+M7m+dbnhi4lOWYGbBiM/A+u9bBExnN6ifXUF5mUsFxwZaQulmwTDaMhKERdV6iKTBUMgtw== + +"@rdfjs/dataset@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@rdfjs/dataset/-/dataset-2.0.1.tgz#8d4c448291ebfd40d75ebe1d5d59a2b3f4843bac" + integrity sha512-hDIaXpUmU/ZdofX/BMFDAchkhN/AjmP5dMCOuVL2VCqWuFjeQxd2KV84E4+7S2Biw8tjEFhPBeQZP7KW+ARV7Q== + +"@rdfjs/environment@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@rdfjs/environment/-/environment-1.0.0.tgz#fd36305e93e2e1ec772684a497c533414b2d56ba" + integrity sha512-+S5YjSvfoQR5r7YQCRCCVHvIEyrWia7FJv2gqM3s5EDfotoAQmFeBagApa9c/eQFi5EiNhmBECE5nB8LIxTaHg== + +"@rdfjs/fetch-lite@^3.2.1": + version "3.2.2" + resolved "https://registry.yarnpkg.com/@rdfjs/fetch-lite/-/fetch-lite-3.2.2.tgz#5968745715ce452912c2b2d638ed1f313582b301" + integrity sha512-hcdg9gvMgaOLPGS1LAYPjyS3rjQg2x8G/do+ZTlHjIHrAtRzXZCa0ui+pzoT98258RQzxEGqajY4ug4IqSuHZw== + dependencies: + is-stream "^3.0.0" + nodeify-fetch "^3.1.0" + readable-stream "^4.4.2" + +"@rdfjs/formats@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@rdfjs/formats/-/formats-4.0.0.tgz#8d629ac9563e3a19e4c701d225c4136d401ced0f" + integrity sha512-9e0DX+iWi8d958Px6Ggb1otl/EhfyvlfWcop+lS0aZlsGV2YK9Phl5lzCUYTfTefSyyQk8tJd5XN52hhDLb5Wg== + dependencies: + "@rdfjs/parser-jsonld" "^2.1.0" + "@rdfjs/parser-n3" "^2.0.1" + "@rdfjs/serializer-jsonld" "^2.0.0" + "@rdfjs/serializer-jsonld-ext" "^4.0.0" + "@rdfjs/serializer-ntriples" "^2.0.0" + "@rdfjs/serializer-turtle" "^1.1.1" + "@rdfjs/sink-map" "^2.0.0" + rdfxml-streaming-parser "^2.3.0" + +"@rdfjs/io@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@rdfjs/io/-/io-1.0.0.tgz#9fe1f88e7710632d3ce615271c8f8f771374e5da" + integrity sha512-+yBzq3Tlrw7vd4NFTdKfKjtJi+PiYi5jLqGwNh3H/kqrYBQOK3iuZuUAT8mpIAPNx/ZTs0+egwGcP1Felh79KA== + dependencies: + duplex-to "^2.0.0" + readable-stream "^4.4.2" + stream-chunks "^1.0.0" + +"@rdfjs/namespace@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@rdfjs/namespace/-/namespace-1.1.0.tgz#869cb9a9f37c4ab4c0a03b603baeb0b95487609f" + integrity sha512-utO5rtaOKxk8B90qzaQ0N+J5WrCI28DtfAY/zExCmXE7cOfC5uRI/oMKbLaVEPj2P7uArekt/T4IPATtj7Tjug== + dependencies: + "@rdfjs/data-model" "^1.1.0" + +"@rdfjs/namespace@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@rdfjs/namespace/-/namespace-2.0.0.tgz#e6ca090f253505d95544c6482400c89e55fc9e1c" + integrity sha512-cBBvNrlSOah4z7u2vS74Lxng/ivELy6tNPjx+G/Ag14up8z5xmX8njn+U/mJ+nlcXO7nDGK4rgaAq7jtl9S3CQ== + dependencies: + "@rdfjs/data-model" "^2.0.0" + +"@rdfjs/normalize@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@rdfjs/normalize/-/normalize-2.0.0.tgz#87f6872043e3459da7baa09946f746fd3d3144f1" + integrity sha512-jOSdIKz9r/oPI9nuWXMTYzFaCbrFQj9qEOPdqs1/7oAR1JTvqpS69HVZPkVqbH+WhL52PJbBXyA5QadoyNLgpQ== + dependencies: + rdf-canonize "^3.0.0" + +"@rdfjs/parser-jsonld@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@rdfjs/parser-jsonld/-/parser-jsonld-2.1.0.tgz#4ce6218541dd2a382a0a5d7c99ed0d62a2c60ca1" + integrity sha512-RdulIDLGFNJljM28IDjdeEtMnY7QGlOGvAZebSNM6FhGfp1FsRYvr+5yQRKrpSHHfM97vKyHOyKis1MT8f3IfQ== + dependencies: + "@rdfjs/data-model" "^2.0.1" + "@rdfjs/sink" "^2.0.0" + duplex-to "^2.0.0" + jsonld-streaming-parser "^3.0.0" + readable-stream "^4.2.0" + +"@rdfjs/parser-n3@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@rdfjs/parser-n3/-/parser-n3-2.0.1.tgz#fcb99546c4d545495b4d24ea2d6748a325aee742" + integrity sha512-D9ZHQwtuKG7aF3nGcOijXWkaR//lpck0UB3AL+4P7OELY1idjmVjQjhreQxY5ll8cbPp2slavPvFfUWYSDtEwA== + dependencies: + "@rdfjs/data-model" "^2.0.1" + "@rdfjs/sink" "^2.0.0" + duplex-to "^2.0.0" + n3 "^1.16.2" + readable-stream "^4.2.0" + +"@rdfjs/prefix-map@^0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@rdfjs/prefix-map/-/prefix-map-0.1.1.tgz#d0222b6b29aa27ce4f27939784b62ffbef152ad0" + integrity sha512-w9VrJ/YfMyvdcpuKG0XEzgbH6AXtUSugvgL1U1IvbTYdL2rfIifaYkSyp86lEhD2hHeYUYAGZTKkpDErtXCMxQ== + dependencies: + readable-stream "^4.3.0" + +"@rdfjs/score@^0.1.1": + version "0.1.1" + resolved "https://registry.yarnpkg.com/@rdfjs/score/-/score-0.1.1.tgz#8431cbf62458eb28ddc06dcbd02ee5d814d4f492" + integrity sha512-+t9Sf5nFUJTvH8X2Xy7H+egLKIyVCwlDzCGrWThSrSCmIENcC9n3+GkMMImnsmYDeSXaWi3awcI1f1TmA84FIQ== + dependencies: + "@rdfjs/data-model" "^2.0.1" + "@rdfjs/term-map" "^2.0.0" + "@rdfjs/term-set" "^2.0.1" + "@rdfjs/to-ntriples" "^2.0.0" + +"@rdfjs/serializer-jsonld-ext@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@rdfjs/serializer-jsonld-ext/-/serializer-jsonld-ext-4.0.0.tgz#6a921048ef864bfdb7ac917acec202238a401ecb" + integrity sha512-HP5DCmhyfVuQuk58AO5vzNY+dIFVHe2oHY8NX2K+3XmrTmu/yzrFzPbDeU9Cwr71XC4RifEMoksIg+8jnhxmfQ== + dependencies: + "@rdfjs/sink" "^2.0.0" + jsonld "^8.1.0" + readable-stream "^4.3.0" + stream-chunks "^1.0.0" + +"@rdfjs/serializer-jsonld@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@rdfjs/serializer-jsonld/-/serializer-jsonld-2.0.0.tgz#65b7ccb4567b861db633eda1cd21e9fd4dce6b43" + integrity sha512-JGk17iT5QW1FpTI8SBruXIcYQFuuUwqurByNndWTE4k0zrNzvwrfOtsd6lIMthlubWVTfBAhV7mHDSwtMHdHQg== + dependencies: + "@rdfjs/sink" "^2.0.0" + readable-stream "^4.2.0" + +"@rdfjs/serializer-ntriples@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@rdfjs/serializer-ntriples/-/serializer-ntriples-2.0.0.tgz#da08dd11c5e6fc7a7ac09d0942e525fcc4c33739" + integrity sha512-ODVUNR1kkVBCgBtOIkEvzUBs97u+EtCEi6r55kkigrrC2ud1FQ80+vczDdBBsemjijnfK1CwOAXG0DKRLztwZA== + dependencies: + "@rdfjs/to-ntriples" "^2.0.0" + duplex-to "^2.0.0" + readable-stream "^4.2.0" + +"@rdfjs/serializer-turtle@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@rdfjs/serializer-turtle/-/serializer-turtle-1.1.1.tgz#bfdfc5bc1efd6b719c56ff782f46aec519dab228" + integrity sha512-LaVHwfKsQwUE4vvg47eEjWEEGefo/MXaXfUGwNu2ZuwmYjcKGdKHuIvXEulVmAo3jF9y0bUr1n/OlCw6xlHWIg== + dependencies: + "@rdfjs/data-model" "^2.0.1" + "@rdfjs/namespace" "^2.0.0" + "@rdfjs/prefix-map" "^0.1.1" + "@rdfjs/sink" "^2.0.0" + "@rdfjs/term-map" "^2.0.0" + "@rdfjs/to-ntriples" "^2.0.0" + "@rdfjs/tree" "^0.2.0" + readable-stream "^4.3.0" + stream-chunks "^1.0.0" + +"@rdfjs/sink-map@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@rdfjs/sink-map/-/sink-map-2.0.0.tgz#8026d59cd2ab7a84fdd65a2afa4421500dfdd112" + integrity sha512-5Ahs1Ky6fglsqewpo89K7CFxD4EvFvAHdI/E5HJTu0L4tCUlvnZsmyKem4iYPDWdwsKplmUdORonUz75qPgd1g== + +"@rdfjs/sink@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@rdfjs/sink/-/sink-2.0.0.tgz#a770dde3170b3b2f49d8805ebd0dcf8f12491956" + integrity sha512-EDM6BjdVZdTHa6L3XWnXCDDu7h2tD/UAczc8WSG+Aw3m9yYkUUHypExNhlkA67sNRORC9Q/9hyHkAZBOVNRI6A== + +"@rdfjs/term-map@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@rdfjs/term-map/-/term-map-2.0.0.tgz#6360314e9b62a1d540b213865403130721be1123" + integrity sha512-z0K8AgLsJGTrh+dGkXNl/oT9vBdMei4xq1MIeGN360oimA81Q+ruQUKFCbYNRRZS03tVHPBzqXUal/DezFGPEA== + dependencies: + "@rdfjs/to-ntriples" "^2.0.0" + +"@rdfjs/term-set@^2.0.0", "@rdfjs/term-set@^2.0.1": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@rdfjs/term-set/-/term-set-2.0.1.tgz#bbf406e0477c226e65753da2da0089cbbe847ab5" + integrity sha512-ZD8IwSY7tPpevs2iaQEsesAu8c7TO4GKHQHObbehUE4odKa9BuhuimdNuYwBoyVprTtHARaW6VW+0Jsu7ehD+Q== + dependencies: + "@rdfjs/to-ntriples" "^2.0.0" + +"@rdfjs/to-ntriples@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@rdfjs/to-ntriples/-/to-ntriples-2.0.0.tgz#ad70822e2ddf068fd1291b505e5c678c17af7a30" + integrity sha512-nDhpfhx6W6HKsy4HjyLp3H1nbrX1CiUCWhWQwKcYZX1s9GOjcoQTwY7GUUbVec0hzdJDQBR6gnjxtENBDt482Q== + +"@rdfjs/traverser@^0.1.1": + version "0.1.2" + resolved "https://registry.yarnpkg.com/@rdfjs/traverser/-/traverser-0.1.2.tgz#19dfafbbdc37c04f1bd220319d2500af9f423551" + integrity sha512-EBB/p9LrTMzupZ6VlxtBXyL0bdXFY7e5lAp2tHNwxOoe3kcR6hOJFVWdPT7pdWaSotyXbTIEQxG4PkXMw/OY7w== + dependencies: + "@rdfjs/to-ntriples" "^2.0.0" + +"@rdfjs/tree@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@rdfjs/tree/-/tree-0.2.0.tgz#bd0c222d349ccc5a2a69f7b4d1c9c5f5ebda2805" + integrity sha512-KhtzoHPDDvIYJLS2r4u1EL1TErmoRzI/6JThcf4RqwZNVCh9WrjrZedMvOcvl47Rawlrgjnt73uQtTa3RcbMzQ== + dependencies: + "@rdfjs/namespace" "^2.0.0" + "@rdfjs/term-map" "^2.0.0" + "@rdfjs/term-set" "^2.0.1" + +"@rdfjs/types@*", "@rdfjs/types@>=1.0.1", "@rdfjs/types@^1.1.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@rdfjs/types/-/types-1.1.0.tgz#098f180b7cccb03bb416c7b4d03baaa9d480e36b" integrity sha512-5zm8bN2/CC634dTcn/0AhTRLaQRjXDZs3QfcAsQKNturHT7XVWcKy/8p3P5gXl+YkZTAmy7T5M/LyiT/jbkENw== @@ -1875,6 +2083,13 @@ resolved "https://registry.yarnpkg.com/@remix-run/router/-/router-1.8.0.tgz#e848d2f669f601544df15ce2a313955e4bf0bafc" integrity sha512-mrfKqIHnSZRyIzBcanNJmVQELTnX+qagEDlcKO90RgRBVOZGSGvZKeDihTRfWcqoDn5N/NkUcwWTccnpN18Tfg== +"@rubensworks/saxes@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/@rubensworks/saxes/-/saxes-6.0.1.tgz#2f394548493a415c522d2bfd4f12fad67c9a6317" + integrity sha512-UW4OTIsOtJ5KSXo2Tchi4lhZqu+tlHrOAs4nNti7CrtB53kAZl3/hyrTi6HkMihxdbDM6m2Zc3swc/ZewEe1xw== + dependencies: + xmlchars "^2.2.0" + "@sinclair/typebox@^0.27.8": version "0.27.8" resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.27.8.tgz#6667fac16c436b5434a387a34dedb013198f6e6e" @@ -2208,6 +2423,13 @@ resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.1.tgz#20172f9578b225f6c7da63446f56d4ce108d5a65" integrity sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ== +"@types/http-link-header@^1.0.1": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/http-link-header/-/http-link-header-1.0.5.tgz#732f04e2eabdfdaf3cc48d44aa15026e1e2d6e91" + integrity sha512-AxhIKR8UbyoqCTNp9rRepkktHuUOw3DjfOfDCaO9kwI8AYzjhxyrvZq4+mRw/2daD3hYDknrtSeV6SsPwmc71w== + dependencies: + "@types/node" "*" + "@types/http-proxy@^1.17.8": version "1.17.11" resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.11.tgz#0ca21949a5588d55ac2b659b69035c84bd5da293" @@ -2294,6 +2516,13 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-20.5.9.tgz#a70ec9d8fa0180a314c3ede0e20ea56ff71aed9a" integrity sha512-PcGNd//40kHAS3sTlzKB9C9XL4K0sTup8nbG5lC14kzEteTNuAFh9u5nA0o5TWnSG2r/JNPRXFVcHJIIeRlmqQ== +"@types/node@^18.0.0": + version "18.19.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.2.tgz#865107157bda220eef9fa8c2173152d6559a41ae" + integrity sha512-6wzfBdbWpe8QykUkXBjtmO3zITA0A3FIjoy+in0Y2K4KrCiRhNYJIdwAPDffZ3G6GnaKaSLSEa9ZuORLfEoiwg== + dependencies: + undici-types "~5.26.4" + "@types/node@^18.15.5": version "18.17.14" resolved "https://registry.yarnpkg.com/@types/node/-/node-18.17.14.tgz#a621ad26e7eb076d6846dd3d39557ddf9d89f04b" @@ -2392,6 +2621,14 @@ "@types/scheduler" "*" csstype "^3.0.2" +"@types/readable-stream@^2.3.13": + version "2.3.15" + resolved "https://registry.yarnpkg.com/@types/readable-stream/-/readable-stream-2.3.15.tgz#3d79c9ceb1b6a57d5f6e6976f489b9b5384321ae" + integrity sha512-oM5JSKQCcICF1wvGgmecmHldZ48OZamtMxcGGVICOJA8o8cahXC1zEVAif8iwoc5j8etxFaRFnf095+CDsuoFQ== + dependencies: + "@types/node" "*" + safe-buffer "~5.1.1" + "@types/relateurl@*": version "0.2.29" resolved "https://registry.yarnpkg.com/@types/relateurl/-/relateurl-0.2.29.tgz#68ccecec3d4ffdafb9c577fe764f912afc050fe6" @@ -3899,7 +4136,7 @@ create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: safe-buffer "^5.0.1" sha.js "^2.4.8" -cross-fetch@^3.1.5: +cross-fetch@^3.0.6, cross-fetch@^3.1.5: version "3.1.8" resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.8.tgz#0327eba65fd68a7d119f8fb2bf9334a1a7956f82" integrity sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg== @@ -4394,6 +4631,11 @@ dot-case@^3.0.4: no-case "^3.0.4" tslib "^2.0.3" +duplex-to@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/duplex-to/-/duplex-to-2.0.0.tgz#ebcb0482a76abcb03a6f08d640f4dcefc5b97d1f" + integrity sha512-f2nMnk11mwDptEFBTv2mcWHpF4ENAbuQ63yTiSy/99rG4Exsxsf0GJhJYq/AHF2cdMYswSx23LPuoijBflpquQ== + duplexer@^0.1.1, duplexer@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6" @@ -4884,6 +5126,15 @@ file-entry-cache@^6.0.1: dependencies: flat-cache "^3.0.4" +file-fetch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/file-fetch/-/file-fetch-2.0.0.tgz#ccb90c3ceffa21ee4840252f23479ace897a6c76" + integrity sha512-zNBKfKZThjf5354uAcfXPMfxwDBiyZluznykkZc1HmMjP3IKKqAydDpDj7MO9oeUD0rVjqyuqhDjDi10blpwRA== + dependencies: + mime-types "^2.1.35" + readable-stream "^4.4.2" + stream-chunks "^1.0.0" + file-loader@^6.2.0: version "6.2.0" resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-6.2.0.tgz#baef7cf8e1840df325e4390b4484879480eebe4d" @@ -5279,6 +5530,14 @@ graphemer@^1.4.0: resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== +grapoi@^1.0.0, grapoi@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/grapoi/-/grapoi-1.1.0.tgz#1c58fe1f29c38f8c4d24d12445bec3198295f5d3" + integrity sha512-3MglAX41WbagJHsdezc+b+PCTNaGhIHmJuMB22jgzQEtB0rGoKXjGA+B7J7z9dvFAwd1/Sl08hLeWNnq8lurzw== + dependencies: + "@rdfjs/namespace" "^2.0.0" + "@rdfjs/term-set" "^2.0.0" + growly@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" @@ -5525,6 +5784,11 @@ http-errors@~1.6.2: setprototypeof "1.1.0" statuses ">= 1.4.0 < 2" +http-link-header@^1.0.2: + version "1.1.1" + resolved "https://registry.yarnpkg.com/http-link-header/-/http-link-header-1.1.1.tgz#f0e6971b0ed86e858d2077066ecb7ba4f2e50de9" + integrity sha512-mW3N/rTYpCn99s1do0zx6nzFZSwLH9HGfUM4ZqLWJ16ylmYaC2v5eYGqrNTQlByx8AzUgGI+V/32gXPugs1+Sw== + http-parser-js@>=0.5.1: version "0.5.8" resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.5.8.tgz#af23090d9ac4e24573de6f6aecc9d84a48bf20e3" @@ -6024,6 +6288,33 @@ jsonfile@^6.0.1: optionalDependencies: graceful-fs "^4.1.6" +jsonld-context-parser@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/jsonld-context-parser/-/jsonld-context-parser-2.4.0.tgz#fae15a56c5ceabd1c4520ab1a9cc12c9a0a8b67d" + integrity sha512-ZYOfvh525SdPd9ReYY58dxB3E2RUEU4DJ6ZibO8AitcowPeBH4L5rCAitE2om5G1P+HMEgYEYEr4EZKbVN4tpA== + dependencies: + "@types/http-link-header" "^1.0.1" + "@types/node" "^18.0.0" + cross-fetch "^3.0.6" + http-link-header "^1.0.2" + relative-to-absolute-iri "^1.0.5" + +jsonld-streaming-parser@^3.0.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/jsonld-streaming-parser/-/jsonld-streaming-parser-3.3.0.tgz#28fd00a1fba93fdae0f588a30fd4cb307d645d37" + integrity sha512-6aWiAsWGZioTB/vNQ3KenREz9ddEOliZoEETi+jLrlL7+vkgMeHjnxyFlGe4UOCU7SVUNPhz/lgLGZjnxgVYtA== + dependencies: + "@bergos/jsonparse" "^1.4.0" + "@rdfjs/types" "*" + "@types/http-link-header" "^1.0.1" + "@types/readable-stream" "^2.3.13" + buffer "^6.0.3" + canonicalize "^1.0.1" + http-link-header "^1.0.2" + jsonld-context-parser "^2.4.0" + rdf-data-factory "^1.1.0" + readable-stream "^4.0.0" + jsonld@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/jsonld/-/jsonld-5.2.0.tgz#d1e8af38a334cb95edf0f2ae4e2b58baf8d2b5a9" @@ -6604,7 +6895,7 @@ mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== -mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: +mime-types@^2.1.12, mime-types@^2.1.27, mime-types@^2.1.31, mime-types@^2.1.35, mime-types@~2.1.17, mime-types@~2.1.24, mime-types@~2.1.34: version "2.1.35" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== @@ -6820,6 +7111,14 @@ multicast-dns@^7.2.5: dns-packet "^5.2.2" thunky "^1.0.2" +n3@^1.16.2: + version "1.17.2" + resolved "https://registry.yarnpkg.com/n3/-/n3-1.17.2.tgz#3370b2d07da98a5b2865fa43c2d4e5c563cc65df" + integrity sha512-BxSM52wYFqXrbQQT5WUEzKUn6qpYV+2L4XZLfn3Gblz2kwZ09S+QxC33WNdVEQy2djenFL8SNkrjejEKlvI6+Q== + dependencies: + queue-microtask "^1.1.2" + readable-stream "^4.0.0" + n3@^1.16.3, n3@^1.16.4: version "1.17.1" resolved "https://registry.yarnpkg.com/n3/-/n3-1.17.1.tgz#cb42f39507cebebf2c990c2f8a3f5f53232c518c" @@ -6999,6 +7298,16 @@ node-sass@^9.0.0: stdout-stream "^1.4.0" "true-case-path" "^2.2.1" +nodeify-fetch@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/nodeify-fetch/-/nodeify-fetch-3.1.0.tgz#f8fb3a98ff345a9b5a2e8bed6e8e9fb185b58d60" + integrity sha512-ZV81vM//sEgTgXwVZlOONzcOCdTGQ53mV65FVSNXgPQHa8oCwRLtLbnGxL/1S/Yw90bcXUDKMz00jEnaeazo+A== + dependencies: + lodash "^4.17.21" + node-fetch "^3.2.10" + readable-stream "^4.2.0" + stream-chunks "^1.0.0" + nopt@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" @@ -7780,6 +8089,11 @@ proper-lockfile@^2.0.1: graceful-fs "^4.1.2" retry "^0.10.0" +proto-fetch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/proto-fetch/-/proto-fetch-2.0.0.tgz#c8f134adb940deb354b9c6208f30dafb24d650b3" + integrity sha512-QuhQVYN9WxCbJmfp/s3HLofEaDr/Jkq873++mo126XB2h+TFcKIGCIxeORH5ww9MOi2uP1SfWy4EgQH5PuBfdQ== + proxy-addr@~2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" @@ -7928,6 +8242,31 @@ rdf-data-factory@^1.1.0, rdf-data-factory@^1.1.1, rdf-data-factory@^1.1.2: dependencies: "@rdfjs/types" "*" +rdf-ext@^2.5.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/rdf-ext/-/rdf-ext-2.5.0.tgz#27464c6f94f0048f12c17d2d6aac2d1048fd178b" + integrity sha512-ptiGUER0lkAELBXtwGke98//gZvoPhzpnS8UPKBmAglbJCOdviUZMiV0ike89IDALkS2ccmgMM3uI9yIExS/vg== + dependencies: + "@rdfjs/data-model" "^2.0.1" + "@rdfjs/dataset" "^2.0.1" + "@rdfjs/environment" "^1.0.0" + "@rdfjs/fetch-lite" "^3.2.1" + "@rdfjs/formats" "^4.0.0" + "@rdfjs/io" "^1.0.0" + "@rdfjs/namespace" "^2.0.0" + "@rdfjs/normalize" "^2.0.0" + "@rdfjs/prefix-map" "^0.1.1" + "@rdfjs/score" "^0.1.1" + "@rdfjs/term-map" "^2.0.0" + "@rdfjs/term-set" "^2.0.1" + "@rdfjs/to-ntriples" "^2.0.0" + "@rdfjs/traverser" "^0.1.1" + file-fetch "^2.0.0" + grapoi "^1.0.2" + nodeify-fetch "^3.1.0" + proto-fetch "^2.0.0" + readable-stream "^4.3.0" + rdf-js@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/rdf-js/-/rdf-js-4.0.2.tgz#f01510528bbfc6e004012b71a8a533896c4c4c10" @@ -7935,6 +8274,14 @@ rdf-js@^4.0.2: dependencies: "@rdfjs/types" "*" +rdf-literal@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/rdf-literal/-/rdf-literal-1.3.1.tgz#07db05d4a92e1b8b3dd491a4499648872c6d96ee" + integrity sha512-+o/PGOfJchyay9Rjrvi/oveRJACnt2WFO3LhEvtPlsRD1tFmwVUCMU+s33FtQprMo+z1ohFrv/yfEQ6Eym4KgQ== + dependencies: + "@rdfjs/types" "*" + rdf-data-factory "^1.1.0" + rdf-string@^1.6.2, rdf-string@^1.6.3: version "1.6.3" resolved "https://registry.yarnpkg.com/rdf-string/-/rdf-string-1.6.3.tgz#5c3173fad13e6328698277fb8ff151e3423282ab" @@ -7943,6 +8290,28 @@ rdf-string@^1.6.2, rdf-string@^1.6.3: "@rdfjs/types" "*" rdf-data-factory "^1.1.0" +rdf-validate-datatype@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/rdf-validate-datatype/-/rdf-validate-datatype-0.1.5.tgz#1ebfe4a506aa7ff55e6c20eb4d559e55cf3936d7" + integrity sha512-gU+cD+AT1LpFwbemuEmTDjwLyFwJDiw21XHyIofKhFnEpXODjShBuxhgDGnZqW3qIEwu/vECjOecuD60e5ngiQ== + dependencies: + "@rdfjs/namespace" "^1.1.0" + "@rdfjs/to-ntriples" "^2.0.0" + +rdfxml-streaming-parser@^2.3.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/rdfxml-streaming-parser/-/rdfxml-streaming-parser-2.4.0.tgz#6552d5c5b448739d52a97e18126dfcdf0d84c877" + integrity sha512-f+tdI1wxOiPzMbFWRtOwinwPsqac0WIN80668yFKcVdFCSTGOWTM70ucQGUSdDZZo7pce/UvZgV0C3LDj0P7tg== + dependencies: + "@rdfjs/types" "*" + "@rubensworks/saxes" "^6.0.1" + "@types/readable-stream" "^2.3.13" + buffer "^6.0.3" + rdf-data-factory "^1.1.0" + readable-stream "^4.4.2" + relative-to-absolute-iri "^1.0.0" + validate-iri "^1.0.0" + react-dom@^18.2.0: version "18.2.0" resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d" @@ -8053,7 +8422,7 @@ readable-stream@^2.0.1: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^4.0.0: +readable-stream@^4.0.0, readable-stream@^4.2.0, readable-stream@^4.3.0, readable-stream@^4.4.2: version "4.4.2" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.4.2.tgz#e6aced27ad3b9d726d8308515b9a1b98dc1b9d13" integrity sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA== @@ -8153,6 +8522,11 @@ relateurl@^0.2.7: resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" integrity sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog== +relative-to-absolute-iri@^1.0.0, relative-to-absolute-iri@^1.0.5: + version "1.0.7" + resolved "https://registry.yarnpkg.com/relative-to-absolute-iri/-/relative-to-absolute-iri-1.0.7.tgz#f2fd6ee60c78d9ffc4926bd20bdf84479b91d765" + integrity sha512-Xjyl4HmIzg2jzK/Un2gELqbcE8Fxy85A/aLSHE6PE/3+OGsFwmKVA1vRyGaz6vLWSqLDMHA+5rjD/xbibSQN1Q== + renderkid@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-3.0.0.tgz#5fd823e4d6951d37358ecc9a58b1f06836b6268a" @@ -8509,6 +8883,20 @@ sha.js@^2.4.0, sha.js@^2.4.8: inherits "^2.0.1" safe-buffer "^5.0.1" +shacl-engine@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/shacl-engine/-/shacl-engine-0.1.0.tgz#f47f9cc303bf24d47ee20ca2c6696d2556de3fda" + integrity sha512-46lVKmeGN05OzOJ2edsEaRsXN910akv/EBsvRmWyqWF4r6CDaEGMK2oojW5VNQcXwDDRs0jn1fKMVt4d1d1GrA== + dependencies: + "@rdfjs/namespace" "^2.0.0" + "@rdfjs/term-map" "^2.0.0" + "@rdfjs/term-set" "^2.0.1" + "@rdfjs/to-ntriples" "^2.0.0" + grapoi "^1.0.0" + lodash "^4.17.21" + rdf-literal "^1.3.1" + rdf-validate-datatype "^0.1.5" + shallow-clone@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" @@ -8788,6 +9176,14 @@ stream-browserify@^3.0.0: inherits "~2.0.4" readable-stream "^3.5.0" +stream-chunks@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stream-chunks/-/stream-chunks-1.0.0.tgz#b8f8d6acfead08df3d2f514fbc9da262685ffde0" + integrity sha512-/G+kinLx3pKXChtuko82taA4gZo56zFG2b2BbhmugmS0TUPBL40c5b2vjonS+gAHYK/cSKM9m0WTvAJYgDUeNw== + dependencies: + buffer "^6.0.3" + string_decoder "^1.3.0" + stream-http@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-3.2.0.tgz#1872dfcf24cb15752677e40e5c3f9cc1926028b5" @@ -9186,6 +9582,11 @@ typescript@^5.1.6: resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== +undici-types@~5.26.4: + version "5.26.5" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== + undici@^5.21.2, undici@^5.22.1: version "5.24.0" resolved "https://registry.yarnpkg.com/undici/-/undici-5.24.0.tgz#6133630372894cfeb3c3dab13b4c23866bd344b5" @@ -9330,6 +9731,11 @@ uuid@^8.3.0, uuid@^8.3.2: resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== +validate-iri@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/validate-iri/-/validate-iri-1.0.1.tgz#4f7289a479e2ed96d3b8b613e12674c725fbb29b" + integrity sha512-gLXi7351CoyVVQw8XE5sgpYawRKatxE7kj/xmCxXOZS1kMdtcqC0ILIqLuVEVnAUQSL/evOGG3eQ+8VgbdnstA== + validate-npm-package-license@^3.0.1: version "3.0.4" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" @@ -9621,6 +10027,11 @@ ws@^8.13.0: resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.0.tgz#6c5792c5316dc9266ba8e780433fc45e6680aecd" integrity sha512-WR0RJE9Ehsio6U4TuM+LmunEsjQ5ncHlw4sn9ihD6RoJKZrVyH9FWV3dmnwu8B2aNib1OvG2X6adUCyFpQyWcg== +xmlchars@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" + integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== + "xpath-iterator@git+https://abc@github.com/ThibaultGerrier/XpathIterator#647ba7c2973b3feadcc010f83f7086fe043e0810": version "1.1.0" resolved "git+https://abc@github.com/ThibaultGerrier/XpathIterator#647ba7c2973b3feadcc010f83f7086fe043e0810"