From 6cb3cc40a4a6c118cad9eb51e6f98fdd9404839c Mon Sep 17 00:00:00 2001 From: romain Date: Wed, 7 Jul 2021 11:16:21 +0200 Subject: [PATCH 1/4] basic drag and drop interface for POD uploads --- my-demo-app/dist/index.html | 48 + my-demo-app/dist/my-demo.css | 65 + my-demo-app/package-lock.json | 771 +++++++++++ my-demo-app/package.json | 21 + my-demo-app/public/_ed1b-_d17e.index.js | 31 + my-demo-app/public/index.js | 1230 +++++++++++++++++ ...dors-node_modules_n3_src_index_js.index.js | 366 +++++ my-demo-app/src/index.js | 212 +++ my-demo-app/webpack.config.js | 22 + 9 files changed, 2766 insertions(+) create mode 100644 my-demo-app/dist/index.html create mode 100644 my-demo-app/dist/my-demo.css create mode 100644 my-demo-app/package-lock.json create mode 100644 my-demo-app/package.json create mode 100644 my-demo-app/public/_ed1b-_d17e.index.js create mode 100644 my-demo-app/public/index.js create mode 100644 my-demo-app/public/vendors-node_modules_n3_src_index_js.index.js create mode 100644 my-demo-app/src/index.js create mode 100644 my-demo-app/webpack.config.js diff --git a/my-demo-app/dist/index.html b/my-demo-app/dist/index.html new file mode 100644 index 0000000..9b17d54 --- /dev/null +++ b/my-demo-app/dist/index.html @@ -0,0 +1,48 @@ + + + + + + Getting Started: Inrupt JavaScript Client Libraries + + + + + +
+

Getting Started

+

with Inrupt JavaScript Client Libraries

+
+
+
+ + +

+
+
+ +
+
+ + + +
+
+
Profile SolidDataset:
+
+
Formatted Name (FN):
+
+
Role:
+
+
+
+
+ + +

Drop a file

+ +
+ + \ No newline at end of file diff --git a/my-demo-app/dist/my-demo.css b/my-demo-app/dist/my-demo.css new file mode 100644 index 0000000..4c72079 --- /dev/null +++ b/my-demo-app/dist/my-demo.css @@ -0,0 +1,65 @@ +h2,h3 { + margin: 1rem 1.2rem 1rem 1.4rem; +} + +body * { + margin-left: .5rem; + margin-right: 1rem; +} + +header { + border-bottom: #5795b9 solid; + padding-left: .5rem; +} + +.panel { + border: 1px solid #005b81; + border-radius: 4px; + box-shadow: rgb(184, 196, 194) 0px 4px 10px -4px; + box-sizing: border-box; + + padding: 1rem 1.5rem; + margin: 1rem 1.2rem 1rem 1.2rem; +} + +#login { + background: white; +} + +#read { + background: #e6f4f9; +} + +#labelStatus[role="alert"] { + padding-left: 1rem; + color: purple; +} + +.display { + margin-left: 1rem; + color: gray; +} + +dl { + display: grid; + grid-template-columns: max-content auto; +} + +dt { + grid-column-start: 1; +} + +dd { + grid-column-start: 2; +} + +.drop-zone +{ + outline-style: dashed; + outline-color: transparent; +} + +.drop-zone-hover +{ + outline-color: grey; +} \ No newline at end of file diff --git a/my-demo-app/package-lock.json b/my-demo-app/package-lock.json new file mode 100644 index 0000000..fb66654 --- /dev/null +++ b/my-demo-app/package-lock.json @@ -0,0 +1,771 @@ +{ + "name": "my-demo-app", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "@inrupt/solid-client": "^1.10.0", + "@inrupt/solid-client-authn-browser": "^1.9.1", + "@inrupt/vocab-common-rdf": "^0.7.4", + "buffer": "^6.0.3", + "events": "^3.3.0" + } + }, + "node_modules/@inrupt/jose-legacy-modules": { + "version": "0.0.3-3.13.0", + "resolved": "https://registry.npmjs.org/@inrupt/jose-legacy-modules/-/jose-legacy-modules-0.0.3-3.13.0.tgz", + "integrity": "sha512-r5+0/cF8BSpSslqC++/Fv7vJi6xAklWQDip2xIF5v/iIEYBjH7kVubqqil9uWz92npT2+SUolPBcNFcVAT9qdw==", + "dependencies": { + "jose": "3.13.0" + } + }, + "node_modules/@inrupt/oidc-client-ext": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@inrupt/oidc-client-ext/-/oidc-client-ext-1.9.1.tgz", + "integrity": "sha512-A4O0/75My1UyUqvBajxudBHcg6p+cJGVpiTl4d2y+wc7LiNIympU10ky8MwNXUg4hHVZkwMQB2VM7pwO7oX5Eg==", + "dependencies": { + "@inrupt/jose-legacy-modules": "0.0.3-3.13.0", + "@inrupt/solid-client-authn-core": "^1.9.1", + "@types/uuid": "^8.3.0", + "form-urlencoded": "~6.0.3", + "oidc-client": "^1.11.3", + "uuid": "^8.3.1" + } + }, + "node_modules/@inrupt/solid-client": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@inrupt/solid-client/-/solid-client-1.10.0.tgz", + "integrity": "sha512-/zr2jTcQ4yCiDIgFWSND5tirTAnaS1c2jPkbDRtcrDqYjJM87Y+PLW3Hfv21tH7jnPGWoBxC6sYMxD/bn17b2Q==", + "dependencies": { + "@rdfjs/dataset": "^1.1.0", + "@rdfjs/types": "^1.0.1", + "@types/n3": "^1.10.0", + "@types/rdfjs__dataset": "^1.0.4", + "cross-fetch": "^3.0.4", + "http-link-header": "^1.0.2", + "n3": "^1.10.0" + } + }, + "node_modules/@inrupt/solid-client-authn-browser": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@inrupt/solid-client-authn-browser/-/solid-client-authn-browser-1.9.1.tgz", + "integrity": "sha512-akQ6zJ1+861g9d9SD2E7Fo5BfvEv16FLeuj/tUI/41Q1WCNvVNq+5F2XD3t2nwGrVpk703QcwbptTY5kH5T7Ow==", + "dependencies": { + "@inrupt/jose-legacy-modules": "0.0.3-3.13.0", + "@inrupt/oidc-client-ext": "^1.9.1", + "@inrupt/solid-client-authn-core": "^1.9.1", + "@types/lodash.clonedeep": "^4.5.6", + "@types/node": "^15.0.1", + "@types/uuid": "^8.3.0", + "lodash.clonedeep": "^4.5.0", + "uuid": "^8.3.1" + } + }, + "node_modules/@inrupt/solid-client-authn-core": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@inrupt/solid-client-authn-core/-/solid-client-authn-core-1.9.1.tgz", + "integrity": "sha512-w3hAJPmlJhyl0LMf8GWI+pObphlki9Z2IjxXMXTd3v1sTERuZjjv45LkkctUUC8liErun4VYpcfvXJvsJHTONQ==", + "dependencies": { + "@inrupt/jose-legacy-modules": "0.0.3-3.13.0", + "@inrupt/solid-common-vocab": "^0.5.3", + "@types/lodash.clonedeep": "^4.5.6", + "@types/uuid": "^8.3.0", + "cross-fetch": "^3.0.6", + "lodash.clonedeep": "^4.5.0", + "uuid": "^8.3.1" + } + }, + "node_modules/@inrupt/solid-common-vocab": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@inrupt/solid-common-vocab/-/solid-common-vocab-0.5.3.tgz", + "integrity": "sha512-/BKKIInQaP/D6tCFOvViN2Duv2RLAbXCNpQUtQjkz3t6cbmxPBTwGuvwDLan7R+yLJhbiJmJP4yNYEw/5Zc+Rg==", + "dependencies": { + "@types/rdf-js": "4.0.0" + } + }, + "node_modules/@inrupt/vocab-common-rdf": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@inrupt/vocab-common-rdf/-/vocab-common-rdf-0.7.4.tgz", + "integrity": "sha512-FS5iyRV4TA8lHr5l2H8G9Ibua7DKijeHVN8w6R4w3MZs5YI6Ydaczpuf3yqPVj73Tg5LLLxlX3I4K2cf8u1fGg==", + "dependencies": { + "@types/rdf-js": "^4.0.0", + "rdf-data-factory": "^1.0.4" + } + }, + "node_modules/@rdfjs/data-model": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@rdfjs/data-model/-/data-model-1.3.2.tgz", + "integrity": "sha512-nzj6yrUFhWIkPTZ+6faXfmtTttGmkEL73gxv7/nYF56IgagQKc5mSDoTaluCO/h8S9jq30JbpUJInKx9LOdOVw==", + "dependencies": { + "@types/rdf-js": "*" + }, + "bin": { + "rdfjs-data-model-test": "bin/test.js" + } + }, + "node_modules/@rdfjs/dataset": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@rdfjs/dataset/-/dataset-1.1.1.tgz", + "integrity": "sha512-BNwCSvG0cz0srsG5esq6CQKJc1m8g/M0DZpLuiEp0MMpfwguXX7VeS8TCg4UUG3DV/DqEvhy83ZKSEjdsYseeA==", + "dependencies": { + "@rdfjs/data-model": "^1.2.0" + }, + "bin": { + "rdfjs-dataset-test": "bin/test.js" + } + }, + "node_modules/@rdfjs/types": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rdfjs/types/-/types-1.0.1.tgz", + "integrity": "sha512-YxVkH0XrCNG3MWeZxfg596GFe+oorTVusmNxRP6ZHTsGczZ8AGvG3UchRNkg3Fy4MyysI7vBAA5YZbESL+VmHQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/lodash": { + "version": "4.14.170", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.170.tgz", + "integrity": "sha512-bpcvu/MKHHeYX+qeEN8GE7DIravODWdACVA1ctevD8CN24RhPZIKMn9ntfAsrvLfSX3cR5RrBKAbYm9bGs0A+Q==" + }, + "node_modules/@types/lodash.clonedeep": { + "version": "4.5.6", + "resolved": "https://registry.npmjs.org/@types/lodash.clonedeep/-/lodash.clonedeep-4.5.6.tgz", + "integrity": "sha512-cE1jYr2dEg1wBImvXlNtp0xDoS79rfEdGozQVgliDZj1uERH4k+rmEMTudP9b4VQ8O6nRb5gPqft0QzEQGMQgA==", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/n3": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@types/n3/-/n3-1.10.0.tgz", + "integrity": "sha512-PTr6D6IV3l+dG0Og6E2vHVyXNAyOjEPEz1si3htgo9bkgjIj+9HDS68cbXjAxH7P5bDzyL1Cu5yaHZwjKYtLAw==", + "dependencies": { + "@types/node": "*", + "rdf-js": "^4.0.2" + } + }, + "node_modules/@types/node": { + "version": "15.14.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.1.tgz", + "integrity": "sha512-wF6hazbsnwaW3GhK4jFuw5NaLDQVRQ6pWQUGAUrJzxixFkTaODSiAKMPXuHwPEPkAKQWHAzj6uJ5h+3zU9gQxg==" + }, + "node_modules/@types/rdf-js": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/rdf-js/-/rdf-js-4.0.0.tgz", + "integrity": "sha512-2uaR7ks0380MqzUWGOPOOk9yZIr/6MOaCcaj3ntKgd2PqNocgi8j5kSHIJTDe+5ABtTHqKMSE0v0UqrsT8ibgQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/rdfjs__dataset": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/rdfjs__dataset/-/rdfjs__dataset-1.0.5.tgz", + "integrity": "sha512-8OBC9Kr/ZSgNoUTe5mHTDPHaPt8Xen4XbYfqcbYv56d+4WdKliHXaFmFc0L4I5vsynE5JGu21Hvg2zWgX1Az6Q==", + "dependencies": { + "rdf-js": "^4.0.2" + } + }, + "node_modules/@types/uuid": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.1.tgz", + "integrity": "sha512-Y2mHTRAbqfFkpjldbkHGY8JIzRN6XqYRliG8/24FcHm2D2PwW24fl5xMRTVGdrb7iMrwCaIEbLWerGIkXuFWVg==" + }, + "node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/core-js": { + "version": "3.15.2", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.15.2.tgz", + "integrity": "sha512-tKs41J7NJVuaya8DxIOCnl8QuPHx5/ZVbFo1oKgVl1qHFBBrDctzQGtuLjPpRdNTWmKPH6oEvgN/MUID+l485Q==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cross-fetch": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", + "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==", + "dependencies": { + "node-fetch": "2.6.1" + } + }, + "node_modules/crypto-js": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.0.0.tgz", + "integrity": "sha512-bzHZN8Pn+gS7DQA6n+iUmBfl0hO5DJq++QP3U6uTucDtk/0iGpXd/Gg7CGR0p8tJhofJyaKoWBuJI4eAO00BBg==" + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/form-urlencoded": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/form-urlencoded/-/form-urlencoded-6.0.4.tgz", + "integrity": "sha512-39GnqmnZkThJBXiKhBCrBGPKiwFHDgi3lcGO3SfURjXoz9x8quxNRTiIWViYN+QzQXxxl/uyKm+i+0PCj7Aqbw==" + }, + "node_modules/http-link-header": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http-link-header/-/http-link-header-1.0.3.tgz", + "integrity": "sha512-nARK1wSKoBBrtcoESlHBx36c1Ln/gnbNQi1eB6MeTUefJIT3NvUOsV15bClga0k38f0q/kN5xxrGSDS3EFnm9w==", + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/jose": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/jose/-/jose-3.13.0.tgz", + "integrity": "sha512-tTZayOvpOX8y/W7FuCL6Sma9sElbA80ImDck86a6ge70lyBpQngx557PtP9Aro4SLEOPtZVVxM1P/boPzy+m7A==", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, + "node_modules/lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" + }, + "node_modules/n3": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/n3/-/n3-1.11.0.tgz", + "integrity": "sha512-hdGhm7BbiesuQTm2S4Gsq2Z0J/iCRMsvtmrlLNxzXlnf1aSRsbKQk5XkFNKtX9aS54oKzyGSZUVm7F/IOhmFhg==", + "dependencies": { + "queue-microtask": "^1.1.2", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", + "engines": { + "node": "4.x || >=6.0.0" + } + }, + "node_modules/oidc-client": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/oidc-client/-/oidc-client-1.11.5.tgz", + "integrity": "sha512-LcKrKC8Av0m/KD/4EFmo9Sg8fSQ+WFJWBrmtWd+tZkNn3WT/sQG3REmPANE9tzzhbjW6VkTNy4xhAXCfPApAOg==", + "dependencies": { + "acorn": "^7.4.1", + "base64-js": "^1.5.1", + "core-js": "^3.8.3", + "crypto-js": "^4.0.0", + "serialize-javascript": "^4.0.0" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/rdf-data-factory": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/rdf-data-factory/-/rdf-data-factory-1.0.4.tgz", + "integrity": "sha512-ZIIwEkLcV7cTc+atvQFzAETFVRHz1BRe/MhdkZqYse8vxskErj8/bF/Ittc3B5c0GTyw6O3jVF2V7xBRGyRoSQ==", + "dependencies": { + "@types/rdf-js": "*" + } + }, + "node_modules/rdf-js": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/rdf-js/-/rdf-js-4.0.2.tgz", + "integrity": "sha512-ApvlFa/WsQh8LpPK/6hctQwG06Z9ztQQGWVtrcrf9L6+sejHNXLPOqL+w7q3hF+iL0C4sv3AX1PUtGkLNzyZ0Q==", + "dependencies": { + "@rdfjs/types": "*" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + } + }, + "dependencies": { + "@inrupt/jose-legacy-modules": { + "version": "0.0.3-3.13.0", + "resolved": "https://registry.npmjs.org/@inrupt/jose-legacy-modules/-/jose-legacy-modules-0.0.3-3.13.0.tgz", + "integrity": "sha512-r5+0/cF8BSpSslqC++/Fv7vJi6xAklWQDip2xIF5v/iIEYBjH7kVubqqil9uWz92npT2+SUolPBcNFcVAT9qdw==", + "requires": { + "jose": "3.13.0" + } + }, + "@inrupt/oidc-client-ext": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@inrupt/oidc-client-ext/-/oidc-client-ext-1.9.1.tgz", + "integrity": "sha512-A4O0/75My1UyUqvBajxudBHcg6p+cJGVpiTl4d2y+wc7LiNIympU10ky8MwNXUg4hHVZkwMQB2VM7pwO7oX5Eg==", + "requires": { + "@inrupt/jose-legacy-modules": "0.0.3-3.13.0", + "@inrupt/solid-client-authn-core": "^1.9.1", + "@types/uuid": "^8.3.0", + "form-urlencoded": "~6.0.3", + "oidc-client": "^1.11.3", + "uuid": "^8.3.1" + } + }, + "@inrupt/solid-client": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@inrupt/solid-client/-/solid-client-1.10.0.tgz", + "integrity": "sha512-/zr2jTcQ4yCiDIgFWSND5tirTAnaS1c2jPkbDRtcrDqYjJM87Y+PLW3Hfv21tH7jnPGWoBxC6sYMxD/bn17b2Q==", + "requires": { + "@rdfjs/dataset": "^1.1.0", + "@rdfjs/types": "^1.0.1", + "@types/n3": "^1.10.0", + "@types/rdfjs__dataset": "^1.0.4", + "cross-fetch": "^3.0.4", + "http-link-header": "^1.0.2", + "n3": "^1.10.0" + } + }, + "@inrupt/solid-client-authn-browser": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@inrupt/solid-client-authn-browser/-/solid-client-authn-browser-1.9.1.tgz", + "integrity": "sha512-akQ6zJ1+861g9d9SD2E7Fo5BfvEv16FLeuj/tUI/41Q1WCNvVNq+5F2XD3t2nwGrVpk703QcwbptTY5kH5T7Ow==", + "requires": { + "@inrupt/jose-legacy-modules": "0.0.3-3.13.0", + "@inrupt/oidc-client-ext": "^1.9.1", + "@inrupt/solid-client-authn-core": "^1.9.1", + "@types/lodash.clonedeep": "^4.5.6", + "@types/node": "^15.0.1", + "@types/uuid": "^8.3.0", + "lodash.clonedeep": "^4.5.0", + "uuid": "^8.3.1" + } + }, + "@inrupt/solid-client-authn-core": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@inrupt/solid-client-authn-core/-/solid-client-authn-core-1.9.1.tgz", + "integrity": "sha512-w3hAJPmlJhyl0LMf8GWI+pObphlki9Z2IjxXMXTd3v1sTERuZjjv45LkkctUUC8liErun4VYpcfvXJvsJHTONQ==", + "requires": { + "@inrupt/jose-legacy-modules": "0.0.3-3.13.0", + "@inrupt/solid-common-vocab": "^0.5.3", + "@types/lodash.clonedeep": "^4.5.6", + "@types/uuid": "^8.3.0", + "cross-fetch": "^3.0.6", + "lodash.clonedeep": "^4.5.0", + "uuid": "^8.3.1" + } + }, + "@inrupt/solid-common-vocab": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@inrupt/solid-common-vocab/-/solid-common-vocab-0.5.3.tgz", + "integrity": "sha512-/BKKIInQaP/D6tCFOvViN2Duv2RLAbXCNpQUtQjkz3t6cbmxPBTwGuvwDLan7R+yLJhbiJmJP4yNYEw/5Zc+Rg==", + "requires": { + "@types/rdf-js": "4.0.0" + } + }, + "@inrupt/vocab-common-rdf": { + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/@inrupt/vocab-common-rdf/-/vocab-common-rdf-0.7.4.tgz", + "integrity": "sha512-FS5iyRV4TA8lHr5l2H8G9Ibua7DKijeHVN8w6R4w3MZs5YI6Ydaczpuf3yqPVj73Tg5LLLxlX3I4K2cf8u1fGg==", + "requires": { + "@types/rdf-js": "^4.0.0", + "rdf-data-factory": "^1.0.4" + } + }, + "@rdfjs/data-model": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@rdfjs/data-model/-/data-model-1.3.2.tgz", + "integrity": "sha512-nzj6yrUFhWIkPTZ+6faXfmtTttGmkEL73gxv7/nYF56IgagQKc5mSDoTaluCO/h8S9jq30JbpUJInKx9LOdOVw==", + "requires": { + "@types/rdf-js": "*" + } + }, + "@rdfjs/dataset": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@rdfjs/dataset/-/dataset-1.1.1.tgz", + "integrity": "sha512-BNwCSvG0cz0srsG5esq6CQKJc1m8g/M0DZpLuiEp0MMpfwguXX7VeS8TCg4UUG3DV/DqEvhy83ZKSEjdsYseeA==", + "requires": { + "@rdfjs/data-model": "^1.2.0" + } + }, + "@rdfjs/types": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@rdfjs/types/-/types-1.0.1.tgz", + "integrity": "sha512-YxVkH0XrCNG3MWeZxfg596GFe+oorTVusmNxRP6ZHTsGczZ8AGvG3UchRNkg3Fy4MyysI7vBAA5YZbESL+VmHQ==", + "requires": { + "@types/node": "*" + } + }, + "@types/lodash": { + "version": "4.14.170", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.170.tgz", + "integrity": "sha512-bpcvu/MKHHeYX+qeEN8GE7DIravODWdACVA1ctevD8CN24RhPZIKMn9ntfAsrvLfSX3cR5RrBKAbYm9bGs0A+Q==" + }, + "@types/lodash.clonedeep": { + "version": "4.5.6", + "resolved": "https://registry.npmjs.org/@types/lodash.clonedeep/-/lodash.clonedeep-4.5.6.tgz", + "integrity": "sha512-cE1jYr2dEg1wBImvXlNtp0xDoS79rfEdGozQVgliDZj1uERH4k+rmEMTudP9b4VQ8O6nRb5gPqft0QzEQGMQgA==", + "requires": { + "@types/lodash": "*" + } + }, + "@types/n3": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@types/n3/-/n3-1.10.0.tgz", + "integrity": "sha512-PTr6D6IV3l+dG0Og6E2vHVyXNAyOjEPEz1si3htgo9bkgjIj+9HDS68cbXjAxH7P5bDzyL1Cu5yaHZwjKYtLAw==", + "requires": { + "@types/node": "*", + "rdf-js": "^4.0.2" + } + }, + "@types/node": { + "version": "15.14.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.14.1.tgz", + "integrity": "sha512-wF6hazbsnwaW3GhK4jFuw5NaLDQVRQ6pWQUGAUrJzxixFkTaODSiAKMPXuHwPEPkAKQWHAzj6uJ5h+3zU9gQxg==" + }, + "@types/rdf-js": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/rdf-js/-/rdf-js-4.0.0.tgz", + "integrity": "sha512-2uaR7ks0380MqzUWGOPOOk9yZIr/6MOaCcaj3ntKgd2PqNocgi8j5kSHIJTDe+5ABtTHqKMSE0v0UqrsT8ibgQ==", + "requires": { + "@types/node": "*" + } + }, + "@types/rdfjs__dataset": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/rdfjs__dataset/-/rdfjs__dataset-1.0.5.tgz", + "integrity": "sha512-8OBC9Kr/ZSgNoUTe5mHTDPHaPt8Xen4XbYfqcbYv56d+4WdKliHXaFmFc0L4I5vsynE5JGu21Hvg2zWgX1Az6Q==", + "requires": { + "rdf-js": "^4.0.2" + } + }, + "@types/uuid": { + "version": "8.3.1", + "resolved": "https://registry.npmjs.org/@types/uuid/-/uuid-8.3.1.tgz", + "integrity": "sha512-Y2mHTRAbqfFkpjldbkHGY8JIzRN6XqYRliG8/24FcHm2D2PwW24fl5xMRTVGdrb7iMrwCaIEbLWerGIkXuFWVg==" + }, + "acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "core-js": { + "version": "3.15.2", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.15.2.tgz", + "integrity": "sha512-tKs41J7NJVuaya8DxIOCnl8QuPHx5/ZVbFo1oKgVl1qHFBBrDctzQGtuLjPpRdNTWmKPH6oEvgN/MUID+l485Q==" + }, + "cross-fetch": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.4.tgz", + "integrity": "sha512-1eAtFWdIubi6T4XPy6ei9iUFoKpUkIF971QLN8lIvvvwueI65+Nw5haMNKUwfJxabqlIIDODJKGrQ66gxC0PbQ==", + "requires": { + "node-fetch": "2.6.1" + } + }, + "crypto-js": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.0.0.tgz", + "integrity": "sha512-bzHZN8Pn+gS7DQA6n+iUmBfl0hO5DJq++QP3U6uTucDtk/0iGpXd/Gg7CGR0p8tJhofJyaKoWBuJI4eAO00BBg==" + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" + }, + "form-urlencoded": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/form-urlencoded/-/form-urlencoded-6.0.4.tgz", + "integrity": "sha512-39GnqmnZkThJBXiKhBCrBGPKiwFHDgi3lcGO3SfURjXoz9x8quxNRTiIWViYN+QzQXxxl/uyKm+i+0PCj7Aqbw==" + }, + "http-link-header": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/http-link-header/-/http-link-header-1.0.3.tgz", + "integrity": "sha512-nARK1wSKoBBrtcoESlHBx36c1Ln/gnbNQi1eB6MeTUefJIT3NvUOsV15bClga0k38f0q/kN5xxrGSDS3EFnm9w==" + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "jose": { + "version": "3.13.0", + "resolved": "https://registry.npmjs.org/jose/-/jose-3.13.0.tgz", + "integrity": "sha512-tTZayOvpOX8y/W7FuCL6Sma9sElbA80ImDck86a6ge70lyBpQngx557PtP9Aro4SLEOPtZVVxM1P/boPzy+m7A==" + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=" + }, + "n3": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/n3/-/n3-1.11.0.tgz", + "integrity": "sha512-hdGhm7BbiesuQTm2S4Gsq2Z0J/iCRMsvtmrlLNxzXlnf1aSRsbKQk5XkFNKtX9aS54oKzyGSZUVm7F/IOhmFhg==", + "requires": { + "queue-microtask": "^1.1.2", + "readable-stream": "^3.6.0" + } + }, + "node-fetch": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", + "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + }, + "oidc-client": { + "version": "1.11.5", + "resolved": "https://registry.npmjs.org/oidc-client/-/oidc-client-1.11.5.tgz", + "integrity": "sha512-LcKrKC8Av0m/KD/4EFmo9Sg8fSQ+WFJWBrmtWd+tZkNn3WT/sQG3REmPANE9tzzhbjW6VkTNy4xhAXCfPApAOg==", + "requires": { + "acorn": "^7.4.1", + "base64-js": "^1.5.1", + "core-js": "^3.8.3", + "crypto-js": "^4.0.0", + "serialize-javascript": "^4.0.0" + } + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==" + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "rdf-data-factory": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/rdf-data-factory/-/rdf-data-factory-1.0.4.tgz", + "integrity": "sha512-ZIIwEkLcV7cTc+atvQFzAETFVRHz1BRe/MhdkZqYse8vxskErj8/bF/Ittc3B5c0GTyw6O3jVF2V7xBRGyRoSQ==", + "requires": { + "@types/rdf-js": "*" + } + }, + "rdf-js": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/rdf-js/-/rdf-js-4.0.2.tgz", + "integrity": "sha512-ApvlFa/WsQh8LpPK/6hctQwG06Z9ztQQGWVtrcrf9L6+sejHNXLPOqL+w7q3hF+iL0C4sv3AX1PUtGkLNzyZ0Q==", + "requires": { + "@rdfjs/types": "*" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "serialize-javascript": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", + "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "requires": { + "randombytes": "^2.1.0" + } + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + } + } +} diff --git a/my-demo-app/package.json b/my-demo-app/package.json new file mode 100644 index 0000000..f1cc483 --- /dev/null +++ b/my-demo-app/package.json @@ -0,0 +1,21 @@ +{ + "name": "my-demo-app", + "version": "1.0.0", + "description": "", + "main": "./src/index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1", + "build": "webpack", + "start": "webpack serve --open true" + }, + "keywords": [], + "author": "", + "license": "ISC", + "dependencies": { + "@inrupt/solid-client": "^1.10.0", + "@inrupt/solid-client-authn-browser": "^1.9.1", + "@inrupt/vocab-common-rdf": "^0.7.4", + "buffer": "^6.0.3", + "events": "^3.3.0" + } +} diff --git a/my-demo-app/public/_ed1b-_d17e.index.js b/my-demo-app/public/_ed1b-_d17e.index.js new file mode 100644 index 0000000..649d4dc --- /dev/null +++ b/my-demo-app/public/_ed1b-_d17e.index.js @@ -0,0 +1,31 @@ +/* + * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development"). + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +(self["webpackChunkmy_demo_app"] = self["webpackChunkmy_demo_app"] || []).push([["_ed1b-_d17e"],{ + +/***/ "?ed1b": +/*!**********************!*\ + !*** util (ignored) ***! + \**********************/ +/***/ (() => { + +eval("/* (ignored) */\n\n//# sourceURL=webpack://my-demo-app/util_(ignored)?"); + +/***/ }), + +/***/ "?d17e": +/*!**********************!*\ + !*** util (ignored) ***! + \**********************/ +/***/ (() => { + +eval("/* (ignored) */\n\n//# sourceURL=webpack://my-demo-app/util_(ignored)?"); + +/***/ }) + +}]); \ No newline at end of file diff --git a/my-demo-app/public/index.js b/my-demo-app/public/index.js new file mode 100644 index 0000000..0954912 --- /dev/null +++ b/my-demo-app/public/index.js @@ -0,0 +1,1230 @@ +/* + * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development"). + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +/******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ "./node_modules/@inrupt/jose-legacy-modules/dist/index.es.js": +/*!*******************************************************************!*\ + !*** ./node_modules/@inrupt/jose-legacy-modules/dist/index.es.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"CompactEncrypt\": () => (/* binding */ CompactEncrypt),\n/* harmony export */ \"CompactSign\": () => (/* binding */ CompactSign),\n/* harmony export */ \"EmbeddedJWK\": () => (/* binding */ EmbeddedJWK),\n/* harmony export */ \"EncryptJWT\": () => (/* binding */ EncryptJWT),\n/* harmony export */ \"FlattenedEncrypt\": () => (/* binding */ FlattenedEncrypt),\n/* harmony export */ \"FlattenedSign\": () => (/* binding */ FlattenedSign),\n/* harmony export */ \"GeneralSign\": () => (/* binding */ GeneralSign),\n/* harmony export */ \"JOSEAlgNotAllowed\": () => (/* binding */ JOSEAlgNotAllowed),\n/* harmony export */ \"JOSEError\": () => (/* binding */ JOSEError),\n/* harmony export */ \"JOSENotSupported\": () => (/* binding */ JOSENotSupported),\n/* harmony export */ \"JWEDecryptionFailed\": () => (/* binding */ JWEDecryptionFailed),\n/* harmony export */ \"JWEInvalid\": () => (/* binding */ JWEInvalid),\n/* harmony export */ \"JWKInvalid\": () => (/* binding */ JWKInvalid),\n/* harmony export */ \"JWKSInvalid\": () => (/* binding */ JWKSInvalid),\n/* harmony export */ \"JWKSMultipleMatchingKeys\": () => (/* binding */ JWKSMultipleMatchingKeys),\n/* harmony export */ \"JWKSNoMatchingKey\": () => (/* binding */ JWKSNoMatchingKey),\n/* harmony export */ \"JWSInvalid\": () => (/* binding */ JWSInvalid),\n/* harmony export */ \"JWSSignatureVerificationFailed\": () => (/* binding */ JWSSignatureVerificationFailed),\n/* harmony export */ \"JWTClaimValidationFailed\": () => (/* binding */ JWTClaimValidationFailed),\n/* harmony export */ \"JWTExpired\": () => (/* binding */ JWTExpired),\n/* harmony export */ \"JWTInvalid\": () => (/* binding */ JWTInvalid),\n/* harmony export */ \"SignJWT\": () => (/* binding */ SignJWT),\n/* harmony export */ \"UnsecuredJWT\": () => (/* binding */ UnsecuredJWT),\n/* harmony export */ \"base64UrlDecode\": () => (/* binding */ decode),\n/* harmony export */ \"base64UrlEncode\": () => (/* binding */ encode),\n/* harmony export */ \"calculateThumbprint\": () => (/* binding */ calculateThumbprint),\n/* harmony export */ \"compactDecrypt\": () => (/* binding */ compactDecrypt),\n/* harmony export */ \"compactVerify\": () => (/* binding */ compactVerify),\n/* harmony export */ \"createRemoteJWKSet\": () => (/* binding */ createRemoteJWKSet),\n/* harmony export */ \"decodeProtectedHeader\": () => (/* binding */ decodeProtectedHeader),\n/* harmony export */ \"flattenedDecrypt\": () => (/* binding */ flattenedDecrypt),\n/* harmony export */ \"flattenedVerify\": () => (/* binding */ flattenedVerify),\n/* harmony export */ \"fromKeyLike\": () => (/* binding */ fromKeyLike),\n/* harmony export */ \"generalDecrypt\": () => (/* binding */ generalDecrypt),\n/* harmony export */ \"generalVerify\": () => (/* binding */ generalVerify),\n/* harmony export */ \"generateKeyPair\": () => (/* binding */ generateKeyPair),\n/* harmony export */ \"generateSecret\": () => (/* binding */ generateSecret),\n/* harmony export */ \"jwtDecrypt\": () => (/* binding */ jwtDecrypt),\n/* harmony export */ \"jwtVerify\": () => (/* binding */ jwtVerify),\n/* harmony export */ \"parseJwk\": () => (/* binding */ parseJwk),\n/* harmony export */ \"random\": () => (/* binding */ random)\n/* harmony export */ });\nclass JOSEError extends Error {\n constructor(message) {\n super(message);\n this.code = JOSEError.code;\n this.name = this.constructor.name;\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n }\n }\n}\nJOSEError.code = 'ERR_JOSE_GENERIC';\nclass JWTClaimValidationFailed extends JOSEError {\n constructor(message, claim = 'unspecified', reason = 'unspecified') {\n super(message);\n this.code = JWTClaimValidationFailed.code;\n this.claim = claim;\n this.reason = reason;\n }\n}\nJWTClaimValidationFailed.code = 'ERR_JWT_CLAIM_VALIDATION_FAILED';\nclass JOSEAlgNotAllowed extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = JOSEAlgNotAllowed.code;\n }\n}\nJOSEAlgNotAllowed.code = 'ERR_JOSE_ALG_NOT_ALLOWED';\nclass JOSENotSupported extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = JOSENotSupported.code;\n }\n}\nJOSENotSupported.code = 'ERR_JOSE_NOT_SUPPORTED';\nclass JWEDecryptionFailed extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = JWEDecryptionFailed.code;\n this.message = 'decryption operation failed';\n }\n}\nJWEDecryptionFailed.code = 'ERR_JWE_DECRYPTION_FAILED';\nclass JWEInvalid extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = JWEInvalid.code;\n }\n}\nJWEInvalid.code = 'ERR_JWE_INVALID';\nclass JWSInvalid extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = JWSInvalid.code;\n }\n}\nJWSInvalid.code = 'ERR_JWS_INVALID';\nclass JWTInvalid extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = JWTInvalid.code;\n }\n}\nJWTInvalid.code = 'ERR_JWT_INVALID';\nclass JWKInvalid extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = JWKInvalid.code;\n }\n}\nJWKInvalid.code = 'ERR_JWK_INVALID';\nclass JWKSInvalid extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = JWKSInvalid.code;\n }\n}\nJWKSInvalid.code = 'ERR_JWKS_INVALID';\nclass JWKSNoMatchingKey extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = JWKSNoMatchingKey.code;\n this.message = 'no applicable key found in the JSON Web Key Set';\n }\n}\nJWKSNoMatchingKey.code = 'ERR_JWKS_NO_MATCHING_KEY';\nclass JWKSMultipleMatchingKeys extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = JWKSMultipleMatchingKeys.code;\n this.message = 'multiple matching keys found in the JSON Web Key Set';\n }\n}\nJWKSMultipleMatchingKeys.code = 'ERR_JWKS_MULTIPLE_MATCHING_KEYS';\nclass JWSSignatureVerificationFailed extends JOSEError {\n constructor() {\n super(...arguments);\n this.code = JWSSignatureVerificationFailed.code;\n this.message = 'signature verification failed';\n }\n}\nJWSSignatureVerificationFailed.code = 'ERR_JWS_SIGNATURE_VERIFICATION_FAILED';\nclass JWTExpired extends JWTClaimValidationFailed {\n constructor() {\n super(...arguments);\n this.code = JWTExpired.code;\n }\n}\nJWTExpired.code = 'ERR_JWT_EXPIRED';\n\nconst isDisjoint = (...headers) => {\n const sources = headers.filter(Boolean);\n if (sources.length === 0 || sources.length === 1) {\n return true;\n }\n let acc;\n for (const header of sources) {\n const parameters = Object.keys(header);\n if (!acc || acc.size === 0) {\n acc = new Set(parameters);\n continue;\n }\n for (const parameter of parameters) {\n if (acc.has(parameter)) {\n return false;\n }\n acc.add(parameter);\n }\n }\n return true;\n};\n\nfunction isObjectLike(value) {\n return typeof value === 'object' && value !== null;\n}\nfunction isObject(input) {\n if (!isObjectLike(input) || Object.prototype.toString.call(input) !== '[object Object]') {\n return false;\n }\n if (Object.getPrototypeOf(input) === null) {\n return true;\n }\n let proto = input;\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(input) === proto;\n}\n\nconst encoder = new TextEncoder();\nconst decoder = new TextDecoder();\nconst MAX_INT32 = 2 ** 32;\nfunction concat(...buffers) {\n const size = buffers.reduce((acc, { length }) => acc + length, 0);\n const buf = new Uint8Array(size);\n let i = 0;\n buffers.forEach((buffer) => {\n buf.set(buffer, i);\n i += buffer.length;\n });\n return buf;\n}\nfunction p2s(alg, p2sInput) {\n return concat(encoder.encode(alg), new Uint8Array([0]), p2sInput);\n}\nfunction writeUInt32BE(buf, value, offset) {\n if (value < 0 || value >= MAX_INT32) {\n throw new RangeError(`value must be >= 0 and <= ${MAX_INT32 - 1}. Received ${value}`);\n }\n buf.set([value >>> 24, value >>> 16, value >>> 8, value & 0xff], offset);\n}\nfunction uint64be(value) {\n const high = Math.floor(value / MAX_INT32);\n const low = value % MAX_INT32;\n const buf = new Uint8Array(8);\n writeUInt32BE(buf, high, 0);\n writeUInt32BE(buf, low, 4);\n return buf;\n}\nfunction uint32be(value) {\n const buf = new Uint8Array(4);\n writeUInt32BE(buf, value);\n return buf;\n}\nfunction lengthAndInput(input) {\n return concat(uint32be(input.length), input);\n}\nasync function concatKdf(digest, secret, bits, value) {\n const iterations = Math.ceil((bits >> 3) / 32);\n let res;\n for (let iter = 1; iter <= iterations; iter++) {\n const buf = new Uint8Array(4 + secret.length + value.length);\n buf.set(uint32be(iter));\n buf.set(secret, 4);\n buf.set(value, 4 + secret.length);\n if (!res) {\n res = await digest('sha256', buf);\n }\n else {\n res = concat(res, await digest('sha256', buf));\n }\n }\n res = res.slice(0, bits >> 3);\n return res;\n}\n\nfunction getGlobal() {\n if (typeof globalThis !== 'undefined')\n return globalThis;\n if (typeof self !== 'undefined')\n return self;\n if (typeof window !== 'undefined')\n return window;\n throw new Error('unable to locate global object');\n}\nvar globalThis$1 = getGlobal();\n\nconst encode$1 = (input) => {\n let unencoded = input;\n if (typeof unencoded === 'string') {\n unencoded = encoder.encode(unencoded);\n }\n const CHUNK_SIZE = 0x8000;\n const arr = [];\n for (let i = 0; i < unencoded.length; i += CHUNK_SIZE) {\n arr.push(String.fromCharCode.apply(null, unencoded.subarray(i, i + CHUNK_SIZE)));\n }\n const base64string = globalThis$1.btoa(arr.join(''));\n return base64string.replace(/=/g, '').replace(/\\+/g, '-').replace(/\\//g, '_');\n};\nconst decode$1 = (input) => {\n let encoded = input;\n if (encoded instanceof Uint8Array) {\n encoded = decoder.decode(encoded);\n }\n encoded = encoded.replace(/-/g, '+').replace(/_/g, '/').replace(/\\s/g, '');\n try {\n return new Uint8Array(globalThis$1\n .atob(encoded)\n .split('')\n .map((c) => c.charCodeAt(0)));\n }\n catch (_a) {\n throw new TypeError('The input to be decoded is not correctly encoded.');\n }\n};\n\nconst bitLengths$1 = new Map([\n ['A128CBC-HS256', 128],\n ['A128GCM', 96],\n ['A128GCMKW', 96],\n ['A192CBC-HS384', 128],\n ['A192GCM', 96],\n ['A192GCMKW', 96],\n ['A256CBC-HS512', 128],\n ['A256GCM', 96],\n ['A256GCMKW', 96],\n]);\nconst factory$1 = (random) => (alg) => {\n const bitLength = bitLengths$1.get(alg);\n if (!bitLength) {\n throw new JOSENotSupported(`Unsupported JWE Algorithm: ${alg}`);\n }\n return random(new Uint8Array(bitLength >> 3));\n};\n\nconst checkIvLength = (enc, iv) => {\n if (iv.length << 3 !== bitLengths$1.get(enc)) {\n throw new JWEInvalid('Invalid Initialization Vector length');\n }\n};\n\nconst checkCekLength = (enc, cek) => {\n let expected;\n switch (enc) {\n case 'A128CBC-HS256':\n case 'A192CBC-HS384':\n case 'A256CBC-HS512':\n expected = parseInt(enc.substr(-3), 10);\n if (!(cek instanceof Uint8Array)) {\n throw new TypeError(`${enc} content encryption requires Uint8Array as key input`);\n }\n break;\n case 'A128GCM':\n case 'A192GCM':\n case 'A256GCM':\n expected = parseInt(enc.substr(1, 3), 10);\n break;\n default:\n throw new JOSENotSupported(`Content Encryption Algorithm ${enc} is not supported either by JOSE or your javascript runtime`);\n }\n if (cek instanceof Uint8Array) {\n if (cek.length << 3 !== expected) {\n throw new JWEInvalid('Invalid Content Encryption Key length');\n }\n return;\n }\n if (cek.algorithm !== undefined) {\n const { length } = cek.algorithm;\n if (length !== expected) {\n throw new JWEInvalid('Invalid Content Encryption Key length');\n }\n return;\n }\n throw new TypeError('Invalid Content Encryption Key type');\n};\n\nconst timingSafeEqual = (a, b) => {\n if (!(a instanceof Uint8Array)) {\n throw new TypeError('First argument must be a buffer');\n }\n if (!(b instanceof Uint8Array)) {\n throw new TypeError('Second argument must be a buffer');\n }\n if (a.length !== b.length) {\n throw new TypeError('Input buffers must have the same length');\n }\n const len = a.length;\n let out = 0;\n let i = -1;\n while (++i < len) {\n out |= a[i] ^ b[i];\n }\n return out === 0;\n};\n\nvar crypto = globalThis$1.crypto;\nfunction isCryptoKey(key) {\n if (typeof globalThis$1.CryptoKey === 'undefined') {\n return false;\n }\n return key != null && key instanceof globalThis$1.CryptoKey;\n}\n\nasync function cbcDecrypt(enc, cek, ciphertext, iv, tag, aad) {\n const keySize = parseInt(enc.substr(1, 3), 10);\n const encKey = await crypto.subtle.importKey('raw', cek.subarray(keySize >> 3), 'AES-CBC', false, ['decrypt']);\n const macKey = await crypto.subtle.importKey('raw', cek.subarray(0, keySize >> 3), {\n hash: { name: `SHA-${keySize << 1}` },\n name: 'HMAC',\n }, false, ['sign']);\n const macData = concat(aad, iv, ciphertext, uint64be(aad.length << 3));\n const expectedTag = new Uint8Array((await crypto.subtle.sign('HMAC', macKey, macData)).slice(0, keySize >> 3));\n let macCheckPassed;\n try {\n macCheckPassed = timingSafeEqual(tag, expectedTag);\n }\n catch (_a) {\n }\n if (!macCheckPassed) {\n throw new JWEDecryptionFailed();\n }\n let plaintext;\n try {\n plaintext = new Uint8Array(await crypto.subtle.decrypt({ iv, name: 'AES-CBC' }, encKey, ciphertext));\n }\n catch (_b) {\n }\n if (!plaintext) {\n throw new JWEDecryptionFailed();\n }\n return plaintext;\n}\nasync function gcmDecrypt(cek, ciphertext, iv, tag, aad) {\n const encKey = cek instanceof Uint8Array\n ? await crypto.subtle.importKey('raw', cek, 'AES-GCM', false, ['decrypt'])\n : cek;\n try {\n return new Uint8Array(await crypto.subtle.decrypt({\n additionalData: aad,\n iv,\n name: 'AES-GCM',\n tagLength: 128,\n }, encKey, concat(ciphertext, tag)));\n }\n catch (err) {\n throw new JWEDecryptionFailed();\n }\n}\nconst decrypt$2 = async (enc, cek, ciphertext, iv, tag, aad) => {\n if (!isCryptoKey(cek) && !(cek instanceof Uint8Array)) {\n throw new TypeError('invalid key input');\n }\n checkCekLength(enc, cek);\n checkIvLength(enc, iv);\n if (enc.substr(4, 3) === 'CBC') {\n return cbcDecrypt(enc, cek, ciphertext, iv, tag, aad);\n }\n return gcmDecrypt(cek, ciphertext, iv, tag, aad);\n};\n\nconst inflate = async () => {\n throw new JOSENotSupported('JWE \"zip\" (Compression Algorithm) Header Parameter is not supported by your javascript runtime. You need to use the `inflateRaw` decrypt option to provide Inflate Raw implementation, e.g. using the \"pako\" module.');\n};\nconst deflate = async () => {\n throw new JOSENotSupported('JWE \"zip\" (Compression Algorithm) Header Parameter is not supported by your javascript runtime.');\n};\n\nconst bogusWebCrypto = [\n { hash: { name: 'SHA-256' }, name: 'HMAC' },\n true,\n ['sign'],\n];\n\nfunction checkKeySize(key, alg) {\n if (key.algorithm.length !== parseInt(alg.substr(1, 3), 10)) {\n throw new TypeError(`invalid key size for alg: ${alg}`);\n }\n}\nfunction getCryptoKey$2(key, usage) {\n if (isCryptoKey(key)) {\n return key;\n }\n if (key instanceof Uint8Array) {\n return crypto.subtle.importKey('raw', key, 'AES-KW', true, [usage]);\n }\n throw new TypeError('invalid key input');\n}\nconst wrap$1 = async (alg, key, cek) => {\n const cryptoKey = await getCryptoKey$2(key, 'wrapKey');\n checkKeySize(cryptoKey, alg);\n const cryptoKeyCek = await crypto.subtle.importKey('raw', cek, ...bogusWebCrypto);\n return new Uint8Array(await crypto.subtle.wrapKey('raw', cryptoKeyCek, cryptoKey, 'AES-KW'));\n};\nconst unwrap$1 = async (alg, key, encryptedKey) => {\n const cryptoKey = await getCryptoKey$2(key, 'unwrapKey');\n checkKeySize(cryptoKey, alg);\n const cryptoKeyCek = await crypto.subtle.unwrapKey('raw', encryptedKey, cryptoKey, 'AES-KW', ...bogusWebCrypto);\n return new Uint8Array(await crypto.subtle.exportKey('raw', cryptoKeyCek));\n};\n\nconst digest = async (algorithm, data) => {\n const subtleDigest = `SHA-${algorithm.substr(-3)}`;\n return new Uint8Array(await crypto.subtle.digest(subtleDigest, data));\n};\n\nconst deriveKey = async (publicKey, privateKey, algorithm, keyLength, apu = new Uint8Array(0), apv = new Uint8Array(0)) => {\n if (!isCryptoKey(publicKey)) {\n throw new TypeError('invalid key input');\n }\n if (!isCryptoKey(privateKey)) {\n throw new TypeError('invalid key input');\n }\n const value = concat(lengthAndInput(encoder.encode(algorithm)), lengthAndInput(apu), lengthAndInput(apv), uint32be(keyLength));\n if (!privateKey.usages.includes('deriveBits')) {\n throw new TypeError('ECDH-ES private key \"usages\" must include \"deriveBits\"');\n }\n const sharedSecret = new Uint8Array(await crypto.subtle.deriveBits({\n name: 'ECDH',\n public: publicKey,\n }, privateKey, Math.ceil(parseInt(privateKey.algorithm.namedCurve.substr(-3), 10) / 8) <<\n 3));\n return concatKdf(digest, sharedSecret, keyLength, value);\n};\nconst generateEpk = async (key) => {\n if (!isCryptoKey(key)) {\n throw new TypeError('invalid key input');\n }\n return (await crypto.subtle.generateKey({ name: 'ECDH', namedCurve: key.algorithm.namedCurve }, true, ['deriveBits'])).privateKey;\n};\nconst ecdhAllowed = (key) => {\n if (!isCryptoKey(key)) {\n throw new TypeError('invalid key input');\n }\n return ['P-256', 'P-384', 'P-521'].includes(key.algorithm.namedCurve);\n};\n\nconst random$1 = crypto.getRandomValues.bind(crypto);\n\nfunction checkP2s(p2s) {\n if (!(p2s instanceof Uint8Array) || p2s.length < 8) {\n throw new JWEInvalid('PBES2 Salt Input must be 8 or more octets');\n }\n}\n\nfunction getCryptoKey$1(key) {\n if (key instanceof Uint8Array) {\n return crypto.subtle.importKey('raw', key, 'PBKDF2', false, ['deriveBits']);\n }\n if (isCryptoKey(key)) {\n return key;\n }\n throw new TypeError('invalid key input');\n}\nconst encrypt$2 = async (alg, key, cek, p2c = Math.floor(Math.random() * 2049) + 2048, p2s$1 = random$1(new Uint8Array(16))) => {\n checkP2s(p2s$1);\n const salt = p2s(alg, p2s$1);\n const keylen = parseInt(alg.substr(13, 3), 10);\n const subtleAlg = {\n hash: { name: `SHA-${alg.substr(8, 3)}` },\n iterations: p2c,\n name: 'PBKDF2',\n salt,\n };\n const wrapAlg = {\n length: keylen,\n name: 'AES-KW',\n };\n const cryptoKey = await getCryptoKey$1(key);\n let derived;\n if (cryptoKey.usages.includes('deriveBits')) {\n derived = new Uint8Array(await crypto.subtle.deriveBits(subtleAlg, cryptoKey, keylen));\n }\n else if (cryptoKey.usages.includes('deriveKey')) {\n derived = await crypto.subtle.deriveKey(subtleAlg, cryptoKey, wrapAlg, false, ['wrapKey']);\n }\n else {\n throw new TypeError('PBKDF2 key \"usages\" must include \"deriveBits\" or \"deriveKey\"');\n }\n const encryptedKey = await wrap$1(alg.substr(-6), derived, cek);\n return { encryptedKey, p2c, p2s: encode$1(p2s$1) };\n};\nconst decrypt$1 = async (alg, key, encryptedKey, p2c, p2s$1) => {\n checkP2s(p2s$1);\n const salt = p2s(alg, p2s$1);\n const keylen = parseInt(alg.substr(13, 3), 10);\n const subtleAlg = {\n hash: { name: `SHA-${alg.substr(8, 3)}` },\n iterations: p2c,\n name: 'PBKDF2',\n salt,\n };\n const wrapAlg = {\n length: keylen,\n name: 'AES-KW',\n };\n const cryptoKey = await getCryptoKey$1(key);\n let derived;\n if (cryptoKey.usages.includes('deriveBits')) {\n derived = new Uint8Array(await crypto.subtle.deriveBits(subtleAlg, cryptoKey, keylen));\n }\n else if (cryptoKey.usages.includes('deriveKey')) {\n derived = await crypto.subtle.deriveKey(subtleAlg, cryptoKey, wrapAlg, false, ['unwrapKey']);\n }\n else {\n throw new TypeError('PBKDF2 key \"usages\" must include \"deriveBits\" or \"deriveKey\"');\n }\n return unwrap$1(alg.substr(-6), derived, encryptedKey);\n};\n\nfunction subtleRsaEs(alg) {\n switch (alg) {\n case 'RSA-OAEP':\n case 'RSA-OAEP-256':\n case 'RSA-OAEP-384':\n case 'RSA-OAEP-512':\n return 'RSA-OAEP';\n default:\n throw new JOSENotSupported(`alg ${alg} is not supported either by JOSE or your javascript runtime`);\n }\n}\n\nvar checkKeyLength = (alg, key) => {\n if (alg.startsWith('HS')) {\n const bitlen = parseInt(alg.substr(-3), 10);\n const { length } = key.algorithm;\n if (typeof length !== 'number' || length < bitlen) {\n throw new TypeError(`${alg} requires symmetric keys to be ${bitlen} bits or larger`);\n }\n }\n if (alg.startsWith('RS') || alg.startsWith('PS')) {\n const { modulusLength } = key.algorithm;\n if (typeof modulusLength !== 'number' || modulusLength < 2048) {\n throw new TypeError(`${alg} requires key modulusLength to be 2048 bits or larger`);\n }\n }\n};\n\nconst encrypt$1 = async (alg, key, cek) => {\n if (!isCryptoKey(key)) {\n throw new TypeError('invalid key input');\n }\n checkKeyLength(alg, key);\n if (key.usages.includes('encrypt')) {\n return new Uint8Array(await crypto.subtle.encrypt(subtleRsaEs(alg), key, cek));\n }\n if (key.usages.includes('wrapKey')) {\n const cryptoKeyCek = await crypto.subtle.importKey('raw', cek, ...bogusWebCrypto);\n return new Uint8Array(await crypto.subtle.wrapKey('raw', cryptoKeyCek, key, subtleRsaEs(alg)));\n }\n throw new TypeError('RSA-OAEP key \"usages\" must include \"encrypt\" or \"wrapKey\" for this operation');\n};\nconst decrypt = async (alg, key, encryptedKey) => {\n if (!isCryptoKey(key)) {\n throw new TypeError('invalid key input');\n }\n checkKeyLength(alg, key);\n if (key.usages.includes('decrypt')) {\n return new Uint8Array(await crypto.subtle.decrypt(subtleRsaEs(alg), key, encryptedKey));\n }\n if (key.usages.includes('unwrapKey')) {\n const cryptoKeyCek = await crypto.subtle.unwrapKey('raw', encryptedKey, key, subtleRsaEs(alg), ...bogusWebCrypto);\n return new Uint8Array(await crypto.subtle.exportKey('raw', cryptoKeyCek));\n }\n throw new TypeError('RSA-OAEP key \"usages\" must include \"decrypt\" or \"unwrapKey\" for this operation');\n};\n\nasync function cbcEncrypt(enc, plaintext, cek, iv, aad) {\n const keySize = parseInt(enc.substr(1, 3), 10);\n const encKey = await crypto.subtle.importKey('raw', cek.subarray(keySize >> 3), 'AES-CBC', false, ['encrypt']);\n const macKey = await crypto.subtle.importKey('raw', cek.subarray(0, keySize >> 3), {\n hash: { name: `SHA-${keySize << 1}` },\n name: 'HMAC',\n }, false, ['sign']);\n const ciphertext = new Uint8Array(await crypto.subtle.encrypt({\n iv,\n name: 'AES-CBC',\n }, encKey, plaintext));\n const macData = concat(aad, iv, ciphertext, uint64be(aad.length << 3));\n const tag = new Uint8Array((await crypto.subtle.sign('HMAC', macKey, macData)).slice(0, keySize >> 3));\n return { ciphertext, tag };\n}\nasync function gcmEncrypt(plaintext, cek, iv, aad) {\n const encKey = cek instanceof Uint8Array\n ? await crypto.subtle.importKey('raw', cek, 'AES-GCM', false, ['encrypt'])\n : cek;\n const encrypted = new Uint8Array(await crypto.subtle.encrypt({\n additionalData: aad,\n iv,\n name: 'AES-GCM',\n tagLength: 128,\n }, encKey, plaintext));\n const tag = encrypted.slice(-16);\n const ciphertext = encrypted.slice(0, -16);\n return { ciphertext, tag };\n}\nconst encrypt = async (enc, plaintext, cek, iv, aad) => {\n if (!isCryptoKey(cek) && !(cek instanceof Uint8Array)) {\n throw new TypeError('invalid key input');\n }\n checkCekLength(enc, cek);\n checkIvLength(enc, iv);\n if (enc.substr(4, 3) === 'CBC') {\n return cbcEncrypt(enc, plaintext, cek, iv, aad);\n }\n return gcmEncrypt(plaintext, cek, iv, aad);\n};\n\nconst generateIv$1 = factory$1(random$1);\nconst wrap = async (alg, key, cek, iv) => {\n const jweAlgorithm = alg.substr(0, 7);\n iv || (iv = generateIv$1(jweAlgorithm));\n const { ciphertext: encryptedKey, tag } = await encrypt(jweAlgorithm, cek, key, iv, new Uint8Array(0));\n return { encryptedKey, iv: encode$1(iv), tag: encode$1(tag) };\n};\nconst unwrap = async (alg, key, encryptedKey, iv, tag) => {\n const jweAlgorithm = alg.substr(0, 7);\n return decrypt$2(jweAlgorithm, key, encryptedKey, iv, tag, new Uint8Array(0));\n};\n\nconst bitLengths = new Map([\n ['A128CBC-HS256', 256],\n ['A128GCM', 128],\n ['A192CBC-HS384', 384],\n ['A192GCM', 192],\n ['A256CBC-HS512', 512],\n ['A256GCM', 256],\n]);\nconst factory = (random) => (alg) => {\n const bitLength = bitLengths.get(alg);\n if (!bitLength) {\n throw new JOSENotSupported(`Unsupported JWE Algorithm: ${alg}`);\n }\n return random(new Uint8Array(bitLength >> 3));\n};\n\nfunction subtleMapping(jwk) {\n let algorithm;\n let keyUsages;\n switch (jwk.kty) {\n case 'oct': {\n switch (jwk.alg) {\n case 'HS256':\n case 'HS384':\n case 'HS512':\n algorithm = { name: 'HMAC', hash: { name: `SHA-${jwk.alg.substr(-3)}` } };\n keyUsages = ['sign', 'verify'];\n break;\n case 'A128CBC-HS256':\n case 'A192CBC-HS384':\n case 'A256CBC-HS512':\n throw new JOSENotSupported(`${jwk.alg} keys cannot be imported as CryptoKey instances`);\n case 'A128GCM':\n case 'A192GCM':\n case 'A256GCM':\n case 'A128GCMKW':\n case 'A192GCMKW':\n case 'A256GCMKW':\n algorithm = { name: 'AES-GCM' };\n keyUsages = ['encrypt', 'decrypt'];\n break;\n case 'A128KW':\n case 'A192KW':\n case 'A256KW':\n algorithm = { name: 'AES-KW' };\n keyUsages = ['wrapKey', 'unwrapKey'];\n break;\n case 'PBES2-HS256+A128KW':\n case 'PBES2-HS384+A192KW':\n case 'PBES2-HS512+A256KW':\n algorithm = { name: 'PBKDF2' };\n keyUsages = ['deriveBits'];\n break;\n default:\n throw new JOSENotSupported('unsupported or invalid JWK \"alg\" (Algorithm) Parameter value');\n }\n break;\n }\n case 'RSA': {\n switch (jwk.alg) {\n case 'PS256':\n case 'PS384':\n case 'PS512':\n algorithm = { name: 'RSA-PSS', hash: { name: `SHA-${jwk.alg.substr(-3)}` } };\n keyUsages = jwk.d ? ['sign'] : ['verify'];\n break;\n case 'RS256':\n case 'RS384':\n case 'RS512':\n algorithm = { name: 'RSASSA-PKCS1-v1_5', hash: { name: `SHA-${jwk.alg.substr(-3)}` } };\n keyUsages = jwk.d ? ['sign'] : ['verify'];\n break;\n case 'RSA-OAEP':\n case 'RSA-OAEP-256':\n case 'RSA-OAEP-384':\n case 'RSA-OAEP-512':\n algorithm = {\n name: 'RSA-OAEP',\n hash: { name: `SHA-${parseInt(jwk.alg.substr(-3), 10) || 1}` },\n };\n keyUsages = jwk.d ? ['decrypt', 'unwrapKey'] : ['encrypt', 'wrapKey'];\n break;\n default:\n throw new JOSENotSupported('unsupported or invalid JWK \"alg\" (Algorithm) Parameter value');\n }\n break;\n }\n case 'EC': {\n switch (jwk.alg) {\n case 'ES256':\n case 'ES384':\n case 'ES512':\n algorithm = { name: 'ECDSA', namedCurve: jwk.crv };\n keyUsages = jwk.d ? ['sign'] : ['verify'];\n break;\n case 'ECDH-ES':\n case 'ECDH-ES+A128KW':\n case 'ECDH-ES+A192KW':\n case 'ECDH-ES+A256KW':\n algorithm = { name: 'ECDH', namedCurve: jwk.crv };\n keyUsages = jwk.d ? ['deriveBits'] : [];\n break;\n default:\n throw new JOSENotSupported('unsupported or invalid JWK \"alg\" (Algorithm) Parameter value');\n }\n break;\n }\n default:\n throw new JOSENotSupported('unsupported or invalid JWK \"kty\" (Key Type) Parameter value');\n }\n return { algorithm, keyUsages };\n}\nconst parse = async (jwk) => {\n var _a, _b;\n const { algorithm, keyUsages } = subtleMapping(jwk);\n let format = 'jwk';\n let keyData = { ...jwk };\n delete keyData.alg;\n if (algorithm.name === 'PBKDF2') {\n format = 'raw';\n keyData = decode$1(jwk.k);\n }\n return crypto.subtle.importKey(format, keyData, algorithm, (_a = jwk.ext) !== null && _a !== void 0 ? _a : false, (_b = jwk.key_ops) !== null && _b !== void 0 ? _b : keyUsages);\n};\n\nasync function parseJwk(jwk, alg, octAsKeyObject) {\n if (!isObject(jwk)) {\n throw new TypeError('JWK must be an object');\n }\n alg || (alg = jwk.alg);\n if (typeof alg !== 'string' || !alg) {\n throw new TypeError('\"alg\" argument is required when \"jwk.alg\" is not present');\n }\n switch (jwk.kty) {\n case 'oct':\n if (typeof jwk.k !== 'string' || !jwk.k) {\n throw new TypeError('missing \"k\" (Key Value) Parameter value');\n }\n octAsKeyObject !== null && octAsKeyObject !== void 0 ? octAsKeyObject : (octAsKeyObject = jwk.ext !== true);\n if (octAsKeyObject) {\n return parse({ ...jwk, alg, ext: false });\n }\n return decode$1(jwk.k);\n case 'RSA':\n if (jwk.oth !== undefined) {\n throw new JOSENotSupported('RSA JWK \"oth\" (Other Primes Info) Parameter value is not supported');\n }\n case 'EC':\n case 'OKP':\n return parse({ ...jwk, alg });\n default:\n throw new JOSENotSupported('unsupported \"kty\" (Key Type) Parameter value');\n }\n}\n\nfunction assertEnryptedKey(encryptedKey) {\n if (!encryptedKey) {\n throw new JWEInvalid('JWE Encrypted Key missing');\n }\n}\nfunction assertHeaderParameter(joseHeader, parameter, name) {\n if (joseHeader[parameter] === undefined) {\n throw new JWEInvalid(`JOSE Header ${name} (${parameter}) missing`);\n }\n}\nasync function decryptKeyManagement(alg, key, encryptedKey, joseHeader) {\n switch (alg) {\n case 'dir': {\n if (encryptedKey !== undefined) {\n throw new JWEInvalid('Encountered unexpected JWE Encrypted Key');\n }\n return key;\n }\n case 'ECDH-ES':\n if (encryptedKey !== undefined) {\n throw new JWEInvalid('Encountered unexpected JWE Encrypted Key');\n }\n case 'ECDH-ES+A128KW':\n case 'ECDH-ES+A192KW':\n case 'ECDH-ES+A256KW': {\n assertHeaderParameter(joseHeader, 'epk', 'Ephemeral Public Key');\n if (!ecdhAllowed(key)) {\n throw new JOSENotSupported('ECDH-ES with the provided key is not allowed or not supported by your javascript runtime');\n }\n const epk = await parseJwk(joseHeader.epk, alg);\n let partyUInfo;\n let partyVInfo;\n if (joseHeader.apu !== undefined)\n partyUInfo = decode$1(joseHeader.apu);\n if (joseHeader.apv !== undefined)\n partyVInfo = decode$1(joseHeader.apv);\n const sharedSecret = await deriveKey(epk, key, alg === 'ECDH-ES' ? joseHeader.enc : alg, parseInt(alg.substr(-5, 3), 10) || bitLengths.get(joseHeader.enc), partyUInfo, partyVInfo);\n if (alg === 'ECDH-ES') {\n return sharedSecret;\n }\n assertEnryptedKey(encryptedKey);\n const kwAlg = alg.substr(-6);\n return unwrap$1(kwAlg, sharedSecret, encryptedKey);\n }\n case 'RSA1_5':\n case 'RSA-OAEP':\n case 'RSA-OAEP-256':\n case 'RSA-OAEP-384':\n case 'RSA-OAEP-512': {\n assertEnryptedKey(encryptedKey);\n return decrypt(alg, key, encryptedKey);\n }\n case 'PBES2-HS256+A128KW':\n case 'PBES2-HS384+A192KW':\n case 'PBES2-HS512+A256KW': {\n assertEnryptedKey(encryptedKey);\n assertHeaderParameter(joseHeader, 'p2c', 'PBES2 Count');\n assertHeaderParameter(joseHeader, 'p2s', 'PBES2 Salt');\n const { p2c } = joseHeader;\n const p2s = decode$1(joseHeader.p2s);\n return decrypt$1(alg, key, encryptedKey, p2c, p2s);\n }\n case 'A128KW':\n case 'A192KW':\n case 'A256KW': {\n assertEnryptedKey(encryptedKey);\n return unwrap$1(alg, key, encryptedKey);\n }\n case 'A128GCMKW':\n case 'A192GCMKW':\n case 'A256GCMKW': {\n assertEnryptedKey(encryptedKey);\n assertHeaderParameter(joseHeader, 'iv', 'Initialization Vector');\n assertHeaderParameter(joseHeader, 'tag', 'Authentication Tag');\n const iv = decode$1(joseHeader.iv);\n const tag = decode$1(joseHeader.tag);\n return unwrap(alg, key, encryptedKey, iv, tag);\n }\n default: {\n throw new JOSENotSupported('unsupported or invalid \"alg\" (JWE Algorithm) header value');\n }\n }\n}\n\nfunction validateCrit(Err, recognizedDefault, recognizedOption, protectedHeader, joseHeader) {\n if (joseHeader.crit !== undefined && protectedHeader.crit === undefined) {\n throw new Err('\"crit\" (Critical) Header Parameter MUST be integrity protected');\n }\n if (!protectedHeader || protectedHeader.crit === undefined) {\n return new Set();\n }\n if (!Array.isArray(protectedHeader.crit) ||\n protectedHeader.crit.length === 0 ||\n protectedHeader.crit.some((input) => typeof input !== 'string' || input.length === 0)) {\n throw new Err('\"crit\" (Critical) Header Parameter MUST be an array of non-empty strings when present');\n }\n let recognized;\n if (recognizedOption !== undefined) {\n recognized = new Map([...Object.entries(recognizedOption), ...recognizedDefault.entries()]);\n }\n else {\n recognized = recognizedDefault;\n }\n for (const parameter of protectedHeader.crit) {\n if (!recognized.has(parameter)) {\n throw new JOSENotSupported(`Extension Header Parameter \"${parameter}\" is not recognized`);\n }\n if (joseHeader[parameter] === undefined) {\n throw new Err(`Extension Header Parameter \"${parameter}\" is missing`);\n }\n else if (recognized.get(parameter) && protectedHeader[parameter] === undefined) {\n throw new Err(`Extension Header Parameter \"${parameter}\" MUST be integrity protected`);\n }\n }\n return new Set(protectedHeader.crit);\n}\n\nconst validateAlgorithms = (option, algorithms) => {\n if (algorithms !== undefined &&\n (!Array.isArray(algorithms) || algorithms.some((s) => typeof s !== 'string'))) {\n throw new TypeError(`\"${option}\" option must be an array of strings`);\n }\n if (!algorithms) {\n return undefined;\n }\n return new Set(algorithms);\n};\n\nconst generateCek$1 = factory(random$1);\nconst checkExtensions$3 = validateCrit.bind(undefined, JWEInvalid, new Map());\nconst checkAlgOption$1 = validateAlgorithms.bind(undefined, 'keyManagementAlgorithms');\nconst checkEncOption = validateAlgorithms.bind(undefined, 'contentEncryptionAlgorithms');\nasync function flattenedDecrypt(jwe, key, options) {\n var _a;\n if (!isObject(jwe)) {\n throw new JWEInvalid('Flattened JWE must be an object');\n }\n if (jwe.protected === undefined && jwe.header === undefined && jwe.unprotected === undefined) {\n throw new JWEInvalid('JOSE Header missing');\n }\n if (typeof jwe.iv !== 'string') {\n throw new JWEInvalid('JWE Initialization Vector missing or incorrect type');\n }\n if (typeof jwe.ciphertext !== 'string') {\n throw new JWEInvalid('JWE Ciphertext missing or incorrect type');\n }\n if (typeof jwe.tag !== 'string') {\n throw new JWEInvalid('JWE Authentication Tag missing or incorrect type');\n }\n if (jwe.protected !== undefined && typeof jwe.protected !== 'string') {\n throw new JWEInvalid('JWE Protected Header incorrect type');\n }\n if (jwe.encrypted_key !== undefined && typeof jwe.encrypted_key !== 'string') {\n throw new JWEInvalid('JWE Encrypted Key incorrect type');\n }\n if (jwe.aad !== undefined && typeof jwe.aad !== 'string') {\n throw new JWEInvalid('JWE AAD incorrect type');\n }\n if (jwe.header !== undefined && !isObject(jwe.header)) {\n throw new JWEInvalid('JWE Shared Unprotected Header incorrect type');\n }\n if (jwe.unprotected !== undefined && !isObject(jwe.unprotected)) {\n throw new JWEInvalid('JWE Per-Recipient Unprotected Header incorrect type');\n }\n let parsedProt;\n if (jwe.protected) {\n const protectedHeader = decode$1(jwe.protected);\n parsedProt = JSON.parse(decoder.decode(protectedHeader));\n }\n if (!isDisjoint(parsedProt, jwe.header, jwe.unprotected)) {\n throw new JWEInvalid('JWE Protected, JWE Unprotected Header, and JWE Per-Recipient Unprotected Header Parameter names must be disjoint');\n }\n const joseHeader = {\n ...parsedProt,\n ...jwe.header,\n ...jwe.unprotected,\n };\n checkExtensions$3(options === null || options === void 0 ? void 0 : options.crit, parsedProt, joseHeader);\n if (joseHeader.zip !== undefined) {\n if (!parsedProt || !parsedProt.zip) {\n throw new JWEInvalid('JWE \"zip\" (Compression Algorithm) Header MUST be integrity protected');\n }\n if (joseHeader.zip !== 'DEF') {\n throw new JOSENotSupported('unsupported JWE \"zip\" (Compression Algorithm) Header Parameter value');\n }\n }\n const { alg, enc } = joseHeader;\n if (typeof alg !== 'string' || !alg) {\n throw new JWEInvalid('missing JWE Algorithm (alg) in JWE Header');\n }\n if (typeof enc !== 'string' || !enc) {\n throw new JWEInvalid('missing JWE Encryption Algorithm (enc) in JWE Header');\n }\n const keyManagementAlgorithms = options && checkAlgOption$1(options.keyManagementAlgorithms);\n const contentEncryptionAlgorithms = options && checkEncOption(options.contentEncryptionAlgorithms);\n if (keyManagementAlgorithms && !keyManagementAlgorithms.has(alg)) {\n throw new JOSEAlgNotAllowed('\"alg\" (Algorithm) Header Parameter not allowed');\n }\n if (contentEncryptionAlgorithms && !contentEncryptionAlgorithms.has(enc)) {\n throw new JOSEAlgNotAllowed('\"enc\" (Encryption Algorithm) Header Parameter not allowed');\n }\n let encryptedKey;\n if (jwe.encrypted_key !== undefined) {\n encryptedKey = decode$1(jwe.encrypted_key);\n }\n if (typeof key === 'function') {\n key = await key(parsedProt, jwe);\n }\n let cek;\n try {\n cek = await decryptKeyManagement(alg, key, encryptedKey, joseHeader);\n }\n catch (err) {\n if (err instanceof TypeError) {\n throw err;\n }\n cek = generateCek$1(enc);\n }\n const iv = decode$1(jwe.iv);\n const tag = decode$1(jwe.tag);\n const protectedHeader = encoder.encode((_a = jwe.protected) !== null && _a !== void 0 ? _a : '');\n let additionalData;\n if (jwe.aad !== undefined) {\n additionalData = concat(protectedHeader, encoder.encode('.'), encoder.encode(jwe.aad));\n }\n else {\n additionalData = protectedHeader;\n }\n let plaintext = await decrypt$2(enc, cek, decode$1(jwe.ciphertext), iv, tag, additionalData);\n if (joseHeader.zip === 'DEF') {\n plaintext = await ((options === null || options === void 0 ? void 0 : options.inflateRaw) || inflate)(plaintext);\n }\n const result = { plaintext };\n if (jwe.protected !== undefined) {\n result.protectedHeader = parsedProt;\n }\n if (jwe.aad !== undefined) {\n result.additionalAuthenticatedData = decode$1(jwe.aad);\n }\n if (jwe.unprotected !== undefined) {\n result.sharedUnprotectedHeader = jwe.unprotected;\n }\n if (jwe.header !== undefined) {\n result.unprotectedHeader = jwe.header;\n }\n return result;\n}\n\nasync function compactDecrypt(jwe, key, options) {\n if (jwe instanceof Uint8Array) {\n jwe = decoder.decode(jwe);\n }\n if (typeof jwe !== 'string') {\n throw new JWEInvalid('Compact JWE must be a string or Uint8Array');\n }\n const { 0: protectedHeader, 1: encryptedKey, 2: iv, 3: ciphertext, 4: tag, length, } = jwe.split('.');\n if (length !== 5) {\n throw new JWEInvalid('Invalid Compact JWE');\n }\n const decrypted = await flattenedDecrypt({\n ciphertext: (ciphertext || undefined),\n iv: (iv || undefined),\n protected: protectedHeader || undefined,\n tag: (tag || undefined),\n encrypted_key: encryptedKey || undefined,\n }, key, options);\n return { plaintext: decrypted.plaintext, protectedHeader: decrypted.protectedHeader };\n}\n\nconst keyToJWK = async (key) => {\n if (!isCryptoKey(key)) {\n throw new TypeError('invalid key input');\n }\n if (!key.extractable) {\n throw new TypeError('non-extractable CryptoKey cannot be exported as a JWK');\n }\n const { ext, key_ops, alg, use, ...jwk } = await crypto.subtle.exportKey('jwk', key);\n return jwk;\n};\n\nasync function fromKeyLike(key) {\n if (key instanceof Uint8Array) {\n return {\n kty: 'oct',\n k: encode$1(key),\n };\n }\n return keyToJWK(key);\n}\n\nconst generateCek = factory(random$1);\nasync function encryptKeyManagement(alg, enc, key, providedCek, providedParameters = {}) {\n let encryptedKey;\n let parameters;\n let cek;\n switch (alg) {\n case 'dir': {\n cek = key;\n break;\n }\n case 'ECDH-ES':\n case 'ECDH-ES+A128KW':\n case 'ECDH-ES+A192KW':\n case 'ECDH-ES+A256KW': {\n if (!ecdhAllowed(key)) {\n throw new JOSENotSupported('ECDH-ES with the provided key is not allowed or not supported by your javascript runtime');\n }\n const { apu, apv } = providedParameters;\n let { epk: ephemeralKey } = providedParameters;\n ephemeralKey || (ephemeralKey = await generateEpk(key));\n const { x, y, crv, kty } = await fromKeyLike(ephemeralKey);\n const sharedSecret = await deriveKey(key, ephemeralKey, alg === 'ECDH-ES' ? enc : alg, parseInt(alg.substr(-5, 3), 10) || bitLengths.get(enc), apu, apv);\n parameters = { epk: { x, y, crv, kty } };\n if (apu)\n parameters.apu = encode$1(apu);\n if (apv)\n parameters.apv = encode$1(apv);\n if (alg === 'ECDH-ES') {\n cek = sharedSecret;\n break;\n }\n cek = providedCek || generateCek(enc);\n const kwAlg = alg.substr(-6);\n encryptedKey = await wrap$1(kwAlg, sharedSecret, cek);\n break;\n }\n case 'RSA1_5':\n case 'RSA-OAEP':\n case 'RSA-OAEP-256':\n case 'RSA-OAEP-384':\n case 'RSA-OAEP-512': {\n cek = providedCek || generateCek(enc);\n encryptedKey = await encrypt$1(alg, key, cek);\n break;\n }\n case 'PBES2-HS256+A128KW':\n case 'PBES2-HS384+A192KW':\n case 'PBES2-HS512+A256KW': {\n cek = providedCek || generateCek(enc);\n const { p2c, p2s } = providedParameters;\n ({ encryptedKey, ...parameters } = await encrypt$2(alg, key, cek, p2c, p2s));\n break;\n }\n case 'A128KW':\n case 'A192KW':\n case 'A256KW': {\n cek = providedCek || generateCek(enc);\n encryptedKey = await wrap$1(alg, key, cek);\n break;\n }\n case 'A128GCMKW':\n case 'A192GCMKW':\n case 'A256GCMKW': {\n cek = providedCek || generateCek(enc);\n const { iv } = providedParameters;\n ({ encryptedKey, ...parameters } = await wrap(alg, key, cek, iv));\n break;\n }\n default: {\n throw new JOSENotSupported('unsupported or invalid \"alg\" (JWE Algorithm) header value');\n }\n }\n return { cek, encryptedKey, parameters };\n}\n\nconst generateIv = factory$1(random$1);\nconst checkExtensions$2 = validateCrit.bind(undefined, JWEInvalid, new Map());\nclass FlattenedEncrypt {\n constructor(plaintext) {\n this._plaintext = plaintext;\n }\n setKeyManagementParameters(parameters) {\n if (this._keyManagementParameters) {\n throw new TypeError('setKeyManagementParameters can only be called once');\n }\n this._keyManagementParameters = parameters;\n return this;\n }\n setProtectedHeader(protectedHeader) {\n if (this._protectedHeader) {\n throw new TypeError('setProtectedHeader can only be called once');\n }\n this._protectedHeader = protectedHeader;\n return this;\n }\n setSharedUnprotectedHeader(sharedUnprotectedHeader) {\n if (this._sharedUnprotectedHeader) {\n throw new TypeError('setSharedUnprotectedHeader can only be called once');\n }\n this._sharedUnprotectedHeader = sharedUnprotectedHeader;\n return this;\n }\n setUnprotectedHeader(unprotectedHeader) {\n if (this._unprotectedHeader) {\n throw new TypeError('setUnprotectedHeader can only be called once');\n }\n this._unprotectedHeader = unprotectedHeader;\n return this;\n }\n setAdditionalAuthenticatedData(aad) {\n this._aad = aad;\n return this;\n }\n setContentEncryptionKey(cek) {\n if (this._cek) {\n throw new TypeError('setContentEncryptionKey can only be called once');\n }\n this._cek = cek;\n return this;\n }\n setInitializationVector(iv) {\n if (this._iv) {\n throw new TypeError('setInitializationVector can only be called once');\n }\n this._iv = iv;\n return this;\n }\n async encrypt(key, options) {\n if (!this._protectedHeader && !this._unprotectedHeader && !this._sharedUnprotectedHeader) {\n throw new JWEInvalid('either setProtectedHeader, setUnprotectedHeader, or sharedUnprotectedHeader must be called before #encrypt()');\n }\n if (!isDisjoint(this._protectedHeader, this._unprotectedHeader, this._sharedUnprotectedHeader)) {\n throw new JWEInvalid('JWE Shared Protected, JWE Shared Unprotected and JWE Per-Recipient Header Parameter names must be disjoint');\n }\n const joseHeader = {\n ...this._protectedHeader,\n ...this._unprotectedHeader,\n ...this._sharedUnprotectedHeader,\n };\n checkExtensions$2(options === null || options === void 0 ? void 0 : options.crit, this._protectedHeader, joseHeader);\n if (joseHeader.zip !== undefined) {\n if (!this._protectedHeader || !this._protectedHeader.zip) {\n throw new JWEInvalid('JWE \"zip\" (Compression Algorithm) Header MUST be integrity protected');\n }\n if (joseHeader.zip !== 'DEF') {\n throw new JOSENotSupported('unsupported JWE \"zip\" (Compression Algorithm) Header Parameter value');\n }\n }\n const { alg, enc } = joseHeader;\n if (typeof alg !== 'string' || !alg) {\n throw new JWEInvalid('JWE \"alg\" (Algorithm) Header Parameter missing or invalid');\n }\n if (typeof enc !== 'string' || !enc) {\n throw new JWEInvalid('JWE \"enc\" (Encryption Algorithm) Header Parameter missing or invalid');\n }\n let encryptedKey;\n if (alg === 'dir') {\n if (this._cek) {\n throw new TypeError('setContentEncryptionKey cannot be called when using Direct Encryption');\n }\n }\n else if (alg === 'ECDH-ES') {\n if (this._cek) {\n throw new TypeError('setContentEncryptionKey cannot be called when using Direct Key Agreement');\n }\n }\n let cek;\n {\n let parameters;\n ({ cek, encryptedKey, parameters } = await encryptKeyManagement(alg, enc, key, this._cek, this._keyManagementParameters));\n if (parameters) {\n if (!this._protectedHeader) {\n this.setProtectedHeader(parameters);\n }\n else {\n this._protectedHeader = { ...this._protectedHeader, ...parameters };\n }\n }\n }\n this._iv || (this._iv = generateIv(enc));\n let additionalData;\n let protectedHeader;\n let aadMember;\n if (this._protectedHeader) {\n protectedHeader = encoder.encode(encode$1(JSON.stringify(this._protectedHeader)));\n }\n else {\n protectedHeader = encoder.encode('');\n }\n if (this._aad) {\n aadMember = encode$1(this._aad);\n additionalData = concat(protectedHeader, encoder.encode('.'), encoder.encode(aadMember));\n }\n else {\n additionalData = protectedHeader;\n }\n let ciphertext;\n let tag;\n if (joseHeader.zip === 'DEF') {\n const deflated = await ((options === null || options === void 0 ? void 0 : options.deflateRaw) || deflate)(this._plaintext);\n ({ ciphertext, tag } = await encrypt(enc, deflated, cek, this._iv, additionalData));\n }\n else {\n ({ ciphertext, tag } = await encrypt(enc, this._plaintext, cek, this._iv, additionalData));\n }\n const jwe = {\n ciphertext: encode$1(ciphertext),\n iv: encode$1(this._iv),\n tag: encode$1(tag),\n };\n if (encryptedKey) {\n jwe.encrypted_key = encode$1(encryptedKey);\n }\n if (aadMember) {\n jwe.aad = aadMember;\n }\n if (this._protectedHeader) {\n jwe.protected = decoder.decode(protectedHeader);\n }\n if (this._sharedUnprotectedHeader) {\n jwe.unprotected = this._sharedUnprotectedHeader;\n }\n if (this._unprotectedHeader) {\n jwe.header = this._unprotectedHeader;\n }\n return jwe;\n }\n}\n\nclass CompactEncrypt {\n constructor(plaintext) {\n this._flattened = new FlattenedEncrypt(plaintext);\n }\n setContentEncryptionKey(cek) {\n this._flattened.setContentEncryptionKey(cek);\n return this;\n }\n setInitializationVector(iv) {\n this._flattened.setInitializationVector(iv);\n return this;\n }\n setProtectedHeader(protectedHeader) {\n this._flattened.setProtectedHeader(protectedHeader);\n return this;\n }\n setKeyManagementParameters(parameters) {\n this._flattened.setKeyManagementParameters(parameters);\n return this;\n }\n async encrypt(key, options) {\n const jwe = await this._flattened.encrypt(key, options);\n return [jwe.protected, jwe.encrypted_key, jwe.iv, jwe.ciphertext, jwe.tag].join('.');\n }\n}\n\nasync function generalDecrypt(jwe, key, options) {\n if (!isObject(jwe)) {\n throw new JWEInvalid('General JWE must be an object');\n }\n if (!Array.isArray(jwe.recipients) || !jwe.recipients.every(isObject)) {\n throw new JWEInvalid('JWE Recipients missing or incorrect type');\n }\n for (const recipient of jwe.recipients) {\n try {\n return await flattenedDecrypt({\n aad: jwe.aad,\n ciphertext: jwe.ciphertext,\n encrypted_key: recipient.encrypted_key,\n header: recipient.header,\n iv: jwe.iv,\n protected: jwe.protected,\n tag: jwe.tag,\n unprotected: jwe.unprotected,\n }, key, options);\n }\n catch (_a) {\n }\n }\n throw new JWEDecryptionFailed();\n}\n\nasync function EmbeddedJWK(protectedHeader, token) {\n const joseHeader = {\n ...protectedHeader,\n ...token.header,\n };\n if (!isObject(joseHeader.jwk)) {\n throw new JWSInvalid('\"jwk\" (JSON Web Key) Header Parameter must be a JSON object');\n }\n const key = await parseJwk(joseHeader.jwk, joseHeader.alg, true);\n if (key.type !== 'public') {\n throw new JWSInvalid('\"jwk\" (JSON Web Key) Header Parameter must be a public key');\n }\n return key;\n}\n\nconst check = (value, description) => {\n if (typeof value !== 'string' || !value) {\n throw new JWKInvalid(`${description} missing or invalid`);\n }\n};\nasync function calculateThumbprint(jwk, digestAlgorithm = 'sha256') {\n if (!isObject(jwk)) {\n throw new TypeError('JWK must be an object');\n }\n let components;\n switch (jwk.kty) {\n case 'EC':\n check(jwk.crv, '\"crv\" (Curve) Parameter');\n check(jwk.x, '\"x\" (X Coordinate) Parameter');\n check(jwk.y, '\"y\" (Y Coordinate) Parameter');\n components = { crv: jwk.crv, kty: jwk.kty, x: jwk.x, y: jwk.y };\n break;\n case 'OKP':\n check(jwk.crv, '\"crv\" (Subtype of Key Pair) Parameter');\n check(jwk.x, '\"x\" (Public Key) Parameter');\n components = { crv: jwk.crv, kty: jwk.kty, x: jwk.x };\n break;\n case 'RSA':\n check(jwk.e, '\"e\" (Exponent) Parameter');\n check(jwk.n, '\"n\" (Modulus) Parameter');\n components = { e: jwk.e, kty: jwk.kty, n: jwk.n };\n break;\n case 'oct':\n check(jwk.k, '\"k\" (Key Value) Parameter');\n components = { k: jwk.k, kty: jwk.kty };\n break;\n default:\n throw new JOSENotSupported('\"kty\" (Key Type) Parameter missing or unsupported');\n }\n const data = encoder.encode(JSON.stringify(components));\n return encode$1(await digest(digestAlgorithm, data));\n}\n\nconst fetchJwks = async (url, timeout) => {\n let controller;\n if (typeof AbortController === 'function') {\n controller = new AbortController();\n setTimeout(() => controller.abort(), timeout);\n }\n const response = await globalThis$1.fetch(url.href, {\n signal: controller ? controller.signal : undefined,\n redirect: 'manual',\n referrerPolicy: 'no-referrer',\n credentials: 'omit',\n mode: 'cors',\n method: 'GET',\n });\n if (response.status !== 200) {\n throw new JOSEError('Expected 200 OK from the JSON Web Key Set HTTP response');\n }\n try {\n return await response.json();\n }\n catch (err) {\n throw new JOSEError('Failed to parse the JSON Web Key Set HTTP response as JSON');\n }\n};\n\nfunction getKtyFromAlg(alg) {\n switch (alg.substr(0, 2)) {\n case 'RS':\n case 'PS':\n return 'RSA';\n case 'ES':\n return 'EC';\n case 'Ed':\n return 'OKP';\n default:\n throw new JOSENotSupported('Unsupported \"alg\" value for a JSON Web Key Set');\n }\n}\nfunction isJWKLike(key) {\n return isObject(key);\n}\nclass RemoteJWKSet {\n constructor(url, options) {\n this._cached = new WeakMap();\n if (!(url instanceof URL)) {\n throw new TypeError('url must be an instance of URL');\n }\n this._url = new URL(url.href);\n this._options = { agent: options === null || options === void 0 ? void 0 : options.agent };\n this._timeoutDuration =\n typeof (options === null || options === void 0 ? void 0 : options.timeoutDuration) === 'number' ? options === null || options === void 0 ? void 0 : options.timeoutDuration : 5000;\n this._cooldownDuration =\n typeof (options === null || options === void 0 ? void 0 : options.cooldownDuration) === 'number' ? options === null || options === void 0 ? void 0 : options.cooldownDuration : 30000;\n }\n coolingDown() {\n if (typeof this._cooldownStarted === 'undefined') {\n return false;\n }\n return Date.now() < this._cooldownStarted + this._cooldownDuration;\n }\n async getKey(protectedHeader) {\n if (!this._jwks) {\n await this.reload();\n }\n const candidates = this._jwks.keys.filter((jwk) => {\n let candidate = jwk.kty === getKtyFromAlg(protectedHeader.alg);\n if (candidate && typeof protectedHeader.kid === 'string') {\n candidate = protectedHeader.kid === jwk.kid;\n }\n if (candidate && typeof jwk.alg === 'string') {\n candidate = protectedHeader.alg === jwk.alg;\n }\n if (candidate && typeof jwk.use === 'string') {\n candidate = jwk.use === 'sig';\n }\n if (candidate && Array.isArray(jwk.key_ops)) {\n candidate = jwk.key_ops.includes('verify');\n }\n if (candidate && protectedHeader.alg === 'EdDSA') {\n candidate = ['Ed25519', 'Ed448'].includes(jwk.crv);\n }\n if (candidate) {\n switch (protectedHeader.alg) {\n case 'ES256':\n candidate = jwk.crv === 'P-256';\n break;\n case 'ES256K':\n candidate = jwk.crv === 'secp256k1';\n break;\n case 'ES384':\n candidate = jwk.crv === 'P-384';\n break;\n case 'ES512':\n candidate = jwk.crv === 'P-521';\n break;\n }\n }\n return candidate;\n });\n const { 0: jwk, length } = candidates;\n if (length === 0) {\n if (this.coolingDown() === false) {\n await this.reload();\n return this.getKey(protectedHeader);\n }\n throw new JWKSNoMatchingKey();\n }\n else if (length !== 1) {\n throw new JWKSMultipleMatchingKeys();\n }\n if (!this._cached.has(jwk)) {\n this._cached.set(jwk, {});\n }\n const cached = this._cached.get(jwk);\n if (cached[protectedHeader.alg] === undefined) {\n const keyObject = (await parseJwk({ ...jwk, alg: protectedHeader.alg }));\n if (keyObject.type !== 'public') {\n throw new JWKSInvalid('JSON Web Key Set members must be public keys');\n }\n cached[protectedHeader.alg] = keyObject;\n }\n return cached[protectedHeader.alg];\n }\n async reload() {\n if (!this._pendingFetch) {\n this._pendingFetch = fetchJwks(this._url, this._timeoutDuration, this._options)\n .then((json) => {\n if (typeof json !== 'object' ||\n !json ||\n !Array.isArray(json.keys) ||\n !json.keys.every(isJWKLike)) {\n throw new JWKSInvalid('JSON Web Key Set malformed');\n }\n this._jwks = { keys: json.keys };\n this._cooldownStarted = Date.now();\n this._pendingFetch = undefined;\n })\n .catch((err) => {\n this._pendingFetch = undefined;\n throw err;\n });\n }\n await this._pendingFetch;\n }\n}\nfunction createRemoteJWKSet(url, options) {\n const set = new RemoteJWKSet(url, options);\n return set.getKey.bind(set);\n}\n\nfunction subtleDsa(alg) {\n switch (alg) {\n case 'HS256':\n return { hash: { name: 'SHA-256' }, name: 'HMAC' };\n case 'HS384':\n return { hash: { name: 'SHA-384' }, name: 'HMAC' };\n case 'HS512':\n return { hash: { name: 'SHA-512' }, name: 'HMAC' };\n case 'PS256':\n return {\n hash: { name: 'SHA-256' },\n name: 'RSA-PSS',\n saltLength: 256 >> 3,\n };\n case 'PS384':\n return {\n hash: { name: 'SHA-384' },\n name: 'RSA-PSS',\n saltLength: 384 >> 3,\n };\n case 'PS512':\n return {\n hash: { name: 'SHA-512' },\n name: 'RSA-PSS',\n saltLength: 512 >> 3,\n };\n case 'RS256':\n return { hash: { name: 'SHA-256' }, name: 'RSASSA-PKCS1-v1_5' };\n case 'RS384':\n return { hash: { name: 'SHA-384' }, name: 'RSASSA-PKCS1-v1_5' };\n case 'RS512':\n return { hash: { name: 'SHA-512' }, name: 'RSASSA-PKCS1-v1_5' };\n case 'ES256':\n return { hash: { name: 'SHA-256' }, name: 'ECDSA', namedCurve: 'P-256' };\n case 'ES384':\n return { hash: { name: 'SHA-384' }, name: 'ECDSA', namedCurve: 'P-384' };\n case 'ES512':\n return { hash: { name: 'SHA-512' }, name: 'ECDSA', namedCurve: 'P-521' };\n default:\n throw new JOSENotSupported(`alg ${alg} is not supported either by JOSE or your javascript runtime`);\n }\n}\n\nfunction getCryptoKey(alg, key, usage) {\n if (isCryptoKey(key)) {\n return key;\n }\n if (key instanceof Uint8Array) {\n if (!alg.startsWith('HS')) {\n throw new TypeError('symmetric keys are only applicable for HMAC-based algorithms');\n }\n return crypto.subtle.importKey('raw', key, { hash: { name: `SHA-${alg.substr(-3)}` }, name: 'HMAC' }, false, [usage]);\n }\n throw new TypeError('invalid key input');\n}\n\nconst sign = async (alg, key, data) => {\n const cryptoKey = await getCryptoKey(alg, key, 'sign');\n checkKeyLength(alg, cryptoKey);\n const signature = await crypto.subtle.sign(subtleDsa(alg), cryptoKey, data);\n return new Uint8Array(signature);\n};\n\nconst checkKeyType = (alg, key) => {\n if (alg.startsWith('HS') ||\n alg === 'dir' ||\n alg.startsWith('PBES2') ||\n alg.match(/^A\\d{3}(?:GCM)KW$/)) {\n if (key instanceof Uint8Array || key.type === 'secret') {\n return;\n }\n throw new TypeError('CryptoKey or KeyObject instances for symmetric algorithms must be of type \"secret\"');\n }\n if (key instanceof Uint8Array) {\n throw new TypeError('CryptoKey or KeyObject instances must be used for asymmetric algorithms');\n }\n if (key.type === 'secret') {\n throw new TypeError('CryptoKey or KeyObject instances for asymmetric algorithms must not be of type \"secret\"');\n }\n};\n\nconst checkExtensions$1 = validateCrit.bind(undefined, JWSInvalid, new Map([['b64', true]]));\nclass FlattenedSign {\n constructor(payload) {\n this._payload = payload;\n }\n setProtectedHeader(protectedHeader) {\n if (this._protectedHeader) {\n throw new TypeError('setProtectedHeader can only be called once');\n }\n this._protectedHeader = protectedHeader;\n return this;\n }\n setUnprotectedHeader(unprotectedHeader) {\n if (this._unprotectedHeader) {\n throw new TypeError('setUnprotectedHeader can only be called once');\n }\n this._unprotectedHeader = unprotectedHeader;\n return this;\n }\n async sign(key, options) {\n if (!this._protectedHeader && !this._unprotectedHeader) {\n throw new JWSInvalid('either setProtectedHeader or setUnprotectedHeader must be called before #sign()');\n }\n if (!isDisjoint(this._protectedHeader, this._unprotectedHeader)) {\n throw new JWSInvalid('JWS Protected and JWS Unprotected Header Parameter names must be disjoint');\n }\n const joseHeader = {\n ...this._protectedHeader,\n ...this._unprotectedHeader,\n };\n const extensions = checkExtensions$1(options === null || options === void 0 ? void 0 : options.crit, this._protectedHeader, joseHeader);\n let b64 = true;\n if (extensions.has('b64')) {\n b64 = this._protectedHeader.b64;\n if (typeof b64 !== 'boolean') {\n throw new JWSInvalid('The \"b64\" (base64url-encode payload) Header Parameter must be a boolean');\n }\n }\n const { alg } = joseHeader;\n if (typeof alg !== 'string' || !alg) {\n throw new JWSInvalid('JWS \"alg\" (Algorithm) Header Parameter missing or invalid');\n }\n checkKeyType(alg, key);\n let payload = this._payload;\n if (b64) {\n payload = encoder.encode(encode$1(payload));\n }\n let protectedHeader;\n if (this._protectedHeader) {\n protectedHeader = encoder.encode(encode$1(JSON.stringify(this._protectedHeader)));\n }\n else {\n protectedHeader = encoder.encode('');\n }\n const data = concat(protectedHeader, encoder.encode('.'), payload);\n const signature = await sign(alg, key, data);\n const jws = {\n signature: encode$1(signature),\n };\n if (b64) {\n jws.payload = decoder.decode(payload);\n }\n if (this._unprotectedHeader) {\n jws.header = this._unprotectedHeader;\n }\n if (this._protectedHeader) {\n jws.protected = decoder.decode(protectedHeader);\n }\n return jws;\n }\n}\n\nclass CompactSign {\n constructor(payload) {\n this._flattened = new FlattenedSign(payload);\n }\n setProtectedHeader(protectedHeader) {\n this._flattened.setProtectedHeader(protectedHeader);\n return this;\n }\n async sign(key, options) {\n const jws = await this._flattened.sign(key, options);\n if (jws.payload === undefined) {\n throw new TypeError('use the flattened module for creating JWS with b64: false');\n }\n return `${jws.protected}.${jws.payload}.${jws.signature}`;\n }\n}\n\nconst verify = async (alg, key, signature, data) => {\n const cryptoKey = await getCryptoKey(alg, key, 'verify');\n checkKeyLength(alg, cryptoKey);\n const algorithm = subtleDsa(alg);\n try {\n return await crypto.subtle.verify(algorithm, cryptoKey, signature, data);\n }\n catch (_a) {\n return false;\n }\n};\n\nconst checkExtensions = validateCrit.bind(undefined, JWSInvalid, new Map([['b64', true]]));\nconst checkAlgOption = validateAlgorithms.bind(undefined, 'algorithms');\nasync function flattenedVerify(jws, key, options) {\n var _a;\n if (!isObject(jws)) {\n throw new JWSInvalid('Flattened JWS must be an object');\n }\n if (jws.protected === undefined && jws.header === undefined) {\n throw new JWSInvalid('Flattened JWS must have either of the \"protected\" or \"header\" members');\n }\n if (jws.protected !== undefined && typeof jws.protected !== 'string') {\n throw new JWSInvalid('JWS Protected Header incorrect type');\n }\n if (jws.payload === undefined) {\n throw new JWSInvalid('JWS Payload missing');\n }\n if (typeof jws.signature !== 'string') {\n throw new JWSInvalid('JWS Signature missing or incorrect type');\n }\n if (jws.header !== undefined && !isObject(jws.header)) {\n throw new JWSInvalid('JWS Unprotected Header incorrect type');\n }\n let parsedProt = {};\n if (jws.protected) {\n const protectedHeader = decode$1(jws.protected);\n parsedProt = JSON.parse(decoder.decode(protectedHeader));\n }\n if (!isDisjoint(parsedProt, jws.header)) {\n throw new JWSInvalid('JWS Protected and JWS Unprotected Header Parameter names must be disjoint');\n }\n const joseHeader = {\n ...parsedProt,\n ...jws.header,\n };\n const extensions = checkExtensions(options === null || options === void 0 ? void 0 : options.crit, parsedProt, joseHeader);\n let b64 = true;\n if (extensions.has('b64')) {\n b64 = parsedProt.b64;\n if (typeof b64 !== 'boolean') {\n throw new JWSInvalid('The \"b64\" (base64url-encode payload) Header Parameter must be a boolean');\n }\n }\n const { alg } = joseHeader;\n if (typeof alg !== 'string' || !alg) {\n throw new JWSInvalid('JWS \"alg\" (Algorithm) Header Parameter missing or invalid');\n }\n const algorithms = options && checkAlgOption(options.algorithms);\n if (algorithms && !algorithms.has(alg)) {\n throw new JOSEAlgNotAllowed('\"alg\" (Algorithm) Header Parameter not allowed');\n }\n if (b64) {\n if (typeof jws.payload !== 'string') {\n throw new JWSInvalid('JWS Payload must be a string');\n }\n }\n else if (typeof jws.payload !== 'string' && !(jws.payload instanceof Uint8Array)) {\n throw new JWSInvalid('JWS Payload must be a string or an Uint8Array instance');\n }\n if (typeof key === 'function') {\n key = await key(parsedProt, jws);\n }\n checkKeyType(alg, key);\n const data = concat(encoder.encode((_a = jws.protected) !== null && _a !== void 0 ? _a : ''), encoder.encode('.'), typeof jws.payload === 'string' ? encoder.encode(jws.payload) : jws.payload);\n const signature = decode$1(jws.signature);\n const verified = await verify(alg, key, signature, data);\n if (!verified) {\n throw new JWSSignatureVerificationFailed();\n }\n let payload;\n if (b64) {\n payload = decode$1(jws.payload);\n }\n else if (typeof jws.payload === 'string') {\n payload = encoder.encode(jws.payload);\n }\n else {\n payload = jws.payload;\n }\n const result = { payload };\n if (jws.protected !== undefined) {\n result.protectedHeader = parsedProt;\n }\n if (jws.header !== undefined) {\n result.unprotectedHeader = jws.header;\n }\n return result;\n}\n\nasync function compactVerify(jws, key, options) {\n if (jws instanceof Uint8Array) {\n jws = decoder.decode(jws);\n }\n if (typeof jws !== 'string') {\n throw new JWSInvalid('Compact JWS must be a string or Uint8Array');\n }\n const { 0: protectedHeader, 1: payload, 2: signature, length } = jws.split('.');\n if (length !== 3) {\n throw new JWSInvalid('Invalid Compact JWS');\n }\n const verified = await flattenedVerify({\n payload: (payload || undefined),\n protected: protectedHeader || undefined,\n signature: (signature || undefined),\n }, key, options);\n return { payload: verified.payload, protectedHeader: verified.protectedHeader };\n}\n\nconst signatureRef = new WeakMap();\nclass IndividualSignature {\n setProtectedHeader(protectedHeader) {\n if (this._protectedHeader) {\n throw new TypeError('setProtectedHeader can only be called once');\n }\n this._protectedHeader = protectedHeader;\n return this;\n }\n setUnprotectedHeader(unprotectedHeader) {\n if (this._unprotectedHeader) {\n throw new TypeError('setUnprotectedHeader can only be called once');\n }\n this._unprotectedHeader = unprotectedHeader;\n return this;\n }\n set _protectedHeader(value) {\n signatureRef.get(this).protectedHeader = value;\n }\n get _protectedHeader() {\n return signatureRef.get(this).protectedHeader;\n }\n set _unprotectedHeader(value) {\n signatureRef.get(this).unprotectedHeader = value;\n }\n get _unprotectedHeader() {\n return signatureRef.get(this).unprotectedHeader;\n }\n}\nclass GeneralSign {\n constructor(payload) {\n this._signatures = [];\n this._payload = payload;\n }\n addSignature(key, options) {\n const signature = new IndividualSignature();\n signatureRef.set(signature, { key, options });\n this._signatures.push(signature);\n return signature;\n }\n async sign() {\n if (!this._signatures.length) {\n throw new JWSInvalid('at least one signature must be added');\n }\n const jws = {\n signatures: [],\n };\n await Promise.all(this._signatures.map(async (sig, i) => {\n const { protectedHeader, unprotectedHeader, options, key } = signatureRef.get(sig);\n const flattened = new FlattenedSign(this._payload);\n if (protectedHeader) {\n flattened.setProtectedHeader(protectedHeader);\n }\n if (unprotectedHeader) {\n flattened.setUnprotectedHeader(unprotectedHeader);\n }\n const { payload, ...rest } = await flattened.sign(key, options);\n if ('payload' in jws && jws.payload !== payload) {\n throw new JWSInvalid(`index ${i} signature produced a different payload`);\n }\n else {\n jws.payload = payload;\n }\n jws.signatures.push(rest);\n }));\n if ('payload' in jws && jws.payload === undefined) {\n delete jws.payload;\n }\n return jws;\n }\n}\n\nasync function generalVerify(jws, key, options) {\n if (!isObject(jws)) {\n throw new JWSInvalid('General JWS must be an object');\n }\n if (!Array.isArray(jws.signatures) || !jws.signatures.every(isObject)) {\n throw new JWSInvalid('JWS Signatures missing or incorrect type');\n }\n for (const signature of jws.signatures) {\n try {\n return await flattenedVerify({\n header: signature.header,\n payload: jws.payload,\n protected: signature.protected,\n signature: signature.signature,\n }, key, options);\n }\n catch (_a) {\n }\n }\n throw new JWSSignatureVerificationFailed();\n}\n\nvar epoch = (date) => Math.floor(date.getTime() / 1000);\n\nconst minute = 60;\nconst hour = minute * 60;\nconst day = hour * 24;\nconst week = day * 7;\nconst year = day * 365.25;\nconst REGEX = /^(\\d+|\\d+\\.\\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)$/i;\nvar secs = (str) => {\n const matched = REGEX.exec(str);\n if (!matched) {\n throw new TypeError('invalid time period format');\n }\n const value = parseFloat(matched[1]);\n const unit = matched[2].toLowerCase();\n switch (unit) {\n case 'sec':\n case 'secs':\n case 'second':\n case 'seconds':\n case 's':\n return Math.round(value);\n case 'minute':\n case 'minutes':\n case 'min':\n case 'mins':\n case 'm':\n return Math.round(value * minute);\n case 'hour':\n case 'hours':\n case 'hr':\n case 'hrs':\n case 'h':\n return Math.round(value * hour);\n case 'day':\n case 'days':\n case 'd':\n return Math.round(value * day);\n case 'week':\n case 'weeks':\n case 'w':\n return Math.round(value * week);\n default:\n return Math.round(value * year);\n }\n};\n\nconst normalizeTyp = (value) => value.toLowerCase().replace(/^application\\//, '');\nconst checkAudiencePresence = (audPayload, audOption) => {\n if (typeof audPayload === 'string') {\n return audOption.includes(audPayload);\n }\n if (Array.isArray(audPayload)) {\n return audOption.some(Set.prototype.has.bind(new Set(audPayload)));\n }\n return false;\n};\nvar jwtPayload = (protectedHeader, encodedPayload, options = {}) => {\n const { typ } = options;\n if (typ &&\n (typeof protectedHeader.typ !== 'string' ||\n normalizeTyp(protectedHeader.typ) !== normalizeTyp(typ))) {\n throw new JWTClaimValidationFailed('unexpected \"typ\" JWT header value', 'typ', 'check_failed');\n }\n let payload;\n try {\n payload = JSON.parse(decoder.decode(encodedPayload));\n }\n catch (_a) {\n }\n if (!isObject(payload)) {\n throw new JWTInvalid('JWT Claims Set must be a top-level JSON object');\n }\n const { issuer } = options;\n if (issuer && !(Array.isArray(issuer) ? issuer : [issuer]).includes(payload.iss)) {\n throw new JWTClaimValidationFailed('unexpected \"iss\" claim value', 'iss', 'check_failed');\n }\n const { subject } = options;\n if (subject && payload.sub !== subject) {\n throw new JWTClaimValidationFailed('unexpected \"sub\" claim value', 'sub', 'check_failed');\n }\n const { audience } = options;\n if (audience &&\n !checkAudiencePresence(payload.aud, typeof audience === 'string' ? [audience] : audience)) {\n throw new JWTClaimValidationFailed('unexpected \"aud\" claim value', 'aud', 'check_failed');\n }\n let tolerance;\n switch (typeof options.clockTolerance) {\n case 'string':\n tolerance = secs(options.clockTolerance);\n break;\n case 'number':\n tolerance = options.clockTolerance;\n break;\n case 'undefined':\n tolerance = 0;\n break;\n default:\n throw new TypeError('invalid clockTolerance option type');\n }\n const { currentDate } = options;\n const now = epoch(currentDate || new Date());\n if (payload.iat !== undefined || options.maxTokenAge) {\n if (typeof payload.iat !== 'number') {\n throw new JWTClaimValidationFailed('\"iat\" claim must be a number', 'iat', 'invalid');\n }\n if (payload.exp === undefined && payload.iat > now + tolerance) {\n throw new JWTClaimValidationFailed('\"iat\" claim timestamp check failed (it should be in the past)', 'iat', 'check_failed');\n }\n }\n if (payload.nbf !== undefined) {\n if (typeof payload.nbf !== 'number') {\n throw new JWTClaimValidationFailed('\"nbf\" claim must be a number', 'nbf', 'invalid');\n }\n if (payload.nbf > now + tolerance) {\n throw new JWTClaimValidationFailed('\"nbf\" claim timestamp check failed', 'nbf', 'check_failed');\n }\n }\n if (payload.exp !== undefined) {\n if (typeof payload.exp !== 'number') {\n throw new JWTClaimValidationFailed('\"exp\" claim must be a number', 'exp', 'invalid');\n }\n if (payload.exp <= now - tolerance) {\n throw new JWTExpired('\"exp\" claim timestamp check failed', 'exp', 'check_failed');\n }\n }\n if (options.maxTokenAge) {\n const age = now - payload.iat;\n const max = typeof options.maxTokenAge === 'number' ? options.maxTokenAge : secs(options.maxTokenAge);\n if (age - tolerance > max) {\n throw new JWTExpired('\"iat\" claim timestamp check failed (too far in the past)', 'iat', 'check_failed');\n }\n if (age < 0 - tolerance) {\n throw new JWTClaimValidationFailed('\"iat\" claim timestamp check failed (it should be in the past)', 'iat', 'check_failed');\n }\n }\n return payload;\n};\n\nasync function jwtDecrypt(jwt, key, options) {\n const decrypted = await compactDecrypt(jwt, key, options);\n const payload = jwtPayload(decrypted.protectedHeader, decrypted.plaintext, options);\n const { protectedHeader } = decrypted;\n if (protectedHeader.iss !== undefined && protectedHeader.iss !== payload.iss) {\n throw new JWTClaimValidationFailed('replicated \"iss\" claim header parameter mismatch', 'iss', 'mismatch');\n }\n if (protectedHeader.sub !== undefined && protectedHeader.sub !== payload.sub) {\n throw new JWTClaimValidationFailed('replicated \"sub\" claim header parameter mismatch', 'sub', 'mismatch');\n }\n if (protectedHeader.aud !== undefined &&\n JSON.stringify(protectedHeader.aud) !== JSON.stringify(payload.aud)) {\n throw new JWTClaimValidationFailed('replicated \"aud\" claim header parameter mismatch', 'aud', 'mismatch');\n }\n return { payload, protectedHeader };\n}\n\nclass ProduceJWT {\n constructor(payload) {\n if (!isObject(payload)) {\n throw new TypeError('JWT Claims Set MUST be an object');\n }\n this._payload = payload;\n }\n setIssuer(issuer) {\n this._payload = { ...this._payload, iss: issuer };\n return this;\n }\n setSubject(subject) {\n this._payload = { ...this._payload, sub: subject };\n return this;\n }\n setAudience(audience) {\n this._payload = { ...this._payload, aud: audience };\n return this;\n }\n setJti(jwtId) {\n this._payload = { ...this._payload, jti: jwtId };\n return this;\n }\n setNotBefore(input) {\n if (typeof input === 'number') {\n this._payload = { ...this._payload, nbf: input };\n }\n else {\n this._payload = { ...this._payload, nbf: epoch(new Date()) + secs(input) };\n }\n return this;\n }\n setExpirationTime(input) {\n if (typeof input === 'number') {\n this._payload = { ...this._payload, exp: input };\n }\n else {\n this._payload = { ...this._payload, exp: epoch(new Date()) + secs(input) };\n }\n return this;\n }\n setIssuedAt(input) {\n if (typeof input === 'undefined') {\n this._payload = { ...this._payload, iat: epoch(new Date()) };\n }\n else {\n this._payload = { ...this._payload, iat: input };\n }\n return this;\n }\n}\n\nclass EncryptJWT extends ProduceJWT {\n setProtectedHeader(protectedHeader) {\n if (this._protectedHeader) {\n throw new TypeError('setProtectedHeader can only be called once');\n }\n this._protectedHeader = protectedHeader;\n return this;\n }\n setKeyManagementParameters(parameters) {\n if (this._keyManagementParameters) {\n throw new TypeError('setKeyManagementParameters can only be called once');\n }\n this._keyManagementParameters = parameters;\n return this;\n }\n setContentEncryptionKey(cek) {\n if (this._cek) {\n throw new TypeError('setContentEncryptionKey can only be called once');\n }\n this._cek = cek;\n return this;\n }\n setInitializationVector(iv) {\n if (this._iv) {\n throw new TypeError('setInitializationVector can only be called once');\n }\n this._iv = iv;\n return this;\n }\n replicateIssuerAsHeader() {\n this._replicateIssuerAsHeader = true;\n return this;\n }\n replicateSubjectAsHeader() {\n this._replicateSubjectAsHeader = true;\n return this;\n }\n replicateAudienceAsHeader() {\n this._replicateAudienceAsHeader = true;\n return this;\n }\n async encrypt(key, options) {\n const enc = new CompactEncrypt(encoder.encode(JSON.stringify(this._payload)));\n if (this._replicateIssuerAsHeader) {\n this._protectedHeader = { ...this._protectedHeader, iss: this._payload.iss };\n }\n if (this._replicateSubjectAsHeader) {\n this._protectedHeader = { ...this._protectedHeader, sub: this._payload.sub };\n }\n if (this._replicateAudienceAsHeader) {\n this._protectedHeader = { ...this._protectedHeader, aud: this._payload.aud };\n }\n enc.setProtectedHeader(this._protectedHeader);\n if (this._iv) {\n enc.setInitializationVector(this._iv);\n }\n if (this._cek) {\n enc.setContentEncryptionKey(this._cek);\n }\n if (this._keyManagementParameters) {\n enc.setKeyManagementParameters(this._keyManagementParameters);\n }\n return enc.encrypt(key, options);\n }\n}\n\nclass SignJWT extends ProduceJWT {\n setProtectedHeader(protectedHeader) {\n this._protectedHeader = protectedHeader;\n return this;\n }\n async sign(key, options) {\n var _a;\n const sig = new CompactSign(encoder.encode(JSON.stringify(this._payload)));\n sig.setProtectedHeader(this._protectedHeader);\n if (((_a = this._protectedHeader.crit) === null || _a === void 0 ? void 0 : _a.includes('b64')) && this._protectedHeader.b64 === false) {\n throw new JWTInvalid('JWTs MUST NOT use unencoded payload');\n }\n return sig.sign(key, options);\n }\n}\n\nclass UnsecuredJWT extends ProduceJWT {\n encode() {\n const header = encode$1(JSON.stringify({ alg: 'none' }));\n const payload = encode$1(JSON.stringify(this._payload));\n return `${header}.${payload}.`;\n }\n static decode(jwt, options) {\n if (typeof jwt !== 'string') {\n throw new JWTInvalid('Unsecured JWT must be a string');\n }\n const { 0: encodedHeader, 1: encodedPayload, 2: signature, length } = jwt.split('.');\n if (length !== 3 || signature !== '') {\n throw new JWTInvalid('Invalid Unsecured JWT');\n }\n let header;\n try {\n header = JSON.parse(decoder.decode(decode$1(encodedHeader)));\n if (header.alg !== 'none')\n throw new Error();\n }\n catch (_a) {\n throw new JWTInvalid('Invalid Unsecured JWT');\n }\n const payload = jwtPayload(header, decode$1(encodedPayload), options);\n return { payload, header };\n }\n}\n\nasync function jwtVerify(jwt, key, options) {\n var _a;\n const verified = await compactVerify(jwt, key, options);\n if (((_a = verified.protectedHeader.crit) === null || _a === void 0 ? void 0 : _a.includes('b64')) && verified.protectedHeader.b64 === false) {\n throw new JWTInvalid('JWTs MUST NOT use unencoded payload');\n }\n const payload = jwtPayload(verified.protectedHeader, verified.payload, options);\n return { payload, protectedHeader: verified.protectedHeader };\n}\n\nconst encode = encode$1;\nconst decode = decode$1;\n\nfunction decodeProtectedHeader(token) {\n let protectedB64u;\n if (typeof token === 'string') {\n const parts = token.split('.');\n if (parts.length === 3 || parts.length === 5) {\n [protectedB64u] = parts;\n }\n }\n else if (typeof token === 'object' && token) {\n if ('protected' in token) {\n protectedB64u = token.protected;\n }\n else {\n throw new TypeError('Token does not contain a Protected Header');\n }\n }\n try {\n if (typeof protectedB64u !== 'string' || !protectedB64u) {\n throw new Error();\n }\n const result = JSON.parse(decoder.decode(decode(protectedB64u)));\n if (!isObject(result)) {\n throw new Error();\n }\n return result;\n }\n catch (err) {\n throw new TypeError('Invalid Token or Protected Header formatting');\n }\n}\n\nasync function generateSecret$1(alg, options) {\n var _a;\n let length;\n let algorithm;\n let keyUsages;\n switch (alg) {\n case 'HS256':\n case 'HS384':\n case 'HS512':\n length = parseInt(alg.substr(-3), 10);\n algorithm = { name: 'HMAC', hash: { name: `SHA-${alg.substr(-3)}` }, length };\n keyUsages = ['sign', 'verify'];\n break;\n case 'A128CBC-HS256':\n case 'A192CBC-HS384':\n case 'A256CBC-HS512':\n length = parseInt(alg.substr(-3), 10);\n return random$1(new Uint8Array(length >> 3));\n case 'A128KW':\n case 'A192KW':\n case 'A256KW':\n length = parseInt(alg.substring(1, 4), 10);\n algorithm = { name: 'AES-KW', length };\n keyUsages = ['wrapKey', 'unwrapKey'];\n break;\n case 'A128GCMKW':\n case 'A192GCMKW':\n case 'A256GCMKW':\n case 'A128GCM':\n case 'A192GCM':\n case 'A256GCM':\n length = parseInt(alg.substring(1, 4), 10);\n algorithm = { name: 'AES-GCM', length };\n keyUsages = ['encrypt', 'decrypt'];\n break;\n default:\n throw new JOSENotSupported('unsupported or invalid JWK \"alg\" (Algorithm) Parameter value');\n }\n return (crypto.subtle.generateKey(algorithm, (_a = options === null || options === void 0 ? void 0 : options.extractable) !== null && _a !== void 0 ? _a : false, keyUsages));\n}\nfunction getModulusLengthOption(options) {\n var _a;\n const modulusLength = (_a = options === null || options === void 0 ? void 0 : options.modulusLength) !== null && _a !== void 0 ? _a : 2048;\n if (typeof modulusLength !== 'number' || modulusLength < 2048) {\n throw new JOSENotSupported('invalid or unsupported modulusLength option provided, 2048 bits or larger keys must be used');\n }\n return modulusLength;\n}\nasync function generateKeyPair$1(alg, options) {\n var _a, _b;\n let algorithm;\n let keyUsages;\n switch (alg) {\n case 'PS256':\n case 'PS384':\n case 'PS512':\n algorithm = {\n name: 'RSA-PSS',\n hash: { name: `SHA-${alg.substr(-3)}` },\n publicExponent: new Uint8Array([0x01, 0x00, 0x01]),\n modulusLength: getModulusLengthOption(options),\n };\n keyUsages = ['sign', 'verify'];\n break;\n case 'RS256':\n case 'RS384':\n case 'RS512':\n algorithm = {\n name: 'RSASSA-PKCS1-v1_5',\n hash: { name: `SHA-${alg.substr(-3)}` },\n publicExponent: new Uint8Array([0x01, 0x00, 0x01]),\n modulusLength: getModulusLengthOption(options),\n };\n keyUsages = ['sign', 'verify'];\n break;\n case 'RSA-OAEP':\n case 'RSA-OAEP-256':\n case 'RSA-OAEP-384':\n case 'RSA-OAEP-512':\n algorithm = {\n name: 'RSA-OAEP',\n hash: { name: `SHA-${parseInt(alg.substr(-3), 10) || 1}` },\n publicExponent: new Uint8Array([0x01, 0x00, 0x01]),\n modulusLength: getModulusLengthOption(options),\n };\n keyUsages = ['decrypt', 'unwrapKey', 'encrypt', 'wrapKey'];\n break;\n case 'ES256':\n algorithm = { name: 'ECDSA', namedCurve: 'P-256' };\n keyUsages = ['sign', 'verify'];\n break;\n case 'ES384':\n algorithm = { name: 'ECDSA', namedCurve: 'P-384' };\n keyUsages = ['sign', 'verify'];\n break;\n case 'ES512':\n algorithm = { name: 'ECDSA', namedCurve: 'P-521' };\n keyUsages = ['sign', 'verify'];\n break;\n case 'ECDH-ES':\n case 'ECDH-ES+A128KW':\n case 'ECDH-ES+A192KW':\n case 'ECDH-ES+A256KW':\n algorithm = { name: 'ECDH', namedCurve: (_a = options === null || options === void 0 ? void 0 : options.crv) !== null && _a !== void 0 ? _a : 'P-256' };\n keyUsages = ['deriveKey', 'deriveBits'];\n break;\n default:\n throw new JOSENotSupported('unsupported or invalid JWK \"alg\" (Algorithm) Parameter value');\n }\n return (crypto.subtle.generateKey(algorithm, (_b = options === null || options === void 0 ? void 0 : options.extractable) !== null && _b !== void 0 ? _b : false, keyUsages));\n}\n\nasync function generateKeyPair(alg, options) {\n return generateKeyPair$1(alg, options);\n}\n\nasync function generateSecret(alg, options) {\n return generateSecret$1(alg, options);\n}\n\nconst random = random$1;\n\n\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/jose-legacy-modules/dist/index.es.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/oidc-client-ext/dist/index.es.js": +/*!***************************************************************!*\ + !*** ./node_modules/@inrupt/oidc-client-ext/dist/index.es.js ***! + \***************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"CordovaIFrameNavigator\": () => (/* reexport safe */ oidc_client__WEBPACK_IMPORTED_MODULE_0__.CordovaIFrameNavigator),\n/* harmony export */ \"CordovaPopupNavigator\": () => (/* reexport safe */ oidc_client__WEBPACK_IMPORTED_MODULE_0__.CordovaPopupNavigator),\n/* harmony export */ \"InMemoryWebStorage\": () => (/* reexport safe */ oidc_client__WEBPACK_IMPORTED_MODULE_0__.InMemoryWebStorage),\n/* harmony export */ \"Log\": () => (/* reexport safe */ oidc_client__WEBPACK_IMPORTED_MODULE_0__.Log),\n/* harmony export */ \"OidcClient\": () => (/* reexport safe */ oidc_client__WEBPACK_IMPORTED_MODULE_0__.OidcClient),\n/* harmony export */ \"SessionMonitor\": () => (/* reexport safe */ oidc_client__WEBPACK_IMPORTED_MODULE_0__.SessionMonitor),\n/* harmony export */ \"User\": () => (/* reexport safe */ oidc_client__WEBPACK_IMPORTED_MODULE_0__.User),\n/* harmony export */ \"UserManager\": () => (/* reexport safe */ oidc_client__WEBPACK_IMPORTED_MODULE_0__.UserManager),\n/* harmony export */ \"Version\": () => (/* reexport safe */ oidc_client__WEBPACK_IMPORTED_MODULE_0__.Version),\n/* harmony export */ \"WebStorageStateStore\": () => (/* reexport safe */ oidc_client__WEBPACK_IMPORTED_MODULE_0__.WebStorageStateStore),\n/* harmony export */ \"clearOidcPersistentStorage\": () => (/* binding */ clearOidcPersistentStorage),\n/* harmony export */ \"getBearerToken\": () => (/* binding */ getBearerToken),\n/* harmony export */ \"getDpopToken\": () => (/* binding */ getDpopToken),\n/* harmony export */ \"registerClient\": () => (/* binding */ registerClient),\n/* harmony export */ \"removeOidcQueryParam\": () => (/* binding */ removeOidcQueryParam)\n/* harmony export */ });\n/* harmony import */ var oidc_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! oidc-client */ \"./node_modules/oidc-client/lib/oidc-client.min.js\");\n/* harmony import */ var oidc_client__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(oidc_client__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _inrupt_solid_client_authn_core__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @inrupt/solid-client-authn-core */ \"./node_modules/@inrupt/solid-client-authn-core/dist/index.js\");\n/* harmony import */ var _inrupt_solid_client_authn_core__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_inrupt_solid_client_authn_core__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var form_urlencoded__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! form-urlencoded */ \"./node_modules/form-urlencoded/form-urlencoded.mjs\");\n\n\n\n\n\nfunction processErrorResponse(responseBody, options) {\r\n var _a, _b, _c, _d;\r\n if (responseBody.error === \"invalid_redirect_uri\") {\r\n throw new Error(`Dynamic client registration failed: the provided redirect uri [${(_a = options.redirectUrl) === null || _a === void 0 ? void 0 : _a.toString()}] is invalid - ${(_b = responseBody.error_description) !== null && _b !== void 0 ? _b : \"\"}`);\r\n }\r\n if (responseBody.error === \"invalid_client_metadata\") {\r\n throw new Error(`Dynamic client registration failed: the provided client metadata ${JSON.stringify(options)} is invalid - ${(_c = responseBody.error_description) !== null && _c !== void 0 ? _c : \"\"}`);\r\n }\r\n throw new Error(`Dynamic client registration failed: ${responseBody.error} - ${(_d = responseBody.error_description) !== null && _d !== void 0 ? _d : \"\"}`);\r\n}\r\nfunction validateRegistrationResponse(responseBody, options) {\r\n if (responseBody.client_id === undefined) {\r\n throw new Error(`Dynamic client registration failed: no client_id has been found on ${JSON.stringify(responseBody)}`);\r\n }\r\n if (options.redirectUrl &&\r\n (responseBody.redirect_uris === undefined ||\r\n responseBody.redirect_uris[0] !== options.redirectUrl.toString())) {\r\n throw new Error(`Dynamic client registration failed: the returned redirect URIs ${JSON.stringify(responseBody.redirect_uris)} don't match the provided ${JSON.stringify([\r\n options.redirectUrl.toString(),\r\n ])}`);\r\n }\r\n}\r\nasync function registerClient(options, issuerConfig) {\r\n var _a;\r\n if (!issuerConfig.registrationEndpoint) {\r\n throw new Error(\"Dynamic Registration could not be completed because the issuer has no registration endpoint.\");\r\n }\r\n if (!Array.isArray(issuerConfig.idTokenSigningAlgValuesSupported)) {\r\n throw new Error(\"The OIDC issuer discovery profile is missing the 'id_token_signing_alg_values_supported' value, which is mandatory.\");\r\n }\r\n const signingAlg = (0,_inrupt_solid_client_authn_core__WEBPACK_IMPORTED_MODULE_1__.determineSigningAlg)(issuerConfig.idTokenSigningAlgValuesSupported, _inrupt_solid_client_authn_core__WEBPACK_IMPORTED_MODULE_1__.PREFERRED_SIGNING_ALG);\r\n const config = {\r\n client_name: options.clientName,\r\n application_type: \"web\",\r\n redirect_uris: [(_a = options.redirectUrl) === null || _a === void 0 ? void 0 : _a.toString()],\r\n subject_type: \"pairwise\",\r\n token_endpoint_auth_method: \"client_secret_basic\",\r\n id_token_signed_response_alg: signingAlg,\r\n };\r\n const headers = {\r\n \"Content-Type\": \"application/json\",\r\n };\r\n if (options.registrationAccessToken) {\r\n headers.Authorization = `Bearer ${options.registrationAccessToken}`;\r\n }\r\n const registerResponse = await fetch(issuerConfig.registrationEndpoint.toString(), {\r\n method: \"POST\",\r\n headers,\r\n body: JSON.stringify(config),\r\n });\r\n if (registerResponse.ok) {\r\n const responseBody = await registerResponse.json();\r\n validateRegistrationResponse(responseBody, options);\r\n return {\r\n clientId: responseBody.client_id,\r\n clientSecret: responseBody.client_secret,\r\n idTokenSignedResponseAlg: responseBody.id_token_signed_response_alg,\r\n };\r\n }\r\n if (registerResponse.status === 400) {\r\n processErrorResponse(await registerResponse.json(), options);\r\n }\r\n throw new Error(`Dynamic client registration failed: the server returned ${registerResponse.status} ${registerResponse.statusText} - ${await registerResponse.text()}`);\r\n}\n\nfunction hasError(value) {\r\n return value.error !== undefined && typeof value.error === \"string\";\r\n}\r\nfunction hasErrorDescription(value) {\r\n return (value.error_description !== undefined &&\r\n typeof value.error_description === \"string\");\r\n}\r\nfunction hasErrorUri(value) {\r\n return value.error_uri !== undefined && typeof value.error_uri === \"string\";\r\n}\r\nfunction hasAccessToken(value) {\r\n return (value.access_token !== undefined && typeof value.access_token === \"string\");\r\n}\r\nfunction hasIdToken(value) {\r\n return value.id_token !== undefined && typeof value.id_token === \"string\";\r\n}\r\nfunction hasRefreshToken(value) {\r\n return (value.refresh_token !== undefined && typeof value.refresh_token === \"string\");\r\n}\r\nfunction hasTokenType(value) {\r\n return value.token_type !== undefined && typeof value.token_type === \"string\";\r\n}\r\nfunction hasExpiresIn(value) {\r\n return value.expires_in === undefined || typeof value.expires_in === \"number\";\r\n}\r\nfunction validatePreconditions(issuer, data) {\r\n if (data.grantType &&\r\n (!issuer.grantTypesSupported ||\r\n !issuer.grantTypesSupported.includes(data.grantType))) {\r\n throw new Error(`The issuer [${issuer.issuer}] does not support the [${data.grantType}] grant`);\r\n }\r\n if (!issuer.tokenEndpoint) {\r\n throw new Error(`This issuer [${issuer.issuer}] does not have a token endpoint`);\r\n }\r\n}\r\nfunction validateTokenEndpointResponse(tokenResponse, dpop) {\r\n if (hasError(tokenResponse)) {\r\n throw new Error(`Token endpoint returned error [${tokenResponse.error}]${hasErrorDescription(tokenResponse)\r\n ? `: ${tokenResponse.error_description}`\r\n : \"\"}${hasErrorUri(tokenResponse) ? ` (see ${tokenResponse.error_uri})` : \"\"}`);\r\n }\r\n if (!hasAccessToken(tokenResponse)) {\r\n throw new Error(`Invalid token endpoint response (missing the field 'access_token'): ${JSON.stringify(tokenResponse)}`);\r\n }\r\n if (!hasIdToken(tokenResponse)) {\r\n throw new Error(`Invalid token endpoint response (missing the field 'id_token'): ${JSON.stringify(tokenResponse)}.`);\r\n }\r\n if (!hasTokenType(tokenResponse)) {\r\n throw new Error(`Invalid token endpoint response (missing the field 'token_type'): ${JSON.stringify(tokenResponse)}`);\r\n }\r\n if (!hasExpiresIn(tokenResponse)) {\r\n throw new Error(`Invalid token endpoint response (invalid field 'expires_in'): ${JSON.stringify(tokenResponse)}`);\r\n }\r\n if (!dpop && tokenResponse.token_type.toLowerCase() !== \"bearer\") {\r\n throw new Error(`Invalid token endpoint response: requested a [Bearer] token, but got a 'token_type' value of [${tokenResponse.token_type}].`);\r\n }\r\n return tokenResponse;\r\n}\r\nasync function getTokens(issuer, client, data, dpop) {\r\n validatePreconditions(issuer, data);\r\n const headers = {\r\n \"content-type\": \"application/x-www-form-urlencoded\",\r\n };\r\n let dpopKey;\r\n if (dpop) {\r\n dpopKey = await (0,_inrupt_solid_client_authn_core__WEBPACK_IMPORTED_MODULE_1__.generateDpopKeyPair)();\r\n headers.DPoP = await (0,_inrupt_solid_client_authn_core__WEBPACK_IMPORTED_MODULE_1__.createDpopHeader)(issuer.tokenEndpoint, \"POST\", dpopKey);\r\n }\r\n if (client.clientSecret) {\r\n headers.Authorization = `Basic ${btoa(`${client.clientId}:${client.clientSecret}`)}`;\r\n }\r\n const tokenRequestInit = {\r\n method: \"POST\",\r\n headers,\r\n body: (0,form_urlencoded__WEBPACK_IMPORTED_MODULE_2__.default)({\r\n grant_type: data.grantType,\r\n redirect_uri: data.redirectUrl,\r\n code: data.code,\r\n code_verifier: data.codeVerifier,\r\n client_id: client.clientId,\r\n }),\r\n };\r\n const rawTokenResponse = await await fetch(issuer.tokenEndpoint, tokenRequestInit);\r\n const jsonTokenResponse = (await rawTokenResponse.json());\r\n const tokenResponse = validateTokenEndpointResponse(jsonTokenResponse, dpop);\r\n const webId = await (0,_inrupt_solid_client_authn_core__WEBPACK_IMPORTED_MODULE_1__.getWebidFromTokenPayload)(tokenResponse.id_token, issuer.jwksUri, issuer.issuer, client.clientId);\r\n return {\r\n accessToken: tokenResponse.access_token,\r\n idToken: tokenResponse.id_token,\r\n refreshToken: hasRefreshToken(tokenResponse)\r\n ? tokenResponse.refresh_token\r\n : undefined,\r\n webId,\r\n dpopKey,\r\n expiresIn: tokenResponse.expires_in,\r\n };\r\n}\r\nasync function getBearerToken(redirectUrl) {\r\n let signinResponse;\r\n try {\r\n const client = new oidc_client__WEBPACK_IMPORTED_MODULE_0__.OidcClient({\r\n response_mode: \"query\",\r\n loadUserInfo: false,\r\n });\r\n signinResponse = await client.processSigninResponse(redirectUrl);\r\n if (client.settings.metadata === undefined) {\r\n throw new Error(\"Cannot retrieve issuer metadata from client information in storage.\");\r\n }\r\n if (client.settings.metadata.jwks_uri === undefined) {\r\n throw new Error(\"Missing some issuer metadata from client information in storage: 'jwks_uri' is undefined\");\r\n }\r\n if (client.settings.metadata.issuer === undefined) {\r\n throw new Error(\"Missing some issuer metadata from client information in storage: 'issuer' is undefined\");\r\n }\r\n if (client.settings.client_id === undefined) {\r\n throw new Error(\"Missing some client information in storage: 'client_id' is undefined\");\r\n }\r\n const webId = await (0,_inrupt_solid_client_authn_core__WEBPACK_IMPORTED_MODULE_1__.getWebidFromTokenPayload)(signinResponse.id_token, client.settings.metadata.jwks_uri, client.settings.metadata.issuer, client.settings.client_id);\r\n return {\r\n accessToken: signinResponse.access_token,\r\n idToken: signinResponse.id_token,\r\n webId,\r\n refreshToken: signinResponse.refresh_token,\r\n };\r\n }\r\n catch (err) {\r\n throw new Error(`Problem handling Auth Code Grant (Flow) redirect - URL [${redirectUrl}]: ${err}`);\r\n }\r\n}\r\nasync function getDpopToken(issuer, client, data) {\r\n return getTokens(issuer, client, data, true);\r\n}\n\nfunction removeOidcQueryParam(redirectUrl) {\r\n const cleanedUrl = new URL(redirectUrl);\r\n cleanedUrl.searchParams.delete(\"code\");\r\n cleanedUrl.searchParams.delete(\"state\");\r\n cleanedUrl.hash = \"\";\r\n return cleanedUrl.toString();\r\n}\r\nasync function clearOidcPersistentStorage() {\r\n const client = new oidc_client__WEBPACK_IMPORTED_MODULE_0__.OidcClient({\r\n response_mode: \"query\",\r\n });\r\n await client.clearStaleState(new oidc_client__WEBPACK_IMPORTED_MODULE_0__.WebStorageStateStore({}));\r\n const myStorage = window.localStorage;\r\n const itemsToRemove = [];\r\n for (let i = 0; i <= myStorage.length; i += 1) {\r\n const key = myStorage.key(i);\r\n if (key &&\r\n (key.match(/^oidc\\..+$/) ||\r\n key.match(/^solidClientAuthenticationUser:.+$/))) {\r\n itemsToRemove.push(key);\r\n }\r\n }\r\n itemsToRemove.forEach((key) => myStorage.removeItem(key));\r\n}\n\n\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/oidc-client-ext/dist/index.es.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client-authn-browser/dist/ClientAuthentication.js": +/*!**************************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client-authn-browser/dist/ClientAuthentication.js ***! + \**************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst solid_client_authn_core_1 = __webpack_require__(/*! @inrupt/solid-client-authn-core */ \"./node_modules/@inrupt/solid-client-authn-core/dist/index.js\");\nconst oidc_client_ext_1 = __webpack_require__(/*! @inrupt/oidc-client-ext */ \"./node_modules/@inrupt/oidc-client-ext/dist/index.es.js\");\nconst jose_legacy_modules_1 = __webpack_require__(/*! @inrupt/jose-legacy-modules */ \"./node_modules/@inrupt/jose-legacy-modules/dist/index.es.js\");\nconst constant_1 = __webpack_require__(/*! ./constant */ \"./node_modules/@inrupt/solid-client-authn-browser/dist/constant.js\");\nconst globalFetch = (request, init) => window.fetch(request, init);\nclass ClientAuthentication {\n constructor(loginHandler, redirectHandler, logoutHandler, sessionInfoManager, issuerConfigFetcher) {\n this.loginHandler = loginHandler;\n this.redirectHandler = redirectHandler;\n this.logoutHandler = logoutHandler;\n this.sessionInfoManager = sessionInfoManager;\n this.issuerConfigFetcher = issuerConfigFetcher;\n this.login = async (options) => {\n var _a, _b;\n await this.sessionInfoManager.clear(options.sessionId);\n const redirectUrl = oidc_client_ext_1.removeOidcQueryParam((_a = options.redirectUrl) !== null && _a !== void 0 ? _a : window.location.href);\n await this.loginHandler.handle({\n ...options,\n redirectUrl,\n clientName: (_b = options.clientName) !== null && _b !== void 0 ? _b : options.clientId,\n });\n };\n this.fetch = globalFetch;\n this.logout = async (sessionId) => {\n await this.logoutHandler.handle(sessionId);\n this.fetch = globalFetch;\n };\n this.getSessionInfo = async (sessionId) => {\n return this.sessionInfoManager.get(sessionId);\n };\n this.getAllSessionInfo = async () => {\n return this.sessionInfoManager.getAll();\n };\n this.validateCurrentSession = async () => {\n const currentSessionId = window.localStorage.getItem(constant_1.KEY_CURRENT_SESSION);\n if (currentSessionId === null) {\n return null;\n }\n const sessionInfo = await this.sessionInfoManager.get(currentSessionId);\n if (sessionInfo === undefined ||\n sessionInfo.idToken === undefined ||\n sessionInfo.clientAppId === undefined ||\n sessionInfo.issuer === undefined) {\n return null;\n }\n const issuerConfig = await this.issuerConfigFetcher.fetchConfig(sessionInfo.issuer);\n try {\n const jwk = await solid_client_authn_core_1.fetchJwks(issuerConfig.jwksUri, issuerConfig.issuer);\n await jose_legacy_modules_1.jwtVerify(sessionInfo.idToken, await jose_legacy_modules_1.parseJwk(jwk), {\n audience: sessionInfo.clientAppId,\n issuer: issuerConfig.issuer,\n });\n return sessionInfo;\n }\n catch (e) {\n }\n return null;\n };\n this.handleIncomingRedirect = async (url) => {\n const redirectInfo = await this.redirectHandler.handle(url);\n this.fetch = redirectInfo.fetch.bind(window);\n const cleanedUpUrl = new URL(url);\n cleanedUpUrl.searchParams.delete(\"state\");\n cleanedUpUrl.searchParams.delete(\"code\");\n cleanedUpUrl.searchParams.delete(\"id_token\");\n cleanedUpUrl.searchParams.delete(\"access_token\");\n window.history.replaceState(null, \"\", cleanedUpUrl.toString());\n return {\n isLoggedIn: redirectInfo.isLoggedIn,\n webId: redirectInfo.webId,\n sessionId: redirectInfo.sessionId,\n expirationDate: redirectInfo.expirationDate,\n };\n };\n }\n}\nexports.default = ClientAuthentication;\n//# sourceMappingURL=ClientAuthentication.js.map\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client-authn-browser/dist/ClientAuthentication.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client-authn-browser/dist/Session.js": +/*!*************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client-authn-browser/dist/Session.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Session = exports.silentlyAuthenticate = void 0;\nconst events_1 = __webpack_require__(/*! events */ \"./node_modules/events/events.js\");\nconst uuid_1 = __webpack_require__(/*! uuid */ \"./node_modules/uuid/dist/esm-browser/index.js\");\nconst dependencies_1 = __webpack_require__(/*! ./dependencies */ \"./node_modules/@inrupt/solid-client-authn-browser/dist/dependencies.js\");\nconst constant_1 = __webpack_require__(/*! ./constant */ \"./node_modules/@inrupt/solid-client-authn-browser/dist/constant.js\");\nconst iframe_1 = __webpack_require__(/*! ./iframe */ \"./node_modules/@inrupt/solid-client-authn-browser/dist/iframe.js\");\nasync function silentlyAuthenticate(sessionId, clientAuthn, options = {\n inIframe: false,\n}) {\n var _a;\n const storedSessionInfo = await clientAuthn.validateCurrentSession();\n if (storedSessionInfo !== null) {\n window.localStorage.setItem(constant_1.KEY_CURRENT_URL, window.location.href);\n await clientAuthn.login({\n sessionId,\n prompt: \"none\",\n oidcIssuer: storedSessionInfo.issuer,\n redirectUrl: storedSessionInfo.redirectUrl,\n clientId: storedSessionInfo.clientAppId,\n clientSecret: storedSessionInfo.clientAppSecret,\n tokenType: (_a = storedSessionInfo.tokenType) !== null && _a !== void 0 ? _a : \"DPoP\",\n inIframe: options.inIframe,\n });\n return true;\n }\n return false;\n}\nexports.silentlyAuthenticate = silentlyAuthenticate;\nfunction isLoggedIn(sessionInfo) {\n return !!(sessionInfo === null || sessionInfo === void 0 ? void 0 : sessionInfo.isLoggedIn);\n}\nclass Session extends events_1.EventEmitter {\n constructor(sessionOptions = {}, sessionId) {\n super();\n this.tokenRequestInProgress = false;\n this.tmpFetchWithCookies = false;\n this.login = async (options) => {\n var _a;\n await this.clientAuthentication.login({\n sessionId: this.info.sessionId,\n ...options,\n tokenType: (_a = options.tokenType) !== null && _a !== void 0 ? _a : \"DPoP\",\n });\n return new Promise(() => undefined);\n };\n this.fetch = async (url, init) => {\n return this.clientAuthentication.fetch(url, {\n ...init,\n credentials: this.tmpFetchWithCookies\n ?\n \"include\"\n :\n init === null || init === void 0 ? void 0 : init.credentials,\n });\n };\n this.logout = async () => {\n await this.clientAuthentication.logout(this.info.sessionId);\n this.info.isLoggedIn = false;\n this.tmpFetchWithCookies = false;\n this.emit(\"logout\");\n };\n this.handleIncomingRedirect = async (inputOptions = {}) => {\n var _a;\n if (this.info.isLoggedIn) {\n return this.info;\n }\n if (this.tokenRequestInProgress) {\n return undefined;\n }\n const options = typeof inputOptions === \"string\" ? { url: inputOptions } : inputOptions;\n const url = (_a = options.url) !== null && _a !== void 0 ? _a : window.location.href;\n if (window.frameElement !== null) {\n iframe_1.postRedirectUrlToParent(url);\n return undefined;\n }\n if (options.useEssSession !== true ||\n options.restorePreviousSession === true) {\n window.localStorage.setItem(\"tmp-resource-server-session-enabled\", \"false\");\n }\n else {\n window.localStorage.setItem(\"tmp-resource-server-session-enabled\", \"true\");\n }\n const storedSessionCookieReference = window.localStorage.getItem(\"tmp-resource-server-session-info\");\n if (typeof storedSessionCookieReference === \"string\" &&\n options.restorePreviousSession !== true &&\n options.useEssSession === true) {\n function isValidSessionCookieReference(reference) {\n var _a;\n const resourceServers = Object.keys((_a = reference.sessions) !== null && _a !== void 0 ? _a : {});\n return (typeof reference.webId === \"string\" &&\n resourceServers.length > 0 &&\n typeof reference.sessions[resourceServers[0]].expiration === \"number\");\n }\n const reference = JSON.parse(storedSessionCookieReference);\n if (isValidSessionCookieReference(reference)) {\n const resourceServers = Object.keys(reference.sessions);\n const webIdOrigin = new URL(reference.webId).hostname;\n const ownResourceServer = resourceServers.find((resourceServer) => {\n return new URL(resourceServer).hostname === webIdOrigin;\n });\n const relevantServer = ownResourceServer !== null && ownResourceServer !== void 0 ? ownResourceServer : resourceServers[0];\n if (reference.sessions[relevantServer].expiration - Date.now() >\n 5 * 60 * 1000) {\n this.info.isLoggedIn = true;\n this.info.webId = reference.webId;\n this.tmpFetchWithCookies = true;\n return this.info;\n }\n }\n }\n this.tokenRequestInProgress = true;\n const sessionInfo = await this.clientAuthentication.handleIncomingRedirect(url);\n if (isLoggedIn(sessionInfo)) {\n this.setSessionInfo(sessionInfo);\n const currentUrl = window.localStorage.getItem(constant_1.KEY_CURRENT_URL);\n if (currentUrl === null) {\n this.emit(\"login\");\n }\n else {\n window.localStorage.removeItem(constant_1.KEY_CURRENT_URL);\n this.emit(\"sessionRestore\", currentUrl);\n }\n }\n else if (options.restorePreviousSession === true) {\n const storedSessionId = window.localStorage.getItem(constant_1.KEY_CURRENT_SESSION);\n if (storedSessionId !== null) {\n const attemptedSilentAuthentication = await silentlyAuthenticate(storedSessionId, this.clientAuthentication);\n if (attemptedSilentAuthentication) {\n return new Promise(() => { });\n }\n }\n }\n this.tokenRequestInProgress = false;\n return sessionInfo;\n };\n if (sessionOptions.clientAuthentication) {\n this.clientAuthentication = sessionOptions.clientAuthentication;\n }\n else if (sessionOptions.secureStorage && sessionOptions.insecureStorage) {\n this.clientAuthentication = dependencies_1.getClientAuthenticationWithDependencies({\n secureStorage: sessionOptions.secureStorage,\n insecureStorage: sessionOptions.insecureStorage,\n });\n }\n else {\n this.clientAuthentication = dependencies_1.getClientAuthenticationWithDependencies({});\n }\n if (sessionOptions.sessionInfo) {\n this.info = {\n sessionId: sessionOptions.sessionInfo.sessionId,\n isLoggedIn: false,\n webId: sessionOptions.sessionInfo.webId,\n };\n }\n else {\n this.info = {\n sessionId: sessionId !== null && sessionId !== void 0 ? sessionId : uuid_1.v4(),\n isLoggedIn: false,\n };\n }\n iframe_1.setupIframeListener(async (redirectUrl) => {\n const sessionInfo = await this.clientAuthentication.handleIncomingRedirect(redirectUrl);\n if (!isLoggedIn(sessionInfo)) {\n return;\n }\n this.setSessionInfo(sessionInfo);\n });\n this.on(\"tokenRenewal\", () => silentlyAuthenticate(this.info.sessionId, this.clientAuthentication, {\n inIframe: true,\n }));\n }\n onLogin(callback) {\n this.on(\"login\", callback);\n }\n onLogout(callback) {\n this.on(\"logout\", callback);\n }\n onSessionRestore(callback) {\n this.on(\"sessionRestore\", callback);\n }\n setSessionInfo(sessionInfo) {\n this.info.isLoggedIn = sessionInfo.isLoggedIn;\n this.info.webId = sessionInfo.webId;\n this.info.sessionId = sessionInfo.sessionId;\n this.info.expirationDate = sessionInfo.expirationDate;\n if (typeof sessionInfo.expirationDate === \"number\") {\n setTimeout(async () => {\n await this.logout();\n }, sessionInfo.expirationDate - Date.now());\n }\n }\n}\nexports.Session = Session;\n//# sourceMappingURL=Session.js.map\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client-authn-browser/dist/Session.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client-authn-browser/dist/authenticatedFetch/fetchFactory.js": +/*!*************************************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client-authn-browser/dist/authenticatedFetch/fetchFactory.js ***! + \*************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.buildDpopFetch = exports.buildBearerFetch = void 0;\nconst solid_client_authn_core_1 = __webpack_require__(/*! @inrupt/solid-client-authn-core */ \"./node_modules/@inrupt/solid-client-authn-core/dist/index.js\");\nfunction buildBearerFetch(authToken) {\n return (init, options) => {\n return fetch(init, {\n ...options,\n credentials: \"include\",\n headers: {\n ...options === null || options === void 0 ? void 0 : options.headers,\n Authorization: `Bearer ${authToken}`,\n },\n });\n };\n}\nexports.buildBearerFetch = buildBearerFetch;\nasync function buildDpopFetchOptions(targetUrl, authToken, dpopKey, defaultOptions) {\n var _a;\n return {\n ...defaultOptions,\n headers: {\n ...defaultOptions === null || defaultOptions === void 0 ? void 0 : defaultOptions.headers,\n Authorization: `DPoP ${authToken}`,\n DPoP: await solid_client_authn_core_1.createDpopHeader(targetUrl, (_a = defaultOptions === null || defaultOptions === void 0 ? void 0 : defaultOptions.method) !== null && _a !== void 0 ? _a : \"get\", dpopKey),\n },\n credentials: \"include\",\n };\n}\nfunction isExpectedAuthError(statusCode) {\n return [401, 403].includes(statusCode);\n}\nasync function buildDpopFetch(authToken, dpopKey) {\n return async (url, options) => {\n const response = await fetch(url, await buildDpopFetchOptions(url.toString(), authToken, dpopKey, options));\n const failedButNotExpectedAuthError = !response.ok && !isExpectedAuthError(response.status);\n const hasBeenRedirected = response.url !== url;\n if (response.ok || failedButNotExpectedAuthError || !hasBeenRedirected) {\n return response;\n }\n return fetch(response.url, await buildDpopFetchOptions(response.url, authToken, dpopKey, options));\n };\n}\nexports.buildDpopFetch = buildDpopFetch;\n//# sourceMappingURL=fetchFactory.js.map\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client-authn-browser/dist/authenticatedFetch/fetchFactory.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client-authn-browser/dist/constant.js": +/*!**************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client-authn-browser/dist/constant.js ***! + \**************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.KEY_CURRENT_URL = exports.KEY_CURRENT_SESSION = void 0;\nconst solid_client_authn_core_1 = __webpack_require__(/*! @inrupt/solid-client-authn-core */ \"./node_modules/@inrupt/solid-client-authn-core/dist/index.js\");\nexports.KEY_CURRENT_SESSION = `${solid_client_authn_core_1.SOLID_CLIENT_AUTHN_KEY_PREFIX}currentSession`;\nexports.KEY_CURRENT_URL = `${solid_client_authn_core_1.SOLID_CLIENT_AUTHN_KEY_PREFIX}currentUrl`;\n//# sourceMappingURL=constant.js.map\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client-authn-browser/dist/constant.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client-authn-browser/dist/defaultSession.js": +/*!********************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client-authn-browser/dist/defaultSession.js ***! + \********************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.onSessionRestore = exports.onLogout = exports.onLogin = exports.handleIncomingRedirect = exports.logout = exports.login = exports.fetch = exports.getDefaultSession = void 0;\nconst Session_1 = __webpack_require__(/*! ./Session */ \"./node_modules/@inrupt/solid-client-authn-browser/dist/Session.js\");\nlet defaultSession;\nfunction getDefaultSession() {\n if (typeof defaultSession === \"undefined\") {\n defaultSession = new Session_1.Session();\n }\n return defaultSession;\n}\nexports.getDefaultSession = getDefaultSession;\nconst fetch = (...args) => {\n const session = getDefaultSession();\n return session.fetch(...args);\n};\nexports.fetch = fetch;\nconst login = (...args) => {\n const session = getDefaultSession();\n return session.login(...args);\n};\nexports.login = login;\nconst logout = (...args) => {\n const session = getDefaultSession();\n return session.logout(...args);\n};\nexports.logout = logout;\nconst handleIncomingRedirect = (...args) => {\n const session = getDefaultSession();\n return session.handleIncomingRedirect(...args);\n};\nexports.handleIncomingRedirect = handleIncomingRedirect;\nconst onLogin = (...args) => {\n const session = getDefaultSession();\n return session.onLogin(...args);\n};\nexports.onLogin = onLogin;\nconst onLogout = (...args) => {\n const session = getDefaultSession();\n return session.onLogout(...args);\n};\nexports.onLogout = onLogout;\nconst onSessionRestore = (...args) => {\n const session = getDefaultSession();\n return session.onSessionRestore(...args);\n};\nexports.onSessionRestore = onSessionRestore;\n//# sourceMappingURL=defaultSession.js.map\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client-authn-browser/dist/defaultSession.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client-authn-browser/dist/dependencies.js": +/*!******************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client-authn-browser/dist/dependencies.js ***! + \******************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.getClientAuthenticationWithDependencies = void 0;\nconst solid_client_authn_core_1 = __webpack_require__(/*! @inrupt/solid-client-authn-core */ \"./node_modules/@inrupt/solid-client-authn-core/dist/index.js\");\nconst StorageUtility_1 = __importDefault(__webpack_require__(/*! ./storage/StorageUtility */ \"./node_modules/@inrupt/solid-client-authn-browser/dist/storage/StorageUtility.js\"));\nconst ClientAuthentication_1 = __importDefault(__webpack_require__(/*! ./ClientAuthentication */ \"./node_modules/@inrupt/solid-client-authn-browser/dist/ClientAuthentication.js\"));\nconst OidcLoginHandler_1 = __importDefault(__webpack_require__(/*! ./login/oidc/OidcLoginHandler */ \"./node_modules/@inrupt/solid-client-authn-browser/dist/login/oidc/OidcLoginHandler.js\"));\nconst AuthorizationCodeWithPkceOidcHandler_1 = __importDefault(__webpack_require__(/*! ./login/oidc/oidcHandlers/AuthorizationCodeWithPkceOidcHandler */ \"./node_modules/@inrupt/solid-client-authn-browser/dist/login/oidc/oidcHandlers/AuthorizationCodeWithPkceOidcHandler.js\"));\nconst IssuerConfigFetcher_1 = __importDefault(__webpack_require__(/*! ./login/oidc/IssuerConfigFetcher */ \"./node_modules/@inrupt/solid-client-authn-browser/dist/login/oidc/IssuerConfigFetcher.js\"));\nconst FallbackRedirectHandler_1 = __webpack_require__(/*! ./login/oidc/redirectHandler/FallbackRedirectHandler */ \"./node_modules/@inrupt/solid-client-authn-browser/dist/login/oidc/redirectHandler/FallbackRedirectHandler.js\");\nconst GeneralLogoutHandler_1 = __importDefault(__webpack_require__(/*! ./logout/GeneralLogoutHandler */ \"./node_modules/@inrupt/solid-client-authn-browser/dist/logout/GeneralLogoutHandler.js\"));\nconst SessionInfoManager_1 = __webpack_require__(/*! ./sessionInfo/SessionInfoManager */ \"./node_modules/@inrupt/solid-client-authn-browser/dist/sessionInfo/SessionInfoManager.js\");\nconst AuthCodeRedirectHandler_1 = __webpack_require__(/*! ./login/oidc/redirectHandler/AuthCodeRedirectHandler */ \"./node_modules/@inrupt/solid-client-authn-browser/dist/login/oidc/redirectHandler/AuthCodeRedirectHandler.js\");\nconst AggregateRedirectHandler_1 = __importDefault(__webpack_require__(/*! ./login/oidc/redirectHandler/AggregateRedirectHandler */ \"./node_modules/@inrupt/solid-client-authn-browser/dist/login/oidc/redirectHandler/AggregateRedirectHandler.js\"));\nconst BrowserStorage_1 = __importDefault(__webpack_require__(/*! ./storage/BrowserStorage */ \"./node_modules/@inrupt/solid-client-authn-browser/dist/storage/BrowserStorage.js\"));\nconst Redirector_1 = __importDefault(__webpack_require__(/*! ./login/oidc/Redirector */ \"./node_modules/@inrupt/solid-client-authn-browser/dist/login/oidc/Redirector.js\"));\nconst ClientRegistrar_1 = __importDefault(__webpack_require__(/*! ./login/oidc/ClientRegistrar */ \"./node_modules/@inrupt/solid-client-authn-browser/dist/login/oidc/ClientRegistrar.js\"));\nfunction getClientAuthenticationWithDependencies(dependencies) {\n const inMemoryStorage = new solid_client_authn_core_1.InMemoryStorage();\n const secureStorage = dependencies.secureStorage || inMemoryStorage;\n const insecureStorage = dependencies.insecureStorage || new BrowserStorage_1.default();\n const storageUtility = new StorageUtility_1.default(secureStorage, insecureStorage);\n const issuerConfigFetcher = new IssuerConfigFetcher_1.default(storageUtility);\n const clientRegistrar = new ClientRegistrar_1.default(storageUtility);\n const sessionInfoManager = new SessionInfoManager_1.SessionInfoManager(storageUtility);\n const loginHandler = new OidcLoginHandler_1.default(storageUtility, new AuthorizationCodeWithPkceOidcHandler_1.default(storageUtility, new Redirector_1.default()), issuerConfigFetcher, clientRegistrar);\n const redirectHandler = new AggregateRedirectHandler_1.default([\n new AuthCodeRedirectHandler_1.AuthCodeRedirectHandler(storageUtility, sessionInfoManager, issuerConfigFetcher, clientRegistrar),\n new FallbackRedirectHandler_1.FallbackRedirectHandler(),\n ]);\n return new ClientAuthentication_1.default(loginHandler, redirectHandler, new GeneralLogoutHandler_1.default(sessionInfoManager), sessionInfoManager, issuerConfigFetcher);\n}\nexports.getClientAuthenticationWithDependencies = getClientAuthenticationWithDependencies;\n//# sourceMappingURL=dependencies.js.map\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client-authn-browser/dist/dependencies.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client-authn-browser/dist/iframe.js": +/*!************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client-authn-browser/dist/iframe.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.postRedirectUrlToParent = exports.setupIframeListener = exports.redirectInIframe = void 0;\nlet redirectIframe;\nfunction getRedirectIframe() {\n if (typeof redirectIframe === \"undefined\") {\n redirectIframe = window.document.createElement(\"iframe\");\n redirectIframe.setAttribute(\"hidden\", \"true\");\n redirectIframe.setAttribute(\"sandbox\", \"allow-scripts allow-same-origin\");\n }\n return redirectIframe;\n}\nfunction redirectInIframe(redirectUrl) {\n const iframe = getRedirectIframe();\n window.document.body.appendChild(iframe);\n iframe.src = redirectUrl;\n}\nexports.redirectInIframe = redirectInIframe;\nfunction setupIframeListener(handleIframeRedirect) {\n if (typeof window === \"undefined\") {\n return;\n }\n window.addEventListener(\"message\", async (evt) => {\n const iframe = getRedirectIframe();\n if (evt.origin === window.location.origin &&\n evt.source === iframe.contentWindow) {\n if (typeof evt.data.redirectUrl === \"string\") {\n await handleIframeRedirect(evt.data.redirectUrl);\n }\n }\n if (window.document.body.contains(iframe)) {\n window.document.body.removeChild(iframe);\n }\n });\n}\nexports.setupIframeListener = setupIframeListener;\nfunction postRedirectUrlToParent(redirectUrl) {\n window.top.postMessage({\n redirectUrl,\n }, window.location.origin);\n}\nexports.postRedirectUrlToParent = postRedirectUrlToParent;\n//# sourceMappingURL=iframe.js.map\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client-authn-browser/dist/iframe.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client-authn-browser/dist/index.js": +/*!***********************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client-authn-browser/dist/index.js ***! + \***********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.InMemoryStorage = exports.ConfigurationError = exports.NotImplementedError = exports.getClientAuthenticationWithDependencies = exports.Session = void 0;\nvar Session_1 = __webpack_require__(/*! ./Session */ \"./node_modules/@inrupt/solid-client-authn-browser/dist/Session.js\");\nObject.defineProperty(exports, \"Session\", ({ enumerable: true, get: function () { return Session_1.Session; } }));\nvar dependencies_1 = __webpack_require__(/*! ./dependencies */ \"./node_modules/@inrupt/solid-client-authn-browser/dist/dependencies.js\");\nObject.defineProperty(exports, \"getClientAuthenticationWithDependencies\", ({ enumerable: true, get: function () { return dependencies_1.getClientAuthenticationWithDependencies; } }));\n__exportStar(__webpack_require__(/*! ./defaultSession */ \"./node_modules/@inrupt/solid-client-authn-browser/dist/defaultSession.js\"), exports);\nvar solid_client_authn_core_1 = __webpack_require__(/*! @inrupt/solid-client-authn-core */ \"./node_modules/@inrupt/solid-client-authn-core/dist/index.js\");\nObject.defineProperty(exports, \"NotImplementedError\", ({ enumerable: true, get: function () { return solid_client_authn_core_1.NotImplementedError; } }));\nObject.defineProperty(exports, \"ConfigurationError\", ({ enumerable: true, get: function () { return solid_client_authn_core_1.ConfigurationError; } }));\nObject.defineProperty(exports, \"InMemoryStorage\", ({ enumerable: true, get: function () { return solid_client_authn_core_1.InMemoryStorage; } }));\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client-authn-browser/dist/index.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client-authn-browser/dist/login/oidc/ClientRegistrar.js": +/*!********************************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client-authn-browser/dist/login/oidc/ClientRegistrar.js ***! + \********************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst oidc_client_ext_1 = __webpack_require__(/*! @inrupt/oidc-client-ext */ \"./node_modules/@inrupt/oidc-client-ext/dist/index.es.js\");\nclass ClientRegistrar {\n constructor(storageUtility) {\n this.storageUtility = storageUtility;\n }\n async getClient(options, issuerConfig) {\n var _a;\n const [storedClientId, storedClientSecret,] = await Promise.all([\n this.storageUtility.getForUser(options.sessionId, \"clientId\", {\n secure: false,\n }),\n this.storageUtility.getForUser(options.sessionId, \"clientSecret\", {\n secure: false,\n }),\n ]);\n if (storedClientId) {\n return {\n clientId: storedClientId,\n clientSecret: storedClientSecret,\n };\n }\n const extendedOptions = { ...options };\n extendedOptions.registrationAccessToken =\n (_a = extendedOptions.registrationAccessToken) !== null && _a !== void 0 ? _a : (await this.storageUtility.getForUser(options.sessionId, \"registrationAccessToken\"));\n try {\n const registeredClient = await oidc_client_ext_1.registerClient(extendedOptions, issuerConfig);\n const infoToSave = {\n clientId: registeredClient.clientId,\n };\n if (registeredClient.clientSecret) {\n infoToSave.clientSecret = registeredClient.clientSecret;\n }\n if (registeredClient.idTokenSignedResponseAlg) {\n infoToSave.idTokenSignedResponseAlg =\n registeredClient.idTokenSignedResponseAlg;\n }\n await this.storageUtility.setForUser(extendedOptions.sessionId, infoToSave, {\n secure: false,\n });\n return registeredClient;\n }\n catch (error) {\n throw new Error(`Client registration failed: [${error.toString()}]`);\n }\n }\n}\nexports.default = ClientRegistrar;\n//# sourceMappingURL=ClientRegistrar.js.map\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client-authn-browser/dist/login/oidc/ClientRegistrar.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client-authn-browser/dist/login/oidc/IssuerConfigFetcher.js": +/*!************************************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client-authn-browser/dist/login/oidc/IssuerConfigFetcher.js ***! + \************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.WELL_KNOWN_OPENID_CONFIG = void 0;\nconst solid_client_authn_core_1 = __webpack_require__(/*! @inrupt/solid-client-authn-core */ \"./node_modules/@inrupt/solid-client-authn-core/dist/index.js\");\nconst urlPath_1 = __webpack_require__(/*! ../../util/urlPath */ \"./node_modules/@inrupt/solid-client-authn-browser/dist/util/urlPath.js\");\nexports.WELL_KNOWN_OPENID_CONFIG = \".well-known/openid-configuration\";\nconst issuerConfigKeyMap = {\n issuer: {\n toKey: \"issuer\",\n convertToUrl: true,\n },\n authorization_endpoint: {\n toKey: \"authorizationEndpoint\",\n convertToUrl: true,\n },\n token_endpoint: {\n toKey: \"tokenEndpoint\",\n convertToUrl: true,\n },\n userinfo_endpoint: {\n toKey: \"userinfoEndpoint\",\n convertToUrl: true,\n },\n jwks_uri: {\n toKey: \"jwksUri\",\n convertToUrl: true,\n },\n registration_endpoint: {\n toKey: \"registrationEndpoint\",\n convertToUrl: true,\n },\n scopes_supported: { toKey: \"scopesSupported\" },\n response_types_supported: { toKey: \"responseTypesSupported\" },\n response_modes_supported: { toKey: \"responseModesSupported\" },\n grant_types_supported: { toKey: \"grantTypesSupported\" },\n acr_values_supported: { toKey: \"acrValuesSupported\" },\n subject_types_supported: { toKey: \"subjectTypesSupported\" },\n id_token_signing_alg_values_supported: {\n toKey: \"idTokenSigningAlgValuesSupported\",\n },\n id_token_encryption_alg_values_supported: {\n toKey: \"idTokenEncryptionAlgValuesSupported\",\n },\n id_token_encryption_enc_values_supported: {\n toKey: \"idTokenEncryptionEncValuesSupported\",\n },\n userinfo_signing_alg_values_supported: {\n toKey: \"userinfoSigningAlgValuesSupported\",\n },\n userinfo_encryption_alg_values_supported: {\n toKey: \"userinfoEncryptionAlgValuesSupported\",\n },\n userinfo_encryption_enc_values_supported: {\n toKey: \"userinfoEncryptionEncValuesSupported\",\n },\n request_object_signing_alg_values_supported: {\n toKey: \"requestObjectSigningAlgValuesSupported\",\n },\n request_object_encryption_alg_values_supported: {\n toKey: \"requestObjectEncryptionAlgValuesSupported\",\n },\n request_object_encryption_enc_values_supported: {\n toKey: \"requestObjectEncryptionEncValuesSupported\",\n },\n token_endpoint_auth_methods_supported: {\n toKey: \"tokenEndpointAuthMethodsSupported\",\n },\n token_endpoint_auth_signing_alg_values_supported: {\n toKey: \"tokenEndpointAuthSigningAlgValuesSupported\",\n },\n display_values_supported: { toKey: \"displayValuesSupported\" },\n claim_types_supported: { toKey: \"claimTypesSupported\" },\n claims_supported: { toKey: \"claimsSupported\" },\n service_documentation: { toKey: \"serviceDocumentation\" },\n claims_locales_supported: { toKey: \"claimsLocalesSupported\" },\n ui_locales_supported: { toKey: \"uiLocalesSupported\" },\n claims_parameter_supported: { toKey: \"claimsParameterSupported\" },\n request_parameter_supported: { toKey: \"requestParameterSupported\" },\n request_uri_parameter_supported: { toKey: \"requestUriParameterSupported\" },\n require_request_uri_registration: { toKey: \"requireRequestUriRegistration\" },\n op_policy_uri: {\n toKey: \"opPolicyUri\",\n convertToUrl: true,\n },\n op_tos_uri: {\n toKey: \"opTosUri\",\n convertToUrl: true,\n },\n solid_oidc_supported: {\n toKey: \"solidOidcSupported\",\n },\n};\nfunction processConfig(config) {\n const parsedConfig = {};\n Object.keys(config).forEach((key) => {\n if (issuerConfigKeyMap[key]) {\n parsedConfig[issuerConfigKeyMap[key].toKey] = config[key];\n }\n });\n return parsedConfig;\n}\nclass IssuerConfigFetcher {\n constructor(storageUtility) {\n this.storageUtility = storageUtility;\n }\n static getLocalStorageKey(issuer) {\n return `issuerConfig:${issuer}`;\n }\n async fetchConfig(issuer) {\n let issuerConfig;\n const openIdConfigUrl = urlPath_1.appendToUrlPathname(issuer, exports.WELL_KNOWN_OPENID_CONFIG);\n const issuerConfigRequestBody = await window.fetch(openIdConfigUrl);\n try {\n issuerConfig = processConfig(await issuerConfigRequestBody.json());\n }\n catch (err) {\n throw new solid_client_authn_core_1.ConfigurationError(`[${issuer.toString()}] has an invalid configuration: ${err.message}`);\n }\n await this.storageUtility.set(IssuerConfigFetcher.getLocalStorageKey(issuer), JSON.stringify(issuerConfig));\n return issuerConfig;\n }\n}\nexports.default = IssuerConfigFetcher;\n//# sourceMappingURL=IssuerConfigFetcher.js.map\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client-authn-browser/dist/login/oidc/IssuerConfigFetcher.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client-authn-browser/dist/login/oidc/OidcLoginHandler.js": +/*!*********************************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client-authn-browser/dist/login/oidc/OidcLoginHandler.js ***! + \*********************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst solid_client_authn_core_1 = __webpack_require__(/*! @inrupt/solid-client-authn-core */ \"./node_modules/@inrupt/solid-client-authn-core/dist/index.js\");\nfunction hasIssuer(options) {\n return typeof options.oidcIssuer === \"string\";\n}\nfunction hasRedirectUrl(options) {\n return typeof options.redirectUrl === \"string\";\n}\nclass OidcLoginHandler {\n constructor(storageUtility, oidcHandler, issuerConfigFetcher, clientRegistrar) {\n this.storageUtility = storageUtility;\n this.oidcHandler = oidcHandler;\n this.issuerConfigFetcher = issuerConfigFetcher;\n this.clientRegistrar = clientRegistrar;\n }\n async canHandle(options) {\n return hasIssuer(options) && hasRedirectUrl(options);\n }\n async handle(options) {\n if (!hasIssuer(options)) {\n throw new solid_client_authn_core_1.ConfigurationError(`OidcLoginHandler requires an OIDC issuer: missing property 'oidcIssuer' in ${JSON.stringify(options)}`);\n }\n if (!hasRedirectUrl(options)) {\n throw new solid_client_authn_core_1.ConfigurationError(`OidcLoginHandler requires a redirect URL: missing property 'redirectUrl' in ${JSON.stringify(options)}`);\n }\n const issuerConfig = await this.issuerConfigFetcher.fetchConfig(options.oidcIssuer);\n const clientRegistration = await solid_client_authn_core_1.handleRegistration(options, issuerConfig, this.storageUtility, this.clientRegistrar);\n const OidcOptions = {\n issuer: issuerConfig.issuer,\n dpop: options.tokenType.toLowerCase() === \"dpop\",\n ...options,\n issuerConfiguration: issuerConfig,\n client: clientRegistration,\n };\n return this.oidcHandler.handle(OidcOptions);\n }\n}\nexports.default = OidcLoginHandler;\n//# sourceMappingURL=OidcLoginHandler.js.map\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client-authn-browser/dist/login/oidc/OidcLoginHandler.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client-authn-browser/dist/login/oidc/Redirector.js": +/*!***************************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client-authn-browser/dist/login/oidc/Redirector.js ***! + \***************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst iframe_1 = __webpack_require__(/*! ../../iframe */ \"./node_modules/@inrupt/solid-client-authn-browser/dist/iframe.js\");\nclass Redirector {\n redirect(redirectUrl, options) {\n if (options && options.handleRedirect) {\n options.handleRedirect(redirectUrl);\n }\n else if (options && options.redirectByReplacingState) {\n window.history.replaceState({}, \"\", redirectUrl);\n }\n else if (options === null || options === void 0 ? void 0 : options.redirectInIframe) {\n iframe_1.redirectInIframe(redirectUrl);\n }\n else {\n window.location.href = redirectUrl;\n }\n }\n}\nexports.default = Redirector;\n//# sourceMappingURL=Redirector.js.map\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client-authn-browser/dist/login/oidc/Redirector.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client-authn-browser/dist/login/oidc/oidcHandlers/AuthorizationCodeWithPkceOidcHandler.js": +/*!******************************************************************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client-authn-browser/dist/login/oidc/oidcHandlers/AuthorizationCodeWithPkceOidcHandler.js ***! + \******************************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst oidc_client_ext_1 = __webpack_require__(/*! @inrupt/oidc-client-ext */ \"./node_modules/@inrupt/oidc-client-ext/dist/index.es.js\");\nclass AuthorizationCodeWithPkceOidcHandler {\n constructor(storageUtility, redirector) {\n this.storageUtility = storageUtility;\n this.redirector = redirector;\n }\n async canHandle(oidcLoginOptions) {\n return !!(oidcLoginOptions.issuerConfiguration.grantTypesSupported &&\n oidcLoginOptions.issuerConfiguration.grantTypesSupported.indexOf(\"authorization_code\") > -1);\n }\n async handle(oidcLoginOptions) {\n const oidcOptions = {\n authority: oidcLoginOptions.issuer.toString(),\n client_id: oidcLoginOptions.client.clientId,\n client_secret: oidcLoginOptions.client.clientSecret,\n redirect_uri: oidcLoginOptions.redirectUrl.toString(),\n post_logout_redirect_uri: oidcLoginOptions.redirectUrl.toString(),\n response_type: \"code\",\n scope: \"openid webid\",\n filterProtocolClaims: true,\n loadUserInfo: false,\n code_verifier: true,\n prompt: oidcLoginOptions.prompt,\n };\n const oidcClientLibrary = new oidc_client_ext_1.OidcClient(oidcOptions);\n const { redirector } = this;\n const storage = this.storageUtility;\n try {\n const signingRequest = await oidcClientLibrary.createSigninRequest();\n await Promise.all([\n storage.setForUser(signingRequest.state._id, {\n sessionId: oidcLoginOptions.sessionId,\n }),\n storage.setForUser(oidcLoginOptions.sessionId, {\n codeVerifier: signingRequest.state._code_verifier,\n issuer: oidcLoginOptions.issuer.toString(),\n redirectUrl: oidcLoginOptions.redirectUrl,\n dpop: oidcLoginOptions.dpop ? \"true\" : \"false\",\n }),\n ]);\n redirector.redirect(signingRequest.url.toString(), {\n handleRedirect: oidcLoginOptions.handleRedirect,\n redirectInIframe: oidcLoginOptions.inIframe,\n });\n }\n catch (err) {\n console.error(err);\n }\n return undefined;\n }\n}\nexports.default = AuthorizationCodeWithPkceOidcHandler;\n//# sourceMappingURL=AuthorizationCodeWithPkceOidcHandler.js.map\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client-authn-browser/dist/login/oidc/oidcHandlers/AuthorizationCodeWithPkceOidcHandler.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client-authn-browser/dist/login/oidc/redirectHandler/AggregateRedirectHandler.js": +/*!*********************************************************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client-authn-browser/dist/login/oidc/redirectHandler/AggregateRedirectHandler.js ***! + \*********************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst solid_client_authn_core_1 = __webpack_require__(/*! @inrupt/solid-client-authn-core */ \"./node_modules/@inrupt/solid-client-authn-core/dist/index.js\");\nclass AggregateRedirectHandler extends solid_client_authn_core_1.AggregateHandler {\n constructor(redirectHandlers) {\n super(redirectHandlers);\n }\n}\nexports.default = AggregateRedirectHandler;\n//# sourceMappingURL=AggregateRedirectHandler.js.map\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client-authn-browser/dist/login/oidc/redirectHandler/AggregateRedirectHandler.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client-authn-browser/dist/login/oidc/redirectHandler/AuthCodeRedirectHandler.js": +/*!********************************************************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client-authn-browser/dist/login/oidc/redirectHandler/AuthCodeRedirectHandler.js ***! + \********************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.AuthCodeRedirectHandler = exports.DEFAULT_LIFESPAN = void 0;\nconst oidc_client_ext_1 = __webpack_require__(/*! @inrupt/oidc-client-ext */ \"./node_modules/@inrupt/oidc-client-ext/dist/index.es.js\");\nconst fetchFactory_1 = __webpack_require__(/*! ../../../authenticatedFetch/fetchFactory */ \"./node_modules/@inrupt/solid-client-authn-browser/dist/authenticatedFetch/fetchFactory.js\");\nconst constant_1 = __webpack_require__(/*! ../../../constant */ \"./node_modules/@inrupt/solid-client-authn-browser/dist/constant.js\");\nexports.DEFAULT_LIFESPAN = 30 * 60 * 1000;\nasync function setupResourceServerSession(webId, authenticatedFetch, storageUtility) {\n const webIdAsUrl = new URL(webId);\n const resourceServerIri = webIdAsUrl.origin;\n await authenticatedFetch(webId);\n try {\n const resourceServerResponse = await authenticatedFetch(`${resourceServerIri}/session`);\n if (resourceServerResponse.status === 200) {\n await storageUtility.storeResourceServerSessionInfo(webId, resourceServerIri, Date.now() + exports.DEFAULT_LIFESPAN);\n return;\n }\n await storageUtility.clearResourceServerSessionInfo(resourceServerIri);\n }\n catch (_e) {\n await storageUtility.clearResourceServerSessionInfo(resourceServerIri);\n }\n}\nclass AuthCodeRedirectHandler {\n constructor(storageUtility, sessionInfoManager, issuerConfigFetcher, clientRegistrar) {\n this.storageUtility = storageUtility;\n this.sessionInfoManager = sessionInfoManager;\n this.issuerConfigFetcher = issuerConfigFetcher;\n this.clientRegistrar = clientRegistrar;\n }\n async canHandle(redirectUrl) {\n try {\n const myUrl = new URL(redirectUrl);\n return (myUrl.searchParams.get(\"code\") !== null &&\n myUrl.searchParams.get(\"state\") !== null);\n }\n catch (e) {\n throw new Error(`[${redirectUrl}] is not a valid URL, and cannot be used as a redirect URL: ${e.toString()}`);\n }\n }\n async handle(redirectUrl) {\n if (!(await this.canHandle(redirectUrl))) {\n throw new Error(`AuthCodeRedirectHandler cannot handle [${redirectUrl}]: it is missing one of [code, state].`);\n }\n const url = new URL(redirectUrl);\n const oauthState = url.searchParams.get(\"state\");\n const storedSessionId = (await this.storageUtility.getForUser(oauthState, \"sessionId\", {\n errorIfNull: true,\n }));\n const isDpop = (await this.storageUtility.getForUser(storedSessionId, \"dpop\")) ===\n \"true\";\n const issuer = (await this.storageUtility.getForUser(storedSessionId, \"issuer\", { errorIfNull: true }));\n window.localStorage.setItem(constant_1.KEY_CURRENT_SESSION, storedSessionId);\n const issuerConfig = await this.issuerConfigFetcher.fetchConfig(issuer);\n const client = await this.clientRegistrar.getClient({ sessionId: storedSessionId }, issuerConfig);\n let tokens;\n let authFetch;\n const referenceTime = Date.now();\n if (isDpop) {\n const codeVerifier = (await this.storageUtility.getForUser(storedSessionId, \"codeVerifier\", { errorIfNull: true }));\n const storedRedirectIri = (await this.storageUtility.getForUser(storedSessionId, \"redirectUrl\", { errorIfNull: true }));\n tokens = await oidc_client_ext_1.getDpopToken(issuerConfig, client, {\n grantType: \"authorization_code\",\n code: url.searchParams.get(\"code\"),\n codeVerifier,\n redirectUrl: storedRedirectIri,\n });\n authFetch = await fetchFactory_1.buildDpopFetch(tokens.accessToken, tokens.dpopKey);\n }\n else {\n tokens = await oidc_client_ext_1.getBearerToken(url.toString());\n authFetch = fetchFactory_1.buildBearerFetch(tokens.accessToken);\n }\n await this.storageUtility.setForUser(storedSessionId, {\n refreshToken: \"\",\n webId: tokens.webId,\n isLoggedIn: \"true\",\n }, { secure: true });\n url.searchParams.delete(\"code\");\n await this.storageUtility.setForUser(storedSessionId, {\n redirectUrl: url.toString(),\n idToken: tokens.idToken,\n }, {\n secure: false,\n });\n const essWorkaroundDisabled = window.localStorage.getItem(\"tmp-resource-server-session-enabled\") ===\n \"false\";\n if (!essWorkaroundDisabled) {\n await setupResourceServerSession(tokens.webId, authFetch, this.storageUtility);\n }\n const sessionInfo = await this.sessionInfoManager.get(storedSessionId);\n if (!sessionInfo) {\n throw new Error(`Could not retrieve session: [${storedSessionId}].`);\n }\n return Object.assign(sessionInfo, {\n fetch: authFetch,\n expirationDate: typeof tokens.expiresIn === \"number\"\n ? referenceTime + tokens.expiresIn * 1000\n : null,\n });\n }\n}\nexports.AuthCodeRedirectHandler = AuthCodeRedirectHandler;\n//# sourceMappingURL=AuthCodeRedirectHandler.js.map\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client-authn-browser/dist/login/oidc/redirectHandler/AuthCodeRedirectHandler.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client-authn-browser/dist/login/oidc/redirectHandler/FallbackRedirectHandler.js": +/*!********************************************************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client-authn-browser/dist/login/oidc/redirectHandler/FallbackRedirectHandler.js ***! + \********************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.FallbackRedirectHandler = void 0;\nconst SessionInfoManager_1 = __webpack_require__(/*! ../../../sessionInfo/SessionInfoManager */ \"./node_modules/@inrupt/solid-client-authn-browser/dist/sessionInfo/SessionInfoManager.js\");\nclass FallbackRedirectHandler {\n async canHandle(redirectUrl) {\n try {\n new URL(redirectUrl);\n return true;\n }\n catch (e) {\n throw new Error(`[${redirectUrl}] is not a valid URL, and cannot be used as a redirect URL: ${e.toString()}`);\n }\n }\n async handle(_redirectUrl) {\n return SessionInfoManager_1.getUnauthenticatedSession();\n }\n}\nexports.FallbackRedirectHandler = FallbackRedirectHandler;\n//# sourceMappingURL=FallbackRedirectHandler.js.map\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client-authn-browser/dist/login/oidc/redirectHandler/FallbackRedirectHandler.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client-authn-browser/dist/logout/GeneralLogoutHandler.js": +/*!*********************************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client-authn-browser/dist/logout/GeneralLogoutHandler.js ***! + \*********************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nclass GeneralLogoutHandler {\n constructor(sessionInfoManager) {\n this.sessionInfoManager = sessionInfoManager;\n }\n async canHandle() {\n return true;\n }\n async handle(userId) {\n await this.sessionInfoManager.clear(userId);\n }\n}\nexports.default = GeneralLogoutHandler;\n//# sourceMappingURL=GeneralLogoutHandler.js.map\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client-authn-browser/dist/logout/GeneralLogoutHandler.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client-authn-browser/dist/sessionInfo/SessionInfoManager.js": +/*!************************************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client-authn-browser/dist/sessionInfo/SessionInfoManager.js ***! + \************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.SessionInfoManager = exports.clear = exports.getUnauthenticatedSession = void 0;\nconst solid_client_authn_core_1 = __webpack_require__(/*! @inrupt/solid-client-authn-core */ \"./node_modules/@inrupt/solid-client-authn-core/dist/index.js\");\nconst uuid_1 = __webpack_require__(/*! uuid */ \"./node_modules/uuid/dist/esm-browser/index.js\");\nconst oidc_client_ext_1 = __webpack_require__(/*! @inrupt/oidc-client-ext */ \"./node_modules/@inrupt/oidc-client-ext/dist/index.es.js\");\nfunction getUnauthenticatedSession() {\n return {\n isLoggedIn: false,\n sessionId: uuid_1.v4(),\n fetch,\n };\n}\nexports.getUnauthenticatedSession = getUnauthenticatedSession;\nasync function clear(sessionId, storage) {\n const storedSessionCookieReference = await storage.get(\"tmp-resource-server-session-info\");\n const reference = JSON.parse(storedSessionCookieReference !== null && storedSessionCookieReference !== void 0 ? storedSessionCookieReference : \"{}\");\n const { webId } = reference;\n if (webId !== undefined) {\n const webIdAsUrl = new URL(webId);\n const resourceServerIri = webIdAsUrl.origin;\n await storage.clearResourceServerSessionInfo(resourceServerIri);\n }\n await Promise.all([\n storage.deleteAllUserData(sessionId, { secure: false }),\n storage.deleteAllUserData(sessionId, { secure: true }),\n storage.delete(\"clientKey\", { secure: false }),\n ]);\n await oidc_client_ext_1.clearOidcPersistentStorage();\n}\nexports.clear = clear;\nclass SessionInfoManager {\n constructor(storageUtility) {\n this.storageUtility = storageUtility;\n }\n update(_sessionId, _options) {\n throw new Error(\"Not Implemented\");\n }\n async get(sessionId) {\n var _a;\n const isLoggedIn = await this.storageUtility.getForUser(sessionId, \"isLoggedIn\", {\n secure: true,\n });\n const webId = await this.storageUtility.getForUser(sessionId, \"webId\", {\n secure: true,\n });\n const clientId = await this.storageUtility.getForUser(sessionId, \"clientId\", {\n secure: false,\n });\n const clientSecret = await this.storageUtility.getForUser(sessionId, \"clientSecret\", {\n secure: false,\n });\n const idToken = await this.storageUtility.getForUser(sessionId, \"idToken\", {\n secure: false,\n });\n const redirectUrl = await this.storageUtility.getForUser(sessionId, \"redirectUrl\", {\n secure: false,\n });\n const refreshToken = await this.storageUtility.getForUser(sessionId, \"refreshToken\", {\n secure: true,\n });\n const issuer = await this.storageUtility.getForUser(sessionId, \"issuer\", {\n secure: false,\n });\n const tokenType = (_a = (await this.storageUtility.getForUser(sessionId, \"tokenType\", {\n secure: false,\n }))) !== null && _a !== void 0 ? _a : \"DPoP\";\n if (!solid_client_authn_core_1.isSupportedTokenType(tokenType)) {\n throw new Error(`Tokens of type [${tokenType}] are not supported.`);\n }\n if (clientId === undefined &&\n idToken === undefined &&\n isLoggedIn === undefined &&\n webId === undefined &&\n refreshToken === undefined) {\n return undefined;\n }\n return {\n sessionId,\n webId,\n isLoggedIn: isLoggedIn === \"true\",\n redirectUrl,\n idToken,\n refreshToken,\n issuer,\n clientAppId: clientId,\n clientAppSecret: clientSecret,\n tokenType,\n };\n }\n async getAll() {\n throw new Error(\"Not implemented\");\n }\n async clear(sessionId) {\n return clear(sessionId, this.storageUtility);\n }\n async register(_sessionId) {\n throw new Error(\"Not implemented\");\n }\n async getRegisteredSessionIdAll() {\n throw new Error(\"Not implemented\");\n }\n async clearAll() {\n throw new Error(\"Not implemented\");\n }\n}\nexports.SessionInfoManager = SessionInfoManager;\n//# sourceMappingURL=SessionInfoManager.js.map\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client-authn-browser/dist/sessionInfo/SessionInfoManager.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client-authn-browser/dist/storage/BrowserStorage.js": +/*!****************************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client-authn-browser/dist/storage/BrowserStorage.js ***! + \****************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nclass BrowserStorage {\n get storage() {\n return window.localStorage;\n }\n async get(key) {\n return this.storage.getItem(key) || undefined;\n }\n async set(key, value) {\n this.storage.setItem(key, value);\n }\n async delete(key) {\n this.storage.removeItem(key);\n }\n}\nexports.default = BrowserStorage;\n//# sourceMappingURL=BrowserStorage.js.map\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client-authn-browser/dist/storage/BrowserStorage.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client-authn-browser/dist/storage/StorageUtility.js": +/*!****************************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client-authn-browser/dist/storage/StorageUtility.js ***! + \****************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst solid_client_authn_core_1 = __webpack_require__(/*! @inrupt/solid-client-authn-core */ \"./node_modules/@inrupt/solid-client-authn-core/dist/index.js\");\nclass StorageUtilityBrowser extends solid_client_authn_core_1.StorageUtility {\n constructor(secureStorage, insecureStorage) {\n super(secureStorage, insecureStorage);\n }\n}\nexports.default = StorageUtilityBrowser;\n//# sourceMappingURL=StorageUtility.js.map\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client-authn-browser/dist/storage/StorageUtility.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client-authn-browser/dist/util/urlPath.js": +/*!******************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client-authn-browser/dist/util/urlPath.js ***! + \******************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.appendToUrlPathname = void 0;\nfunction appendToUrlPathname(url, append) {\n const parsedUrl = new URL(url);\n const path = parsedUrl.pathname;\n parsedUrl.pathname = `${path}${path.endsWith(\"/\") ? \"\" : \"/\"}${append.startsWith(\"/\") ? append.substring(1) : append}`;\n return parsedUrl.toString();\n}\nexports.appendToUrlPathname = appendToUrlPathname;\n//# sourceMappingURL=urlPath.js.map\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client-authn-browser/dist/util/urlPath.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client-authn-core/dist/authenticatedFetch/dpopUtils.js": +/*!*******************************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client-authn-core/dist/authenticatedFetch/dpopUtils.js ***! + \*******************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.generateDpopKeyPair = exports.createDpopHeader = void 0;\nconst jose_legacy_modules_1 = __webpack_require__(/*! @inrupt/jose-legacy-modules */ \"./node_modules/@inrupt/jose-legacy-modules/dist/index.es.js\");\nconst uuid_1 = __webpack_require__(/*! uuid */ \"./node_modules/uuid/dist/esm-browser/index.js\");\nfunction removeHashUsernameAndPassword(audience) {\n const cleanedAudience = new URL(audience);\n cleanedAudience.hash = \"\";\n cleanedAudience.username = \"\";\n cleanedAudience.password = \"\";\n return cleanedAudience.toString();\n}\nasync function createDpopHeader(audience, method, dpopKey) {\n return new jose_legacy_modules_1.SignJWT({\n htu: removeHashUsernameAndPassword(audience),\n htm: method.toUpperCase(),\n jti: uuid_1.v4(),\n })\n .setProtectedHeader({\n alg: \"ES256\",\n jwk: dpopKey.publicKey,\n typ: \"dpop+jwt\",\n })\n .setIssuedAt()\n .sign(dpopKey.privateKey, {});\n}\nexports.createDpopHeader = createDpopHeader;\nasync function generateDpopKeyPair() {\n const { privateKey, publicKey } = await jose_legacy_modules_1.generateKeyPair(\"ES256\");\n const dpopKeyPair = {\n privateKey,\n publicKey: await jose_legacy_modules_1.fromKeyLike(publicKey),\n };\n dpopKeyPair.publicKey.alg = \"ES256\";\n return dpopKeyPair;\n}\nexports.generateDpopKeyPair = generateDpopKeyPair;\n//# sourceMappingURL=dpopUtils.js.map\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client-authn-core/dist/authenticatedFetch/dpopUtils.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client-authn-core/dist/constant.js": +/*!***********************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client-authn-core/dist/constant.js ***! + \***********************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.PREFERRED_SIGNING_ALG = exports.SOLID_CLIENT_AUTHN_KEY_PREFIX = void 0;\nexports.SOLID_CLIENT_AUTHN_KEY_PREFIX = \"solidClientAuthn:\";\nexports.PREFERRED_SIGNING_ALG = [\"ES256\", \"RS256\"];\n//# sourceMappingURL=constant.js.map\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client-authn-core/dist/constant.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client-authn-core/dist/errors/ConfigurationError.js": +/*!****************************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client-authn-core/dist/errors/ConfigurationError.js ***! + \****************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nclass ConfigurationError extends Error {\n constructor(message) {\n super(message);\n }\n}\nexports.default = ConfigurationError;\n//# sourceMappingURL=ConfigurationError.js.map\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client-authn-core/dist/errors/ConfigurationError.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client-authn-core/dist/errors/InruptError.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client-authn-core/dist/errors/InruptError.js ***! + \*********************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nclass InruptError extends Error {\n constructor(messageOrIri, messageParams, appendErrorIri = true) {\n super(typeof messageOrIri === \"string\"\n ? InruptError.substituteParams(messageOrIri, messageParams)\n : InruptError.appendErrorIri(InruptError.lookupErrorIri(messageOrIri, messageParams), messageOrIri, appendErrorIri));\n }\n httpResponse(httpErrorResponse, appendHttpDetails = true) {\n this.message = InruptError.appendHttpResponseDetails(this.message, httpErrorResponse, appendHttpDetails);\n this.httpErrorResponse = httpErrorResponse;\n return this;\n }\n hasHttpResponse() {\n return this.httpErrorResponse !== undefined;\n }\n getHttpResponse() {\n return this.httpErrorResponse;\n }\n getHttpStatusCode() {\n if (this.httpErrorResponse === undefined) {\n throw new InruptError(\"This InruptError was not provided with a HTTP response - so we can't get its HTTP Status Code.\");\n }\n return this.httpErrorResponse.status;\n }\n getHttpStatusText() {\n if (this.httpErrorResponse === undefined) {\n throw new InruptError(\"This InruptError was not provided with a HTTP response - so we can't get its HTTP Status Text!\");\n }\n return this.httpErrorResponse.statusText;\n }\n static determineIfVocabTerm(value) {\n if (value.strict !== undefined) {\n return true;\n }\n return false;\n }\n static lookupErrorIri(iri, messageParams) {\n if (InruptError.determineIfVocabTerm(iri)) {\n const message = messageParams === undefined\n ? iri.message\n : iri.messageParams(...messageParams);\n return message === undefined\n ? `Looked up error message IRI [${iri.value}], but found no message value.`\n : message;\n }\n return `Error message looked up at: [${iri.value}]${messageParams === undefined\n ? \"\"\n : `, with params [${messageParams.toString()}]`}`;\n }\n static appendHttpResponseDetails(message, response, append) {\n if (append && typeof response !== \"undefined\") {\n return `${message} HTTP details: status code [${response.status}], status text [${response.statusText}].`;\n }\n return message;\n }\n static appendErrorIri(message, iri, append) {\n return append ? `${message} Error IRI: [${iri.value}].` : message;\n }\n static substituteParams(message, params) {\n let fullMessage = message;\n if (params !== undefined) {\n const paramsRequired = message.split(\"{{\").length - 1;\n if (paramsRequired !== params.length) {\n throw new Error(`Setting parameters on message [${message}], but it requires [${paramsRequired}] params and we received [${params.length}].`);\n }\n for (let i = 0; i < params.length; i += 1) {\n const marker = `{{${i}}}`;\n fullMessage = fullMessage.replace(marker, params[i]);\n }\n }\n return fullMessage;\n }\n}\nexports.default = InruptError;\n//# sourceMappingURL=InruptError.js.map\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client-authn-core/dist/errors/InruptError.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client-authn-core/dist/errors/NotImplementedError.js": +/*!*****************************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client-authn-core/dist/errors/NotImplementedError.js ***! + \*****************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nclass NotImplementedError extends Error {\n constructor(methodName) {\n super(`[${methodName}] is not implemented`);\n }\n}\nexports.default = NotImplementedError;\n//# sourceMappingURL=NotImplementedError.js.map\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client-authn-core/dist/errors/NotImplementedError.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client-authn-core/dist/index.js": +/*!********************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client-authn-core/dist/index.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.StorageUtilityGetResponse = exports.StorageUtilityMock = exports.mockStorageUtility = exports.mockStorage = exports.generateDpopKeyPair = exports.createDpopHeader = exports.NotImplementedError = exports.ConfigurationError = exports.InMemoryStorage = exports.getSessionIdFromOauthState = exports.saveSessionInfoToStorage = exports.loadOidcContextFromStorage = exports.StorageUtility = exports.determineSigningAlg = exports.handleRegistration = exports.USER_SESSION_PREFIX = exports.isSupportedTokenType = exports.fetchJwks = exports.getWebidFromTokenPayload = exports.AggregateHandler = void 0;\n__exportStar(__webpack_require__(/*! ./constant */ \"./node_modules/@inrupt/solid-client-authn-core/dist/constant.js\"), exports);\nvar AggregateHandler_1 = __webpack_require__(/*! ./util/handlerPattern/AggregateHandler */ \"./node_modules/@inrupt/solid-client-authn-core/dist/util/handlerPattern/AggregateHandler.js\");\nObject.defineProperty(exports, \"AggregateHandler\", ({ enumerable: true, get: function () { return __importDefault(AggregateHandler_1).default; } }));\nvar IRedirectHandler_1 = __webpack_require__(/*! ./login/oidc/redirectHandler/IRedirectHandler */ \"./node_modules/@inrupt/solid-client-authn-core/dist/login/oidc/redirectHandler/IRedirectHandler.js\");\nObject.defineProperty(exports, \"getWebidFromTokenPayload\", ({ enumerable: true, get: function () { return IRedirectHandler_1.getWebidFromTokenPayload; } }));\nObject.defineProperty(exports, \"fetchJwks\", ({ enumerable: true, get: function () { return IRedirectHandler_1.fetchJwks; } }));\nvar ISessionInfo_1 = __webpack_require__(/*! ./sessionInfo/ISessionInfo */ \"./node_modules/@inrupt/solid-client-authn-core/dist/sessionInfo/ISessionInfo.js\");\nObject.defineProperty(exports, \"isSupportedTokenType\", ({ enumerable: true, get: function () { return ISessionInfo_1.isSupportedTokenType; } }));\nvar ISessionInfoManager_1 = __webpack_require__(/*! ./sessionInfo/ISessionInfoManager */ \"./node_modules/@inrupt/solid-client-authn-core/dist/sessionInfo/ISessionInfoManager.js\");\nObject.defineProperty(exports, \"USER_SESSION_PREFIX\", ({ enumerable: true, get: function () { return ISessionInfoManager_1.USER_SESSION_PREFIX; } }));\nvar IClientRegistrar_1 = __webpack_require__(/*! ./login/oidc/IClientRegistrar */ \"./node_modules/@inrupt/solid-client-authn-core/dist/login/oidc/IClientRegistrar.js\");\nObject.defineProperty(exports, \"handleRegistration\", ({ enumerable: true, get: function () { return IClientRegistrar_1.handleRegistration; } }));\nObject.defineProperty(exports, \"determineSigningAlg\", ({ enumerable: true, get: function () { return IClientRegistrar_1.determineSigningAlg; } }));\nvar StorageUtility_1 = __webpack_require__(/*! ./storage/StorageUtility */ \"./node_modules/@inrupt/solid-client-authn-core/dist/storage/StorageUtility.js\");\nObject.defineProperty(exports, \"StorageUtility\", ({ enumerable: true, get: function () { return __importDefault(StorageUtility_1).default; } }));\nObject.defineProperty(exports, \"loadOidcContextFromStorage\", ({ enumerable: true, get: function () { return StorageUtility_1.loadOidcContextFromStorage; } }));\nObject.defineProperty(exports, \"saveSessionInfoToStorage\", ({ enumerable: true, get: function () { return StorageUtility_1.saveSessionInfoToStorage; } }));\nObject.defineProperty(exports, \"getSessionIdFromOauthState\", ({ enumerable: true, get: function () { return StorageUtility_1.getSessionIdFromOauthState; } }));\nvar InMemoryStorage_1 = __webpack_require__(/*! ./storage/InMemoryStorage */ \"./node_modules/@inrupt/solid-client-authn-core/dist/storage/InMemoryStorage.js\");\nObject.defineProperty(exports, \"InMemoryStorage\", ({ enumerable: true, get: function () { return __importDefault(InMemoryStorage_1).default; } }));\nvar ConfigurationError_1 = __webpack_require__(/*! ./errors/ConfigurationError */ \"./node_modules/@inrupt/solid-client-authn-core/dist/errors/ConfigurationError.js\");\nObject.defineProperty(exports, \"ConfigurationError\", ({ enumerable: true, get: function () { return __importDefault(ConfigurationError_1).default; } }));\nvar NotImplementedError_1 = __webpack_require__(/*! ./errors/NotImplementedError */ \"./node_modules/@inrupt/solid-client-authn-core/dist/errors/NotImplementedError.js\");\nObject.defineProperty(exports, \"NotImplementedError\", ({ enumerable: true, get: function () { return __importDefault(NotImplementedError_1).default; } }));\nvar dpopUtils_1 = __webpack_require__(/*! ./authenticatedFetch/dpopUtils */ \"./node_modules/@inrupt/solid-client-authn-core/dist/authenticatedFetch/dpopUtils.js\");\nObject.defineProperty(exports, \"createDpopHeader\", ({ enumerable: true, get: function () { return dpopUtils_1.createDpopHeader; } }));\nObject.defineProperty(exports, \"generateDpopKeyPair\", ({ enumerable: true, get: function () { return dpopUtils_1.generateDpopKeyPair; } }));\nvar StorageUtility_2 = __webpack_require__(/*! ./storage/__mocks__/StorageUtility */ \"./node_modules/@inrupt/solid-client-authn-core/dist/storage/__mocks__/StorageUtility.js\");\nObject.defineProperty(exports, \"mockStorage\", ({ enumerable: true, get: function () { return StorageUtility_2.mockStorage; } }));\nObject.defineProperty(exports, \"mockStorageUtility\", ({ enumerable: true, get: function () { return StorageUtility_2.mockStorageUtility; } }));\nObject.defineProperty(exports, \"StorageUtilityMock\", ({ enumerable: true, get: function () { return StorageUtility_2.StorageUtilityMock; } }));\nObject.defineProperty(exports, \"StorageUtilityGetResponse\", ({ enumerable: true, get: function () { return StorageUtility_2.StorageUtilityGetResponse; } }));\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client-authn-core/dist/index.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client-authn-core/dist/login/oidc/IClientRegistrar.js": +/*!******************************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client-authn-core/dist/login/oidc/IClientRegistrar.js ***! + \******************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.handleRegistration = exports.determineSigningAlg = void 0;\nfunction isValidUrl(url) {\n try {\n new URL(url);\n return true;\n }\n catch (_a) {\n return false;\n }\n}\nfunction determineSigningAlg(supported, preferred) {\n var _a;\n return ((_a = preferred.find((signingAlg) => {\n return supported.includes(signingAlg);\n })) !== null && _a !== void 0 ? _a : null);\n}\nexports.determineSigningAlg = determineSigningAlg;\nasync function handleRegistration(options, issuerConfig, storageUtility, clientRegistrar) {\n if (options.clientId === undefined ||\n (issuerConfig.solidOidcSupported !==\n \"https://solidproject.org/TR/solid-oidc\" &&\n isValidUrl(options.clientId))) {\n return clientRegistrar.getClient({\n sessionId: options.sessionId,\n clientName: options.clientName,\n redirectUrl: options.redirectUrl,\n }, issuerConfig);\n }\n await storageUtility.setForUser(options.sessionId, {\n clientId: options.clientId,\n });\n if (options.clientSecret) {\n await storageUtility.setForUser(options.sessionId, {\n clientSecret: options.clientSecret,\n });\n }\n if (options.clientName) {\n await storageUtility.setForUser(options.sessionId, {\n clientName: options.clientName,\n });\n }\n return {\n clientId: options.clientId,\n clientSecret: options.clientSecret,\n clientName: options.clientName,\n };\n}\nexports.handleRegistration = handleRegistration;\n//# sourceMappingURL=IClientRegistrar.js.map\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client-authn-core/dist/login/oidc/IClientRegistrar.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client-authn-core/dist/login/oidc/redirectHandler/IRedirectHandler.js": +/*!**********************************************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client-authn-core/dist/login/oidc/redirectHandler/IRedirectHandler.js ***! + \**********************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.getWebidFromTokenPayload = exports.fetchJwks = void 0;\nconst cross_fetch_1 = __webpack_require__(/*! cross-fetch */ \"./node_modules/cross-fetch/dist/browser-ponyfill.js\");\nconst jose_legacy_modules_1 = __webpack_require__(/*! @inrupt/jose-legacy-modules */ \"./node_modules/@inrupt/jose-legacy-modules/dist/index.es.js\");\nasync function fetchJwks(jwksIri, issuerIri) {\n const jwksResponse = await cross_fetch_1.fetch(jwksIri);\n if (jwksResponse.status !== 200) {\n throw new Error(`Could not fetch JWKS for [${issuerIri}] at [${jwksIri}]: ${jwksResponse.status} ${jwksResponse.statusText}`);\n }\n let jwk;\n try {\n jwk = (await jwksResponse.json()).keys[0];\n }\n catch (e) {\n throw new Error(`Malformed JWKS for [${issuerIri}] at [${jwksIri}]: ${e.message}`);\n }\n return jwk;\n}\nexports.fetchJwks = fetchJwks;\nasync function getWebidFromTokenPayload(idToken, jwksIri, issuerIri, clientId) {\n const jwk = await fetchJwks(jwksIri, issuerIri);\n let payload;\n try {\n const { payload: verifiedPayload } = await jose_legacy_modules_1.jwtVerify(idToken, await jose_legacy_modules_1.parseJwk(jwk), {\n issuer: issuerIri,\n audience: clientId,\n });\n payload = verifiedPayload;\n }\n catch (e) {\n throw new Error(`ID token verification failed: ${e.stack}`);\n }\n if (typeof payload.webid === \"string\") {\n return payload.webid;\n }\n if (typeof payload.sub !== \"string\") {\n throw new Error(`The ID token ${JSON.stringify(payload)} is invalid: it has no 'webid' claim and no 'sub' claim.`);\n }\n try {\n new URL(payload.sub);\n return payload.sub;\n }\n catch (e) {\n throw new Error(`The ID token has no 'webid' claim, and its 'sub' claim of [${payload.sub}] is invalid as a URL - error [${e}].`);\n }\n}\nexports.getWebidFromTokenPayload = getWebidFromTokenPayload;\n//# sourceMappingURL=IRedirectHandler.js.map\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client-authn-core/dist/login/oidc/redirectHandler/IRedirectHandler.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client-authn-core/dist/sessionInfo/ISessionInfo.js": +/*!***************************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client-authn-core/dist/sessionInfo/ISessionInfo.js ***! + \***************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.isSupportedTokenType = void 0;\nfunction isSupportedTokenType(token) {\n return typeof token === \"string\" && [\"DPoP\", \"Bearer\"].includes(token);\n}\nexports.isSupportedTokenType = isSupportedTokenType;\n//# sourceMappingURL=ISessionInfo.js.map\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client-authn-core/dist/sessionInfo/ISessionInfo.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client-authn-core/dist/sessionInfo/ISessionInfoManager.js": +/*!**********************************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client-authn-core/dist/sessionInfo/ISessionInfoManager.js ***! + \**********************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.USER_SESSION_PREFIX = void 0;\nexports.USER_SESSION_PREFIX = \"solidClientAuthenticationUser\";\n//# sourceMappingURL=ISessionInfoManager.js.map\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client-authn-core/dist/sessionInfo/ISessionInfoManager.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client-authn-core/dist/storage/InMemoryStorage.js": +/*!**************************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client-authn-core/dist/storage/InMemoryStorage.js ***! + \**************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nclass InMemoryStorage {\n constructor() {\n this.map = {};\n }\n async get(key) {\n return this.map[key] || undefined;\n }\n async set(key, value) {\n this.map[key] = value;\n }\n async delete(key) {\n delete this.map[key];\n }\n}\nexports.default = InMemoryStorage;\n//# sourceMappingURL=InMemoryStorage.js.map\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client-authn-core/dist/storage/InMemoryStorage.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client-authn-core/dist/storage/StorageUtility.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client-authn-core/dist/storage/StorageUtility.js ***! + \*************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.saveSessionInfoToStorage = exports.loadOidcContextFromStorage = exports.getSessionIdFromOauthState = void 0;\nconst InruptError_1 = __importDefault(__webpack_require__(/*! ../errors/InruptError */ \"./node_modules/@inrupt/solid-client-authn-core/dist/errors/InruptError.js\"));\nasync function getSessionIdFromOauthState(storageUtility, oauthState) {\n return storageUtility.getForUser(oauthState, \"sessionId\");\n}\nexports.getSessionIdFromOauthState = getSessionIdFromOauthState;\nasync function loadOidcContextFromStorage(sessionId, storageUtility, configFetcher) {\n try {\n const [issuerIri, codeVerifier, storedRedirectIri, dpop] = await Promise.all([\n storageUtility.getForUser(sessionId, \"issuer\", {\n errorIfNull: true,\n }),\n storageUtility.getForUser(sessionId, \"codeVerifier\"),\n storageUtility.getForUser(sessionId, \"redirectUrl\"),\n storageUtility.getForUser(sessionId, \"dpop\", { errorIfNull: true }),\n ]);\n const issuerConfig = await configFetcher.fetchConfig(issuerIri);\n return {\n codeVerifier,\n redirectUrl: storedRedirectIri,\n issuerConfig,\n dpop: dpop === \"true\",\n };\n }\n catch (e) {\n throw new Error(`Failed to retrieve OIDC context from storage associated with session [${sessionId}]: ${e.toString()}`);\n }\n}\nexports.loadOidcContextFromStorage = loadOidcContextFromStorage;\nasync function saveSessionInfoToStorage(storageUtility, sessionId, idToken, webId, isLoggedIn, refreshToken, secure) {\n if (refreshToken !== undefined) {\n await storageUtility.setForUser(sessionId, { refreshToken }, { secure });\n }\n if (idToken !== undefined) {\n await storageUtility.setForUser(sessionId, { idToken }, { secure });\n }\n if (webId !== undefined) {\n await storageUtility.setForUser(sessionId, { webId }, { secure });\n }\n if (isLoggedIn !== undefined) {\n await storageUtility.setForUser(sessionId, { isLoggedIn }, { secure });\n }\n}\nexports.saveSessionInfoToStorage = saveSessionInfoToStorage;\nclass StorageUtility {\n constructor(secureStorage, insecureStorage) {\n this.secureStorage = secureStorage;\n this.insecureStorage = insecureStorage;\n this.RESOURCE_SERVER_SESSION_INFORMATION_KEY = \"tmp-resource-server-session-info\";\n }\n getKey(userId) {\n return `solidClientAuthenticationUser:${userId}`;\n }\n async getUserData(userId, secure) {\n const stored = await (secure\n ? this.secureStorage\n : this.insecureStorage).get(this.getKey(userId));\n if (stored === undefined) {\n return {};\n }\n try {\n return JSON.parse(stored);\n }\n catch (err) {\n throw new InruptError_1.default(`Data for user [${userId}] in [${secure ? \"secure\" : \"unsecure\"}] storage is corrupted - expected valid JSON, but got: ${stored}`);\n }\n }\n async setUserData(userId, data, secure) {\n await (secure ? this.secureStorage : this.insecureStorage).set(this.getKey(userId), JSON.stringify(data));\n }\n async get(key, options) {\n const value = await ((options === null || options === void 0 ? void 0 : options.secure)\n ? this.secureStorage\n : this.insecureStorage).get(key);\n if (value === undefined && (options === null || options === void 0 ? void 0 : options.errorIfNull)) {\n throw new InruptError_1.default(`[${key}] is not stored`);\n }\n return value;\n }\n async set(key, value, options) {\n return ((options === null || options === void 0 ? void 0 : options.secure) ? this.secureStorage : this.insecureStorage).set(key, value);\n }\n async delete(key, options) {\n return ((options === null || options === void 0 ? void 0 : options.secure) ? this.secureStorage : this.insecureStorage).delete(key);\n }\n async getForUser(userId, key, options) {\n const userData = await this.getUserData(userId, options === null || options === void 0 ? void 0 : options.secure);\n let value;\n if (!userData || !userData[key]) {\n value = undefined;\n }\n value = userData[key];\n if (value === undefined && (options === null || options === void 0 ? void 0 : options.errorIfNull)) {\n throw new InruptError_1.default(`Field [${key}] for user [${userId}] is not stored`);\n }\n return value || undefined;\n }\n async setForUser(userId, values, options) {\n let userData;\n try {\n userData = await this.getUserData(userId, options === null || options === void 0 ? void 0 : options.secure);\n }\n catch (_a) {\n userData = {};\n }\n await this.setUserData(userId, { ...userData, ...values }, options === null || options === void 0 ? void 0 : options.secure);\n }\n async deleteForUser(userId, key, options) {\n const userData = await this.getUserData(userId, options === null || options === void 0 ? void 0 : options.secure);\n delete userData[key];\n await this.setUserData(userId, userData, options === null || options === void 0 ? void 0 : options.secure);\n }\n async deleteAllUserData(userId, options) {\n await ((options === null || options === void 0 ? void 0 : options.secure) ? this.secureStorage : this.insecureStorage).delete(this.getKey(userId));\n }\n async storeResourceServerSessionInfo(webId, resourceServerIri, expiration) {\n var _a;\n const sessions = JSON.parse((_a = (await this.insecureStorage.get(this.RESOURCE_SERVER_SESSION_INFORMATION_KEY))) !== null && _a !== void 0 ? _a : \"{}\");\n if (sessions.webId !== webId) {\n sessions.sessions = {};\n }\n sessions.webId = webId;\n sessions.sessions[resourceServerIri] = {\n expiration,\n };\n await this.insecureStorage.set(this.RESOURCE_SERVER_SESSION_INFORMATION_KEY, JSON.stringify(sessions));\n }\n async clearResourceServerSessionInfo(resourceServerIri) {\n var _a;\n const sessions = JSON.parse((_a = (await this.insecureStorage.get(this.RESOURCE_SERVER_SESSION_INFORMATION_KEY))) !== null && _a !== void 0 ? _a : \"{}\");\n if (sessions.sessions !== undefined) {\n delete sessions.sessions[resourceServerIri];\n if (Object.keys(sessions.sessions).length === 0) {\n await this.insecureStorage.set(this.RESOURCE_SERVER_SESSION_INFORMATION_KEY, \"{}\");\n }\n else {\n await this.insecureStorage.set(this.RESOURCE_SERVER_SESSION_INFORMATION_KEY, JSON.stringify(sessions));\n }\n }\n }\n}\nexports.default = StorageUtility;\n//# sourceMappingURL=StorageUtility.js.map\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client-authn-core/dist/storage/StorageUtility.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client-authn-core/dist/storage/__mocks__/StorageUtility.js": +/*!***********************************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client-authn-core/dist/storage/__mocks__/StorageUtility.js ***! + \***********************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.mockStorageUtility = exports.mockStorage = exports.StorageUtilityMock = exports.StorageUtilityGetResponse = void 0;\nconst __1 = __webpack_require__(/*! ../.. */ \"./node_modules/@inrupt/solid-client-authn-core/dist/index.js\");\nexports.StorageUtilityGetResponse = \"getResponse\";\nexports.StorageUtilityMock = {\n get: async (key, options) => exports.StorageUtilityGetResponse,\n set: async (key, value) => {\n },\n delete: async (key) => {\n },\n getForUser: async (userId, key, options) => exports.StorageUtilityGetResponse,\n setForUser: async (userId, values, options) => {\n },\n deleteForUser: async (userId, key, options) => {\n },\n deleteAllUserData: async (userId, options) => {\n },\n storeResourceServerSessionInfo: async (_webId, _resourceServerIri, _sessionExpires) => {\n },\n clearResourceServerSessionInfo: async (_resourceServerIri) => {\n },\n};\nconst mockStorage = (stored) => {\n const store = stored;\n return {\n get: async (key) => {\n if (store[key] === undefined) {\n return undefined;\n }\n if (typeof store[key] === \"string\") {\n return store[key];\n }\n return JSON.stringify(store[key]);\n },\n set: async (key, value) => {\n store[key] = value;\n },\n delete: async (key) => {\n delete store[key];\n },\n };\n};\nexports.mockStorage = mockStorage;\nconst mockStorageUtility = (stored, isSecure = false) => {\n if (isSecure) {\n return new __1.StorageUtility(exports.mockStorage(stored), exports.mockStorage({}));\n }\n return new __1.StorageUtility(exports.mockStorage({}), exports.mockStorage(stored));\n};\nexports.mockStorageUtility = mockStorageUtility;\n//# sourceMappingURL=StorageUtility.js.map\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client-authn-core/dist/storage/__mocks__/StorageUtility.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client-authn-core/dist/util/handlerPattern/AggregateHandler.js": +/*!***************************************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client-authn-core/dist/util/handlerPattern/AggregateHandler.js ***! + \***************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; +eval("\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nconst InruptError_1 = __importDefault(__webpack_require__(/*! ../../errors/InruptError */ \"./node_modules/@inrupt/solid-client-authn-core/dist/errors/InruptError.js\"));\nclass AggregateHandler {\n constructor(handleables) {\n this.handleables = handleables;\n }\n async getProperHandler(params) {\n const canHandleList = await Promise.all(this.handleables.map((handleable) => handleable.canHandle(...params)));\n for (let i = 0; i < canHandleList.length; i += 1) {\n if (canHandleList[i]) {\n return this.handleables[i];\n }\n }\n return null;\n }\n async canHandle(...params) {\n return (await this.getProperHandler(params)) !== null;\n }\n async handle(...params) {\n const handler = await this.getProperHandler(params);\n if (handler) {\n return handler.handle(...params);\n }\n throw new InruptError_1.default(`[${this.constructor.name}] cannot find a suitable handler for: ${params\n .map((param) => {\n try {\n return JSON.stringify(param);\n }\n catch (err) {\n return param.toString();\n }\n })\n .join(\", \")}`);\n }\n}\nexports.default = AggregateHandler;\n//# sourceMappingURL=AggregateHandler.js.map\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client-authn-core/dist/util/handlerPattern/AggregateHandler.js?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client/dist/constants.mjs": +/*!**************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client/dist/constants.mjs ***! + \**************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"acl\": () => (/* binding */ acl),\n/* harmony export */ \"acp\": () => (/* binding */ acp),\n/* harmony export */ \"foaf\": () => (/* binding */ foaf),\n/* harmony export */ \"ldp\": () => (/* binding */ ldp),\n/* harmony export */ \"rdf\": () => (/* binding */ rdf),\n/* harmony export */ \"solid\": () => (/* binding */ solid)\n/* harmony export */ });\n/**\r\n * Copyright 2021 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"Software\"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n// TODO: These should be replaced by auto-generated constants,\r\n// if we can ensure that unused constants will be excluded from bundles.\r\n/** @hidden */\r\nconst acl = {\r\n Authorization: \"http://www.w3.org/ns/auth/acl#Authorization\",\r\n AuthenticatedAgent: \"http://www.w3.org/ns/auth/acl#AuthenticatedAgent\",\r\n accessTo: \"http://www.w3.org/ns/auth/acl#accessTo\",\r\n agent: \"http://www.w3.org/ns/auth/acl#agent\",\r\n agentGroup: \"http://www.w3.org/ns/auth/acl#agentGroup\",\r\n agentClass: \"http://www.w3.org/ns/auth/acl#agentClass\",\r\n default: \"http://www.w3.org/ns/auth/acl#default\",\r\n defaultForNew: \"http://www.w3.org/ns/auth/acl#defaultForNew\",\r\n mode: \"http://www.w3.org/ns/auth/acl#mode\",\r\n origin: \"http://www.w3.org/ns/auth/acl#origin\",\r\n};\r\n/** @hidden */\r\nconst rdf = {\r\n type: \"http://www.w3.org/1999/02/22-rdf-syntax-ns#type\",\r\n};\r\n/** @hidden */\r\nconst ldp = {\r\n BasicContainer: \"http://www.w3.org/ns/ldp#BasicContainer\",\r\n Container: \"http://www.w3.org/ns/ldp#Container\",\r\n Resource: \"http://www.w3.org/ns/ldp#Resource\",\r\n contains: \"http://www.w3.org/ns/ldp#contains\",\r\n};\r\n/** @hidden */\r\nconst foaf = {\r\n Agent: \"http://xmlns.com/foaf/0.1/Agent\",\r\n};\r\n/** @hidden */\r\nconst acp = {\r\n Policy: \"http://www.w3.org/ns/solid/acp#Policy\",\r\n AccessControl: \"http://www.w3.org/ns/solid/acp#AccessControl\",\r\n Read: \"http://www.w3.org/ns/solid/acp#Read\",\r\n Append: \"http://www.w3.org/ns/solid/acp#Append\",\r\n Write: \"http://www.w3.org/ns/solid/acp#Write\",\r\n Rule: \"http://www.w3.org/ns/solid/acp#Rule\",\r\n accessControl: \"http://www.w3.org/ns/solid/acp#accessControl\",\r\n apply: \"http://www.w3.org/ns/solid/acp#apply\",\r\n applyMembers: \"http://www.w3.org/ns/solid/acp#applyMembers\",\r\n allow: \"http://www.w3.org/ns/solid/acp#allow\",\r\n deny: \"http://www.w3.org/ns/solid/acp#deny\",\r\n allOf: \"http://www.w3.org/ns/solid/acp#allOf\",\r\n anyOf: \"http://www.w3.org/ns/solid/acp#anyOf\",\r\n noneOf: \"http://www.w3.org/ns/solid/acp#noneOf\",\r\n access: \"http://www.w3.org/ns/solid/acp#access\",\r\n accessMembers: \"http://www.w3.org/ns/solid/acp#accessMembers\",\r\n agent: \"http://www.w3.org/ns/solid/acp#agent\",\r\n group: \"http://www.w3.org/ns/solid/acp#group\",\r\n client: \"http://www.w3.org/ns/solid/acp#client\",\r\n PublicAgent: \"http://www.w3.org/ns/solid/acp#PublicAgent\",\r\n AuthenticatedAgent: \"http://www.w3.org/ns/solid/acp#AuthenticatedAgent\",\r\n CreatorAgent: \"http://www.w3.org/ns/solid/acp#CreatorAgent\",\r\n};\r\n/** @hidden */\r\nconst solid = {\r\n PublicOidcClient: \"http://www.w3.org/ns/solid/terms#PublicOidcClient\",\r\n};\n\n\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client/dist/constants.mjs?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client/dist/datatypes.mjs": +/*!**************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client/dist/datatypes.mjs ***! + \**************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"deserializeBoolean\": () => (/* binding */ deserializeBoolean),\n/* harmony export */ \"deserializeDate\": () => (/* binding */ deserializeDate),\n/* harmony export */ \"deserializeDatetime\": () => (/* binding */ deserializeDatetime),\n/* harmony export */ \"deserializeDecimal\": () => (/* binding */ deserializeDecimal),\n/* harmony export */ \"deserializeInteger\": () => (/* binding */ deserializeInteger),\n/* harmony export */ \"deserializeTime\": () => (/* binding */ deserializeTime),\n/* harmony export */ \"internal_isValidUrl\": () => (/* binding */ internal_isValidUrl),\n/* harmony export */ \"isLiteral\": () => (/* binding */ isLiteral),\n/* harmony export */ \"isLocalNode\": () => (/* binding */ isLocalNode),\n/* harmony export */ \"isNamedNode\": () => (/* binding */ isNamedNode),\n/* harmony export */ \"isTerm\": () => (/* binding */ isTerm),\n/* harmony export */ \"normalizeLocale\": () => (/* binding */ normalizeLocale),\n/* harmony export */ \"resolveIriForLocalNode\": () => (/* binding */ resolveIriForLocalNode),\n/* harmony export */ \"resolveLocalIri\": () => (/* binding */ resolveLocalIri),\n/* harmony export */ \"serializeBoolean\": () => (/* binding */ serializeBoolean),\n/* harmony export */ \"serializeDate\": () => (/* binding */ serializeDate),\n/* harmony export */ \"serializeDatetime\": () => (/* binding */ serializeDatetime),\n/* harmony export */ \"serializeDecimal\": () => (/* binding */ serializeDecimal),\n/* harmony export */ \"serializeInteger\": () => (/* binding */ serializeInteger),\n/* harmony export */ \"serializeTime\": () => (/* binding */ serializeTime),\n/* harmony export */ \"xmlSchemaTypes\": () => (/* binding */ xmlSchemaTypes)\n/* harmony export */ });\n/* harmony import */ var _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./rdfjs.internal.mjs */ \"./node_modules/@inrupt/solid-client/dist/rdfjs.internal.mjs\");\n/* harmony import */ var _interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./interfaces.internal.mjs */ \"./node_modules/@inrupt/solid-client/dist/interfaces.internal.mjs\");\n/* harmony import */ var _rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./rdf.internal.mjs */ \"./node_modules/@inrupt/solid-client/dist/rdf.internal.mjs\");\n\n\n\n\n/**\r\n * Copyright 2021 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"Software\"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n/**\r\n * IRIs of the XML Schema data types we support\r\n * @internal\r\n */\r\nconst xmlSchemaTypes = {\r\n boolean: \"http://www.w3.org/2001/XMLSchema#boolean\",\r\n dateTime: \"http://www.w3.org/2001/XMLSchema#dateTime\",\r\n date: \"http://www.w3.org/2001/XMLSchema#date\",\r\n time: \"http://www.w3.org/2001/XMLSchema#time\",\r\n decimal: \"http://www.w3.org/2001/XMLSchema#decimal\",\r\n integer: \"http://www.w3.org/2001/XMLSchema#integer\",\r\n string: \"http://www.w3.org/2001/XMLSchema#string\",\r\n langString: \"http://www.w3.org/1999/02/22-rdf-syntax-ns#langString\",\r\n};\r\n/**\r\n * @internal\r\n * @param value Value to serialise.\r\n * @returns String representation of `value`.\r\n * @see https://www.w3.org/TR/xmlschema-2/#boolean-lexical-representation\r\n */\r\nfunction serializeBoolean(value) {\r\n return value ? \"true\" : \"false\";\r\n}\r\n/**\r\n * @internal\r\n * @param value Value to deserialise.\r\n * @returns Deserialized boolean, or null if the given value is not a valid serialised boolean.\r\n * @see https://www.w3.org/TR/xmlschema-2/#boolean-lexical-representation\r\n */\r\nfunction deserializeBoolean(value) {\r\n if (value === \"true\" || value === \"1\") {\r\n return true;\r\n }\r\n else if (value === \"false\" || value === \"0\") {\r\n return false;\r\n }\r\n else {\r\n return null;\r\n }\r\n}\r\n/**\r\n * @internal\r\n * @param value Value to serialise.\r\n * @returns String representation of `value` in UTC.\r\n * @see https://www.w3.org/TR/xmlschema-2/#time-lexical-repr\r\n */\r\nfunction serializeTime(value) {\r\n let millisecondString;\r\n let timezoneString;\r\n if (value.millisecond) {\r\n if (value.millisecond < 10) {\r\n millisecondString = \"00\" + value.millisecond;\r\n }\r\n else if (value.millisecond < 100) {\r\n millisecondString = \"0\" + value.millisecond;\r\n }\r\n else {\r\n millisecondString = value.millisecond;\r\n }\r\n }\r\n if (typeof value.timezoneHourOffset === \"number\") {\r\n const timezoneFormatted = Math.abs(value.timezoneHourOffset) < 10\r\n ? \"0\" + Math.abs(value.timezoneHourOffset)\r\n : Math.abs(value.timezoneHourOffset);\r\n timezoneString =\r\n value.timezoneHourOffset >= 0\r\n ? \"+\" + timezoneFormatted\r\n : \"-\" + timezoneFormatted;\r\n if (value.timezoneMinuteOffset) {\r\n timezoneString =\r\n timezoneString +\r\n \":\" +\r\n (value.timezoneMinuteOffset < 10\r\n ? \"0\" + value.timezoneMinuteOffset\r\n : value.timezoneMinuteOffset);\r\n }\r\n else {\r\n timezoneString = timezoneString + \":00\";\r\n }\r\n }\r\n return ((value.hour < 10 ? \"0\" + value.hour : value.hour) +\r\n \":\" +\r\n (value.minute < 10 ? \"0\" + value.minute : value.minute) +\r\n \":\" +\r\n (value.second < 10 ? \"0\" + value.second : value.second) +\r\n (value.millisecond ? \".\" + millisecondString : \"\") +\r\n (timezoneString ? timezoneString : \"\"));\r\n}\r\n/**\r\n * @internal\r\n * @param literalString Value to deserialise.\r\n * @returns Deserialized time, or null if the given value is not a valid serialised datetime.\r\n * @see https://www.w3.org/TR/xmlschema-2/#time-lexical-repr\r\n */\r\nfunction deserializeTime(literalString) {\r\n // Time in the format described at\r\n // https://www.w3.org/TR/xmlschema-2/#time-lexical-repr\r\n // \\d\\d:\\d\\d:\\d\\d - Two digits for the hour, minute and second, respectively, separated by a `:`.\r\n // Example: \"13:37:42\".\r\n // (\\.\\d+)? - Optionally a `.` followed by one or more digits representing milliseconds.\r\n // Example: \".1337\".\r\n // (Z|(\\+|-)\\d\\d:\\d\\d) - The letter Z indicating UTC, or a `+` or `-` followed by two digits for\r\n // the hour offset and two for the minute offset, separated by a `:`.\r\n // Example: \"+13:37\".\r\n const timeRegEx = /\\d\\d:\\d\\d:\\d\\d(\\.\\d+)?(Z|(\\+|-)\\d\\d:\\d\\d)?/;\r\n if (!timeRegEx.test(literalString)) {\r\n return null;\r\n }\r\n const [timeString, timezoneString] = splitTimeFromTimezone(literalString);\r\n const [hourString, minuteString, timeRest] = timeString.split(\":\");\r\n let utcHours = Number.parseInt(hourString, 10);\r\n let utcMinutes = Number.parseInt(minuteString, 10);\r\n const [secondString, optionalMillisecondString] = timeRest.split(\".\");\r\n const utcSeconds = Number.parseInt(secondString, 10);\r\n const utcMilliseconds = optionalMillisecondString\r\n ? Number.parseInt(optionalMillisecondString, 10)\r\n : undefined;\r\n if (utcMinutes >= 60) {\r\n utcHours = utcHours + 1;\r\n utcMinutes = utcMinutes - 60;\r\n }\r\n const deserializedTime = {\r\n hour: utcHours,\r\n minute: utcMinutes,\r\n second: utcSeconds,\r\n };\r\n if (typeof utcMilliseconds === \"number\") {\r\n deserializedTime.millisecond = utcMilliseconds;\r\n }\r\n if (typeof timezoneString === \"string\") {\r\n const [hourOffset, minuteOffset] = getTimezoneOffsets(timezoneString);\r\n if (typeof hourOffset !== \"number\" ||\r\n hourOffset > 24 ||\r\n typeof minuteOffset !== \"number\" ||\r\n minuteOffset > 59) {\r\n return null;\r\n }\r\n deserializedTime.timezoneHourOffset = hourOffset;\r\n deserializedTime.timezoneMinuteOffset = minuteOffset;\r\n }\r\n return deserializedTime;\r\n}\r\n/**\r\n * @internal\r\n * @param value Value to serialise.\r\n * @returns String representation of `value`.\r\n * @see https://www.w3.org/TR/xmlschema-2/#dateTime-lexical-representation\r\n */\r\nfunction serializeDatetime(value) {\r\n // Although the XML Schema DateTime is not _exactly_ an ISO 8601 string\r\n // (see https://www.w3.org/TR/xmlschema-2/#deviantformats),\r\n // the deviations only affect the parsing, not the serialisation.\r\n // Therefore, we can just use .toISOString():\r\n return value.toISOString();\r\n}\r\n/**\r\n * @internal\r\n * @param value Value to deserialise.\r\n * @returns Deserialized datetime, or null if the given value is not a valid serialised datetime.\r\n * @see https://www.w3.org/TR/xmlschema-2/#dateTime-lexical-representation\r\n */\r\nfunction deserializeDatetime(literalString) {\r\n // DateTime in the format described at\r\n // https://www.w3.org/TR/xmlschema-2/#dateTime-lexical-representation\r\n // (without constraints on the value).\r\n // -? - An optional leading `-`.\r\n // \\d{4,}- - Four or more digits followed by a `-` representing the year. Example: \"3000-\".\r\n // \\d\\d-\\d\\d - Two digits representing the month and two representing the day of the month,\r\n // separated by a `-`. Example: \"11-03\".\r\n // T - The letter T, separating the date from the time.\r\n // \\d\\d:\\d\\d:\\d\\d - Two digits for the hour, minute and second, respectively, separated by a `:`.\r\n // Example: \"13:37:42\".\r\n // (\\.\\d+)? - Optionally a `.` followed by one or more digits representing milliseconds.\r\n // Example: \".1337\".\r\n // (Z|(\\+|-)\\d\\d:\\d\\d) - The letter Z indicating UTC, or a `+` or `-` followed by two digits for\r\n // the hour offset and two for the minute offset, separated by a `:`.\r\n // Example: \"+13:37\".\r\n const datetimeRegEx = /-?\\d{4,}-\\d\\d-\\d\\dT\\d\\d:\\d\\d:\\d\\d(\\.\\d+)?(Z|(\\+|-)\\d\\d:\\d\\d)?/;\r\n if (!datetimeRegEx.test(literalString)) {\r\n return null;\r\n }\r\n const [signedDateString, rest] = literalString.split(\"T\");\r\n // The date string can optionally be prefixed with `-`,\r\n // in which case the year is negative:\r\n const [yearMultiplier, dateString] = signedDateString.charAt(0) === \"-\"\r\n ? [-1, signedDateString.substring(1)]\r\n : [1, signedDateString];\r\n const [yearString, monthString, dayString] = dateString.split(\"-\");\r\n const utcFullYear = Number.parseInt(yearString, 10) * yearMultiplier;\r\n const utcMonth = Number.parseInt(monthString, 10) - 1;\r\n const utcDate = Number.parseInt(dayString, 10);\r\n const [timeString, timezoneString] = splitTimeFromTimezone(rest);\r\n const [hourOffset, minuteOffset] = typeof timezoneString === \"string\"\r\n ? getTimezoneOffsets(timezoneString)\r\n : [0, 0];\r\n const [hourString, minuteString, timeRest] = timeString.split(\":\");\r\n const utcHours = Number.parseInt(hourString, 10) + hourOffset;\r\n const utcMinutes = Number.parseInt(minuteString, 10) + minuteOffset;\r\n const [secondString, optionalMillisecondString] = timeRest.split(\".\");\r\n const utcSeconds = Number.parseInt(secondString, 10);\r\n const utcMilliseconds = optionalMillisecondString\r\n ? Number.parseInt(optionalMillisecondString, 10)\r\n : 0;\r\n const date = new Date(Date.UTC(utcFullYear, utcMonth, utcDate, utcHours, utcMinutes, utcSeconds, utcMilliseconds));\r\n // For the year, values from 0 to 99 map to the years 1900 to 1999. Since the serialisation\r\n // always writes out the years fully, we should correct this to actually map to the years 0 to 99.\r\n // See\r\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/Date#Individual_date_and_time_component_values\r\n if (utcFullYear >= 0 && utcFullYear < 100) {\r\n // Note that we base it on the calculated year, rather than the year that was actually read.\r\n // This is because the year might actually differ from the value listed in the serialisation,\r\n // i.e. when moving the timezone offset to UTC pushes it into a different year:\r\n date.setUTCFullYear(date.getUTCFullYear() - 1900);\r\n }\r\n return date;\r\n}\r\n/**\r\n * @internal\r\n * @param value Value to serialise.\r\n * @returns String representation of `value`.\r\n * @see https://www.w3.org/TR/xmlschema-2/#date-lexical-representation\r\n */\r\nfunction serializeDate(value) {\r\n const year = value.getFullYear();\r\n const month = value.getMonth();\r\n const day = value.getDate();\r\n const [_, timezone] = splitTimeFromTimezone(value.toISOString());\r\n return year + \"-\" + (month + 1) + \"-\" + day + timezone;\r\n}\r\n/**\r\n * @internal\r\n * @param value Value to deserialise.\r\n * @returns Deserialized datetime, or null if the given value is not a valid serialised datetime.\r\n * @see https://www.w3.org/TR/xmlschema-2/#date-lexical-representation\r\n */\r\nfunction deserializeDate(literalString) {\r\n // Date in the format described at\r\n // https://www.w3.org/TR/xmlschema-2/#date-lexical-representation\r\n // (without constraints on the value).\r\n // -? - An optional leading `-`.\r\n // \\d{4,}- - Four or more digits followed by a `-` representing the year. Example: \"3000-\".\r\n // \\d\\d-\\d\\d - Two digits representing the month and two representing the day of the month,\r\n // separated by a `-`. Example: \"11-03\".\r\n // (Z|(\\+|-)\\d\\d:\\d\\d) - Optionally, the letter Z indicating UTC, or a `+` or `-` followed by two digits for\r\n // the hour offset and two for the minute offset, separated by a `:`.\r\n // Example: \"+13:37\".\r\n const dateRegEx = /-?\\d{4,}-\\d\\d-\\d\\d(Z|(\\+|-)\\d\\d:\\d\\d)?/;\r\n if (!dateRegEx.test(literalString)) {\r\n return null;\r\n }\r\n const signedDateString = literalString;\r\n // The date string can optionally be prefixed with `-`,\r\n // in which case the year is negative:\r\n const [yearMultiplier, dateString] = signedDateString.charAt(0) === \"-\"\r\n ? [-1, signedDateString.substring(1)]\r\n : [1, signedDateString];\r\n const [yearString, monthString, dayAndTimezoneString] = dateString.split(\"-\");\r\n const dayString = dayAndTimezoneString.length > 2\r\n ? dayAndTimezoneString.substring(0, 2)\r\n : dayAndTimezoneString;\r\n const utcFullYear = Number.parseInt(yearString, 10) * yearMultiplier;\r\n const utcMonth = Number.parseInt(monthString, 10) - 1;\r\n const utcDate = Number.parseInt(dayString, 10);\r\n const hour = 12;\r\n // setting at 12:00 avoids all timezones\r\n const date = new Date(Date.UTC(utcFullYear, utcMonth, utcDate, hour));\r\n // For the year, values from 0 to 99 map to the years 1900 to 1999. Since the serialisation\r\n // always writes out the years fully, we should correct this to actually map to the years 0 to 99.\r\n // See\r\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/Date#Individual_date_and_time_component_values\r\n if (utcFullYear >= 0 && utcFullYear < 100) {\r\n date.setUTCFullYear(date.getUTCFullYear() - 1900);\r\n }\r\n return date;\r\n}\r\n/**\r\n * @param timeString An XML Schema time string.\r\n * @returns A tuple [timeString, timezoneString].\r\n * @see https://www.w3.org/TR/xmlschema-2/#time-lexical-repr\r\n */\r\nfunction splitTimeFromTimezone(timeString) {\r\n if (timeString.endsWith(\"Z\")) {\r\n return [timeString.substring(0, timeString.length - 1), \"Z\"];\r\n }\r\n const splitOnPlus = timeString.split(\"+\");\r\n const splitOnMinus = timeString.split(\"-\");\r\n if (splitOnPlus.length === 1 && splitOnMinus.length === 1) {\r\n return [splitOnPlus[0], undefined];\r\n }\r\n return splitOnPlus.length > splitOnMinus.length\r\n ? [splitOnPlus[0], \"+\" + splitOnPlus[1]]\r\n : [splitOnMinus[0], \"-\" + splitOnMinus[1]];\r\n}\r\n/**\r\n * @param timezoneString Lexical representation of a time zone in XML Schema.\r\n * @returns A tuple of the hour and minute offset of the time zone.\r\n * @see https://www.w3.org/TR/xmlschema-2/#dateTime-timezones\r\n */\r\nfunction getTimezoneOffsets(timezoneString) {\r\n if (timezoneString === \"Z\") {\r\n return [0, 0];\r\n }\r\n const multiplier = timezoneString.charAt(0) === \"+\" ? 1 : -1;\r\n const [hourString, minuteString] = timezoneString.substring(1).split(\":\");\r\n const hours = Number.parseInt(hourString, 10);\r\n const minutes = Number.parseInt(minuteString, 10);\r\n return [hours * multiplier, minutes * multiplier];\r\n}\r\n/**\r\n * @internal\r\n * @param value Value to serialise.\r\n * @returns String representation of `value`.\r\n * @see https://www.w3.org/TR/xmlschema-2/#decimal-lexical-representation\r\n */\r\nfunction serializeDecimal(value) {\r\n return value.toString();\r\n}\r\n/**\r\n * @internal\r\n * @param value Value to deserialise.\r\n * @returns Deserialized decimal, or null if the given value is not a valid serialised decimal.\r\n * @see https://www.w3.org/TR/xmlschema-2/#decimal-lexical-representation\r\n */\r\nfunction deserializeDecimal(literalString) {\r\n const deserialized = Number.parseFloat(literalString);\r\n if (Number.isNaN(deserialized)) {\r\n return null;\r\n }\r\n return deserialized;\r\n}\r\n/**\r\n * @internal\r\n * @param value Value to serialise.\r\n * @returns String representation of `value`.\r\n */\r\nfunction serializeInteger(value) {\r\n return value.toString();\r\n}\r\n/**\r\n * @internal\r\n * @param value Value to deserialise.\r\n * @returns Deserialized integer, or null if the given value is not a valid serialised integer.\r\n */\r\nfunction deserializeInteger(literalString) {\r\n const deserialized = Number.parseInt(literalString, 10);\r\n if (Number.isNaN(deserialized)) {\r\n return null;\r\n }\r\n return deserialized;\r\n}\r\n/**\r\n * @internal\r\n * @param locale Locale to transform into a consistent format.\r\n */\r\nfunction normalizeLocale(locale) {\r\n return locale.toLowerCase();\r\n}\r\n/**\r\n * @internal Library users shouldn't need to be exposed to raw NamedNodes.\r\n * @param value The value that might or might not be a Named Node.\r\n * @returns Whether `value` is a Named Node.\r\n */\r\nfunction isNamedNode(value) {\r\n return isTerm(value) && value.termType === \"NamedNode\";\r\n}\r\n/**\r\n * @internal Library users shouldn't need to be exposed to raw Literals.\r\n * @param value The value that might or might not be a Literal.\r\n * @returns Whether `value` is a Literal.\r\n */\r\nfunction isLiteral(value) {\r\n return isTerm(value) && value.termType === \"Literal\";\r\n}\r\n/**\r\n * @internal Library users shouldn't need to be exposed to raw Terms.\r\n * @param value The value that might or might not be a Term.\r\n * @returns Whether `value` is a Term.\r\n */\r\nfunction isTerm(value) {\r\n return (value !== null &&\r\n typeof value === \"object\" &&\r\n typeof value.termType === \"string\" &&\r\n typeof value.value === \"string\" &&\r\n typeof value.equals === \"function\");\r\n}\r\n/**\r\n * @internal Library users shouldn't need to be exposed to LocalNodes.\r\n * @param value The value that might or might not be a Node with no known IRI yet.\r\n * @returns Whether `value` is a Node with no known IRI yet.\r\n */\r\nfunction isLocalNode(value) {\r\n return isNamedNode(value) && (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.isLocalNodeIri)(value.value);\r\n}\r\n/**\r\n * Ensure that a given value is a valid URL.\r\n *\r\n * @internal Library users shouldn't need to be exposed to raw URLs.\r\n * @param iri The value of which to verify that it is a valid URL.\r\n */\r\nfunction internal_isValidUrl(iri) {\r\n const iriString = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_toIriString)(iri);\r\n // If the runtime environment supports URL, instantiate one.\r\n // If the given IRI is not a valid URL, it will throw an error.\r\n // See: https://developer.mozilla.org/en-US/docs/Web/API/URL\r\n /* istanbul ignore if [URL is available in our testing environment, so we cannot test the alternative] */\r\n if (typeof URL !== \"function\") {\r\n // If we can't validate the URL, do not throw an error:\r\n return true;\r\n }\r\n try {\r\n new URL(iriString);\r\n }\r\n catch (_a) {\r\n return false;\r\n }\r\n return true;\r\n}\r\n/**\r\n * @internal Utility method; library users should not need to interact with LocalNodes directly.\r\n * @param localNode The LocalNode to resolve to a NamedNode.\r\n * @param resourceIri The Resource in which the Node will be saved.\r\n */\r\nfunction resolveIriForLocalNode(localNode, resourceIri) {\r\n return _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.DataFactory.namedNode(resolveLocalIri((0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.getLocalNodeName)(localNode.value), resourceIri));\r\n}\r\n/**\r\n * @internal API for internal use only.\r\n * @param name The name identifying a Thing.\r\n * @param resourceIri The Resource in which the Thing can be found.\r\n */\r\nfunction resolveLocalIri(name, resourceIri) {\r\n /* istanbul ignore if [The URL interface is available in the testing environment, so we cannot test this] */\r\n if (typeof URL !== \"function\") {\r\n throw new Error(\"The URL interface is not available, so an IRI cannot be determined.\");\r\n }\r\n const thingIri = new URL(resourceIri);\r\n thingIri.hash = name;\r\n return thingIri.href;\r\n}\n\n\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client/dist/datatypes.mjs?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client/dist/fetcher.mjs": +/*!************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client/dist/fetcher.mjs ***! + \************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"fetch\": () => (/* binding */ fetch)\n/* harmony export */ });\n/**\r\n * Copyright 2021 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"Software\"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n/**\r\n * @ignore Internal fallback for when no fetcher is provided; not to be used downstream.\r\n */\r\nconst fetch = async (resource, init) => {\r\n /* istanbul ignore if: `require` is always defined in the unit test environment */\r\n if (typeof window === \"object\" && typeof require !== \"function\") {\r\n return await window.fetch(resource, init);\r\n }\r\n /* istanbul ignore if: `require` is always defined in the unit test environment */\r\n if (typeof require !== \"function\") {\r\n // When using Node.js with ES Modules, require is not defined:\r\n const crossFetchModule = await Promise.resolve(/*! import() */).then(__webpack_require__.t.bind(__webpack_require__, /*! cross-fetch */ \"./node_modules/cross-fetch/dist/browser-ponyfill.js\", 19));\r\n const fetch = crossFetchModule.default;\r\n return fetch(resource, init);\r\n }\r\n // Implementation note: it's up to the client application to resolve these module names to the\r\n // respective npm packages. At least one commonly used tool (Webpack) is only able to do that if\r\n // the module names are literal strings.\r\n // Additionally, Webpack throws a warning in a way that halts compilation for at least Next.js\r\n // when using native Javascript dynamic imports (`import()`), whereas `require()` just logs a\r\n // warning. Since the use of package names instead of file names requires a bundles anyway, this\r\n // should not have any practical consequences. For more background, see:\r\n // https://github.com/webpack/webpack/issues/7713\r\n let fetch;\r\n // Unfortunately solid-client-authn-browser does not support a default session yet.\r\n // Once it does, we can auto-detect if it is available and use it as follows:\r\n // try {\r\n // fetch = require(\"solid-client-authn-browser\").fetch;\r\n // } catch (e) {\r\n // When enabling the above, make sure to add a similar try {...} catch block using `import`\r\n // statements in the elseif above.\r\n // eslint-disable-next-line prefer-const\r\n fetch = require(\"cross-fetch\");\r\n // }\r\n return await fetch(resource, init);\r\n};\n\n\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client/dist/fetcher.mjs?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client/dist/formats/turtle.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client/dist/formats/turtle.mjs ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"getTurtleParser\": () => (/* binding */ getTurtleParser),\n/* harmony export */ \"triplesToTurtle\": () => (/* binding */ triplesToTurtle)\n/* harmony export */ });\n/* harmony import */ var _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../rdfjs.internal.mjs */ \"./node_modules/@inrupt/solid-client/dist/rdfjs.internal.mjs\");\n/* harmony import */ var _resource_resource_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../resource/resource.mjs */ \"./node_modules/@inrupt/solid-client/dist/resource/resource.mjs\");\n\n\n\n/**\r\n * Copyright 2021 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"Software\"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nconst getTurtleParser = () => {\r\n const onQuadCallbacks = [];\r\n const onCompleteCallbacks = [];\r\n const onErrorCallbacks = [];\r\n return {\r\n onQuad: (callback) => {\r\n onQuadCallbacks.push(callback);\r\n },\r\n onError: (callback) => {\r\n onErrorCallbacks.push(callback);\r\n },\r\n onComplete: (callback) => {\r\n onCompleteCallbacks.push(callback);\r\n },\r\n parse: async (source, resourceInfo) => {\r\n const parser = await getParser((0,_resource_resource_mjs__WEBPACK_IMPORTED_MODULE_0__.getSourceUrl)(resourceInfo));\r\n parser.parse(source, (error, quad, _prefixes) => {\r\n if (error) {\r\n onErrorCallbacks.forEach((callback) => callback(error));\r\n }\r\n else if (quad) {\r\n onQuadCallbacks.every((callback) => callback(quad));\r\n }\r\n else {\r\n onCompleteCallbacks.every((callback) => callback());\r\n }\r\n });\r\n },\r\n };\r\n};\r\nasync function getParser(baseIri) {\r\n const n3 = await loadN3();\r\n return new n3.Parser({ format: \"text/turtle\", baseIRI: baseIri });\r\n}\r\n/**\r\n * @param quads Triples that should be serialised to Turtle\r\n * @internal Utility method for internal use; not part of the public API.\r\n */\r\nasync function triplesToTurtle(quads) {\r\n const n3 = await loadN3();\r\n const format = \"text/turtle\";\r\n const writer = new n3.Writer({ format: format });\r\n // Remove any potentially lingering references to Named Graphs in Quads;\r\n // they'll be determined by the URL the Turtle will be sent to:\r\n const triples = quads.map((quad) => _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.DataFactory.quad(quad.subject, quad.predicate, quad.object, undefined));\r\n writer.addQuads(triples);\r\n const writePromise = new Promise((resolve, reject) => {\r\n writer.end((error, result) => {\r\n /* istanbul ignore if [n3.js doesn't actually pass an error nor a result, apparently: https://github.com/rdfjs/N3.js/blob/62682e48c02d8965b4d728cb5f2cbec6b5d1b1b8/src/N3Writer.js#L290] */\r\n if (error) {\r\n return reject(error);\r\n }\r\n resolve(result);\r\n });\r\n });\r\n const rawTurtle = await writePromise;\r\n return rawTurtle;\r\n}\r\nasync function loadN3() {\r\n // When loaded via Webpack or another bundler that looks at the `modules` field in package.json,\r\n // N3 serves up ES modules with named exports.\r\n // However, when it is loaded in Node, it serves up a CommonJS module, which, when imported from\r\n // a Node ES module, is in the shape of a default export that is an object with all the named\r\n // exports as its properties.\r\n // This means that if we were to import the default module, our code would fail in Webpack,\r\n // whereas if we imported the named exports, our code would fail in Node.\r\n // As a workaround, we use a dynamic import. This way, we can use the same syntax in every\r\n // environment, where the differences between the environments are in whether the returned object\r\n // includes a `default` property that contains all exported functions, or whether those functions\r\n // are available on the returned object directly. We can then respond to those different\r\n // situations at runtime.\r\n // Unfortunately, that does mean that tree shaking will not work until N3 also provides ES modules\r\n // for Node, or adds a default export for Webpack. See\r\n // https://github.com/rdfjs/N3.js/issues/196\r\n const n3Module = await Promise.all(/*! import() */[__webpack_require__.e(\"vendors-node_modules_n3_src_index_js\"), __webpack_require__.e(\"_ed1b-_d17e\")]).then(__webpack_require__.bind(__webpack_require__, /*! n3 */ \"./node_modules/n3/src/index.js\"));\r\n /* istanbul ignore if: the package provides named exports in the unit test environment */\r\n if (typeof n3Module.default !== \"undefined\") {\r\n return n3Module.default;\r\n }\r\n return n3Module;\r\n}\n\n\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client/dist/formats/turtle.mjs?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client/dist/interfaces.internal.mjs": +/*!************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client/dist/interfaces.internal.mjs ***! + \************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"internal_toIriString\": () => (/* binding */ internal_toIriString)\n/* harmony export */ });\n/**\r\n * Copyright 2021 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"Software\"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n/** @internal */\r\nfunction internal_toIriString(iri) {\r\n return typeof iri === \"string\" ? iri : iri.value;\r\n}\n\n\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client/dist/interfaces.internal.mjs?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client/dist/interfaces.mjs": +/*!***************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client/dist/interfaces.mjs ***! + \***************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"SolidClientError\": () => (/* binding */ SolidClientError),\n/* harmony export */ \"hasChangelog\": () => (/* binding */ hasChangelog),\n/* harmony export */ \"hasResourceInfo\": () => (/* binding */ hasResourceInfo),\n/* harmony export */ \"hasServerResourceInfo\": () => (/* binding */ hasServerResourceInfo)\n/* harmony export */ });\n/**\r\n * Copyright 2021 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"Software\"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n/**\r\n * Verify whether a given SolidDataset includes metadata about where it was sent to.\r\n *\r\n * @param dataset A [[SolidDataset]] that may have metadata attached about the Resource it was retrieved from.\r\n * @returns True if `dataset` includes metadata about the Resource it was sent to, false if not.\r\n * @since 0.2.0\r\n */\r\nfunction hasResourceInfo(resource) {\r\n const potentialResourceInfo = resource;\r\n return (typeof potentialResourceInfo === \"object\" &&\r\n typeof potentialResourceInfo.internal_resourceInfo === \"object\");\r\n}\r\n/**\r\n * Verify whether a given SolidDataset includes metadata about where it was retrieved from.\r\n *\r\n * @param dataset A [[SolidDataset]] that may have metadata attached about the Resource it was retrieved from.\r\n * @returns True if `dataset` includes metadata about the Resource it was retrieved from, false if not.\r\n * @since 0.6.0\r\n */\r\nfunction hasServerResourceInfo(resource) {\r\n const potentialResourceInfo = resource;\r\n return (typeof potentialResourceInfo === \"object\" &&\r\n typeof potentialResourceInfo.internal_resourceInfo === \"object\" &&\r\n typeof potentialResourceInfo.internal_resourceInfo.linkedResources ===\r\n \"object\");\r\n}\r\n/** @internal */\r\nfunction hasChangelog(dataset) {\r\n const potentialChangeLog = dataset;\r\n return (typeof potentialChangeLog.internal_changeLog === \"object\" &&\r\n Array.isArray(potentialChangeLog.internal_changeLog.additions) &&\r\n Array.isArray(potentialChangeLog.internal_changeLog.deletions));\r\n}\r\n/**\r\n * Errors thrown by solid-client extend this class, and can thereby be distinguished from errors\r\n * thrown in lower-level libraries.\r\n * @since 1.2.0\r\n */\r\nclass SolidClientError extends Error {\r\n}\n\n\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client/dist/interfaces.mjs?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client/dist/rdf.internal.mjs": +/*!*****************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client/dist/rdf.internal.mjs ***! + \*****************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"freeze\": () => (/* binding */ freeze),\n/* harmony export */ \"getBlankNodeId\": () => (/* binding */ getBlankNodeId),\n/* harmony export */ \"getBlankNodeValue\": () => (/* binding */ getBlankNodeValue),\n/* harmony export */ \"getLocalNodeIri\": () => (/* binding */ getLocalNodeIri),\n/* harmony export */ \"getLocalNodeName\": () => (/* binding */ getLocalNodeName),\n/* harmony export */ \"isBlankNodeId\": () => (/* binding */ isBlankNodeId),\n/* harmony export */ \"isLocalNodeIri\": () => (/* binding */ isLocalNodeIri),\n/* harmony export */ \"localNodeSkolemPrefix\": () => (/* binding */ localNodeSkolemPrefix)\n/* harmony export */ });\n/* harmony import */ var _rdfjs_dataset__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @rdfjs/dataset */ \"./node_modules/@rdfjs/dataset/index.js\");\n\n\n/**\r\n * Copyright 2021 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"Software\"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n_rdfjs_dataset__WEBPACK_IMPORTED_MODULE_0__.dataset;\r\nconst localNodeSkolemPrefix = \"https://inrupt.com/.well-known/sdk-local-node/\";\r\n/**\r\n * Runtime freezing might be too much overhead;\r\n * if so, this function allows us to replace it by a function\r\n * that merely marks its input as Readonly<> for static analysis.\r\n */\r\nconst freeze = Object.freeze;\r\nfunction isLocalNodeIri(iri) {\r\n return (iri.substring(0, localNodeSkolemPrefix.length) === localNodeSkolemPrefix);\r\n}\r\nfunction getLocalNodeName(localNodeIri) {\r\n return localNodeIri.substring(localNodeSkolemPrefix.length);\r\n}\r\nfunction getLocalNodeIri(localNodeName) {\r\n return `${localNodeSkolemPrefix}${localNodeName}`;\r\n}\r\nfunction isBlankNodeId(value) {\r\n return typeof value === \"string\" && value.substring(0, 2) === \"_:\";\r\n}\r\nfunction getBlankNodeValue(blankNodeId) {\r\n return blankNodeId.substring(2);\r\n}\r\nfunction getBlankNodeId(blankNode) {\r\n return `_:${blankNode.value}`;\r\n}\n\n\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client/dist/rdf.internal.mjs?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client/dist/rdfjs.internal.mjs": +/*!*******************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client/dist/rdfjs.internal.mjs ***! + \*******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"DataFactory\": () => (/* binding */ DataFactory),\n/* harmony export */ \"addRdfJsQuadToDataset\": () => (/* binding */ addRdfJsQuadToDataset),\n/* harmony export */ \"getChainBlankNodes\": () => (/* binding */ getChainBlankNodes),\n/* harmony export */ \"subjectToRdfJsQuads\": () => (/* binding */ subjectToRdfJsQuads),\n/* harmony export */ \"toRdfJsQuads\": () => (/* binding */ toRdfJsQuads)\n/* harmony export */ });\n/* harmony import */ var _rdfjs_data_model__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @rdfjs/data-model */ \"./node_modules/@rdfjs/data-model/index.js\");\n/* harmony import */ var _rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rdf.internal.mjs */ \"./node_modules/@inrupt/solid-client/dist/rdf.internal.mjs\");\n/* harmony import */ var _datatypes_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./datatypes.mjs */ \"./node_modules/@inrupt/solid-client/dist/datatypes.mjs\");\n\n\n\n\n/**\r\n * Copyright 2021 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"Software\"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nconst DataFactory = _rdfjs_data_model__WEBPACK_IMPORTED_MODULE_0__;\r\nfunction addRdfJsQuadToDataset(dataset, quad, quadParseOptions = {}) {\r\n var _a;\r\n const supportedGraphTypes = [\r\n \"NamedNode\",\r\n \"DefaultGraph\",\r\n ];\r\n if (!supportedGraphTypes.includes(quad.graph.termType)) {\r\n throw new Error(`Cannot parse Quads with nodes of type [${quad.graph.termType}] as their Graph node.`);\r\n }\r\n const graphId = quad.graph.termType === \"DefaultGraph\" ? \"default\" : quad.graph.value;\r\n const graph = (_a = dataset.graphs[graphId]) !== null && _a !== void 0 ? _a : {};\r\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.freeze)(Object.assign(Object.assign({}, dataset), { graphs: (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.freeze)(Object.assign(Object.assign({}, dataset.graphs), { [graphId]: addRdfJsQuadToGraph(graph, quad, quadParseOptions) })) }));\r\n}\r\nfunction addRdfJsQuadToGraph(graph, quad, quadParseOptions) {\r\n var _a;\r\n const supportedSubjectTypes = [\r\n \"NamedNode\",\r\n \"BlankNode\",\r\n ];\r\n if (!supportedSubjectTypes.includes(quad.subject.termType)) {\r\n throw new Error(`Cannot parse Quads with nodes of type [${quad.subject.termType}] as their Subject node.`);\r\n }\r\n const subjectIri = quad.subject.termType === \"BlankNode\"\r\n ? `_:${quad.subject.value}`\r\n : quad.subject.value;\r\n const subject = (_a = graph[subjectIri]) !== null && _a !== void 0 ? _a : {\r\n type: \"Subject\",\r\n url: subjectIri,\r\n predicates: {},\r\n };\r\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.freeze)(Object.assign(Object.assign({}, graph), { [subjectIri]: addRdfJsQuadToSubject(subject, quad, quadParseOptions) }));\r\n}\r\nfunction addRdfJsQuadToSubject(subject, quad, quadParseOptions) {\r\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.freeze)(Object.assign(Object.assign({}, subject), { predicates: addRdfJsQuadToPredicates(subject.predicates, quad, quadParseOptions) }));\r\n}\r\nfunction addRdfJsQuadToPredicates(predicates, quad, quadParseOptions) {\r\n var _a;\r\n const supportedPredicateTypes = [\r\n \"NamedNode\",\r\n ];\r\n if (!supportedPredicateTypes.includes(quad.predicate.termType)) {\r\n throw new Error(`Cannot parse Quads with nodes of type [${quad.predicate.termType}] as their Predicate node.`);\r\n }\r\n const predicateIri = quad.predicate.value;\r\n const objects = (_a = predicates[predicateIri]) !== null && _a !== void 0 ? _a : {};\r\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.freeze)(Object.assign(Object.assign({}, predicates), { [predicateIri]: addRdfJsQuadToObjects(objects, quad, quadParseOptions) }));\r\n}\r\nfunction addRdfJsQuadToObjects(objects, quad, quadParseOptions) {\r\n var _a, _b, _c, _d, _e, _f, _g, _h;\r\n if (quad.object.termType === \"NamedNode\") {\r\n const namedNodes = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.freeze)([\r\n ...((_a = objects.namedNodes) !== null && _a !== void 0 ? _a : []),\r\n quad.object.value,\r\n ]);\r\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.freeze)(Object.assign(Object.assign({}, objects), { namedNodes: namedNodes }));\r\n }\r\n if (quad.object.termType === \"Literal\") {\r\n if (quad.object.datatype.value === _datatypes_mjs__WEBPACK_IMPORTED_MODULE_2__.xmlSchemaTypes.langString) {\r\n const locale = quad.object.language.toLowerCase();\r\n const thisLocaleStrings = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.freeze)([\r\n ...((_c = (_b = objects.langStrings) === null || _b === void 0 ? void 0 : _b[locale]) !== null && _c !== void 0 ? _c : []),\r\n quad.object.value,\r\n ]);\r\n const langStrings = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.freeze)(Object.assign(Object.assign({}, ((_d = objects.langStrings) !== null && _d !== void 0 ? _d : {})), { [locale]: thisLocaleStrings }));\r\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.freeze)(Object.assign(Object.assign({}, objects), { langStrings: langStrings }));\r\n }\r\n // If the Object is a non-langString Literal\r\n const thisTypeValues = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.freeze)([\r\n ...((_f = (_e = objects.literals) === null || _e === void 0 ? void 0 : _e[quad.object.datatype.value]) !== null && _f !== void 0 ? _f : []),\r\n quad.object.value,\r\n ]);\r\n const literals = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.freeze)(Object.assign(Object.assign({}, ((_g = objects.literals) !== null && _g !== void 0 ? _g : {})), { [quad.object.datatype.value]: thisTypeValues }));\r\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.freeze)(Object.assign(Object.assign({}, objects), { literals: literals }));\r\n }\r\n if (quad.object.termType === \"BlankNode\") {\r\n const blankNodePredicates = getPredicatesForBlankNode(quad.object, quadParseOptions);\r\n const blankNodes = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.freeze)([\r\n ...((_h = objects.blankNodes) !== null && _h !== void 0 ? _h : []),\r\n blankNodePredicates,\r\n ]);\r\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.freeze)(Object.assign(Object.assign({}, objects), { blankNodes: blankNodes }));\r\n }\r\n throw new Error(`Objects of type [${quad.object.termType}] are not supported.`);\r\n}\r\nfunction getPredicatesForBlankNode(node, quadParseOptions) {\r\n var _a, _b;\r\n const chainBlankNodes = (_a = quadParseOptions.chainBlankNodes) !== null && _a !== void 0 ? _a : [];\r\n if (chainBlankNodes.find((chainBlankNode) => chainBlankNode.equals(node)) ===\r\n undefined) {\r\n // If this Blank Node is not used to provide nested values for another Subject,\r\n // just return its identifier.\r\n // That identifier will also be listed among the Subjects in the Graph.\r\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.getBlankNodeId)(node);\r\n }\r\n /* istanbul ignore next: If there are chain nodes, there will always be other Quads, so the `?? []` can't be reached: */\r\n const quads = (_b = quadParseOptions.otherQuads) !== null && _b !== void 0 ? _b : [];\r\n const quadsWithNodeAsSubject = quads.filter((quad) => quad.subject.equals(node));\r\n // First add the Quads with regular Objects\r\n const predicates = quadsWithNodeAsSubject\r\n .filter((quad) => !isBlankNode(quad.object))\r\n .reduce((predicatesAcc, quad) => {\r\n var _a;\r\n const supportedPredicateTypes = [\r\n \"NamedNode\",\r\n ];\r\n if (!supportedPredicateTypes.includes(quad.predicate.termType)) {\r\n throw new Error(`Cannot parse Quads with nodes of type [${quad.predicate.termType}] as their Predicate node.`);\r\n }\r\n const objects = (_a = predicatesAcc[quad.predicate.value]) !== null && _a !== void 0 ? _a : {};\r\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.freeze)(Object.assign(Object.assign({}, predicatesAcc), { [quad.predicate.value]: addRdfJsQuadToObjects(objects, quad, quadParseOptions) }));\r\n }, {});\r\n // And then also add the Quads that have another Blank Node as the Object\r\n // in addition to the Blank Node `node` as the Subject:\r\n const blankNodeObjectQuads = quadsWithNodeAsSubject.filter((quad) => isBlankNode(quad.object));\r\n return blankNodeObjectQuads.reduce((predicatesAcc, quad) => {\r\n var _a, _b;\r\n const supportedPredicateTypes = [\r\n \"NamedNode\",\r\n ];\r\n if (!supportedPredicateTypes.includes(quad.predicate.termType)) {\r\n throw new Error(`Cannot parse Quads with nodes of type [${quad.predicate.termType}] as their Predicate node.`);\r\n }\r\n /* istanbul ignore next: The `?? {}` doesn't get hit; presumably it's initialised above. */\r\n const objects = (_a = predicatesAcc[quad.predicate.value]) !== null && _a !== void 0 ? _a : {};\r\n /* istanbul ignore next: The `?? []` doesn't get hit; presumably it's initialised above. */\r\n const blankNodes = (_b = objects.blankNodes) !== null && _b !== void 0 ? _b : [];\r\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.freeze)(Object.assign(Object.assign({}, predicatesAcc), { \r\n // The BlankNode assertions are valid because we filtered on BlankNodes above:\r\n [quad.predicate.value]: Object.assign(Object.assign({}, objects), { blankNodes: [\r\n ...blankNodes,\r\n getPredicatesForBlankNode(quad.object, quadParseOptions),\r\n ] }) }));\r\n }, predicates);\r\n}\r\n/**\r\n * Given an array of Quads, returns all Blank Nodes that are used in a single chain of Nodes.\r\n *\r\n * This allows you to obtain which Blank Nodes are involved in e.g. RDF lists.\r\n * This is useful because those can be represented as nested data that will have\r\n * a deterministic structure, whereas a representation of Blank Nodes that\r\n * create a cycle or are re-used will need ad-hoc, non-deterministic identifiers\r\n * to allow for representation without inifinite nesting.\r\n */\r\nfunction getChainBlankNodes(quads) {\r\n // All Blank Nodes that occur in Subject position:\r\n const blankNodeSubjects = quads\r\n .map((quad) => quad.subject)\r\n .filter(isBlankNode);\r\n // All Blank Nodes that occur in Object position:\r\n const blankNodeObjects = quads.map((quad) => quad.object).filter(isBlankNode);\r\n // Makes sure that all given Nodes are the same,\r\n // which will be used to verify that a set of Quads all have the same Subject:\r\n function everyNodeTheSame(nodes) {\r\n // This could potentially be made more performant by mapping every term\r\n // to their value and using native JS comparisons, assuming every node is\r\n // either a Blank or a Named Node.\r\n return nodes.every((otherNode) => nodes.every((anotherNode) => otherNode.equals(anotherNode)));\r\n }\r\n // Get all Blank Nodes that are part of a cycle in the graph:\r\n const cycleBlankNodes = [];\r\n blankNodeObjects.forEach((blankNodeObject) => {\r\n cycleBlankNodes.push(...getCycleBlankNodes(blankNodeObject, quads));\r\n });\r\n // Get Blank Nodes that are used to provide nested values for a single Subject,\r\n // which we'll represent as nested values as well\r\n // (this allows us to avoid generating a non-deterministic, ad-hoc identifier\r\n // for those Blank Nodes).\r\n // We'll do this by taking all Blank Nodes in the given Quads...\r\n const chainBlankNodes = blankNodeSubjects\r\n .concat(blankNodeObjects)\r\n .filter((blankNode) => {\r\n // ....removing those Blank Nodes that are part of a cycle...\r\n if (cycleBlankNodes.some((cycleBlankNode) => cycleBlankNode.equals(blankNode))) {\r\n return false;\r\n }\r\n // ...and then returning only those Blank Nodes that only occur in the\r\n // Object position for a single Subject, i.e. that are part of a single\r\n // chain:\r\n const subjectsWithThisNodeAsObject = quads\r\n .filter((quad) => quad.object.equals(blankNode))\r\n .map((quad) => quad.subject);\r\n return (subjectsWithThisNodeAsObject.length > 0 &&\r\n everyNodeTheSame(subjectsWithThisNodeAsObject));\r\n });\r\n return chainBlankNodes;\r\n}\r\nfunction toRdfJsQuads(dataset, options = {}) {\r\n var _a;\r\n const quads = [];\r\n const dataFactory = (_a = options.dataFactory) !== null && _a !== void 0 ? _a : _rdfjs_data_model__WEBPACK_IMPORTED_MODULE_0__;\r\n Object.keys(dataset.graphs).forEach((graphIri) => {\r\n const graph = dataset.graphs[graphIri];\r\n const graphNode = graphIri === \"default\"\r\n ? dataFactory.defaultGraph()\r\n : dataFactory.namedNode(graphIri);\r\n Object.keys(graph).forEach((subjectIri) => {\r\n const predicates = graph[subjectIri].predicates;\r\n const subjectNode = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.isBlankNodeId)(subjectIri)\r\n ? dataFactory.blankNode((0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.getBlankNodeValue)(subjectIri))\r\n : dataFactory.namedNode(subjectIri);\r\n quads.push(...subjectToRdfJsQuads(predicates, subjectNode, graphNode, options));\r\n });\r\n });\r\n return quads;\r\n}\r\nfunction subjectToRdfJsQuads(predicates, subjectNode, graphNode, options = {}) {\r\n var _a;\r\n const quads = [];\r\n const dataFactory = (_a = options.dataFactory) !== null && _a !== void 0 ? _a : _rdfjs_data_model__WEBPACK_IMPORTED_MODULE_0__;\r\n Object.keys(predicates).forEach((predicateIri) => {\r\n var _a, _b, _c, _d;\r\n const predicateNode = dataFactory.namedNode(predicateIri);\r\n const langStrings = (_a = predicates[predicateIri].langStrings) !== null && _a !== void 0 ? _a : {};\r\n const namedNodes = (_b = predicates[predicateIri].namedNodes) !== null && _b !== void 0 ? _b : [];\r\n const literals = (_c = predicates[predicateIri].literals) !== null && _c !== void 0 ? _c : {};\r\n const blankNodes = (_d = predicates[predicateIri].blankNodes) !== null && _d !== void 0 ? _d : [];\r\n const literalTypes = Object.keys(literals);\r\n literalTypes.forEach((typeIri) => {\r\n const typeNode = dataFactory.namedNode(typeIri);\r\n const literalValues = literals[typeIri];\r\n literalValues.forEach((value) => {\r\n const literalNode = dataFactory.literal(value, typeNode);\r\n quads.push(dataFactory.quad(subjectNode, predicateNode, literalNode, graphNode));\r\n });\r\n });\r\n const locales = Object.keys(langStrings);\r\n locales.forEach((locale) => {\r\n const localeValues = langStrings[locale];\r\n localeValues.forEach((value) => {\r\n const langStringNode = dataFactory.literal(value, locale);\r\n quads.push(dataFactory.quad(subjectNode, predicateNode, langStringNode, graphNode));\r\n });\r\n });\r\n namedNodes.forEach((namedNodeIri) => {\r\n const node = dataFactory.namedNode(namedNodeIri);\r\n quads.push(dataFactory.quad(subjectNode, predicateNode, node, graphNode));\r\n });\r\n blankNodes.forEach((blankNodeIdOrPredicates) => {\r\n if ((0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.isBlankNodeId)(blankNodeIdOrPredicates)) {\r\n const blankNode = dataFactory.blankNode((0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.getBlankNodeValue)(blankNodeIdOrPredicates));\r\n quads.push(dataFactory.quad(subjectNode, predicateNode, blankNode, graphNode));\r\n }\r\n else {\r\n const node = dataFactory.blankNode();\r\n const blankNodeObjectQuad = dataFactory.quad(subjectNode, predicateNode, node, graphNode);\r\n const blankNodeSubjectQuads = subjectToRdfJsQuads(blankNodeIdOrPredicates, node, graphNode);\r\n quads.push(blankNodeObjectQuad);\r\n quads.push(...blankNodeSubjectQuads);\r\n }\r\n });\r\n });\r\n return quads;\r\n}\r\n/**\r\n * A recursive function that finds all Blank Nodes in an array of Quads that create a cycle in the graph.\r\n *\r\n * This function will traverse the graph starting from `currentNode`, keeping\r\n * track of all the Blank Nodes it encounters twice while doing so, and\r\n * returning those.\r\n */\r\nfunction getCycleBlankNodes(currentNode, quads, traversedBlankNodes = []) {\r\n // If we've encountered `currentNode` before, all the Blank Nodes we've\r\n // encountered so far are part of a cycle. Return those.\r\n if (traversedBlankNodes.find((traversedBlankNode) => traversedBlankNode.equals(currentNode)) !== undefined) {\r\n return traversedBlankNodes;\r\n }\r\n // Find all Blank Nodes that are connected to `currentNode`:\r\n const blankNodeObjects = quads\r\n .filter((quad) => quad.subject.equals(currentNode) && isBlankNode(quad.object))\r\n .map((quad) => quad.object);\r\n // If no Blank Nodes are connected to `currentNode`, we're done:\r\n if (blankNodeObjects.length === 0) {\r\n return traversedBlankNodes;\r\n }\r\n // Store that we've traversed `currentNode`, then move on to all the Blank\r\n // Nodes connected to it, which will then take up the role of `currentNode`:\r\n const nextTraversedNodes = [...traversedBlankNodes, currentNode];\r\n const cycleBlankNodeArrays = blankNodeObjects.map((nextNode) => getCycleBlankNodes(nextNode, quads, nextTraversedNodes));\r\n // Collect all the cycle Blank Nodes found in those traverals,\r\n // then return them:\r\n const allCycleBlankNodes = [];\r\n for (const cycleBlankNodes of cycleBlankNodeArrays) {\r\n allCycleBlankNodes.push(...cycleBlankNodes);\r\n }\r\n return allCycleBlankNodes;\r\n}\r\nfunction isBlankNode(term) {\r\n return term.termType === \"BlankNode\";\r\n}\n\n\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client/dist/rdfjs.internal.mjs?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client/dist/resource/iri.internal.mjs": +/*!**************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client/dist/resource/iri.internal.mjs ***! + \**************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"normalizeServerSideIri\": () => (/* binding */ normalizeServerSideIri)\n/* harmony export */ });\n/**\r\n * Copyright 2021 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"Software\"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n/**\r\n * This function normalizes IRIs as managed by the server to ease accurate comparison.\r\n * @param iri\r\n * @hidden\r\n */\r\nfunction normalizeServerSideIri(iri) {\r\n const iriObj = new URL(iri);\r\n iriObj.hash = \"\";\r\n return iriObj.href;\r\n}\n\n\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client/dist/resource/iri.internal.mjs?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client/dist/resource/resource.internal.mjs": +/*!*******************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client/dist/resource/resource.internal.mjs ***! + \*******************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"internal_cloneResource\": () => (/* binding */ internal_cloneResource),\n/* harmony export */ \"internal_isUnsuccessfulResponse\": () => (/* binding */ internal_isUnsuccessfulResponse),\n/* harmony export */ \"internal_parseResourceInfo\": () => (/* binding */ internal_parseResourceInfo)\n/* harmony export */ });\n/* harmony import */ var http_link_header__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! http-link-header */ \"./node_modules/http-link-header/lib/link.js\");\n\n\n/**\r\n * Copyright 2021 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"Software\"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n/**\r\n * @internal\r\n */\r\nfunction internal_parseResourceInfo(response) {\r\n var _a, _b, _c;\r\n const contentTypeParts = (_b = (_a = response.headers.get(\"Content-Type\")) === null || _a === void 0 ? void 0 : _a.split(\";\")) !== null && _b !== void 0 ? _b : [];\r\n // If the server offers a Turtle or JSON-LD serialisation on its own accord,\r\n // that tells us whether it is RDF data that the server can understand\r\n // (and hence can be updated with a PATCH request with SPARQL INSERT and DELETE statements),\r\n // in which case our SolidDataset-related functions should handle it.\r\n // For more context, see https://github.com/inrupt/solid-client-js/pull/214.\r\n const isSolidDataset = contentTypeParts.length > 0 &&\r\n [\"text/turtle\", \"application/ld+json\"].includes(contentTypeParts[0]);\r\n const resourceInfo = {\r\n sourceIri: response.url,\r\n isRawData: !isSolidDataset,\r\n contentType: (_c = response.headers.get(\"Content-Type\")) !== null && _c !== void 0 ? _c : undefined,\r\n linkedResources: {},\r\n };\r\n const linkHeader = response.headers.get(\"Link\");\r\n if (linkHeader) {\r\n const parsedLinks = http_link_header__WEBPACK_IMPORTED_MODULE_0__.parse(linkHeader);\r\n // Set ACL link\r\n const aclLinks = parsedLinks.get(\"rel\", \"acl\");\r\n if (aclLinks.length === 1) {\r\n resourceInfo.aclUrl = new URL(aclLinks[0].uri, resourceInfo.sourceIri).href;\r\n }\r\n // Parse all link headers and expose them in a standard way\r\n // (this can replace the parsing of the ACL link above):\r\n resourceInfo.linkedResources = parsedLinks.refs.reduce((rels, ref) => {\r\n var _a;\r\n var _b;\r\n (_a = rels[_b = ref.rel]) !== null && _a !== void 0 ? _a : (rels[_b] = []);\r\n rels[ref.rel].push(new URL(ref.uri, resourceInfo.sourceIri).href);\r\n return rels;\r\n }, resourceInfo.linkedResources);\r\n }\r\n const wacAllowHeader = response.headers.get(\"WAC-Allow\");\r\n if (wacAllowHeader) {\r\n resourceInfo.permissions = parseWacAllowHeader(wacAllowHeader);\r\n }\r\n return resourceInfo;\r\n}\r\n/**\r\n * Parse a WAC-Allow header into user and public access booleans.\r\n *\r\n * @param wacAllowHeader A WAC-Allow header in the format `user=\"read append write control\",public=\"read\"`\r\n * @see https://github.com/solid/solid-spec/blob/cb1373a369398d561b909009bd0e5a8c3fec953b/api-rest.md#wac-allow-headers\r\n */\r\nfunction parseWacAllowHeader(wacAllowHeader) {\r\n function parsePermissionStatement(permissionStatement) {\r\n const permissions = permissionStatement.split(\" \");\r\n const writePermission = permissions.includes(\"write\");\r\n return writePermission\r\n ? {\r\n read: permissions.includes(\"read\"),\r\n append: true,\r\n write: true,\r\n control: permissions.includes(\"control\"),\r\n }\r\n : {\r\n read: permissions.includes(\"read\"),\r\n append: permissions.includes(\"append\"),\r\n write: false,\r\n control: permissions.includes(\"control\"),\r\n };\r\n }\r\n function getStatementFor(header, scope) {\r\n const relevantEntries = header\r\n .split(\",\")\r\n .map((rawEntry) => rawEntry.split(\"=\"))\r\n .filter((parts) => parts.length === 2 && parts[0].trim() === scope);\r\n // There should only be one statement with the given scope:\r\n if (relevantEntries.length !== 1) {\r\n return \"\";\r\n }\r\n const relevantStatement = relevantEntries[0][1].trim();\r\n // The given statement should be wrapped in double quotes to be valid:\r\n if (relevantStatement.charAt(0) !== '\"' ||\r\n relevantStatement.charAt(relevantStatement.length - 1) !== '\"') {\r\n return \"\";\r\n }\r\n // Return the statment without the wrapping quotes, e.g.: read append write control\r\n return relevantStatement.substring(1, relevantStatement.length - 1);\r\n }\r\n return {\r\n user: parsePermissionStatement(getStatementFor(wacAllowHeader, \"user\")),\r\n public: parsePermissionStatement(getStatementFor(wacAllowHeader, \"public\")),\r\n };\r\n}\r\n/** @hidden Used to instantiate a separate instance from input parameters */\r\nfunction internal_cloneResource(resource) {\r\n let clonedResource;\r\n if (typeof resource.slice === \"function\") {\r\n // If given Resource is a File:\r\n clonedResource = Object.assign(resource.slice(), Object.assign({}, resource));\r\n }\r\n else {\r\n // If it is just a plain object containing metadata:\r\n clonedResource = Object.assign({}, resource);\r\n }\r\n return clonedResource;\r\n}\r\n/** @internal */\r\nfunction internal_isUnsuccessfulResponse(response) {\r\n return !response.ok;\r\n}\n\n\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client/dist/resource/resource.internal.mjs?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client/dist/resource/resource.mjs": +/*!**********************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client/dist/resource/resource.mjs ***! + \**********************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"FetchError\": () => (/* binding */ FetchError),\n/* harmony export */ \"getContentType\": () => (/* binding */ getContentType),\n/* harmony export */ \"getEffectiveAccess\": () => (/* binding */ getEffectiveAccess),\n/* harmony export */ \"getLinkedResourceUrlAll\": () => (/* binding */ getLinkedResourceUrlAll),\n/* harmony export */ \"getPodOwner\": () => (/* binding */ getPodOwner),\n/* harmony export */ \"getResourceInfo\": () => (/* binding */ getResourceInfo),\n/* harmony export */ \"getSourceIri\": () => (/* binding */ getSourceIri),\n/* harmony export */ \"getSourceUrl\": () => (/* binding */ getSourceUrl),\n/* harmony export */ \"internal_defaultFetchOptions\": () => (/* binding */ internal_defaultFetchOptions),\n/* harmony export */ \"isContainer\": () => (/* binding */ isContainer),\n/* harmony export */ \"isPodOwner\": () => (/* binding */ isPodOwner),\n/* harmony export */ \"isRawData\": () => (/* binding */ isRawData),\n/* harmony export */ \"responseToResourceInfo\": () => (/* binding */ responseToResourceInfo)\n/* harmony export */ });\n/* harmony import */ var _interfaces_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../interfaces.mjs */ \"./node_modules/@inrupt/solid-client/dist/interfaces.mjs\");\n/* harmony import */ var _interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../interfaces.internal.mjs */ \"./node_modules/@inrupt/solid-client/dist/interfaces.internal.mjs\");\n/* harmony import */ var _fetcher_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../fetcher.mjs */ \"./node_modules/@inrupt/solid-client/dist/fetcher.mjs\");\n/* harmony import */ var _resource_internal_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./resource.internal.mjs */ \"./node_modules/@inrupt/solid-client/dist/resource/resource.internal.mjs\");\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../constants.mjs */ \"./node_modules/@inrupt/solid-client/dist/constants.mjs\");\n\n\n\n\n\n\n/**\r\n * Copyright 2021 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"Software\"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n/** @ignore For internal use only. */\r\nconst internal_defaultFetchOptions = {\r\n fetch: _fetcher_mjs__WEBPACK_IMPORTED_MODULE_0__.fetch,\r\n};\r\n/**\r\n * Retrieve the information about a resource (e.g. access permissions) without\r\n * fetching the resource itself.\r\n *\r\n * @param url URL to fetch Resource metadata from.\r\n * @param options Optional parameter `options.fetch`: An alternative `fetch` function to make the HTTP request, compatible with the browser-native [fetch API](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters).\r\n * @returns Promise resolving to the metadata describing the given Resource, or rejecting if fetching it failed.\r\n * @since 0.4.0\r\n */\r\nasync function getResourceInfo(url, options = internal_defaultFetchOptions) {\r\n const config = Object.assign(Object.assign({}, internal_defaultFetchOptions), options);\r\n const response = await config.fetch(url, { method: \"HEAD\" });\r\n return responseToResourceInfo(response);\r\n}\r\n/**\r\n * Parse Solid metadata from a Response obtained by fetching a Resource from a Solid Pod,\r\n *\r\n * @param response A Fetch API Response. See {@link https://developer.mozilla.org/en-US/docs/Web/API/Response MDN}.\r\n * @returns Resource metadata readable by functions such as [[getSourceUrl]].\r\n * @hidden This interface is not exposed yet until we've tried it out in practice.\r\n */\r\nfunction responseToResourceInfo(response) {\r\n if ((0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isUnsuccessfulResponse)(response)) {\r\n throw new FetchError(`Fetching the metadata of the Resource at [${response.url}] failed: [${response.status}] [${response.statusText}].`, response);\r\n }\r\n const resourceInfo = (0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_parseResourceInfo)(response);\r\n return { internal_resourceInfo: resourceInfo };\r\n}\r\n/**\r\n * @param resource Resource for which to check whether it is a Container.\r\n * @returns Whether `resource` is a Container.\r\n */\r\nfunction isContainer(resource) {\r\n const containerUrl = (0,_interfaces_mjs__WEBPACK_IMPORTED_MODULE_2__.hasResourceInfo)(resource)\r\n ? getSourceUrl(resource)\r\n : (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.internal_toIriString)(resource);\r\n return containerUrl.endsWith(\"/\");\r\n}\r\n/**\r\n * This function will tell you whether a given Resource contains raw data, or a SolidDataset.\r\n *\r\n * @param resource Resource for which to check whether it contains raw data.\r\n * @return Whether `resource` contains raw data.\r\n */\r\nfunction isRawData(resource) {\r\n return resource.internal_resourceInfo.isRawData;\r\n}\r\n/**\r\n * @param resource Resource for which to determine the Content Type.\r\n * @returns The Content Type, if known, or null if not known.\r\n */\r\nfunction getContentType(resource) {\r\n var _a;\r\n return (_a = resource.internal_resourceInfo.contentType) !== null && _a !== void 0 ? _a : null;\r\n}\r\nfunction getSourceUrl(resource) {\r\n if ((0,_interfaces_mjs__WEBPACK_IMPORTED_MODULE_2__.hasResourceInfo)(resource)) {\r\n return resource.internal_resourceInfo.sourceIri;\r\n }\r\n return null;\r\n}\r\n/** @hidden Alias of getSourceUrl for those who prefer to use IRI terminology. */\r\nconst getSourceIri = getSourceUrl;\r\n/**\r\n * Given a Resource that exposes information about the owner of the Pod it is in, returns the WebID of that owner.\r\n *\r\n * Data about the owner of the Pod is exposed when the following conditions hold:\r\n * - The Pod server supports exposing the Pod owner\r\n * - The current user is allowed to see who the Pod owner is.\r\n *\r\n * If one or more of those conditions are false, this function will return `null`.\r\n *\r\n * @param resource A Resource that contains information about the owner of the Pod it is in.\r\n * @returns The WebID of the owner of the Pod the Resource is in, if provided, or `null` if not.\r\n * @since 0.6.0\r\n */\r\nfunction getPodOwner(resource) {\r\n var _a;\r\n if (!(0,_interfaces_mjs__WEBPACK_IMPORTED_MODULE_2__.hasServerResourceInfo)(resource)) {\r\n return null;\r\n }\r\n const podOwners = (_a = getLinkedResourceUrlAll(resource)[\"http://www.w3.org/ns/solid/terms#podOwner\"]) !== null && _a !== void 0 ? _a : [];\r\n return podOwners.length === 1 ? podOwners[0] : null;\r\n}\r\n/**\r\n * Given a WebID and a Resource that exposes information about the owner of the Pod it is in, returns whether the given WebID is the owner of the Pod.\r\n *\r\n * Data about the owner of the Pod is exposed when the following conditions hold:\r\n * - The Pod server supports exposing the Pod owner\r\n * - The current user is allowed to see who the Pod owner is.\r\n *\r\n * If one or more of those conditions are false, this function will return `null`.\r\n *\r\n * @param webId The WebID of which to check whether it is the Pod Owner's.\r\n * @param resource A Resource that contains information about the owner of the Pod it is in.\r\n * @returns Whether the given WebID is the Pod Owner's, if the Pod Owner is exposed, or `null` if it is not exposed.\r\n * @since 0.6.0\r\n */\r\nfunction isPodOwner(webId, resource) {\r\n const podOwner = getPodOwner(resource);\r\n if (typeof podOwner !== \"string\") {\r\n return null;\r\n }\r\n return podOwner === webId;\r\n}\r\n/**\r\n * Get the URLs of Resources linked to the given Resource.\r\n *\r\n * Solid servers can link Resources to each other. For example, in servers\r\n * implementing Web Access Control, Resources can have an Access Control List\r\n * Resource linked to it via the `acl` relation.\r\n *\r\n * @param resource A Resource fetched from a Solid Pod.\r\n * @returns The URLs of Resources linked to the given Resource, indexed by the key that links them.\r\n * @since 1.7.0\r\n */\r\nfunction getLinkedResourceUrlAll(resource) {\r\n return resource.internal_resourceInfo.linkedResources;\r\n}\r\n/**\r\n * Get what access the current user has to the given Resource.\r\n *\r\n * This function can tell you what access the current user has for the given\r\n * Resource, allowing you to e.g. determine that changes to it will be rejected\r\n * before attempting to do so.\r\n * Additionally, for servers adhering to the Web Access Control specification,\r\n * it will tell you what access unauthenticated users have to the given Resource.\r\n *\r\n * @param resource A Resource fetched from a Solid Pod.\r\n * @returns What access the current user and, if supported by the server, unauthenticated users have to the given Resource.\r\n * @since 1.7.0\r\n */\r\nfunction getEffectiveAccess(resource) {\r\n var _a, _b, _c, _d, _e, _f, _g;\r\n if (typeof resource.internal_resourceInfo.permissions === \"object\") {\r\n return {\r\n user: {\r\n read: resource.internal_resourceInfo.permissions.user.read,\r\n append: resource.internal_resourceInfo.permissions.user.append,\r\n write: resource.internal_resourceInfo.permissions.user.write,\r\n },\r\n public: {\r\n read: resource.internal_resourceInfo.permissions.public.read,\r\n append: resource.internal_resourceInfo.permissions.public.append,\r\n write: resource.internal_resourceInfo.permissions.public.write,\r\n },\r\n };\r\n }\r\n const linkedResourceUrls = getLinkedResourceUrlAll(resource);\r\n return {\r\n user: {\r\n read: (_b = (_a = linkedResourceUrls[_constants_mjs__WEBPACK_IMPORTED_MODULE_4__.acp.allow]) === null || _a === void 0 ? void 0 : _a.includes(_constants_mjs__WEBPACK_IMPORTED_MODULE_4__.acp.Read)) !== null && _b !== void 0 ? _b : false,\r\n append: (_e = (((_c = linkedResourceUrls[_constants_mjs__WEBPACK_IMPORTED_MODULE_4__.acp.allow]) === null || _c === void 0 ? void 0 : _c.includes(_constants_mjs__WEBPACK_IMPORTED_MODULE_4__.acp.Append)) ||\r\n ((_d = linkedResourceUrls[_constants_mjs__WEBPACK_IMPORTED_MODULE_4__.acp.allow]) === null || _d === void 0 ? void 0 : _d.includes(_constants_mjs__WEBPACK_IMPORTED_MODULE_4__.acp.Write)))) !== null && _e !== void 0 ? _e : false,\r\n write: (_g = (_f = linkedResourceUrls[_constants_mjs__WEBPACK_IMPORTED_MODULE_4__.acp.allow]) === null || _f === void 0 ? void 0 : _f.includes(_constants_mjs__WEBPACK_IMPORTED_MODULE_4__.acp.Write)) !== null && _g !== void 0 ? _g : false,\r\n },\r\n };\r\n}\r\n/**\r\n * Extends the regular JavaScript error object with access to the status code and status message.\r\n * @since 1.2.0\r\n */\r\nclass FetchError extends _interfaces_mjs__WEBPACK_IMPORTED_MODULE_2__.SolidClientError {\r\n constructor(message, errorResponse) {\r\n super(message);\r\n this.response = errorResponse;\r\n }\r\n get statusCode() {\r\n return this.response.status;\r\n }\r\n get statusText() {\r\n return this.response.statusText;\r\n }\r\n}\n\n\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client/dist/resource/resource.mjs?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client/dist/resource/solidDataset.mjs": +/*!**************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client/dist/resource/solidDataset.mjs ***! + \**************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"changeLogAsMarkdown\": () => (/* binding */ changeLogAsMarkdown),\n/* harmony export */ \"createContainerAt\": () => (/* binding */ createContainerAt),\n/* harmony export */ \"createContainerInContainer\": () => (/* binding */ createContainerInContainer),\n/* harmony export */ \"createSolidDataset\": () => (/* binding */ createSolidDataset),\n/* harmony export */ \"deleteContainer\": () => (/* binding */ deleteContainer),\n/* harmony export */ \"deleteSolidDataset\": () => (/* binding */ deleteSolidDataset),\n/* harmony export */ \"getContainedResourceUrlAll\": () => (/* binding */ getContainedResourceUrlAll),\n/* harmony export */ \"getSolidDataset\": () => (/* binding */ getSolidDataset),\n/* harmony export */ \"internal_NSS_CREATE_CONTAINER_SPEC_NONCOMPLIANCE_DETECTION_ERROR_MESSAGE_TO_WORKAROUND_THEIR_ISSUE_1465\": () => (/* binding */ internal_NSS_CREATE_CONTAINER_SPEC_NONCOMPLIANCE_DETECTION_ERROR_MESSAGE_TO_WORKAROUND_THEIR_ISSUE_1465),\n/* harmony export */ \"responseToSolidDataset\": () => (/* binding */ responseToSolidDataset),\n/* harmony export */ \"saveSolidDatasetAt\": () => (/* binding */ saveSolidDatasetAt),\n/* harmony export */ \"saveSolidDatasetInContainer\": () => (/* binding */ saveSolidDatasetInContainer),\n/* harmony export */ \"solidDatasetAsMarkdown\": () => (/* binding */ solidDatasetAsMarkdown)\n/* harmony export */ });\n/* harmony import */ var _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../rdfjs.internal.mjs */ \"./node_modules/@inrupt/solid-client/dist/rdfjs.internal.mjs\");\n/* harmony import */ var _constants_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../constants.mjs */ \"./node_modules/@inrupt/solid-client/dist/constants.mjs\");\n/* harmony import */ var _formats_turtle_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../formats/turtle.mjs */ \"./node_modules/@inrupt/solid-client/dist/formats/turtle.mjs\");\n/* harmony import */ var _datatypes_mjs__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../datatypes.mjs */ \"./node_modules/@inrupt/solid-client/dist/datatypes.mjs\");\n/* harmony import */ var _interfaces_mjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../interfaces.mjs */ \"./node_modules/@inrupt/solid-client/dist/interfaces.mjs\");\n/* harmony import */ var _interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../interfaces.internal.mjs */ \"./node_modules/@inrupt/solid-client/dist/interfaces.internal.mjs\");\n/* harmony import */ var _resource_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./resource.mjs */ \"./node_modules/@inrupt/solid-client/dist/resource/resource.mjs\");\n/* harmony import */ var _resource_internal_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./resource.internal.mjs */ \"./node_modules/@inrupt/solid-client/dist/resource/resource.internal.mjs\");\n/* harmony import */ var _thing_thing_mjs__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../thing/thing.mjs */ \"./node_modules/@inrupt/solid-client/dist/thing/thing.mjs\");\n/* harmony import */ var _thing_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../thing/thing.internal.mjs */ \"./node_modules/@inrupt/solid-client/dist/thing/thing.internal.mjs\");\n/* harmony import */ var _thing_get_mjs__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../thing/get.mjs */ \"./node_modules/@inrupt/solid-client/dist/thing/get.mjs\");\n/* harmony import */ var _iri_internal_mjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./iri.internal.mjs */ \"./node_modules/@inrupt/solid-client/dist/resource/iri.internal.mjs\");\n/* harmony import */ var _rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../rdf.internal.mjs */ \"./node_modules/@inrupt/solid-client/dist/rdf.internal.mjs\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n/**\r\n * Copyright 2021 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"Software\"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n/**\r\n * Initialise a new [[SolidDataset]] in memory.\r\n *\r\n * @returns An empty [[SolidDataset]].\r\n */\r\nfunction createSolidDataset() {\r\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.freeze)({\r\n type: \"Dataset\",\r\n graphs: {\r\n default: {},\r\n },\r\n });\r\n}\r\n/**\r\n * @hidden This interface is not exposed yet until we've tried it out in practice.\r\n */\r\nasync function responseToSolidDataset(response, parseOptions = {}) {\r\n if ((0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isUnsuccessfulResponse)(response)) {\r\n throw new _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.FetchError(`Fetching the SolidDataset at [${response.url}] failed: [${response.status}] [${response.statusText}].`, response);\r\n }\r\n const resourceInfo = (0,_resource_mjs__WEBPACK_IMPORTED_MODULE_2__.responseToResourceInfo)(response);\r\n const parsers = Object.assign({ \"text/turtle\": (0,_formats_turtle_mjs__WEBPACK_IMPORTED_MODULE_3__.getTurtleParser)() }, parseOptions.parsers);\r\n const contentType = (0,_resource_mjs__WEBPACK_IMPORTED_MODULE_2__.getContentType)(resourceInfo);\r\n if (contentType === null) {\r\n throw new Error(`Could not determine the content type of the Resource at [${(0,_resource_mjs__WEBPACK_IMPORTED_MODULE_2__.getSourceUrl)(resourceInfo)}].`);\r\n }\r\n const mimeType = contentType.split(\";\")[0];\r\n const parser = parsers[mimeType];\r\n if (typeof parser === \"undefined\") {\r\n throw new Error(`The Resource at [${(0,_resource_mjs__WEBPACK_IMPORTED_MODULE_2__.getSourceUrl)(resourceInfo)}] has a MIME type of [${mimeType}], but the only parsers available are for the following MIME types: [${Object.keys(parsers).join(\", \")}].`);\r\n }\r\n const data = await response.text();\r\n const parsingPromise = new Promise((resolve, reject) => {\r\n let solidDataset = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.freeze)({\r\n graphs: (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.freeze)({ default: (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.freeze)({}) }),\r\n type: \"Dataset\",\r\n });\r\n // While Quads without Blank Nodes can be added to the SolidDataset as we\r\n // encounter them, to parse Quads with Blank Nodes, we'll have to wait until\r\n // we've seen all the Quads, so that we can reconcile equal Blank Nodes.\r\n const quadsWithBlankNodes = [];\r\n const allQuads = [];\r\n parser.onError((error) => {\r\n reject(new Error(`Encountered an error parsing the Resource at [${(0,_resource_mjs__WEBPACK_IMPORTED_MODULE_2__.getSourceUrl)(resourceInfo)}] with content type [${contentType}]: ${error}`));\r\n });\r\n parser.onQuad((quad) => {\r\n allQuads.push(quad);\r\n if (quad.subject.termType === \"BlankNode\" ||\r\n quad.object.termType === \"BlankNode\") {\r\n // Quads with Blank Nodes will be parsed when all Quads are known,\r\n // so that equal Blank Nodes can be reconciled:\r\n quadsWithBlankNodes.push(quad);\r\n }\r\n else {\r\n solidDataset = (0,_rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.addRdfJsQuadToDataset)(solidDataset, quad);\r\n }\r\n });\r\n parser.onComplete(() => {\r\n // Some Blank Nodes only serve to use a set of Quads as the Object for a\r\n // single Subject. Those Quads will be added to the SolidDataset when\r\n // their Subject's Blank Node is encountered in the Object position.\r\n const chainBlankNodes = (0,_rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.getChainBlankNodes)(quadsWithBlankNodes);\r\n const quadsWithoutChainBlankNodeSubjects = quadsWithBlankNodes.filter((quad) => chainBlankNodes.every((chainBlankNode) => !chainBlankNode.equals(quad.subject)));\r\n solidDataset = quadsWithoutChainBlankNodeSubjects.reduce((datasetAcc, quad) => (0,_rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.addRdfJsQuadToDataset)(datasetAcc, quad, {\r\n otherQuads: allQuads,\r\n chainBlankNodes: chainBlankNodes,\r\n }), solidDataset);\r\n const solidDatasetWithResourceInfo = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.freeze)(Object.assign(Object.assign({}, solidDataset), resourceInfo));\r\n resolve(solidDatasetWithResourceInfo);\r\n });\r\n parser.parse(data, resourceInfo);\r\n });\r\n return await parsingPromise;\r\n}\r\n/**\r\n * Fetch a SolidDataset from the given URL. Currently requires the SolidDataset to be available as [Turtle](https://www.w3.org/TR/turtle/).\r\n *\r\n * @param url URL to fetch a [[SolidDataset]] from.\r\n * @param options Optional parameter `options.fetch`: An alternative `fetch` function to make the HTTP request, compatible with the browser-native [fetch API](https://developer.mozilla.org/docs/Web/API/WindowOrWorkerGlobalScope/fetch#parameters).\r\n * @returns Promise resolving to a [[SolidDataset]] containing the data at the given Resource, or rejecting if fetching it failed.\r\n */\r\nasync function getSolidDataset(url, options = _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_defaultFetchOptions) {\r\n var _a;\r\n url = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.internal_toIriString)(url);\r\n const config = Object.assign(Object.assign({}, _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_defaultFetchOptions), options);\r\n const parserContentTypes = Object.keys((_a = options.parsers) !== null && _a !== void 0 ? _a : {});\r\n const acceptedContentTypes = parserContentTypes.length > 0\r\n ? parserContentTypes.join(\", \")\r\n : \"text/turtle\";\r\n const response = await config.fetch(url, {\r\n headers: {\r\n Accept: acceptedContentTypes,\r\n },\r\n });\r\n if ((0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isUnsuccessfulResponse)(response)) {\r\n throw new _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.FetchError(`Fetching the Resource at [${url}] failed: [${response.status}] [${response.statusText}].`, response);\r\n }\r\n const solidDataset = await responseToSolidDataset(response, options);\r\n return solidDataset;\r\n}\r\n/**\r\n * Create a SPARQL UPDATE Patch request from a [[SolidDataset]] with a changelog.\r\n * @param solidDataset the [[SolidDataset]] that has been locally updated, and that should be persisted.\r\n * @returns an HTTP PATCH request configuration object, aligned with the [fetch API](https://developer.mozilla.org/docs/Web/API/WindowOrWorkerGlobalScope/fetch#parameters), containing a SPARQL UPDATE.\r\n * @hidden\r\n */\r\nasync function prepareSolidDatasetUpdate(solidDataset) {\r\n const deleteStatement = solidDataset.internal_changeLog.deletions.length > 0\r\n ? `DELETE DATA {${(await (0,_formats_turtle_mjs__WEBPACK_IMPORTED_MODULE_3__.triplesToTurtle)(solidDataset.internal_changeLog.deletions.map(getNamedNodesForLocalNodes))).trim()}};`\r\n : \"\";\r\n const insertStatement = solidDataset.internal_changeLog.additions.length > 0\r\n ? `INSERT DATA {${(await (0,_formats_turtle_mjs__WEBPACK_IMPORTED_MODULE_3__.triplesToTurtle)(solidDataset.internal_changeLog.additions.map(getNamedNodesForLocalNodes))).trim()}};`\r\n : \"\";\r\n return {\r\n method: \"PATCH\",\r\n body: `${deleteStatement} ${insertStatement}`,\r\n headers: {\r\n \"Content-Type\": \"application/sparql-update\",\r\n },\r\n };\r\n}\r\n/**\r\n * Create a Put request to write a locally created [[SolidDataset]] to a Pod.\r\n * @param solidDataset the [[SolidDataset]] that has been locally updated, and that should be persisted.\r\n * @returns an HTTP PUT request configuration object, aligned with the [fetch API](https://developer.mozilla.org/docs/Web/API/WindowOrWorkerGlobalScope/fetch#parameters), containing a serialization of the [[SolidDataset]].\r\n * @hidden\r\n */\r\nasync function prepareSolidDatasetCreation(solidDataset) {\r\n return {\r\n method: \"PUT\",\r\n body: await (0,_formats_turtle_mjs__WEBPACK_IMPORTED_MODULE_3__.triplesToTurtle)((0,_rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.toRdfJsQuads)(solidDataset).map(getNamedNodesForLocalNodes)),\r\n headers: {\r\n \"Content-Type\": \"text/turtle\",\r\n \"If-None-Match\": \"*\",\r\n Link: `<${_constants_mjs__WEBPACK_IMPORTED_MODULE_6__.ldp.Resource}>; rel=\"type\"`,\r\n },\r\n };\r\n}\r\n/**\r\n * Given a SolidDataset, store it in a Solid Pod (overwriting the existing data at the given URL).\r\n *\r\n * A SolidDataset keeps track of the data changes compared to the data in the Pod; i.e.,\r\n * the changelog tracks both the old value and new values of the property being modified. This\r\n * function applies the changes to the current SolidDataset. If the old value specified in the\r\n * changelog does not correspond to the value currently in the Pod, this function will throw an\r\n * error.\r\n * The SolidDataset returned by this function will contain the data sent to the Pod, and a ChangeLog\r\n * up-to-date with the saved data. Note that if the data on the server was modified in between the\r\n * first fetch and saving it, the updated data will not be reflected in the returned SolidDataset.\r\n * To make sure you have the latest data, call [[getSolidDataset]] again after saving the data.\r\n *\r\n * The Solid server will create any intermediary Containers that do not exist yet, so they do not\r\n * need to be created in advance. For example, if the target URL is\r\n * https://example.pod/container/resource and https://example.pod/container/ does not exist yet,\r\n * it will exist after this function resolves successfully.\r\n *\r\n * @param url URL to save `solidDataset` to.\r\n * @param solidDataset The [[SolidDataset]] to save.\r\n * @param options Optional parameter `options.fetch`: An alternative `fetch` function to make the HTTP request, compatible with the browser-native [fetch API](https://developer.mozilla.org/docs/Web/API/WindowOrWorkerGlobalScope/fetch#parameters).\r\n * @returns A Promise resolving to a [[SolidDataset]] containing the stored data, or rejecting if saving it failed.\r\n */\r\nasync function saveSolidDatasetAt(url, solidDataset, options = _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_defaultFetchOptions) {\r\n url = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.internal_toIriString)(url);\r\n const config = Object.assign(Object.assign({}, _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_defaultFetchOptions), options);\r\n const datasetWithChangelog = (0,_thing_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_7__.internal_withChangeLog)(solidDataset);\r\n const requestInit = isUpdate(datasetWithChangelog, url)\r\n ? await prepareSolidDatasetUpdate(datasetWithChangelog)\r\n : await prepareSolidDatasetCreation(datasetWithChangelog);\r\n const response = await config.fetch(url, requestInit);\r\n if ((0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isUnsuccessfulResponse)(response)) {\r\n const diagnostics = isUpdate(datasetWithChangelog, url)\r\n ? \"The changes that were sent to the Pod are listed below.\\n\\n\" +\r\n changeLogAsMarkdown(datasetWithChangelog)\r\n : \"The SolidDataset that was sent to the Pod is listed below.\\n\\n\" +\r\n solidDatasetAsMarkdown(datasetWithChangelog);\r\n throw new _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.FetchError(`Storing the Resource at [${url}] failed: [${response.status}] [${response.statusText}].\\n\\n` +\r\n diagnostics, response);\r\n }\r\n const resourceInfo = Object.assign(Object.assign({}, (0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_parseResourceInfo)(response)), { isRawData: false });\r\n const storedDataset = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.freeze)(Object.assign(Object.assign({}, solidDataset), { internal_changeLog: { additions: [], deletions: [] }, internal_resourceInfo: resourceInfo }));\r\n const storedDatasetWithResolvedIris = resolveLocalIrisInSolidDataset(storedDataset);\r\n return storedDatasetWithResolvedIris;\r\n}\r\n/**\r\n * Deletes the SolidDataset at a given URL.\r\n *\r\n * @param file The (URL of the) SolidDataset to delete\r\n * @since 0.6.0\r\n */\r\nasync function deleteSolidDataset(solidDataset, options = _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_defaultFetchOptions) {\r\n const config = Object.assign(Object.assign({}, _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_defaultFetchOptions), options);\r\n const url = (0,_interfaces_mjs__WEBPACK_IMPORTED_MODULE_8__.hasResourceInfo)(solidDataset)\r\n ? (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.internal_toIriString)((0,_resource_mjs__WEBPACK_IMPORTED_MODULE_2__.getSourceUrl)(solidDataset))\r\n : (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.internal_toIriString)(solidDataset);\r\n const response = await config.fetch(url, { method: \"DELETE\" });\r\n if ((0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isUnsuccessfulResponse)(response)) {\r\n throw new _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.FetchError(`Deleting the SolidDataset at [${url}] failed: [${response.status}] [${response.statusText}].`, response);\r\n }\r\n}\r\n/**\r\n * Create an empty Container at the given URL.\r\n *\r\n * Throws an error if creating the Container failed, e.g. because the current user does not have\r\n * permissions to, or because the Container already exists.\r\n *\r\n * Note that a Solid server will automatically create the necessary Containers when storing a\r\n * Resource; i.e. there is no need to call this function if it is immediately followed by\r\n * [[saveSolidDatasetAt]] or [[overwriteFile]].\r\n *\r\n * @param url URL of the empty Container that is to be created.\r\n * @param options Optional parameter `options.fetch`: An alternative `fetch` function to make the HTTP request, compatible with the browser-native [fetch API](https://developer.mozilla.org/docs/Web/API/WindowOrWorkerGlobalScope/fetch#parameters).\r\n * @since 0.2.0\r\n */\r\nasync function createContainerAt(url, options = _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_defaultFetchOptions) {\r\n url = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.internal_toIriString)(url);\r\n url = url.endsWith(\"/\") ? url : url + \"/\";\r\n const config = Object.assign(Object.assign({}, _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_defaultFetchOptions), options);\r\n const response = await config.fetch(url, {\r\n method: \"PUT\",\r\n headers: {\r\n Accept: \"text/turtle\",\r\n \"Content-Type\": \"text/turtle\",\r\n \"If-None-Match\": \"*\",\r\n // This header should not be required to create a Container,\r\n // but ESS currently expects it:\r\n Link: `<${_constants_mjs__WEBPACK_IMPORTED_MODULE_6__.ldp.BasicContainer}>; rel=\"type\"`,\r\n },\r\n });\r\n if ((0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isUnsuccessfulResponse)(response)) {\r\n if (response.status === 409 &&\r\n response.statusText === \"Conflict\" &&\r\n (await response.text()).trim() ===\r\n internal_NSS_CREATE_CONTAINER_SPEC_NONCOMPLIANCE_DETECTION_ERROR_MESSAGE_TO_WORKAROUND_THEIR_ISSUE_1465) {\r\n return createContainerWithNssWorkaroundAt(url, options);\r\n }\r\n throw new _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.FetchError(`Creating the empty Container at [${url}] failed: [${response.status}] [${response.statusText}].`, response);\r\n }\r\n const resourceInfo = (0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_parseResourceInfo)(response);\r\n const containerDataset = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.freeze)(Object.assign(Object.assign({}, createSolidDataset()), { internal_changeLog: { additions: [], deletions: [] }, internal_resourceInfo: resourceInfo }));\r\n return containerDataset;\r\n}\r\n/**\r\n * Unfortunately Node Solid Server does not confirm to the Solid spec when it comes to Container\r\n * creation. When we make the (valid, according to the Solid protocol) request to create a\r\n * Container, NSS responds with the following exact error message. Thus, when we encounter exactly\r\n * this message, we use an NSS-specific workaround ([[createContainerWithNssWorkaroundAt]]). Both\r\n * this constant and that workaround should be removed once the NSS issue has been fixed and\r\n * no versions of NSS with the issue are in common use/supported anymore.\r\n *\r\n * @see https://github.com/solid/node-solid-server/issues/1465\r\n * @internal\r\n */\r\nconst internal_NSS_CREATE_CONTAINER_SPEC_NONCOMPLIANCE_DETECTION_ERROR_MESSAGE_TO_WORKAROUND_THEIR_ISSUE_1465 = \"Can't write file: PUT not supported on containers, use POST instead\";\r\n/**\r\n * Unfortunately Node Solid Server does not confirm to the Solid spec when it comes to Container\r\n * creation. As a workaround, we create a dummy file _inside_ the desired Container (which should\r\n * create the desired Container on the fly), and then delete it again.\r\n *\r\n * @see https://github.com/solid/node-solid-server/issues/1465\r\n */\r\nconst createContainerWithNssWorkaroundAt = async (url, options) => {\r\n url = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.internal_toIriString)(url);\r\n const config = Object.assign(Object.assign({}, _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_defaultFetchOptions), options);\r\n let existingContainer;\r\n try {\r\n existingContainer = await (0,_resource_mjs__WEBPACK_IMPORTED_MODULE_2__.getResourceInfo)(url, options);\r\n }\r\n catch (e) {\r\n // To create the Container, we'd want it to not exist yet. In other words, we'd expect to get\r\n // a 404 error here in the happy path - so do nothing if that's the case.\r\n if (!(e instanceof _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.FetchError) || e.statusCode !== 404) {\r\n // (But if we get an error other than a 404, just throw that error like we usually would.)\r\n throw e;\r\n }\r\n }\r\n if (typeof existingContainer !== \"undefined\") {\r\n throw new Error(`The Container at [${url}] already exists, and therefore cannot be created again.`);\r\n }\r\n const dummyUrl = url + \".dummy\";\r\n const createResponse = await config.fetch(dummyUrl, {\r\n method: \"PUT\",\r\n headers: {\r\n Accept: \"text/turtle\",\r\n \"Content-Type\": \"text/turtle\",\r\n },\r\n });\r\n if ((0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isUnsuccessfulResponse)(createResponse)) {\r\n throw new _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.FetchError(`Creating the empty Container at [${url}] failed: [${createResponse.status}] [${createResponse.statusText}].`, createResponse);\r\n }\r\n await config.fetch(dummyUrl, { method: \"DELETE\" });\r\n const containerInfoResponse = await config.fetch(url, { method: \"HEAD\" });\r\n const resourceInfo = (0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_parseResourceInfo)(containerInfoResponse);\r\n const containerDataset = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.freeze)(Object.assign(Object.assign({}, createSolidDataset()), { internal_changeLog: { additions: [], deletions: [] }, internal_resourceInfo: resourceInfo }));\r\n return containerDataset;\r\n};\r\nfunction isSourceIriEqualTo(dataset, iri) {\r\n return ((0,_iri_internal_mjs__WEBPACK_IMPORTED_MODULE_9__.normalizeServerSideIri)(dataset.internal_resourceInfo.sourceIri) ===\r\n (0,_iri_internal_mjs__WEBPACK_IMPORTED_MODULE_9__.normalizeServerSideIri)(iri));\r\n}\r\nfunction isUpdate(solidDataset, url) {\r\n return ((0,_interfaces_mjs__WEBPACK_IMPORTED_MODULE_8__.hasChangelog)(solidDataset) &&\r\n (0,_interfaces_mjs__WEBPACK_IMPORTED_MODULE_8__.hasResourceInfo)(solidDataset) &&\r\n typeof solidDataset.internal_resourceInfo.sourceIri === \"string\" &&\r\n isSourceIriEqualTo(solidDataset, url));\r\n}\r\n/**\r\n * Given a SolidDataset, store it in a Solid Pod in a new Resource inside a Container.\r\n *\r\n * The Container at the given URL should already exist; if it does not, you can initialise it first\r\n * using [[createContainerAt]], or directly save the SolidDataset at the desired location using\r\n * [[saveSolidDatasetAt]].\r\n *\r\n * This function is primarily useful if the current user does not have access to change existing files in\r\n * a Container, but is allowed to add new files; in other words, they have Append, but not Write\r\n * access to a Container. This is useful in situations where someone wants to allow others to,\r\n * for example, send notifications to their Pod, but not to view or delete existing notifications.\r\n * You can pass a suggestion for the new Resource's name, but the server may decide to give it\r\n * another name — for example, if a Resource with that name already exists inside the given\r\n * Container.\r\n * If the user does have access to write directly to a given location, [[saveSolidDatasetAt]]\r\n * will do the job just fine, and does not require the parent Container to exist in advance.\r\n *\r\n * @param containerUrl URL of the Container in which to create a new Resource.\r\n * @param solidDataset The [[SolidDataset]] to save to a new Resource in the given Container.\r\n * @param options Optional parameter `options.fetch`: An alternative `fetch` function to make the HTTP request, compatible with the browser-native [fetch API](https://developer.mozilla.org/docs/Web/API/WindowOrWorkerGlobalScope/fetch#parameters).\r\n * @returns A Promise resolving to a [[SolidDataset]] containing the saved data. The Promise rejects if the save failed.\r\n */\r\nasync function saveSolidDatasetInContainer(containerUrl, solidDataset, options = _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_defaultFetchOptions) {\r\n const config = Object.assign(Object.assign({}, _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_defaultFetchOptions), options);\r\n containerUrl = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.internal_toIriString)(containerUrl);\r\n const rawTurtle = await (0,_formats_turtle_mjs__WEBPACK_IMPORTED_MODULE_3__.triplesToTurtle)((0,_rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.toRdfJsQuads)(solidDataset).map(getNamedNodesForLocalNodes));\r\n const headers = {\r\n \"Content-Type\": \"text/turtle\",\r\n Link: `<${_constants_mjs__WEBPACK_IMPORTED_MODULE_6__.ldp.Resource}>; rel=\"type\"`,\r\n };\r\n if (options.slugSuggestion) {\r\n headers.slug = options.slugSuggestion;\r\n }\r\n const response = await config.fetch(containerUrl, {\r\n method: \"POST\",\r\n body: rawTurtle,\r\n headers: headers,\r\n });\r\n if ((0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isUnsuccessfulResponse)(response)) {\r\n throw new _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.FetchError(`Storing the Resource in the Container at [${containerUrl}] failed: [${response.status}] [${response.statusText}].\\n\\n` +\r\n \"The SolidDataset that was sent to the Pod is listed below.\\n\\n\" +\r\n solidDatasetAsMarkdown(solidDataset), response);\r\n }\r\n const locationHeader = response.headers.get(\"Location\");\r\n if (locationHeader === null) {\r\n throw new Error(\"Could not determine the location of the newly saved SolidDataset.\");\r\n }\r\n const resourceIri = new URL(locationHeader, response.url).href;\r\n const resourceInfo = {\r\n internal_resourceInfo: {\r\n isRawData: false,\r\n sourceIri: resourceIri,\r\n },\r\n };\r\n const resourceWithResourceInfo = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.freeze)(Object.assign(Object.assign({}, solidDataset), resourceInfo));\r\n const resourceWithResolvedIris = resolveLocalIrisInSolidDataset(resourceWithResourceInfo);\r\n return resourceWithResolvedIris;\r\n}\r\n/**\r\n * Create an empty Container inside the Container at the given URL.\r\n *\r\n * Throws an error if creating the Container failed, e.g. because the current user does not have\r\n * permissions to.\r\n *\r\n * The Container in which to create the new Container should itself already exist.\r\n *\r\n * This function is primarily useful if the current user does not have access to change existing files in\r\n * a Container, but is allowed to add new files; in other words, they have Append, but not Write\r\n * access to a Container. This is useful in situations where someone wants to allow others to,\r\n * for example, send notifications to their Pod, but not to view or delete existing notifications.\r\n * You can pass a suggestion for the new Resource's name, but the server may decide to give it\r\n * another name — for example, if a Resource with that name already exists inside the given\r\n * Container.\r\n * If the user does have access to write directly to a given location, [[createContainerAt]]\r\n * will do the job just fine, and does not require the parent Container to exist in advance.\r\n *\r\n * @param containerUrl URL of the Container in which the empty Container is to be created.\r\n * @param options Optional parameter `options.fetch`: An alternative `fetch` function to make the HTTP request, compatible with the browser-native [fetch API](https://developer.mozilla.org/docs/Web/API/WindowOrWorkerGlobalScope/fetch#parameters).\r\n * @since 0.2.0\r\n */\r\nasync function createContainerInContainer(containerUrl, options = _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_defaultFetchOptions) {\r\n containerUrl = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.internal_toIriString)(containerUrl);\r\n const config = Object.assign(Object.assign({}, _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_defaultFetchOptions), options);\r\n const headers = {\r\n \"Content-Type\": \"text/turtle\",\r\n Link: `<${_constants_mjs__WEBPACK_IMPORTED_MODULE_6__.ldp.BasicContainer}>; rel=\"type\"`,\r\n };\r\n if (options.slugSuggestion) {\r\n headers.slug = options.slugSuggestion;\r\n }\r\n const response = await config.fetch(containerUrl, {\r\n method: \"POST\",\r\n headers: headers,\r\n });\r\n if ((0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isUnsuccessfulResponse)(response)) {\r\n throw new _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.FetchError(`Creating an empty Container in the Container at [${containerUrl}] failed: [${response.status}] [${response.statusText}].`, response);\r\n }\r\n const locationHeader = response.headers.get(\"Location\");\r\n if (locationHeader === null) {\r\n throw new Error(\"Could not determine the location of the newly created Container.\");\r\n }\r\n const resourceIri = new URL(locationHeader, response.url).href;\r\n const resourceInfo = {\r\n internal_resourceInfo: {\r\n isRawData: false,\r\n sourceIri: resourceIri,\r\n },\r\n };\r\n const resourceWithResourceInfo = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.freeze)(Object.assign(Object.assign({}, createSolidDataset()), resourceInfo));\r\n return resourceWithResourceInfo;\r\n}\r\n/**\r\n * Deletes the Container at a given URL.\r\n *\r\n * @param file The (URL of the) Container to delete\r\n * @since 0.6.0\r\n */\r\nasync function deleteContainer(container, options = _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_defaultFetchOptions) {\r\n const url = (0,_interfaces_mjs__WEBPACK_IMPORTED_MODULE_8__.hasResourceInfo)(container)\r\n ? (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.internal_toIriString)((0,_resource_mjs__WEBPACK_IMPORTED_MODULE_2__.getSourceUrl)(container))\r\n : (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.internal_toIriString)(container);\r\n if (!(0,_resource_mjs__WEBPACK_IMPORTED_MODULE_2__.isContainer)(container)) {\r\n throw new Error(`You're trying to delete the Container at [${url}], but Container URLs should end in a \\`/\\`. Are you sure this is a Container?`);\r\n }\r\n const config = Object.assign(Object.assign({}, _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_defaultFetchOptions), options);\r\n const response = await config.fetch(url, { method: \"DELETE\" });\r\n if ((0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isUnsuccessfulResponse)(response)) {\r\n throw new _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.FetchError(`Deleting the Container at [${url}] failed: [${response.status}] [${response.statusText}].`, response);\r\n }\r\n}\r\n/**\r\n * Given a [[SolidDataset]] representing a Container (see [[isContainer]]), fetch the URLs of all\r\n * contained resources.\r\n * If the solidDataset given is not a container, or is missing resourceInfo, throw an error.\r\n *\r\n * @param solidDataset The container from which to fetch all contained Resource URLs.\r\n * @returns A list of URLs, each of which points to a contained Resource of the given SolidDataset.\r\n * @since 1.3.0\r\n */\r\nfunction getContainedResourceUrlAll(solidDataset) {\r\n const container = (0,_thing_thing_mjs__WEBPACK_IMPORTED_MODULE_10__.getThing)(solidDataset, (0,_resource_mjs__WEBPACK_IMPORTED_MODULE_2__.getSourceUrl)(solidDataset));\r\n // See https://www.w3.org/TR/2015/REC-ldp-20150226/#h-ldpc-http_post:\r\n // > a containment triple MUST be added to the state of the LDPC whose subject is the LDPC URI,\r\n // > whose predicate is ldp:contains and whose object is the URI for the newly created document\r\n return container !== null ? (0,_thing_get_mjs__WEBPACK_IMPORTED_MODULE_11__.getIriAll)(container, _constants_mjs__WEBPACK_IMPORTED_MODULE_6__.ldp.contains) : [];\r\n}\r\n/**\r\n * Gets a human-readable representation of the given SolidDataset to aid debugging.\r\n *\r\n * Note that changes to the exact format of the return value are not considered a breaking change;\r\n * it is intended to aid in debugging, not as a serialisation method that can be reliably parsed.\r\n *\r\n * @param solidDataset The [[SolidDataset]] to get a human-readable representation of.\r\n * @since 0.3.0\r\n */\r\nfunction solidDatasetAsMarkdown(solidDataset) {\r\n let readableSolidDataset = \"\";\r\n if ((0,_interfaces_mjs__WEBPACK_IMPORTED_MODULE_8__.hasResourceInfo)(solidDataset)) {\r\n readableSolidDataset += `# SolidDataset: ${(0,_resource_mjs__WEBPACK_IMPORTED_MODULE_2__.getSourceUrl)(solidDataset)}\\n`;\r\n }\r\n else {\r\n readableSolidDataset += `# SolidDataset (no URL yet)\\n`;\r\n }\r\n const things = (0,_thing_thing_mjs__WEBPACK_IMPORTED_MODULE_10__.getThingAll)(solidDataset);\r\n if (things.length === 0) {\r\n readableSolidDataset += \"\\n\\n\";\r\n }\r\n else {\r\n things.forEach((thing) => {\r\n readableSolidDataset += \"\\n\" + (0,_thing_thing_mjs__WEBPACK_IMPORTED_MODULE_10__.thingAsMarkdown)(thing);\r\n if ((0,_interfaces_mjs__WEBPACK_IMPORTED_MODULE_8__.hasChangelog)(solidDataset)) {\r\n readableSolidDataset +=\r\n \"\\n\" + getReadableChangeLogSummary(solidDataset, thing) + \"\\n\";\r\n }\r\n });\r\n }\r\n return readableSolidDataset;\r\n}\r\n/**\r\n * Gets a human-readable representation of the local changes to a Resource to aid debugging.\r\n *\r\n * Note that changes to the exact format of the return value are not considered a breaking change;\r\n * it is intended to aid in debugging, not as a serialisation method that can be reliably parsed.\r\n *\r\n * @param solidDataset The Resource of which to get a human-readable representation of the changes applied to it locally.\r\n * @since 0.3.0\r\n */\r\nfunction changeLogAsMarkdown(solidDataset) {\r\n if (!(0,_interfaces_mjs__WEBPACK_IMPORTED_MODULE_8__.hasResourceInfo)(solidDataset)) {\r\n return \"This is a newly initialized SolidDataset, so there is no source to compare it to.\";\r\n }\r\n if (!(0,_interfaces_mjs__WEBPACK_IMPORTED_MODULE_8__.hasChangelog)(solidDataset) ||\r\n (solidDataset.internal_changeLog.additions.length === 0 &&\r\n solidDataset.internal_changeLog.deletions.length === 0)) {\r\n return (`## Changes compared to ${(0,_resource_mjs__WEBPACK_IMPORTED_MODULE_2__.getSourceUrl)(solidDataset)}\\n\\n` +\r\n `This SolidDataset has not been modified since it was fetched from ${(0,_resource_mjs__WEBPACK_IMPORTED_MODULE_2__.getSourceUrl)(solidDataset)}.\\n`);\r\n }\r\n let readableChangeLog = `## Changes compared to ${(0,_resource_mjs__WEBPACK_IMPORTED_MODULE_2__.getSourceUrl)(solidDataset)}\\n`;\r\n const changeLogsByThingAndProperty = sortChangeLogByThingAndProperty(solidDataset);\r\n Object.keys(changeLogsByThingAndProperty).forEach((thingUrl) => {\r\n readableChangeLog += `\\n### Thing: ${thingUrl}\\n`;\r\n const changeLogByProperty = changeLogsByThingAndProperty[thingUrl];\r\n Object.keys(changeLogByProperty).forEach((propertyUrl) => {\r\n readableChangeLog += `\\nProperty: ${propertyUrl}\\n`;\r\n const deleted = changeLogByProperty[propertyUrl].deleted;\r\n const added = changeLogByProperty[propertyUrl].added;\r\n if (deleted.length > 0) {\r\n readableChangeLog += \"- Removed:\\n\";\r\n deleted.forEach((deletedValue) => (readableChangeLog += ` - ${(0,_thing_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_7__.internal_getReadableValue)(deletedValue)}\\n`));\r\n }\r\n if (added.length > 0) {\r\n readableChangeLog += \"- Added:\\n\";\r\n added.forEach((addedValue) => (readableChangeLog += ` - ${(0,_thing_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_7__.internal_getReadableValue)(addedValue)}\\n`));\r\n }\r\n });\r\n });\r\n return readableChangeLog;\r\n}\r\nfunction sortChangeLogByThingAndProperty(solidDataset) {\r\n const changeLogsByThingAndProperty = {};\r\n solidDataset.internal_changeLog.deletions.forEach((deletion) => {\r\n var _a, _b;\r\n var _c;\r\n const subjectNode = (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_12__.isLocalNode)(deletion.subject)\r\n ? /* istanbul ignore next: Unsaved deletions should be removed from the additions list instead, so this code path shouldn't be hit: */\r\n (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_12__.resolveIriForLocalNode)(deletion.subject, (0,_resource_mjs__WEBPACK_IMPORTED_MODULE_2__.getSourceUrl)(solidDataset))\r\n : deletion.subject;\r\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_12__.isNamedNode)(subjectNode) || !(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_12__.isNamedNode)(deletion.predicate)) {\r\n return;\r\n }\r\n const thingUrl = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.internal_toIriString)(subjectNode);\r\n const propertyUrl = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.internal_toIriString)(deletion.predicate);\r\n (_a = changeLogsByThingAndProperty[thingUrl]) !== null && _a !== void 0 ? _a : (changeLogsByThingAndProperty[thingUrl] = {});\r\n (_b = (_c = changeLogsByThingAndProperty[thingUrl])[propertyUrl]) !== null && _b !== void 0 ? _b : (_c[propertyUrl] = {\r\n added: [],\r\n deleted: [],\r\n });\r\n changeLogsByThingAndProperty[thingUrl][propertyUrl].deleted.push(deletion.object);\r\n });\r\n solidDataset.internal_changeLog.additions.forEach((addition) => {\r\n var _a, _b;\r\n var _c;\r\n const subjectNode = (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_12__.isLocalNode)(addition.subject)\r\n ? /* istanbul ignore next: setThing already resolves local Subjects when adding them, so this code path should never be hit. */\r\n (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_12__.resolveIriForLocalNode)(addition.subject, (0,_resource_mjs__WEBPACK_IMPORTED_MODULE_2__.getSourceUrl)(solidDataset))\r\n : addition.subject;\r\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_12__.isNamedNode)(subjectNode) || !(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_12__.isNamedNode)(addition.predicate)) {\r\n return;\r\n }\r\n const thingUrl = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.internal_toIriString)(subjectNode);\r\n const propertyUrl = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.internal_toIriString)(addition.predicate);\r\n (_a = changeLogsByThingAndProperty[thingUrl]) !== null && _a !== void 0 ? _a : (changeLogsByThingAndProperty[thingUrl] = {});\r\n (_b = (_c = changeLogsByThingAndProperty[thingUrl])[propertyUrl]) !== null && _b !== void 0 ? _b : (_c[propertyUrl] = {\r\n added: [],\r\n deleted: [],\r\n });\r\n changeLogsByThingAndProperty[thingUrl][propertyUrl].added.push(addition.object);\r\n });\r\n return changeLogsByThingAndProperty;\r\n}\r\nfunction getReadableChangeLogSummary(solidDataset, thing) {\r\n const subject = _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.DataFactory.namedNode(thing.url);\r\n const nrOfAdditions = solidDataset.internal_changeLog.additions.reduce((count, addition) => (addition.subject.equals(subject) ? count + 1 : count), 0);\r\n const nrOfDeletions = solidDataset.internal_changeLog.deletions.reduce((count, deletion) => (deletion.subject.equals(subject) ? count + 1 : count), 0);\r\n const additionString = nrOfAdditions === 1\r\n ? \"1 new value added\"\r\n : nrOfAdditions + \" new values added\";\r\n const deletionString = nrOfDeletions === 1 ? \"1 value removed\" : nrOfDeletions + \" values removed\";\r\n return `(${additionString} / ${deletionString})`;\r\n}\r\nfunction getNamedNodesForLocalNodes(quad) {\r\n const subject = (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_12__.isNamedNode)(quad.subject)\r\n ? getNamedNodeFromLocalNode(quad.subject)\r\n : /* istanbul ignore next: We don't allow non-NamedNodes as the Subject, so this code path should never be hit: */\r\n quad.subject;\r\n const object = (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_12__.isNamedNode)(quad.object)\r\n ? getNamedNodeFromLocalNode(quad.object)\r\n : quad.object;\r\n return _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.DataFactory.quad(subject, quad.predicate, object, quad.graph);\r\n}\r\nfunction getNamedNodeFromLocalNode(node) {\r\n if ((0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.isLocalNodeIri)(node.value)) {\r\n return _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.DataFactory.namedNode(\"#\" + (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.getLocalNodeName)(node.value));\r\n }\r\n return node;\r\n}\r\nfunction resolveLocalIrisInSolidDataset(solidDataset) {\r\n const resourceIri = (0,_resource_mjs__WEBPACK_IMPORTED_MODULE_2__.getSourceUrl)(solidDataset);\r\n const defaultGraph = solidDataset.graphs.default;\r\n const thingIris = Object.keys(defaultGraph);\r\n const updatedDefaultGraph = thingIris.reduce((graphAcc, thingIri) => {\r\n const resolvedThing = resolveLocalIrisInThing(graphAcc[thingIri], resourceIri);\r\n const resolvedThingIri = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.isLocalNodeIri)(thingIri)\r\n ? `${resourceIri}#${(0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.getLocalNodeName)(thingIri)}`\r\n : thingIri;\r\n const updatedGraph = Object.assign({}, graphAcc);\r\n delete updatedGraph[thingIri];\r\n updatedGraph[resolvedThingIri] = resolvedThing;\r\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.freeze)(updatedGraph);\r\n }, defaultGraph);\r\n const updatedGraphs = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.freeze)(Object.assign(Object.assign({}, solidDataset.graphs), { default: updatedDefaultGraph }));\r\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.freeze)(Object.assign(Object.assign({}, solidDataset), { graphs: updatedGraphs }));\r\n}\r\nfunction resolveLocalIrisInThing(thing, baseIri) {\r\n const predicateIris = Object.keys(thing.predicates);\r\n const updatedPredicates = predicateIris.reduce((predicatesAcc, predicateIri) => {\r\n var _a;\r\n const namedNodes = (_a = predicatesAcc[predicateIri].namedNodes) !== null && _a !== void 0 ? _a : [];\r\n if (namedNodes.every((namedNode) => !(0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.isLocalNodeIri)(namedNode))) {\r\n // This Predicate has no local node Objects, so return it unmodified:\r\n return predicatesAcc;\r\n }\r\n const updatedNamedNodes = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.freeze)(namedNodes.map((namedNode) => (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.isLocalNodeIri)(namedNode)\r\n ? `${baseIri}#${(0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.getLocalNodeName)(namedNode)}`\r\n : namedNode));\r\n const updatedPredicate = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.freeze)(Object.assign(Object.assign({}, predicatesAcc[predicateIri]), { namedNodes: updatedNamedNodes }));\r\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.freeze)(Object.assign(Object.assign({}, predicatesAcc), { [predicateIri]: updatedPredicate }));\r\n }, thing.predicates);\r\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.freeze)(Object.assign(Object.assign({}, thing), { predicates: updatedPredicates, url: (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.isLocalNodeIri)(thing.url)\r\n ? `${baseIri}#${(0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.getLocalNodeName)(thing.url)}`\r\n : thing.url }));\r\n}\n\n\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client/dist/resource/solidDataset.mjs?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client/dist/thing/get.mjs": +/*!**************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client/dist/thing/get.mjs ***! + \**************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"getBoolean\": () => (/* binding */ getBoolean),\n/* harmony export */ \"getBooleanAll\": () => (/* binding */ getBooleanAll),\n/* harmony export */ \"getDate\": () => (/* binding */ getDate),\n/* harmony export */ \"getDateAll\": () => (/* binding */ getDateAll),\n/* harmony export */ \"getDatetime\": () => (/* binding */ getDatetime),\n/* harmony export */ \"getDatetimeAll\": () => (/* binding */ getDatetimeAll),\n/* harmony export */ \"getDecimal\": () => (/* binding */ getDecimal),\n/* harmony export */ \"getDecimalAll\": () => (/* binding */ getDecimalAll),\n/* harmony export */ \"getInteger\": () => (/* binding */ getInteger),\n/* harmony export */ \"getIntegerAll\": () => (/* binding */ getIntegerAll),\n/* harmony export */ \"getIri\": () => (/* binding */ getIri),\n/* harmony export */ \"getIriAll\": () => (/* binding */ getIriAll),\n/* harmony export */ \"getLiteral\": () => (/* binding */ getLiteral),\n/* harmony export */ \"getLiteralAll\": () => (/* binding */ getLiteralAll),\n/* harmony export */ \"getNamedNode\": () => (/* binding */ getNamedNode),\n/* harmony export */ \"getNamedNodeAll\": () => (/* binding */ getNamedNodeAll),\n/* harmony export */ \"getPropertyAll\": () => (/* binding */ getPropertyAll),\n/* harmony export */ \"getStringByLocaleAll\": () => (/* binding */ getStringByLocaleAll),\n/* harmony export */ \"getStringNoLocale\": () => (/* binding */ getStringNoLocale),\n/* harmony export */ \"getStringNoLocaleAll\": () => (/* binding */ getStringNoLocaleAll),\n/* harmony export */ \"getStringWithLocale\": () => (/* binding */ getStringWithLocale),\n/* harmony export */ \"getStringWithLocaleAll\": () => (/* binding */ getStringWithLocaleAll),\n/* harmony export */ \"getTerm\": () => (/* binding */ getTerm),\n/* harmony export */ \"getTermAll\": () => (/* binding */ getTermAll),\n/* harmony export */ \"getTime\": () => (/* binding */ getTime),\n/* harmony export */ \"getTimeAll\": () => (/* binding */ getTimeAll),\n/* harmony export */ \"getUrl\": () => (/* binding */ getUrl),\n/* harmony export */ \"getUrlAll\": () => (/* binding */ getUrlAll)\n/* harmony export */ });\n/* harmony import */ var _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../datatypes.mjs */ \"./node_modules/@inrupt/solid-client/dist/datatypes.mjs\");\n/* harmony import */ var _thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./thing.internal.mjs */ \"./node_modules/@inrupt/solid-client/dist/thing/thing.internal.mjs\");\n/* harmony import */ var _thing_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./thing.mjs */ \"./node_modules/@inrupt/solid-client/dist/thing/thing.mjs\");\n/* harmony import */ var _interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../interfaces.internal.mjs */ \"./node_modules/@inrupt/solid-client/dist/interfaces.internal.mjs\");\n/* harmony import */ var _rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../rdf.internal.mjs */ \"./node_modules/@inrupt/solid-client/dist/rdf.internal.mjs\");\n/* harmony import */ var _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../rdfjs.internal.mjs */ \"./node_modules/@inrupt/solid-client/dist/rdfjs.internal.mjs\");\n\n\n\n\n\n\n\n/**\r\n * Copyright 2021 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"Software\"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n/**\r\n * Returns the URLs of all Properties that the given [[Thing ]]has values for.b\r\n *\r\n * @param thing The [[Thing]] of which to get that Property URLs that have a value.\r\n * @returns The URLs of the Properties for which values are defined for the given Thing.\r\n * @hidden This is an advanced API that should not be needed for most Solid use cases. If you do find yourself needing this, please file a feature request sharing your use case.\r\n */\r\nfunction getPropertyAll(thing) {\r\n return Object.keys(thing.predicates).filter((predicate) => getTerm(thing, predicate) !== null);\r\n}\r\n/**\r\n * Returns the URL value of the specified Property from a [[Thing]].\r\n * If the Property is not present or its value is not of type URL, returns null.\r\n * If the Property has multiple URL values, returns one of its URL values.\r\n *\r\n * @param thing The [[Thing]] to read a URL value from.\r\n * @param property The Property whose URL value to return.\r\n * @returns A URL value for the given Property if present, or null if the Property is not present or the value is not of type URL.\r\n */\r\nfunction getUrl(thing, property) {\r\n var _a, _b, _c;\r\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\r\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isValidUrl)(property)) {\r\n throw new _thing_mjs__WEBPACK_IMPORTED_MODULE_2__.ValidPropertyUrlExpectedError(property);\r\n }\r\n const predicateUrl = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.internal_toIriString)(property);\r\n const firstUrl = (_c = (_b = (_a = thing.predicates[predicateUrl]) === null || _a === void 0 ? void 0 : _a.namedNodes) === null || _b === void 0 ? void 0 : _b[0]) !== null && _c !== void 0 ? _c : null;\r\n if (firstUrl === null) {\r\n return null;\r\n }\r\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.isLocalNodeIri)(firstUrl) ? `#${(0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.getLocalNodeName)(firstUrl)}` : firstUrl;\r\n}\r\n/** @hidden Alias of [[getUrl]] for those who prefer IRI terminology. */\r\nconst getIri = getUrl;\r\n/**\r\n * Returns the URL values of the specified Property from a [[Thing]].\r\n * If the Property is not present, returns an empty array.\r\n * If the Property's value is not of type URL, omits that value in the array.\r\n *\r\n * @param thing The [[Thing]] to read the URL values from.\r\n * @param property The Property whose URL values to return.\r\n * @returns An array of URL values for the given Property.\r\n */\r\nfunction getUrlAll(thing, property) {\r\n var _a, _b, _c;\r\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\r\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isValidUrl)(property)) {\r\n throw new _thing_mjs__WEBPACK_IMPORTED_MODULE_2__.ValidPropertyUrlExpectedError(property);\r\n }\r\n const predicateUrl = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.internal_toIriString)(property);\r\n return ((_c = (_b = (_a = thing.predicates[predicateUrl]) === null || _a === void 0 ? void 0 : _a.namedNodes) === null || _b === void 0 ? void 0 : _b.map((iri) => (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.isLocalNodeIri)(iri) ? `#${(0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.getLocalNodeName)(iri)}` : iri)) !== null && _c !== void 0 ? _c : []);\r\n}\r\n/** @hidden Alias of [[getUrlAll]] for those who prefer IRI terminology. */\r\nconst getIriAll = getUrlAll;\r\n/**\r\n * Returns the boolean value of the specified Property from a [[Thing]].\r\n * If the Property is not present or its value is not of type boolean, returns null.\r\n * If the Property has multiple boolean values, returns one of its values.\r\n *\r\n * @param thing The [[Thing]] to read a boolean value from.\r\n * @param property The Property whose boolean value to return.\r\n * @returns A boolean value for the given Property if present, or null if the Property is not present or the value is not of type boolean.\r\n */\r\nfunction getBoolean(thing, property) {\r\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\r\n const literalString = getLiteralOfType(thing, property, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.boolean);\r\n if (literalString === null) {\r\n return null;\r\n }\r\n return (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.deserializeBoolean)(literalString);\r\n}\r\n/**\r\n * Returns the boolean values of the specified Property from a [[Thing]].\r\n * If the Property is not present, returns an empty array.\r\n * If the Property's value is not of type boolean, omits that value in the array.\r\n *\r\n * @param thing The [[Thing]] to read the boolean values from.\r\n * @param property The Property whose boolean values to return.\r\n * @returns An array of boolean values for the given Property.\r\n */\r\nfunction getBooleanAll(thing, property) {\r\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\r\n const literalStrings = getLiteralAllOfType(thing, property, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.boolean);\r\n return literalStrings\r\n .map(_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.deserializeBoolean)\r\n .filter((possibleBoolean) => possibleBoolean !== null);\r\n}\r\n/**\r\n * Returns the datetime value of the specified Property from a [[Thing]].\r\n * If the Property is not present or its value is not of type datetime, returns null.\r\n * If the Property has multiple datetime values, returns one of its values.\r\n *\r\n * @param thing The [[Thing]] to read a datetime value from.\r\n * @param property The Property whose datetime value to return.\r\n * @returns A datetime value for the given Property if present, or null if the Property is not present or the value is not of type datetime.\r\n */\r\nfunction getDatetime(thing, property) {\r\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\r\n const literalString = getLiteralOfType(thing, property, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.dateTime);\r\n if (literalString === null) {\r\n return null;\r\n }\r\n return (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.deserializeDatetime)(literalString);\r\n}\r\n/**\r\n * Returns the datetime values of the specified Property from a [[Thing]].\r\n * If the Property is not present, returns an empty array.\r\n * If the Property's value is not of type datetime, omits that value in the array.\r\n *\r\n * @param thing The [[Thing]] to read the datetime values from.\r\n * @param property The Property whose datetime values to return.\r\n * @returns An array of datetime values for the given Property.\r\n */\r\nfunction getDatetimeAll(thing, property) {\r\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\r\n const literalStrings = getLiteralAllOfType(thing, property, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.dateTime);\r\n return literalStrings\r\n .map(_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.deserializeDatetime)\r\n .filter((potentialDatetime) => potentialDatetime !== null);\r\n}\r\n/**\r\n * Returns the date value of the specified Property from a [[Thing]].\r\n * If the Property is not present or its value is not of type date, returns null.\r\n * If the Property has multiple date values, returns one of its values.\r\n *\r\n * @param thing The [[Thing]] to read a date value from.\r\n * @param property The Property whose date value to return.\r\n * @returns A date value for the given Property if present, or null if the Property is not present or the value is not of type date.\r\n * @since 1.10.0\r\n */\r\nfunction getDate(thing, property) {\r\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\r\n const literalString = getLiteralOfType(thing, property, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.date);\r\n if (literalString === null) {\r\n return null;\r\n }\r\n return (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.deserializeDate)(literalString);\r\n}\r\n/**\r\n * Returns the date values of the specified Property from a [[Thing]].\r\n * If the Property is not present, returns an empty array.\r\n * If the Property's value is not of type date, omits that value in the array.\r\n *\r\n * @param thing The [[Thing]] to read the date values from.\r\n * @param property The Property whose date values to return.\r\n * @returns An array of date values for the given Property.\r\n * @since 1.10.0\r\n */\r\nfunction getDateAll(thing, property) {\r\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\r\n const literalStrings = getLiteralAllOfType(thing, property, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.date);\r\n return literalStrings\r\n .map(_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.deserializeDate)\r\n .filter((potentialDate) => potentialDate !== null);\r\n}\r\n/**\r\n * Returns the time value of the specified Property from a [[Thing]].\r\n * If the Property is not present or its value is not of type time, returns null.\r\n * If the Property has multiple time values, returns one of its values.\r\n *\r\n * @param thing The [[Thing]] to read a time value from.\r\n * @param property The Property whose time value to return.\r\n * @returns A time value for the given Property if present, or null if the Property is not present or the value is not of type time.\r\n * @since 1.10.0\r\n */\r\nfunction getTime(thing, property) {\r\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\r\n const literalString = getLiteralOfType(thing, property, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.time);\r\n if (literalString === null) {\r\n return null;\r\n }\r\n return (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.deserializeTime)(literalString);\r\n}\r\n/**\r\n * Returns the time values of the specified Property from a [[Thing]].\r\n * If the Property is not present, returns an empty array.\r\n * If the Property's value is not of type time, omits that value in the array.\r\n *\r\n * @param thing The [[Thing]] to read the time values from.\r\n * @param property The Property whose time values to return.\r\n * @returns An array of time values for the given Property.\r\n * @since 1.10.0\r\n */\r\nfunction getTimeAll(thing, property) {\r\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\r\n const literalStrings = getLiteralAllOfType(thing, property, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.time);\r\n return literalStrings\r\n .map(_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.deserializeTime)\r\n .filter((potentialTime) => potentialTime !== null);\r\n}\r\n/**\r\n * Returns the decimal value of the specified Property from a [[Thing]].\r\n * If the Property is not present or its value is not of type decimal, returns null.\r\n * If the Property has multiple decimal values, returns one of its values.\r\n *\r\n * @param thing The [[Thing]] to read a decimal value from.\r\n * @param property The Property whose decimal value to return.\r\n * @returns A decimal value for the given Property if present, or null if the Property is not present or the value is not of type decimal.\r\n */\r\nfunction getDecimal(thing, property) {\r\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\r\n const literalString = getLiteralOfType(thing, property, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.decimal);\r\n if (literalString === null) {\r\n return null;\r\n }\r\n return (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.deserializeDecimal)(literalString);\r\n}\r\n/**\r\n * Returns the decimal values of the specified Property from a [[Thing]].\r\n * If the Property is not present, returns an empty array.\r\n * If the Property's value is not of type decimal, omits that value in the array.\r\n *\r\n * @param thing The [[Thing]] to read the decimal values from.\r\n * @param property The Property whose decimal values to return.\r\n * @returns An array of decimal values for the given Property.\r\n */\r\nfunction getDecimalAll(thing, property) {\r\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\r\n const literalStrings = getLiteralAllOfType(thing, property, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.decimal);\r\n return literalStrings\r\n .map((literalString) => (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.deserializeDecimal)(literalString))\r\n .filter((potentialDecimal) => potentialDecimal !== null);\r\n}\r\n/**\r\n * Returns the integer value of the specified Property from a [[Thing]].\r\n * If the Property is not present or its value is not of type integer, returns null.\r\n * If the Property has multiple integer values, returns one of its values.\r\n *\r\n * @param thing The [[Thing]] to read an integer value from.\r\n * @param property The Property whose integer value to return.\r\n * @returns A integer value for the given Property if present, or null if the Property is not present or the value is not of type datetime.\r\n */\r\nfunction getInteger(thing, property) {\r\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\r\n const literalString = getLiteralOfType(thing, property, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.integer);\r\n if (literalString === null) {\r\n return null;\r\n }\r\n return (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.deserializeInteger)(literalString);\r\n}\r\n/**\r\n * Returns the integer values of the specified Property from a [[Thing]].\r\n * If the Property is not present, returns an empty array.\r\n * If the Property's value is not of type integer, omits that value in the array.\r\n *\r\n * @param thing The [[Thing]] to read the integer values from.\r\n * @param property The Property whose integer values to return.\r\n * @returns An array of integer values for the given Property.\r\n */\r\nfunction getIntegerAll(thing, property) {\r\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\r\n const literalStrings = getLiteralAllOfType(thing, property, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.integer);\r\n return literalStrings\r\n .map((literalString) => (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.deserializeInteger)(literalString))\r\n .filter((potentialInteger) => potentialInteger !== null);\r\n}\r\n/**\r\n * Returns the localized string value of the specified Property from a [[Thing]].\r\n * If the Property is not present as a string in the specified locale, returns null.\r\n * If the Property has multiple string values for the specified locale, returns one of its values.\r\n *\r\n * @param thing The [[Thing]] to read a localised string value from.\r\n * @param property The Property whose localised string value to return.\r\n * @param locale The desired locale for the string value.\r\n * @returns A localised string value for the given Property if present in the specified `locale`, or null otherwise.\r\n */\r\nfunction getStringWithLocale(thing, property, locale) {\r\n var _a, _b;\r\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\r\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isValidUrl)(property)) {\r\n throw new _thing_mjs__WEBPACK_IMPORTED_MODULE_2__.ValidPropertyUrlExpectedError(property);\r\n }\r\n const predicateIri = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.internal_toIriString)(property);\r\n const langStrings = (_b = (_a = thing.predicates[predicateIri]) === null || _a === void 0 ? void 0 : _a.langStrings) !== null && _b !== void 0 ? _b : {};\r\n const existingLocales = Object.keys(langStrings);\r\n const matchingLocale = existingLocales.find((existingLocale) => existingLocale.toLowerCase() === locale.toLowerCase() &&\r\n Array.isArray(langStrings[existingLocale]) &&\r\n langStrings[existingLocale].length > 0);\r\n return typeof matchingLocale === \"string\"\r\n ? langStrings[matchingLocale][0]\r\n : null;\r\n}\r\n/**\r\n * Returns the localized string values of the specified Property from a [[Thing]].\r\n * If the Property is not present, returns an empty array.\r\n * If the Property's value is not a string of the specified locale, omits that value in the array.\r\n *\r\n * @param thing The [[Thing]] to read the localised string values from.\r\n * @param property The Property whose localised string values to return.\r\n * @param locale The desired locale for the string values.\r\n * @returns An array of localised string values for the given Property.\r\n */\r\nfunction getStringWithLocaleAll(thing, property, locale) {\r\n var _a, _b;\r\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\r\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isValidUrl)(property)) {\r\n throw new _thing_mjs__WEBPACK_IMPORTED_MODULE_2__.ValidPropertyUrlExpectedError(property);\r\n }\r\n const predicateIri = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.internal_toIriString)(property);\r\n const langStrings = (_b = (_a = thing.predicates[predicateIri]) === null || _a === void 0 ? void 0 : _a.langStrings) !== null && _b !== void 0 ? _b : {};\r\n const existingLocales = Object.keys(langStrings);\r\n const matchingLocale = existingLocales.find((existingLocale) => existingLocale.toLowerCase() === locale.toLowerCase() &&\r\n Array.isArray(langStrings[existingLocale]) &&\r\n langStrings[existingLocale].length > 0);\r\n return typeof matchingLocale === \"string\"\r\n ? [...langStrings[matchingLocale]]\r\n : [];\r\n}\r\n/**\r\n * Returns all localized string values mapped by the locales for the specified property from the\r\n * specified [[Thing]] (explicitly filters out non-language string literals).\r\n *\r\n * @param thing The [[Thing]] to read the localised string values from.\r\n * @param property The Property whose localised string values to return.\r\n * @returns A Map of objects, keyed on locale with the value an array of string values (for that locale).\r\n */\r\nfunction getStringByLocaleAll(thing, property) {\r\n var _a, _b;\r\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\r\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isValidUrl)(property)) {\r\n throw new _thing_mjs__WEBPACK_IMPORTED_MODULE_2__.ValidPropertyUrlExpectedError(property);\r\n }\r\n const predicateIri = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.internal_toIriString)(property);\r\n const stringsByLocale = (_b = (_a = thing.predicates[predicateIri]) === null || _a === void 0 ? void 0 : _a.langStrings) !== null && _b !== void 0 ? _b : {};\r\n return new Map(Object.entries(stringsByLocale).map(([locale, values]) => [\r\n locale,\r\n [...values],\r\n ]));\r\n}\r\n/**\r\n * Returns the string value of the specified Property from a [[Thing]].\r\n * If the Property is not present or its value is not of type string, returns null.\r\n * If the Property has multiple string values, returns one of its values.\r\n *\r\n * @param thing The [[Thing]] to read a string value from.\r\n * @param property The Property whose string value to return.\r\n * @returns A string value for the given Property if present, or null if the Property is not present or the value is not of type string.\r\n */\r\nfunction getStringNoLocale(thing, property) {\r\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\r\n const literalString = getLiteralOfType(thing, property, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.string);\r\n return literalString;\r\n}\r\n/**\r\n * Returns the string values of the specified Property from a [[Thing]].\r\n * If the Property is not present, returns an empty array.\r\n * If the Property's value is not of type string, omits that value in the array.\r\n *\r\n * @param thing The [[Thing]] to read the string values from.\r\n * @param property The Property whose string values to return.\r\n * @returns An array of string values for the given Property.\r\n */\r\nfunction getStringNoLocaleAll(thing, property) {\r\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\r\n const literalStrings = getLiteralAllOfType(thing, property, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.string);\r\n return literalStrings;\r\n}\r\n/**\r\n * @param thing The [[Thing]] to read a NamedNode value from.\r\n * @param property The given Property for which you want the NamedNode value.\r\n * @returns A NamedNode value for the given Property, if present, or null otherwise.\r\n * @ignore This should not be needed due to the other get*() functions. If you do find yourself needing it, please file a feature request for your use case.\r\n * @see https://rdf.js.org/data-model-spec/#namednode-interface\r\n */\r\nfunction getNamedNode(thing, property) {\r\n const iriString = getIri(thing, property);\r\n if (iriString === null) {\r\n return null;\r\n }\r\n return _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.DataFactory.namedNode(iriString);\r\n}\r\n/**\r\n * @param thing The [[Thing]] to read the NamedNode values from.\r\n * @param property The given Property for which you want the NamedNode values.\r\n * @returns The NamedNode values for the given Property.\r\n * @ignore This should not be needed due to the other get*() functions. If you do find yourself needing it, please file a feature request for your use case.\r\n * @see https://rdf.js.org/data-model-spec/#namednode-interface\r\n */\r\nfunction getNamedNodeAll(thing, property) {\r\n const iriStrings = getIriAll(thing, property);\r\n return iriStrings.map((iriString) => _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.DataFactory.namedNode(iriString));\r\n}\r\n/**\r\n * @param thing The [[Thing]] to read a Literal value from.\r\n * @param property The given Property for which you want the Literal value.\r\n * @returns A Literal value for the given Property, if present, or null otherwise.\r\n * @ignore This should not be needed due to the other get*() functions. If you do find yourself needing it, please file a feature request for your use case.\r\n * @see https://rdf.js.org/data-model-spec/#literal-interface\r\n */\r\nfunction getLiteral(thing, property) {\r\n var _a, _b, _c, _d;\r\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\r\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isValidUrl)(property)) {\r\n throw new _thing_mjs__WEBPACK_IMPORTED_MODULE_2__.ValidPropertyUrlExpectedError(property);\r\n }\r\n const predicateIri = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.internal_toIriString)(property);\r\n const langStrings = (_b = (_a = thing.predicates[predicateIri]) === null || _a === void 0 ? void 0 : _a.langStrings) !== null && _b !== void 0 ? _b : {};\r\n const locales = Object.keys(langStrings);\r\n if (locales.length > 0) {\r\n const nonEmptyLocale = locales.find((locale) => Array.isArray(langStrings[locale]) && langStrings[locale].length > 0);\r\n if (typeof nonEmptyLocale === \"string\") {\r\n return _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.DataFactory.literal(langStrings[nonEmptyLocale][0], nonEmptyLocale);\r\n }\r\n }\r\n const otherLiterals = (_d = (_c = thing.predicates[predicateIri]) === null || _c === void 0 ? void 0 : _c.literals) !== null && _d !== void 0 ? _d : {};\r\n const dataTypes = Object.keys(otherLiterals);\r\n if (dataTypes.length > 0) {\r\n const nonEmptyDataType = dataTypes.find((dataType) => Array.isArray(otherLiterals[dataType]) &&\r\n otherLiterals[dataType].length > 0);\r\n if (typeof nonEmptyDataType === \"string\") {\r\n return _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.DataFactory.literal(otherLiterals[nonEmptyDataType][0], _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.DataFactory.namedNode(nonEmptyDataType));\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * @param thing The [[Thing]] to read the Literal values from.\r\n * @param property The given Property for which you want the Literal values.\r\n * @returns The Literal values for the given Property.\r\n * @ignore This should not be needed due to the other get*All() functions. If you do find yourself needing it, please file a feature request for your use case.\r\n * @see https://rdf.js.org/data-model-spec/#literal-interface\r\n */\r\nfunction getLiteralAll(thing, property) {\r\n var _a, _b, _c, _d;\r\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\r\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isValidUrl)(property)) {\r\n throw new _thing_mjs__WEBPACK_IMPORTED_MODULE_2__.ValidPropertyUrlExpectedError(property);\r\n }\r\n const predicateIri = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.internal_toIriString)(property);\r\n let literals = [];\r\n const langStrings = (_b = (_a = thing.predicates[predicateIri]) === null || _a === void 0 ? void 0 : _a.langStrings) !== null && _b !== void 0 ? _b : {};\r\n const locales = Object.keys(langStrings);\r\n for (const locale of locales) {\r\n const stringsInLocale = langStrings[locale];\r\n const localeLiterals = stringsInLocale.map((langString) => _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.DataFactory.literal(langString, locale));\r\n literals = literals.concat(localeLiterals);\r\n }\r\n const otherLiterals = (_d = (_c = thing.predicates[predicateIri]) === null || _c === void 0 ? void 0 : _c.literals) !== null && _d !== void 0 ? _d : {};\r\n const dataTypes = Object.keys(otherLiterals);\r\n for (const dataType of dataTypes) {\r\n const values = otherLiterals[dataType];\r\n const typeNode = _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.DataFactory.namedNode(dataType);\r\n const dataTypeLiterals = values.map((value) => _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.DataFactory.literal(value, typeNode));\r\n literals = literals.concat(dataTypeLiterals);\r\n }\r\n return literals;\r\n}\r\n/**\r\n * @param thing The [[Thing]] to read a raw RDF/JS value from.\r\n * @param property The given Property for which you want the raw value.\r\n * @returns A Term for the given Property, if present, or null otherwise.\r\n * @ignore This should not be needed due to the other get*() functions. If you do find yourself needing it, please file a feature request for your use case.\r\n * @see https://rdf.js.org/data-model-spec/\r\n * @since 0.3.0\r\n */\r\nfunction getTerm(thing, property) {\r\n var _a, _b;\r\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\r\n const namedNode = getNamedNode(thing, property);\r\n if (namedNode !== null) {\r\n return namedNode;\r\n }\r\n const literal = getLiteral(thing, property);\r\n if (literal !== null) {\r\n return literal;\r\n }\r\n const predicateIri = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.internal_toIriString)(property);\r\n const blankNodes = (_b = (_a = thing.predicates[predicateIri]) === null || _a === void 0 ? void 0 : _a.blankNodes) !== null && _b !== void 0 ? _b : [];\r\n if (blankNodes.length > 0) {\r\n const blankNodeValue = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.isBlankNodeId)(blankNodes[0])\r\n ? (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.getBlankNodeValue)(blankNodes[0])\r\n : undefined;\r\n return _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.DataFactory.blankNode(blankNodeValue);\r\n }\r\n return null;\r\n}\r\n/**\r\n * @param thing The [[Thing]] to read the raw RDF/JS values from.\r\n * @param property The given Property for which you want the raw values.\r\n * @returns The Terms for the given Property.\r\n * @ignore This should not be needed due to the other get*() functions. If you do find yourself needing it, please file a feature request for your use case.\r\n * @see https://rdf.js.org/data-model-spec/\r\n * @since 0.3.0\r\n */\r\nfunction getTermAll(thing, property) {\r\n var _a, _b;\r\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\r\n const namedNodes = getNamedNodeAll(thing, property);\r\n const literals = getLiteralAll(thing, property);\r\n const predicateIri = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.internal_toIriString)(property);\r\n const blankNodeValues = (_b = (_a = thing.predicates[predicateIri]) === null || _a === void 0 ? void 0 : _a.blankNodes) !== null && _b !== void 0 ? _b : [];\r\n const blankNodes = blankNodeValues.map((rawBlankNode) => {\r\n const blankNodeName = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.isBlankNodeId)(rawBlankNode)\r\n ? (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.getBlankNodeValue)(rawBlankNode)\r\n : undefined;\r\n return _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.DataFactory.blankNode(blankNodeName);\r\n });\r\n const terms = namedNodes\r\n .concat(literals)\r\n .concat(blankNodes);\r\n return terms;\r\n}\r\n/**\r\n * @param thing The [Thing]] to read a Literal of the given type from.\r\n * @param property The given Property for which you want the Literal value.\r\n * @param literalType Set type of the Literal data.\r\n * @returns The stringified value for the given Property and type, if present, or null otherwise.\r\n */\r\nfunction getLiteralOfType(thing, property, literalType) {\r\n var _a, _b, _c, _d;\r\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isValidUrl)(property)) {\r\n throw new _thing_mjs__WEBPACK_IMPORTED_MODULE_2__.ValidPropertyUrlExpectedError(property);\r\n }\r\n const predicateIri = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.internal_toIriString)(property);\r\n return (_d = (_c = (_b = (_a = thing.predicates[predicateIri]) === null || _a === void 0 ? void 0 : _a.literals) === null || _b === void 0 ? void 0 : _b[literalType]) === null || _c === void 0 ? void 0 : _c[0]) !== null && _d !== void 0 ? _d : null;\r\n}\r\n/**\r\n * @param thing The [Thing]] to read the Literals of the given type from.\r\n * @param property The given Property for which you want the Literal values.\r\n * @param literalType Set type of the Literal data.\r\n * @returns The stringified values for the given Property and type.\r\n */\r\nfunction getLiteralAllOfType(thing, property, literalType) {\r\n var _a, _b, _c;\r\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isValidUrl)(property)) {\r\n throw new _thing_mjs__WEBPACK_IMPORTED_MODULE_2__.ValidPropertyUrlExpectedError(property);\r\n }\r\n const predicateIri = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.internal_toIriString)(property);\r\n const literalsOfType = (_c = (_b = (_a = thing.predicates[predicateIri]) === null || _a === void 0 ? void 0 : _a.literals) === null || _b === void 0 ? void 0 : _b[literalType]) !== null && _c !== void 0 ? _c : [];\r\n return [...literalsOfType];\r\n}\n\n\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client/dist/thing/get.mjs?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client/dist/thing/thing.internal.mjs": +/*!*************************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client/dist/thing/thing.internal.mjs ***! + \*************************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"internal_addAdditionsToChangeLog\": () => (/* binding */ internal_addAdditionsToChangeLog),\n/* harmony export */ \"internal_addDeletionsToChangeLog\": () => (/* binding */ internal_addDeletionsToChangeLog),\n/* harmony export */ \"internal_getReadableValue\": () => (/* binding */ internal_getReadableValue),\n/* harmony export */ \"internal_throwIfNotThing\": () => (/* binding */ internal_throwIfNotThing),\n/* harmony export */ \"internal_withChangeLog\": () => (/* binding */ internal_withChangeLog)\n/* harmony export */ });\n/* harmony import */ var _datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../datatypes.mjs */ \"./node_modules/@inrupt/solid-client/dist/datatypes.mjs\");\n/* harmony import */ var _interfaces_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../interfaces.mjs */ \"./node_modules/@inrupt/solid-client/dist/interfaces.mjs\");\n/* harmony import */ var _thing_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./thing.mjs */ \"./node_modules/@inrupt/solid-client/dist/thing/thing.mjs\");\n/* harmony import */ var _rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../rdf.internal.mjs */ \"./node_modules/@inrupt/solid-client/dist/rdf.internal.mjs\");\n\n\n\n\n\n/**\r\n * Copyright 2021 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"Software\"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n/** @hidden For internal use only. */\r\nfunction internal_getReadableValue(value) {\r\n var _a, _b, _c, _d, _e, _f, _g, _h;\r\n if ((0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.isNamedNode)(value)) {\r\n return `<${value.value}> (URL)`;\r\n }\r\n if ((0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.isLiteral)(value)) {\r\n /* istanbul ignore if: thingAsMarkdown always instantiates a NamedNode, so we can't hit this code path in tests. */\r\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.isNamedNode)(value.datatype)) {\r\n return `[${value.value}] (RDF/JS Literal of unknown type)`;\r\n }\r\n let val;\r\n switch (value.datatype.value) {\r\n case _datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.xmlSchemaTypes.boolean:\r\n val =\r\n (_b = (_a = (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.deserializeBoolean)(value.value)) === null || _a === void 0 ? void 0 : _a.valueOf()) !== null && _b !== void 0 ? _b : `Invalid data: \\`${value.value}\\``;\r\n return val + \" (boolean)\";\r\n case _datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.xmlSchemaTypes.dateTime:\r\n val =\r\n (_d = (_c = (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.deserializeDatetime)(value.value)) === null || _c === void 0 ? void 0 : _c.toUTCString()) !== null && _d !== void 0 ? _d : `Invalid data: \\`${value.value}\\``;\r\n return val + \" (datetime)\";\r\n case _datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.xmlSchemaTypes.decimal:\r\n val =\r\n (_f = (_e = (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.deserializeDecimal)(value.value)) === null || _e === void 0 ? void 0 : _e.toString()) !== null && _f !== void 0 ? _f : `Invalid data: \\`${value.value}\\``;\r\n return val + \" (decimal)\";\r\n case _datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.xmlSchemaTypes.integer:\r\n val =\r\n (_h = (_g = (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.deserializeInteger)(value.value)) === null || _g === void 0 ? void 0 : _g.toString()) !== null && _h !== void 0 ? _h : `Invalid data: \\`${value.value}\\``;\r\n return val + \" (integer)\";\r\n case _datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.xmlSchemaTypes.langString:\r\n return `\"${value.value}\" (${value.language} string)`;\r\n case _datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.xmlSchemaTypes.string:\r\n return `\"${value.value}\" (string)`;\r\n default:\r\n return `[${value.value}] (RDF/JS Literal of type: \\`${value.datatype.value}\\`)`;\r\n }\r\n }\r\n /* istanbul ignore else: thingAsMarkdown doesn't generate other Nodes, so we can't hit this path in tests. */\r\n if (value.termType === \"BlankNode\") {\r\n return `[${value.value}] (RDF/JS BlankNode)`;\r\n }\r\n /* istanbul ignore next: thingAsMarkdown doesn't generate Quad Nodes, so we can't hit this path in tests. */\r\n if (value.termType === \"Quad\") {\r\n return `??? (nested RDF* Quad)`;\r\n }\r\n /* istanbul ignore else: The if statements are exhaustive; if not, TypeScript will complain. */\r\n /* istanbul ignore next: thingAsMarkdown doesn't generate Variable Nodes, so we can't hit this path in tests. */\r\n if (value.termType === \"Variable\") {\r\n return `?${value.value} (RDF/JS Variable)`;\r\n }\r\n /* istanbul ignore next: The if statements are exhaustive; if not, TypeScript will complain. */\r\n return value;\r\n}\r\n/**\r\n * @hidden\r\n */\r\nfunction internal_throwIfNotThing(thing) {\r\n if (!(0,_thing_mjs__WEBPACK_IMPORTED_MODULE_1__.isThing)(thing)) {\r\n throw new _thing_mjs__WEBPACK_IMPORTED_MODULE_1__.ThingExpectedError(thing);\r\n }\r\n}\r\n/**\r\n * @hidden\r\n * @param solidDataset\r\n */\r\nfunction internal_addAdditionsToChangeLog(solidDataset, additions) {\r\n const changeLog = (0,_interfaces_mjs__WEBPACK_IMPORTED_MODULE_2__.hasChangelog)(solidDataset)\r\n ? solidDataset.internal_changeLog\r\n : /* istanbul ignore next: This function always gets called after addDeletionsToChangeLog, so the ChangeLog always already exists in tests: */\r\n { additions: [], deletions: [] };\r\n const [newAdditions, newDeletions] = additions\r\n .filter((addition) => !containsBlankNode(addition))\r\n .reduce(([additionsAcc, deletionsAcc], addition) => {\r\n const existingDeletion = deletionsAcc.find((deletion) => deletion.equals(addition));\r\n if (typeof existingDeletion !== \"undefined\") {\r\n return [\r\n additionsAcc,\r\n deletionsAcc.filter((deletion) => !deletion.equals(addition)),\r\n ];\r\n }\r\n return [additionsAcc.concat(addition), deletionsAcc];\r\n }, [changeLog.additions, changeLog.deletions]);\r\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.freeze)(Object.assign(Object.assign({}, solidDataset), { internal_changeLog: {\r\n additions: newAdditions,\r\n deletions: newDeletions,\r\n } }));\r\n}\r\n/**\r\n * @hidden\r\n * @param solidDataset\r\n */\r\nfunction internal_addDeletionsToChangeLog(solidDataset, deletions) {\r\n const changeLog = (0,_interfaces_mjs__WEBPACK_IMPORTED_MODULE_2__.hasChangelog)(solidDataset)\r\n ? solidDataset.internal_changeLog\r\n : { additions: [], deletions: [] };\r\n const [newAdditions, newDeletions] = deletions\r\n .filter((deletion) => !containsBlankNode(deletion))\r\n .reduce(([additionsAcc, deletionsAcc], deletion) => {\r\n const existingAddition = additionsAcc.find((addition) => addition.equals(deletion));\r\n if (typeof existingAddition !== \"undefined\") {\r\n return [\r\n additionsAcc.filter((addition) => !addition.equals(deletion)),\r\n deletionsAcc,\r\n ];\r\n }\r\n return [additionsAcc, deletionsAcc.concat(deletion)];\r\n }, [changeLog.additions, changeLog.deletions]);\r\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.freeze)(Object.assign(Object.assign({}, solidDataset), { internal_changeLog: {\r\n additions: newAdditions,\r\n deletions: newDeletions,\r\n } }));\r\n}\r\n/**\r\n * Enforces the presence of a Changelog for a given dataset. If a changelog is\r\n * already present, it is unchanged. Otherwise, an empty changelog is created.\r\n * @hidden\r\n * @param solidDataset\r\n */\r\nfunction internal_withChangeLog(solidDataset) {\r\n const newSolidDataset = (0,_interfaces_mjs__WEBPACK_IMPORTED_MODULE_2__.hasChangelog)(solidDataset)\r\n ? solidDataset\r\n : (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.freeze)(Object.assign(Object.assign({}, solidDataset), { internal_changeLog: { additions: [], deletions: [] } }));\r\n return newSolidDataset;\r\n}\r\n/**\r\n * We don't currently support reading and writing Blank Nodes, so this function can be used to skip those Quads.\r\n *\r\n * This is needed because we cannot reconcile Blank Nodes in additions and\r\n * deletions. Down the road, we should do a diff before saving a SolidDataset\r\n * against a saved copy of the originally-fetched one, based on our own data\r\n * structures, which should make it easier to reconcile.\r\n */\r\nfunction containsBlankNode(quad) {\r\n return (quad.subject.termType === \"BlankNode\" ||\r\n quad.object.termType === \"BlankNode\");\r\n}\n\n\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client/dist/thing/thing.internal.mjs?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/solid-client/dist/thing/thing.mjs": +/*!****************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client/dist/thing/thing.mjs ***! + \****************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ThingExpectedError\": () => (/* binding */ ThingExpectedError),\n/* harmony export */ \"ValidPropertyUrlExpectedError\": () => (/* binding */ ValidPropertyUrlExpectedError),\n/* harmony export */ \"ValidThingUrlExpectedError\": () => (/* binding */ ValidThingUrlExpectedError),\n/* harmony export */ \"ValidValueUrlExpectedError\": () => (/* binding */ ValidValueUrlExpectedError),\n/* harmony export */ \"asIri\": () => (/* binding */ asIri),\n/* harmony export */ \"asUrl\": () => (/* binding */ asUrl),\n/* harmony export */ \"createThing\": () => (/* binding */ createThing),\n/* harmony export */ \"getThing\": () => (/* binding */ getThing),\n/* harmony export */ \"getThingAll\": () => (/* binding */ getThingAll),\n/* harmony export */ \"isThing\": () => (/* binding */ isThing),\n/* harmony export */ \"isThingLocal\": () => (/* binding */ isThingLocal),\n/* harmony export */ \"removeThing\": () => (/* binding */ removeThing),\n/* harmony export */ \"setThing\": () => (/* binding */ setThing),\n/* harmony export */ \"thingAsMarkdown\": () => (/* binding */ thingAsMarkdown)\n/* harmony export */ });\n/* harmony import */ var _datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../datatypes.mjs */ \"./node_modules/@inrupt/solid-client/dist/datatypes.mjs\");\n/* harmony import */ var _interfaces_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../interfaces.mjs */ \"./node_modules/@inrupt/solid-client/dist/interfaces.mjs\");\n/* harmony import */ var _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../rdfjs.internal.mjs */ \"./node_modules/@inrupt/solid-client/dist/rdfjs.internal.mjs\");\n/* harmony import */ var _resource_resource_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../resource/resource.mjs */ \"./node_modules/@inrupt/solid-client/dist/resource/resource.mjs\");\n/* harmony import */ var _thing_internal_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./thing.internal.mjs */ \"./node_modules/@inrupt/solid-client/dist/thing/thing.internal.mjs\");\n/* harmony import */ var _rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../rdf.internal.mjs */ \"./node_modules/@inrupt/solid-client/dist/rdf.internal.mjs\");\n/* harmony import */ var _interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../interfaces.internal.mjs */ \"./node_modules/@inrupt/solid-client/dist/interfaces.internal.mjs\");\n/* harmony import */ var _get_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./get.mjs */ \"./node_modules/@inrupt/solid-client/dist/thing/get.mjs\");\n\n\n\n\n\n\n\n\n\n/**\r\n * Copyright 2021 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"Software\"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\n/**\r\n * Extract Quads with a given Subject from a [[SolidDataset]] into a [[Thing]].\r\n *\r\n * @param solidDataset The [[SolidDataset]] to extract the [[Thing]] from.\r\n * @param thingUrl The URL of the desired [[Thing]].\r\n * @param options Not yet implemented.\r\n */\r\nfunction getThing(solidDataset, thingUrl, options = {}) {\r\n var _a;\r\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_isValidUrl)(thingUrl)) {\r\n throw new ValidThingUrlExpectedError(thingUrl);\r\n }\r\n const graph = typeof options.scope !== \"undefined\"\r\n ? (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_toIriString)(options.scope)\r\n : \"default\";\r\n const thingsByIri = (_a = solidDataset.graphs[graph]) !== null && _a !== void 0 ? _a : {};\r\n const thingIri = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_toIriString)(thingUrl);\r\n const resolvedThingIri = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.isLocalNodeIri)(thingIri) && (0,_interfaces_mjs__WEBPACK_IMPORTED_MODULE_3__.hasServerResourceInfo)(solidDataset)\r\n ? (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.resolveLocalIri)((0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.getLocalNodeName)(thingIri), (0,_resource_resource_mjs__WEBPACK_IMPORTED_MODULE_4__.getSourceUrl)(solidDataset))\r\n : thingIri;\r\n const thing = thingsByIri[resolvedThingIri];\r\n if (typeof thing === \"undefined\") {\r\n return null;\r\n }\r\n return thing;\r\n}\r\n/**\r\n * Get all [[Thing]]s about which a [[SolidDataset]] contains Quads.\r\n *\r\n * @param solidDataset The [[SolidDataset]] to extract the [[Thing]]s from.\r\n * @param options Not yet implemented.\r\n */\r\nfunction getThingAll(solidDataset, options = {}) {\r\n var _a;\r\n const graph = typeof options.scope !== \"undefined\"\r\n ? (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_toIriString)(options.scope)\r\n : \"default\";\r\n const thingsByIri = (_a = solidDataset.graphs[graph]) !== null && _a !== void 0 ? _a : {};\r\n return Object.values(thingsByIri);\r\n}\r\n/**\r\n * Insert a [[Thing]] into a [[SolidDataset]], replacing previous instances of that Thing.\r\n *\r\n * @param solidDataset The SolidDataset to insert a Thing into.\r\n * @param thing The Thing to insert into the given SolidDataset.\r\n * @returns A new SolidDataset equal to the given SolidDataset, but with the given Thing.\r\n */\r\nfunction setThing(solidDataset, thing) {\r\n var _a;\r\n const thingIri = isThingLocal(thing) && (0,_interfaces_mjs__WEBPACK_IMPORTED_MODULE_3__.hasServerResourceInfo)(solidDataset)\r\n ? (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.resolveLocalIri)((0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.getLocalNodeName)(thing.url), (0,_resource_resource_mjs__WEBPACK_IMPORTED_MODULE_4__.getSourceUrl)(solidDataset))\r\n : thing.url;\r\n const defaultGraph = solidDataset.graphs.default;\r\n const updatedDefaultGraph = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.freeze)(Object.assign(Object.assign({}, defaultGraph), { [thingIri]: (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.freeze)(Object.assign(Object.assign({}, thing), { url: thingIri })) }));\r\n const updatedGraphs = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.freeze)(Object.assign(Object.assign({}, solidDataset.graphs), { default: updatedDefaultGraph }));\r\n const subjectNode = _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.DataFactory.namedNode(thingIri);\r\n const deletedThingPredicates = (_a = solidDataset.graphs.default[thingIri]) === null || _a === void 0 ? void 0 : _a.predicates;\r\n const deletions = typeof deletedThingPredicates !== \"undefined\"\r\n ? (0,_rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.subjectToRdfJsQuads)(deletedThingPredicates, subjectNode, _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.DataFactory.defaultGraph())\r\n : [];\r\n const additions = (0,_rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.subjectToRdfJsQuads)(thing.predicates, subjectNode, _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.DataFactory.defaultGraph());\r\n return (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_6__.internal_addAdditionsToChangeLog)((0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_6__.internal_addDeletionsToChangeLog)((0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.freeze)(Object.assign(Object.assign({}, solidDataset), { graphs: updatedGraphs })), deletions), additions);\r\n}\r\n/**\r\n * Remove a Thing from a SolidDataset.\r\n *\r\n * @param solidDataset The SolidDataset to remove a Thing from.\r\n * @param thing The Thing to remove from `solidDataset`.\r\n * @returns A new [[SolidDataset]] equal to the input SolidDataset, excluding the given Thing.\r\n */\r\nfunction removeThing(solidDataset, thing) {\r\n var _a;\r\n let thingIri;\r\n if ((0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.isNamedNode)(thing)) {\r\n thingIri = thing.value;\r\n }\r\n else if (typeof thing === \"string\") {\r\n thingIri =\r\n (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.isLocalNodeIri)(thing) && (0,_interfaces_mjs__WEBPACK_IMPORTED_MODULE_3__.hasServerResourceInfo)(solidDataset)\r\n ? (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.resolveLocalIri)((0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.getLocalNodeName)(thing), (0,_resource_resource_mjs__WEBPACK_IMPORTED_MODULE_4__.getSourceUrl)(solidDataset))\r\n : thing;\r\n }\r\n else if (isThingLocal(thing)) {\r\n thingIri = thing.url;\r\n }\r\n else {\r\n thingIri = asIri(thing);\r\n }\r\n const defaultGraph = solidDataset.graphs.default;\r\n const updatedDefaultGraph = Object.assign({}, defaultGraph);\r\n delete updatedDefaultGraph[thingIri];\r\n const updatedGraphs = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.freeze)(Object.assign(Object.assign({}, solidDataset.graphs), { default: (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.freeze)(updatedDefaultGraph) }));\r\n const subjectNode = _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.DataFactory.namedNode(thingIri);\r\n const deletedThingPredicates = (_a = solidDataset.graphs.default[thingIri]) === null || _a === void 0 ? void 0 : _a.predicates;\r\n const deletions = typeof deletedThingPredicates !== \"undefined\"\r\n ? (0,_rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.subjectToRdfJsQuads)(deletedThingPredicates, subjectNode, _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.DataFactory.defaultGraph())\r\n : [];\r\n return (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_6__.internal_addDeletionsToChangeLog)((0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.freeze)(Object.assign(Object.assign({}, solidDataset), { graphs: updatedGraphs })), deletions);\r\n}\r\nfunction createThing(options = {}) {\r\n var _a;\r\n if (typeof options.url !== \"undefined\") {\r\n const url = options.url;\r\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_isValidUrl)(url)) {\r\n throw new ValidThingUrlExpectedError(url);\r\n }\r\n const thing = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.freeze)({\r\n type: \"Subject\",\r\n predicates: (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.freeze)({}),\r\n url: url,\r\n });\r\n return thing;\r\n }\r\n const name = (_a = options.name) !== null && _a !== void 0 ? _a : generateName();\r\n const localNodeIri = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.getLocalNodeIri)(name);\r\n const thing = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.freeze)({\r\n type: \"Subject\",\r\n predicates: (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.freeze)({}),\r\n url: localNodeIri,\r\n });\r\n return thing;\r\n}\r\n/**\r\n * @param input An value that might be a [[Thing]].\r\n * @returns Whether `input` is a Thing.\r\n * @since 0.2.0\r\n */\r\nfunction isThing(input) {\r\n return (typeof input === \"object\" &&\r\n input !== null &&\r\n typeof input.type === \"string\" &&\r\n input.type === \"Subject\");\r\n}\r\nfunction asUrl(thing, baseUrl) {\r\n if (isThingLocal(thing)) {\r\n if (typeof baseUrl === \"undefined\") {\r\n throw new Error(\"The URL of a Thing that has not been persisted cannot be determined without a base URL.\");\r\n }\r\n return (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.resolveLocalIri)((0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.getLocalNodeName)(thing.url), baseUrl);\r\n }\r\n return thing.url;\r\n}\r\n/** @hidden Alias of [[asUrl]] for those who prefer IRI terminology. */\r\nconst asIri = asUrl;\r\n/**\r\n * Gets a human-readable representation of the given Thing to aid debugging.\r\n *\r\n * Note that changes to the exact format of the return value are not considered a breaking change;\r\n * it is intended to aid in debugging, not as a serialisation method that can be reliably parsed.\r\n *\r\n * @param thing The Thing to get a human-readable representation of.\r\n * @since 0.3.0\r\n */\r\nfunction thingAsMarkdown(thing) {\r\n let thingAsMarkdown = \"\";\r\n if (isThingLocal(thing)) {\r\n thingAsMarkdown += `## Thing (no URL yet — identifier: \\`#${(0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.getLocalNodeName)(thing.url)}\\`)\\n`;\r\n }\r\n else {\r\n thingAsMarkdown += `## Thing: ${thing.url}\\n`;\r\n }\r\n const predicateIris = Object.keys(thing.predicates);\r\n if (predicateIris.length === 0) {\r\n thingAsMarkdown += \"\\n\\n\";\r\n }\r\n else {\r\n for (const predicate of predicateIris) {\r\n thingAsMarkdown += `\\nProperty: ${predicate}\\n`;\r\n const values = (0,_get_mjs__WEBPACK_IMPORTED_MODULE_7__.getTermAll)(thing, predicate);\r\n values.forEach((value) => {\r\n thingAsMarkdown += `- ${(0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_6__.internal_getReadableValue)(value)}\\n`;\r\n });\r\n }\r\n }\r\n return thingAsMarkdown;\r\n}\r\n/**\r\n * @param thing The [[Thing]] of which a URL might or might not be known.\r\n * @return `true` if `thing` has no known URL yet.\r\n * @since 1.7.0\r\n */\r\nfunction isThingLocal(thing) {\r\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.isLocalNodeIri)(thing.url);\r\n}\r\n/**\r\n * This error is thrown when a function expected to receive a [[Thing]] but received something else.\r\n * @since 1.2.0\r\n */\r\nclass ThingExpectedError extends _interfaces_mjs__WEBPACK_IMPORTED_MODULE_3__.SolidClientError {\r\n constructor(receivedValue) {\r\n const message = `Expected a Thing, but received: [${receivedValue}].`;\r\n super(message);\r\n this.receivedValue = receivedValue;\r\n }\r\n}\r\n/**\r\n * This error is thrown when a function expected to receive a valid URL to identify a property but received something else.\r\n */\r\nclass ValidPropertyUrlExpectedError extends _interfaces_mjs__WEBPACK_IMPORTED_MODULE_3__.SolidClientError {\r\n constructor(receivedValue) {\r\n const value = (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.isNamedNode)(receivedValue)\r\n ? receivedValue.value\r\n : receivedValue;\r\n const message = `Expected a valid URL to identify a property, but received: [${value}].`;\r\n super(message);\r\n this.receivedProperty = value;\r\n }\r\n}\r\n/**\r\n * This error is thrown when a function expected to receive a valid URL value but received something else.\r\n */\r\nclass ValidValueUrlExpectedError extends _interfaces_mjs__WEBPACK_IMPORTED_MODULE_3__.SolidClientError {\r\n constructor(receivedValue) {\r\n const value = (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.isNamedNode)(receivedValue)\r\n ? receivedValue.value\r\n : receivedValue;\r\n const message = `Expected a valid URL value, but received: [${value}].`;\r\n super(message);\r\n this.receivedValue = value;\r\n }\r\n}\r\n/**\r\n * This error is thrown when a function expected to receive a valid URL to identify a [[Thing]] but received something else.\r\n */\r\nclass ValidThingUrlExpectedError extends _interfaces_mjs__WEBPACK_IMPORTED_MODULE_3__.SolidClientError {\r\n constructor(receivedValue) {\r\n const value = (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.isNamedNode)(receivedValue)\r\n ? receivedValue.value\r\n : receivedValue;\r\n const message = `Expected a valid URL to identify a Thing, but received: [${value}].`;\r\n super(message);\r\n this.receivedValue = value;\r\n }\r\n}\r\n/**\r\n * Generate a string that can be used as the unique identifier for a Thing\r\n *\r\n * This function works by starting with a date string (so that Things can be\r\n * sorted chronologically), followed by a random number generated by taking a\r\n * random number between 0 and 1, and cutting off the `0.`.\r\n *\r\n * @internal\r\n * @returns An string that's likely to be unique\r\n */\r\nconst generateName = () => {\r\n return (Date.now().toString() + Math.random().toString().substring(\"0.\".length));\r\n};\n\n\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client/dist/thing/thing.mjs?"); + +/***/ }), + +/***/ "./node_modules/@inrupt/vocab-common-rdf/dist/index.es.js": +/*!****************************************************************!*\ + !*** ./node_modules/@inrupt/vocab-common-rdf/dist/index.es.js ***! + \****************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"ACL\": () => (/* binding */ ACL),\n/* harmony export */ \"ALTR\": () => (/* binding */ ALTR),\n/* harmony export */ \"AS\": () => (/* binding */ AS),\n/* harmony export */ \"BOOKMARK\": () => (/* binding */ BOOKMARK),\n/* harmony export */ \"CRED\": () => (/* binding */ CRED),\n/* harmony export */ \"DCAT\": () => (/* binding */ DCAT),\n/* harmony export */ \"DCTERMS\": () => (/* binding */ DCTERMS),\n/* harmony export */ \"DOAP\": () => (/* binding */ DOAP),\n/* harmony export */ \"EARL\": () => (/* binding */ EARL),\n/* harmony export */ \"FOAF\": () => (/* binding */ FOAF),\n/* harmony export */ \"HTTP\": () => (/* binding */ HTTP),\n/* harmony export */ \"HTTPH_INRUPT\": () => (/* binding */ HTTPH_INRUPT),\n/* harmony export */ \"HYDRA\": () => (/* binding */ HYDRA),\n/* harmony export */ \"ICAL\": () => (/* binding */ ICAL),\n/* harmony export */ \"JSONLD\": () => (/* binding */ JSONLD),\n/* harmony export */ \"LDP\": () => (/* binding */ LDP),\n/* harmony export */ \"LDP_INRUPT\": () => (/* binding */ LDP_INRUPT),\n/* harmony export */ \"ODRL\": () => (/* binding */ ODRL),\n/* harmony export */ \"OLO\": () => (/* binding */ OLO),\n/* harmony export */ \"OWL\": () => (/* binding */ OWL),\n/* harmony export */ \"POSIX\": () => (/* binding */ POSIX),\n/* harmony export */ \"PROV_O\": () => (/* binding */ PROV_O),\n/* harmony export */ \"QB\": () => (/* binding */ QB),\n/* harmony export */ \"RDF\": () => (/* binding */ RDF),\n/* harmony export */ \"RDFS\": () => (/* binding */ RDFS),\n/* harmony export */ \"RDF_INRUPT\": () => (/* binding */ RDF_INRUPT),\n/* harmony export */ \"RLOG\": () => (/* binding */ RLOG),\n/* harmony export */ \"SCHEMA_INRUPT\": () => (/* binding */ SCHEMA_INRUPT),\n/* harmony export */ \"SD\": () => (/* binding */ SD),\n/* harmony export */ \"SDMX_DIMENSION\": () => (/* binding */ SDMX_DIMENSION),\n/* harmony export */ \"SEC\": () => (/* binding */ SEC),\n/* harmony export */ \"SHEX\": () => (/* binding */ SHEX),\n/* harmony export */ \"SKOS\": () => (/* binding */ SKOS),\n/* harmony export */ \"SKOS_XL\": () => (/* binding */ SKOS_XL),\n/* harmony export */ \"TIME\": () => (/* binding */ TIME),\n/* harmony export */ \"UI\": () => (/* binding */ UI),\n/* harmony export */ \"UI_INRUPT\": () => (/* binding */ UI_INRUPT),\n/* harmony export */ \"VANN\": () => (/* binding */ VANN),\n/* harmony export */ \"VCARD\": () => (/* binding */ VCARD),\n/* harmony export */ \"VCARD_INRUPT\": () => (/* binding */ VCARD_INRUPT),\n/* harmony export */ \"VOID\": () => (/* binding */ VOID),\n/* harmony export */ \"VS\": () => (/* binding */ VS),\n/* harmony export */ \"XSD\": () => (/* binding */ XSD)\n/* harmony export */ });\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : typeof self !== 'undefined' ? self : {};\n\nfunction createCommonjsModule(fn) {\n var module = { exports: {} };\n\treturn fn(module, module.exports), module.exports;\n}\n\nvar BlankNode_1 = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BlankNode = void 0;\n/**\n * A term that represents an RDF blank node with a label.\n */\nclass BlankNode {\n constructor(value) {\n this.termType = 'BlankNode';\n this.value = value;\n }\n equals(other) {\n return !!other && other.termType === 'BlankNode' && other.value === this.value;\n }\n}\nexports.BlankNode = BlankNode;\n//# sourceMappingURL=BlankNode.js.map\n});\n\nvar DefaultGraph_1 = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DefaultGraph = void 0;\n/**\n * A singleton term instance that represents the default graph.\n * It's only allowed to assign a DefaultGraph to the .graph property of a Quad.\n */\nclass DefaultGraph {\n constructor() {\n this.termType = 'DefaultGraph';\n this.value = '';\n // Private constructor\n }\n equals(other) {\n return !!other && other.termType === 'DefaultGraph';\n }\n}\nexports.DefaultGraph = DefaultGraph;\nDefaultGraph.INSTANCE = new DefaultGraph();\n//# sourceMappingURL=DefaultGraph.js.map\n});\n\nvar NamedNode_1 = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NamedNode = void 0;\n/**\n * A term that contains an IRI.\n */\nclass NamedNode {\n constructor(value) {\n this.termType = 'NamedNode';\n this.value = value;\n }\n equals(other) {\n return !!other && other.termType === 'NamedNode' && other.value === this.value;\n }\n}\nexports.NamedNode = NamedNode;\n//# sourceMappingURL=NamedNode.js.map\n});\n\nvar Literal_1 = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Literal = void 0;\n\n/**\n * A term that represents an RDF literal, containing a string with an optional language tag or datatype.\n */\nclass Literal {\n constructor(value, languageOrDatatype) {\n this.termType = 'Literal';\n this.value = value;\n if (typeof languageOrDatatype === 'string') {\n this.language = languageOrDatatype;\n this.datatype = Literal.RDF_LANGUAGE_STRING;\n }\n else if (languageOrDatatype) {\n this.language = '';\n this.datatype = languageOrDatatype;\n }\n else {\n this.language = '';\n this.datatype = Literal.XSD_STRING;\n }\n }\n equals(other) {\n return !!other && other.termType === 'Literal' && other.value === this.value &&\n other.language === this.language && other.datatype.equals(this.datatype);\n }\n}\nexports.Literal = Literal;\nLiteral.RDF_LANGUAGE_STRING = new NamedNode_1.NamedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#langString');\nLiteral.XSD_STRING = new NamedNode_1.NamedNode('http://www.w3.org/2001/XMLSchema#string');\n//# sourceMappingURL=Literal.js.map\n});\n\nvar Quad_1 = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Quad = void 0;\n/**\n * An instance of DefaultGraph represents the default graph.\n * It's only allowed to assign a DefaultGraph to the .graph property of a Quad.\n */\nclass Quad {\n constructor(subject, predicate, object, graph) {\n this.termType = 'Quad';\n this.value = '';\n this.subject = subject;\n this.predicate = predicate;\n this.object = object;\n this.graph = graph;\n }\n equals(other) {\n // `|| !other.termType` is for backwards-compatibility with old factories without RDF* support.\n return !!other && (other.termType === 'Quad' || !other.termType) &&\n this.subject.equals(other.subject) &&\n this.predicate.equals(other.predicate) &&\n this.object.equals(other.object) &&\n this.graph.equals(other.graph);\n }\n}\nexports.Quad = Quad;\n//# sourceMappingURL=Quad.js.map\n});\n\nvar Variable_1 = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Variable = void 0;\n/**\n * A term that represents a variable.\n */\nclass Variable {\n constructor(value) {\n this.termType = 'Variable';\n this.value = value;\n }\n equals(other) {\n return !!other && other.termType === 'Variable' && other.value === this.value;\n }\n}\nexports.Variable = Variable;\n//# sourceMappingURL=Variable.js.map\n});\n\nvar DataFactory_1 = createCommonjsModule(function (module, exports) {\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DataFactory = void 0;\n\n\n\n\n\n\nlet dataFactoryCounter = 0;\n/**\n * A factory for instantiating RDF terms and quads.\n */\nclass DataFactory {\n constructor(options) {\n this.blankNodeCounter = 0;\n options = options || {};\n this.blankNodePrefix = options.blankNodePrefix || `df_${dataFactoryCounter++}_`;\n }\n /**\n * @param value The IRI for the named node.\n * @return A new instance of NamedNode.\n * @see NamedNode\n */\n namedNode(value) {\n return new NamedNode_1.NamedNode(value);\n }\n /**\n * @param value The optional blank node identifier.\n * @return A new instance of BlankNode.\n * If the `value` parameter is undefined a new identifier\n * for the blank node is generated for each call.\n * @see BlankNode\n */\n blankNode(value) {\n return new BlankNode_1.BlankNode(value || `${this.blankNodePrefix}${this.blankNodeCounter++}`);\n }\n /**\n * @param value The literal value.\n * @param languageOrDatatype The optional language or datatype.\n * If `languageOrDatatype` is a NamedNode,\n * then it is used for the value of `NamedNode.datatype`.\n * Otherwise `languageOrDatatype` is used for the value\n * of `NamedNode.language`.\n * @return A new instance of Literal.\n * @see Literal\n */\n literal(value, languageOrDatatype) {\n return new Literal_1.Literal(value, languageOrDatatype);\n }\n /**\n * This method is optional.\n * @param value The variable name\n * @return A new instance of Variable.\n * @see Variable\n */\n variable(value) {\n return new Variable_1.Variable(value);\n }\n /**\n * @return An instance of DefaultGraph.\n */\n defaultGraph() {\n return DefaultGraph_1.DefaultGraph.INSTANCE;\n }\n /**\n * @param subject The quad subject term.\n * @param predicate The quad predicate term.\n * @param object The quad object term.\n * @param graph The quad graph term.\n * @return A new instance of Quad.\n * @see Quad\n */\n quad(subject, predicate, object, graph) {\n return new Quad_1.Quad(subject, predicate, object, graph || this.defaultGraph());\n }\n /**\n * Create a deep copy of the given term using this data factory.\n * @param original An RDF term.\n * @return A deep copy of the given term.\n */\n fromTerm(original) {\n // TODO: remove nasty any casts when this TS bug has been fixed:\n // https://github.com/microsoft/TypeScript/issues/26933\n switch (original.termType) {\n case 'NamedNode':\n return this.namedNode(original.value);\n case 'BlankNode':\n return this.blankNode(original.value);\n case 'Literal':\n if (original.language) {\n return this.literal(original.value, original.language);\n }\n if (!original.datatype.equals(Literal_1.Literal.XSD_STRING)) {\n return this.literal(original.value, this.fromTerm(original.datatype));\n }\n return this.literal(original.value);\n case 'Variable':\n return this.variable(original.value);\n case 'DefaultGraph':\n return this.defaultGraph();\n case 'Quad':\n return this.quad(this.fromTerm(original.subject), this.fromTerm(original.predicate), this.fromTerm(original.object), this.fromTerm(original.graph));\n }\n }\n /**\n * Create a deep copy of the given quad using this data factory.\n * @param original An RDF quad.\n * @return A deep copy of the given quad.\n */\n fromQuad(original) {\n return this.fromTerm(original);\n }\n /**\n * Reset the internal blank node counter.\n */\n resetBlankNodeCounter() {\n this.blankNodeCounter = 0;\n }\n}\nexports.DataFactory = DataFactory;\n//# sourceMappingURL=DataFactory.js.map\n});\n\nvar rdfDataFactory = createCommonjsModule(function (module, exports) {\nvar __createBinding = (commonjsGlobal && commonjsGlobal.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (commonjsGlobal && commonjsGlobal.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(BlankNode_1, exports);\n__exportStar(DataFactory_1, exports);\n__exportStar(DefaultGraph_1, exports);\n__exportStar(Literal_1, exports);\n__exportStar(NamedNode_1, exports);\n__exportStar(Quad_1, exports);\n__exportStar(Variable_1, exports);\n//# sourceMappingURL=index.js.map\n});\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$G = new rdfDataFactory.DataFactory();\r\nfunction _NS$G(localName) {\r\n return rdfFactory$G.namedNode(\"http://schema.org/\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * Inrupt extension to Schema.org terms providing\r\n multilingual alternative names (i.e. labels) and translations for comments\r\n (e.g. for use directly as labels or tool-tips in user interfaces or error\r\n messages). This extension very deliberately cherry-picks the individual terms\r\n from Schema.org that Inrupt currently deem generally useful for Solid and Solid\r\n applications (meaning we can provide a much cleaner, less noisy and smaller\r\n bundle size when generating programming language artifacts that provide\r\n convenient constants for just these selected terms, rather than including the\r\n over 2,500 terms currently defined in Schema.org).\r\n */\r\nvar SCHEMA_INRUPT = {\r\n PREFIX: \"schema-inrupt\",\r\n NAMESPACE: \"http://schema.org/\",\r\n PREFIX_AND_NAMESPACE: { \"schema-inrupt\": \"http://schema.org/\" },\r\n NS: _NS$G,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * A person (alive, dead, undead, or fictional).\r\n *\r\n * This term has [4] labels and comments, in the languages [de, es, fr, it].\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n Person: _NS$G(\"Person\"),\r\n /**\r\n * Data type: URL.\r\n *\r\n * This term has [4] labels and comments, in the languages [de, es, fr, it].\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n URL: _NS$G(\"URL\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * An alias for the item.\r\n *\r\n * This term has [4] labels and comments, in the languages [de, es, fr, it].\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n alternateName: _NS$G(\"alternateName\"),\r\n /**\r\n * Given name. In the U.S., the first name of a Person.\r\n *\r\n * This term has [4] labels and comments, in the languages [de, es, fr, it].\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n givenName: _NS$G(\"givenName\"),\r\n /**\r\n * Family name. In the U.S., the last name of a Person.\r\n *\r\n * This term has [4] labels and comments, in the languages [de, es, fr, it].\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n familyName: _NS$G(\"familyName\"),\r\n /**\r\n * An additional name for a Person, can be used for a middle name.\r\n *\r\n * This term has [4] labels and comments, in the languages [de, es, fr, it].\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n additionalName: _NS$G(\"additionalName\"),\r\n /**\r\n * A license document that applies to this content, typically indicated by URL.\r\n *\r\n * This term has [4] labels and comments, in the languages [de, es, fr, it].\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n license: _NS$G(\"license\"),\r\n /**\r\n * The name of the item.\r\n *\r\n * This term has [4] labels and comments, in the languages [de, es, fr, it].\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n name: _NS$G(\"name\"),\r\n /**\r\n * The textual content of this CreativeWork.\r\n *\r\n * This term has [4] labels and comments, in the languages [de, es, fr, it].\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n text: _NS$G(\"text\"),\r\n /**\r\n * The identifier property represents any kind of identifier for any kind of [[Thing]], such as ISBNs, GTIN codes, UUIDs etc. Schema.org provides dedicated properties for representing many of these, either as textual strings or as URL (URI) links. See [background notes](/docs/datamodel.html#identifierBg) for more details.\r\n \n *\r\n * This term has [4] labels and comments, in the languages [de, es, fr, it].\r\n *\r\n * See also:\r\n * - https://schema.org/docs/datamodel.html#identifierBg\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n identifier: _NS$G(\"identifier\"),\r\n /**\r\n * A description of the item.\r\n *\r\n * This term has [4] labels and comments, in the languages [de, es, fr, it].\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n description: _NS$G(\"description\"),\r\n /**\r\n * An image of the item. This can be a [[URL]] or a fully described [[ImageObject]].\r\n *\r\n * This term has [4] labels and comments, in the languages [de, es, fr, it].\r\n *\r\n * See also:\r\n * - https://schema.org/ImageObject\r\n * - https://schema.org/URL\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n image: _NS$G(\"image\"),\r\n /**\r\n * URL of the item.\r\n *\r\n * This term has [4] labels and comments, in the languages [de, es, fr, it].\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n url: _NS$G(\"url\"),\r\n /**\r\n * The startTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to start. For actions that span a period of time, when the action was performed. e.g. John wrote a book from *January* to December. For media, including audio and video, it's the time offset of the start of a clip within a larger file.\\n\\nNote that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.\r\n *\r\n * This term has [4] labels and comments, in the languages [de, es, fr, it].\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n startTime: _NS$G(\"startTime\"),\r\n /**\r\n * The endTime of something. For a reserved event or service (e.g. FoodEstablishmentReservation), the time that it is expected to end. For actions that span a period of time, when the action was performed. e.g. John wrote a book from January to *December*. For media, including audio and video, it's the time offset of the end of a clip within a larger file.\\n\\nNote that Event uses startDate/endDate instead of startTime/endTime, even when describing dates with times. This situation may be clarified in future revisions.\r\n *\r\n * This term has [4] labels and comments, in the languages [de, es, fr, it].\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n endTime: _NS$G(\"endTime\"),\r\n /**\r\n * Email address.\r\n *\r\n * This term has [4] labels and comments, in the languages [de, es, fr, it].\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n email: _NS$G(\"email\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$F = new rdfDataFactory.DataFactory();\r\nfunction _NS$F(localName) {\r\n return rdfFactory$F.namedNode(\"http://www.w3.org/2006/vcard/ns#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * Ontology for vCard based on RFC6350\r\n */\r\nvar VCARD = {\r\n PREFIX: \"vcard\",\r\n NAMESPACE: \"http://www.w3.org/2006/vcard/ns#\",\r\n PREFIX_AND_NAMESPACE: { \"vcard\": \"http://www.w3.org/2006/vcard/ns#\" },\r\n NS: _NS$F,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * Acquaintance\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Acquaintance: _NS$F(\"Acquaintance\"),\r\n /**\r\n * Used for relation type codes. The URI of the relation type code must be used as the value for the Relation Type.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n RelatedType: _NS$F(\"RelatedType\"),\r\n /**\r\n * Agent\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Agent: _NS$F(\"Agent\"),\r\n /**\r\n * This class is deprecated\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n BBS: _NS$F(\"BBS\"),\r\n /**\r\n * Used for telephone type codes. The URI of the telephone type code must be used as the value for the Telephone Type.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n TelephoneType: _NS$F(\"TelephoneType\"),\r\n /**\r\n * This class is deprecated\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Car: _NS$F(\"Car\"),\r\n /**\r\n * Also called mobile telephone\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Cell: _NS$F(\"Cell\"),\r\n /**\r\n * Child\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Child: _NS$F(\"Child\"),\r\n /**\r\n * Colleague\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Colleague: _NS$F(\"Colleague\"),\r\n /**\r\n * Contact\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Contact: _NS$F(\"Contact\"),\r\n /**\r\n * Coresident\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Coresident: _NS$F(\"Coresident\"),\r\n /**\r\n * Coworker\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Coworker: _NS$F(\"Coworker\"),\r\n /**\r\n * Crush\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Crush: _NS$F(\"Crush\"),\r\n /**\r\n * Date\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Date: _NS$F(\"Date\"),\r\n /**\r\n * This class is deprecated\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Dom: _NS$F(\"Dom\"),\r\n /**\r\n * Used for type codes. The URI of the type code must be used as the value for Type.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Type: _NS$F(\"Type\"),\r\n /**\r\n * Emergency\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Emergency: _NS$F(\"Emergency\"),\r\n /**\r\n * Fax\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Fax: _NS$F(\"Fax\"),\r\n /**\r\n * Female\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Female: _NS$F(\"Female\"),\r\n /**\r\n * Used for gender codes. The URI of the gender code must be used as the value for Gender.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Gender: _NS$F(\"Gender\"),\r\n /**\r\n * Friend\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Friend: _NS$F(\"Friend\"),\r\n /**\r\n * This implies that the property is related to an individual's personal life\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Home: _NS$F(\"Home\"),\r\n /**\r\n * This class is deprecated\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n ISDN: _NS$F(\"ISDN\"),\r\n /**\r\n * This class is deprecated\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Internet: _NS$F(\"Internet\"),\r\n /**\r\n * This class is deprecated\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Intl: _NS$F(\"Intl\"),\r\n /**\r\n * Kin\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Kin: _NS$F(\"Kin\"),\r\n /**\r\n * This class is deprecated\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Label: _NS$F(\"Label\"),\r\n /**\r\n * Male\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Male: _NS$F(\"Male\"),\r\n /**\r\n * Me\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Me: _NS$F(\"Me\"),\r\n /**\r\n * Met\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Met: _NS$F(\"Met\"),\r\n /**\r\n * This class is deprecated\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Modem: _NS$F(\"Modem\"),\r\n /**\r\n * This class is deprecated\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Msg: _NS$F(\"Msg\"),\r\n /**\r\n * Muse\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Muse: _NS$F(\"Muse\"),\r\n /**\r\n * Neighbor\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Neighbor: _NS$F(\"Neighbor\"),\r\n /**\r\n * None\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n None: _NS$F(\"None\"),\r\n /**\r\n * Other\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Other: _NS$F(\"Other\"),\r\n /**\r\n * This class is deprecated\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n PCS: _NS$F(\"PCS\"),\r\n /**\r\n * Pager\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Pager: _NS$F(\"Pager\"),\r\n /**\r\n * This class is deprecated\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Parcel: _NS$F(\"Parcel\"),\r\n /**\r\n * Parent\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Parent: _NS$F(\"Parent\"),\r\n /**\r\n * This class is deprecated\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Postal: _NS$F(\"Postal\"),\r\n /**\r\n * This class is deprecated\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Pref: _NS$F(\"Pref\"),\r\n /**\r\n * Sibling\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Sibling: _NS$F(\"Sibling\"),\r\n /**\r\n * Spouse\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Spouse: _NS$F(\"Spouse\"),\r\n /**\r\n * Sweetheart\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Sweetheart: _NS$F(\"Sweetheart\"),\r\n /**\r\n * This class is deprecated. Use the hasTelephone object property.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Tel: _NS$F(\"Tel\"),\r\n /**\r\n * Also called sms telephone\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Text: _NS$F(\"Text\"),\r\n /**\r\n * Text phone\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n TextPhone: _NS$F(\"TextPhone\"),\r\n /**\r\n * Unknown\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Unknown: _NS$F(\"Unknown\"),\r\n /**\r\n * Video\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Video: _NS$F(\"Video\"),\r\n /**\r\n * Voice\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Voice: _NS$F(\"Voice\"),\r\n /**\r\n * This implies that the property is related to an individual's work place\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Work: _NS$F(\"Work\"),\r\n /**\r\n * This class is deprecated\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n X400: _NS$F(\"X400\"),\r\n /**\r\n * To specify the components of the delivery address for the object\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Address: _NS$F(\"Address\"),\r\n /**\r\n * To specify the electronic mail address for communication with the object the vCard represents. Use the hasEmail object property.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Email: _NS$F(\"Email\"),\r\n /**\r\n * Object representing a group of persons or entities. A group object will usually contain hasMember properties to specify the members of the group.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Group: _NS$F(\"Group\"),\r\n /**\r\n * The parent class for all objects\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Kind: _NS$F(\"Kind\"),\r\n /**\r\n * An object representing a single person or entity\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Individual: _NS$F(\"Individual\"),\r\n /**\r\n * An object representing a named geographical place\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Location: _NS$F(\"Location\"),\r\n /**\r\n * An object representing an organization. An organization is a single entity, and might represent a business or government, a department or division within a business or government, a club, an association, or the like.\r\n \n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Organization: _NS$F(\"Organization\"),\r\n /**\r\n * To specify the components of the name of the object\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Name: _NS$F(\"Name\"),\r\n /**\r\n * The vCard class is equivalent to the new Kind class, which is the parent for the four explicit types of vCards (Individual, Organization, Location, Group)\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n VCard: _NS$F(\"VCard\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * This object property has been mapped\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n adr: _NS$F(\"adr\"),\r\n /**\r\n * To specify the components of the delivery address for the object\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasAddress: _NS$F(\"hasAddress\"),\r\n /**\r\n * This object property has been deprecated\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n agent: _NS$F(\"agent\"),\r\n /**\r\n * The date of marriage, or equivalent, of the object\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n anniversary: _NS$F(\"anniversary\"),\r\n /**\r\n * To specify the birth date of the object\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n bday: _NS$F(\"bday\"),\r\n /**\r\n * The category information about the object, also known as tags\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n category: _NS$F(\"category\"),\r\n /**\r\n * This data property has been deprecated\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n class: _NS$F(\"class\"),\r\n /**\r\n * This object property has been mapped\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n email: _NS$F(\"email\"),\r\n /**\r\n * To specify the electronic mail address for communication with the object\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasEmail: _NS$F(\"hasEmail\"),\r\n /**\r\n * This data property has been deprecated\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n extended_address: _NS$F(\"extended-address\"),\r\n /**\r\n * This object property has been mapped\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n geo: _NS$F(\"geo\"),\r\n /**\r\n * To specify information related to the global positioning of the object. May also be used as a property parameter.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasGeo: _NS$F(\"hasGeo\"),\r\n /**\r\n * Used to support property parameters for the additional name data property\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasAdditionalName: _NS$F(\"hasAdditionalName\"),\r\n /**\r\n * To specify the busy time associated with the object. (Was called FBURL in RFC6350)\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasCalendarBusy: _NS$F(\"hasCalendarBusy\"),\r\n /**\r\n * To specify the calendar associated with the object. (Was called CALURI in RFC6350)\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasCalendarLink: _NS$F(\"hasCalendarLink\"),\r\n /**\r\n * To specify the calendar user address to which a scheduling request be sent for the object. (Was called CALADRURI in RFC6350)\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasCalendarRequest: _NS$F(\"hasCalendarRequest\"),\r\n /**\r\n * Used to support property parameters for the category data property\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasCategory: _NS$F(\"hasCategory\"),\r\n /**\r\n * Used to support property parameters for the country name data property\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasCountryName: _NS$F(\"hasCountryName\"),\r\n /**\r\n * Used to support property parameters for the formatted name data property\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasFN: _NS$F(\"hasFN\"),\r\n /**\r\n * Used to support property parameters for the family name data property\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasFamilyName: _NS$F(\"hasFamilyName\"),\r\n /**\r\n * To specify the sex or gender identity of the object. URIs are recommended to enable interoperable sex and gender codes to be used.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasGender: _NS$F(\"hasGender\"),\r\n /**\r\n * Used to support property parameters for the given name data property\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasGivenName: _NS$F(\"hasGivenName\"),\r\n /**\r\n * Used to support property parameters for the honorific prefix data property\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasHonorificPrefix: _NS$F(\"hasHonorificPrefix\"),\r\n /**\r\n * Used to support property parameters for the honorific suffix data property\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasHonorificSuffix: _NS$F(\"hasHonorificSuffix\"),\r\n /**\r\n * To specify the instant messaging and presence protocol communications with the object. (Was called IMPP in RFC6350)\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasInstantMessage: _NS$F(\"hasInstantMessage\"),\r\n /**\r\n * Used to support property parameters for the language data property\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasLanguage: _NS$F(\"hasLanguage\"),\r\n /**\r\n * Used to support property parameters for the locality data property\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasLocality: _NS$F(\"hasLocality\"),\r\n /**\r\n * Used to support property parameters for the nickname data property\r\n *\r\n * See also:\r\n * - http://www.w3.org/2006/vcard/ns#nickname\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasNickname: _NS$F(\"hasNickname\"),\r\n /**\r\n * The nick name associated with the object\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n nickname: _NS$F(\"nickname\"),\r\n /**\r\n * Used to support property parameters for the note data property\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasNote: _NS$F(\"hasNote\"),\r\n /**\r\n * Used to support property parameters for the organization name data property\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasOrganizationName: _NS$F(\"hasOrganizationName\"),\r\n /**\r\n * Used to support property parameters for the organization unit name data property\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasOrganizationUnit: _NS$F(\"hasOrganizationUnit\"),\r\n /**\r\n * Used to support property parameters for the postal code data property\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasPostalCode: _NS$F(\"hasPostalCode\"),\r\n /**\r\n * Used to support property parameters for the region data property\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasRegion: _NS$F(\"hasRegion\"),\r\n /**\r\n * To specify a relationship between another entity and the entity represented by this object\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasRelated: _NS$F(\"hasRelated\"),\r\n /**\r\n * Used to support property parameters for the role data property\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasRole: _NS$F(\"hasRole\"),\r\n /**\r\n * To identify the source of directory information of the object\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasSource: _NS$F(\"hasSource\"),\r\n /**\r\n * Used to support property parameters for the street address data property\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasStreetAddress: _NS$F(\"hasStreetAddress\"),\r\n /**\r\n * Used to support property parameters for the title data property\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasTitle: _NS$F(\"hasTitle\"),\r\n /**\r\n * To specify a value that represents a globally unique identifier corresponding to the object\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasUID: _NS$F(\"hasUID\"),\r\n /**\r\n * Used to indicate the resource value of an object property that requires property parameters\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasValue: _NS$F(\"hasValue\"),\r\n /**\r\n * This data property has been deprecated\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n label: _NS$F(\"label\"),\r\n /**\r\n * To specify the language that may be used for contacting the object. May also be used as a property parameter.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n language: _NS$F(\"language\"),\r\n /**\r\n * This data property has been deprecated. See hasGeo\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n latitude: _NS$F(\"latitude\"),\r\n /**\r\n * This data property has been deprecated. See hasGeo\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n longitude: _NS$F(\"longitude\"),\r\n /**\r\n * This data property has been deprecated\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n mailer: _NS$F(\"mailer\"),\r\n /**\r\n * A note associated with the object\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n note: _NS$F(\"note\"),\r\n /**\r\n * This object property has been mapped. Use the organization-name data property.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n org: _NS$F(\"org\"),\r\n /**\r\n * To specify the organizational name associated with the object\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n organization_name: _NS$F(\"organization-name\"),\r\n /**\r\n * To specify the organizational unit name associated with the object\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n organization_unit: _NS$F(\"organization-unit\"),\r\n /**\r\n * This data property has been deprecated\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n post_office_box: _NS$F(\"post-office-box\"),\r\n /**\r\n * To specify the identifier for the product that created the object\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n prodid: _NS$F(\"prodid\"),\r\n /**\r\n * To specify revision information about the object\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n rev: _NS$F(\"rev\"),\r\n /**\r\n * To specify the function or part played in a particular situation by the object\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n role: _NS$F(\"role\"),\r\n /**\r\n * To specify the string to be used for national-language-specific sorting. Used as a property parameter only.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n sort_string: _NS$F(\"sort-string\"),\r\n /**\r\n * To specify the position or job of the object\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n title: _NS$F(\"title\"),\r\n /**\r\n * To indicate time zone information that is specific to the object. May also be used as a property parameter.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n tz: _NS$F(\"tz\"),\r\n /**\r\n * Used to indicate the literal value of a data property that requires property parameters\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n value: _NS$F(\"value\"),\r\n /**\r\n * The country name associated with the address of the object\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n country_name: _NS$F(\"country-name\"),\r\n /**\r\n * The locality (e.g. city or town) associated with the address of the object\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n locality: _NS$F(\"locality\"),\r\n /**\r\n * The postal code associated with the address of the object\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n postal_code: _NS$F(\"postal-code\"),\r\n /**\r\n * The region (e.g. state or province) associated with the address of the object\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n region: _NS$F(\"region\"),\r\n /**\r\n * The street address associated with the address of the object\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n street_address: _NS$F(\"street-address\"),\r\n /**\r\n * To include a member in the group this object represents. (This property can only be used by Group individuals)\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasMember: _NS$F(\"hasMember\"),\r\n /**\r\n * The additional name associated with the object\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n additional_name: _NS$F(\"additional-name\"),\r\n /**\r\n * The family name associated with the object\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n family_name: _NS$F(\"family-name\"),\r\n /**\r\n * The given name associated with the object\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n given_name: _NS$F(\"given-name\"),\r\n /**\r\n * The honorific prefix of the name associated with the object\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n honorific_prefix: _NS$F(\"honorific-prefix\"),\r\n /**\r\n * The honorific suffix of the name associated with the object\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n honorific_suffix: _NS$F(\"honorific-suffix\"),\r\n /**\r\n * The formatted text corresponding to the name of the object\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n fn: _NS$F(\"fn\"),\r\n /**\r\n * To specify a public key or authentication certificate associated with the object\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasKey: _NS$F(\"hasKey\"),\r\n /**\r\n * This object property has been mapped\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n key: _NS$F(\"key\"),\r\n /**\r\n * To specify a graphic image of a logo associated with the object\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasLogo: _NS$F(\"hasLogo\"),\r\n /**\r\n * This object property has been mapped\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n logo: _NS$F(\"logo\"),\r\n /**\r\n * To specify the components of the name of the object\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasName: _NS$F(\"hasName\"),\r\n /**\r\n * This object property has been mapped\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n n: _NS$F(\"n\"),\r\n /**\r\n * To specify an image or photograph information that annotates some aspect of the object\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasPhoto: _NS$F(\"hasPhoto\"),\r\n /**\r\n * This object property has been mapped\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n photo: _NS$F(\"photo\"),\r\n /**\r\n * To specify a digital sound content information that annotates some aspect of the object\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasSound: _NS$F(\"hasSound\"),\r\n /**\r\n * This object property has been mapped\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n sound: _NS$F(\"sound\"),\r\n /**\r\n * To specify the telephone number for telephony communication with the object\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasTelephone: _NS$F(\"hasTelephone\"),\r\n /**\r\n * This object property has been mapped\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n tel: _NS$F(\"tel\"),\r\n /**\r\n * To specify a uniform resource locator associated with the object\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasURL: _NS$F(\"hasURL\"),\r\n /**\r\n * This object property has been mapped\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n url: _NS$F(\"url\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$E = new rdfDataFactory.DataFactory();\r\nfunction _NS$E(localName) {\r\n return rdfFactory$E.namedNode(\"http://www.w3.org/2006/vcard/ns#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * Ontology for vCard based on RFC6350\r\n */\r\nvar VCARD_INRUPT = {\r\n PREFIX: \"vcard-inrupt\",\r\n NAMESPACE: \"http://www.w3.org/2006/vcard/ns#\",\r\n PREFIX_AND_NAMESPACE: { \"vcard-inrupt\": \"http://www.w3.org/2006/vcard/ns#\" },\r\n NS: _NS$E,\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * To specify the components of the delivery address for the object\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/vcard#\r\n */\r\n hasAddress: _NS$E(\"hasAddress\"),\r\n /**\r\n * To specify the electronic mail address for communication with the object\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/vcard#\r\n */\r\n hasEmail: _NS$E(\"hasEmail\"),\r\n /**\r\n * To specify the telephone number for telephony communication with the object\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/vcard#\r\n */\r\n hasTelephone: _NS$E(\"hasTelephone\"),\r\n /**\r\n * The formatted text corresponding to the name of the object\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/vcard#\r\n */\r\n fn: _NS$E(\"fn\"),\r\n /**\r\n * To specify the function or part played in a particular situation by the object\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/vcard#\r\n */\r\n role: _NS$E(\"role\"),\r\n /**\r\n * To specify the organizational name associated with the object\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/vcard#\r\n */\r\n organization_name: _NS$E(\"organization-name\"),\r\n /**\r\n * The street address associated with the address of the object\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/vcard#\r\n */\r\n street_address: _NS$E(\"street-address\"),\r\n /**\r\n * The locality (e.g. city or town) associated with the address of the object\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/vcard#\r\n */\r\n locality: _NS$E(\"locality\"),\r\n /**\r\n * The postal code associated with the address of the object\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/vcard#\r\n */\r\n postal_code: _NS$E(\"postal-code\"),\r\n /**\r\n * The region (e.g. state or province) associated with the address of the object\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/vcard#\r\n */\r\n region: _NS$E(\"region\"),\r\n /**\r\n * The country name associated with the address of the object\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/vcard#\r\n */\r\n country_name: _NS$E(\"country-name\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$D = new rdfDataFactory.DataFactory();\r\nfunction _NS$D(localName) {\r\n return rdfFactory$D.namedNode(\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * [Generator provided] - RDF (Resource Description Framework) - a framework for representing information in the Web\r\n */\r\nvar RDF = {\r\n PREFIX: \"rdf\",\r\n NAMESPACE: \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\r\n PREFIX_AND_NAMESPACE: { \"rdf\": \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" },\r\n NS: _NS$D,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * The datatype of RDF literals storing fragments of HTML content\r\n *\r\n * See also:\r\n * - http://www.w3.org/TR/rdf11-concepts/#section-html\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n HTML: _NS$D(\"HTML\"),\r\n /**\r\n * The datatype of language-tagged string values\r\n *\r\n * See also:\r\n * - http://www.w3.org/TR/rdf11-concepts/#section-Graph-Literal\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n langString: _NS$D(\"langString\"),\r\n /**\r\n * The class of plain (i.e. untyped) literal values, as used in RIF and OWL 2\r\n *\r\n * See also:\r\n * - http://www.w3.org/TR/rdf-plain-literal/\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n PlainLiteral: _NS$D(\"PlainLiteral\"),\r\n /**\r\n * The class of RDF properties.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n Property: _NS$D(\"Property\"),\r\n /**\r\n * The class of RDF statements.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n Statement: _NS$D(\"Statement\"),\r\n /**\r\n * The class of unordered containers.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n Bag: _NS$D(\"Bag\"),\r\n /**\r\n * The class of ordered containers.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n Seq: _NS$D(\"Seq\"),\r\n /**\r\n * The class of containers of alternatives.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n Alt: _NS$D(\"Alt\"),\r\n /**\r\n * The class of RDF Lists.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n List: _NS$D(\"List\"),\r\n /**\r\n * The datatype of XML literal values.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n XMLLiteral: _NS$D(\"XMLLiteral\"),\r\n /**\r\n * The datatype of RDF literals storing JSON content.\r\n *\r\n * See also:\r\n * - https://www.w3.org/TR/json-ld11/#the-rdf-json-datatype\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n JSON: _NS$D(\"JSON\"),\r\n /**\r\n * A class representing a compound literal.\r\n *\r\n * See also:\r\n * - https://www.w3.org/TR/json-ld11/#the-rdf-compoundliteral-class-and-the-rdf-language-and-rdf-direction-properties\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n CompoundLiteral: _NS$D(\"CompoundLiteral\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * The subject is an instance of a class.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n type: _NS$D(\"type\"),\r\n /**\r\n * The subject of the subject RDF statement.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n subject: _NS$D(\"subject\"),\r\n /**\r\n * The predicate of the subject RDF statement.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n predicate: _NS$D(\"predicate\"),\r\n /**\r\n * The object of the subject RDF statement.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n object: _NS$D(\"object\"),\r\n /**\r\n * Idiomatic property used for structured values.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n value: _NS$D(\"value\"),\r\n /**\r\n * The empty list, with no items in it. If the rest of a list is nil then the list has no more items in it.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n nil: _NS$D(\"nil\"),\r\n /**\r\n * The first item in the subject RDF list.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n first: _NS$D(\"first\"),\r\n /**\r\n * The rest of the subject RDF list after the first item.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n rest: _NS$D(\"rest\"),\r\n /**\r\n * The language component of a CompoundLiteral.\r\n *\r\n * See also:\r\n * - https://www.w3.org/TR/json-ld11/#the-rdf-compoundliteral-class-and-the-rdf-language-and-rdf-direction-properties\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n language: _NS$D(\"language\"),\r\n /**\r\n * The base direction component of a CompoundLiteral.\r\n *\r\n * See also:\r\n * - https://www.w3.org/TR/json-ld11/#the-rdf-compoundliteral-class-and-the-rdf-language-and-rdf-direction-properties\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n direction: _NS$D(\"direction\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$C = new rdfDataFactory.DataFactory();\r\nfunction _NS$C(localName) {\r\n return rdfFactory$C.namedNode(\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * [Generator provided] - RDF (Resource Description Framework) - with extensions (e.g., translations of labels or comments, etc.) from Inrupt\r\n */\r\nvar RDF_INRUPT = {\r\n PREFIX: \"rdf-inrupt\",\r\n NAMESPACE: \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\",\r\n PREFIX_AND_NAMESPACE: { \"rdf-inrupt\": \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" },\r\n NS: _NS$C,\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * The subject is an instance of a class.\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n type: _NS$C(\"type\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$B = new rdfDataFactory.DataFactory();\r\nfunction _NS$B(localName) {\r\n return rdfFactory$B.namedNode(\"http://www.w3.org/2000/01/rdf-schema#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * [Generator provided] - RDFS (RDF Schema) - a data-modelling vocabulary for RDF data\r\n */\r\nvar RDFS = {\r\n PREFIX: \"rdfs\",\r\n NAMESPACE: \"http://www.w3.org/2000/01/rdf-schema#\",\r\n PREFIX_AND_NAMESPACE: { \"rdfs\": \"http://www.w3.org/2000/01/rdf-schema#\" },\r\n NS: _NS$B,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * The class resource, everything.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2000/01/rdf-schema#\r\n */\r\n Resource: _NS$B(\"Resource\"),\r\n /**\r\n * The class of classes.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2000/01/rdf-schema#\r\n */\r\n Class: _NS$B(\"Class\"),\r\n /**\r\n * The class of literal values, eg. textual strings and integers.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2000/01/rdf-schema#\r\n */\r\n Literal: _NS$B(\"Literal\"),\r\n /**\r\n * The class of RDF containers.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2000/01/rdf-schema#\r\n */\r\n Container: _NS$B(\"Container\"),\r\n /**\r\n * The class of container membership properties, rdf:_1, rdf:_2, ...,\r\n all of which are sub-properties of 'member'.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2000/01/rdf-schema#\r\n */\r\n ContainerMembershipProperty: _NS$B(\"ContainerMembershipProperty\"),\r\n /**\r\n * The class of RDF datatypes.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2000/01/rdf-schema#\r\n */\r\n Datatype: _NS$B(\"Datatype\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * The defininition of the subject resource.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2000/01/rdf-schema#\r\n */\r\n isDefinedBy: _NS$B(\"isDefinedBy\"),\r\n /**\r\n * A human-readable name for the subject.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2000/01/rdf-schema#\r\n */\r\n label: _NS$B(\"label\"),\r\n /**\r\n * A description of the subject resource.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2000/01/rdf-schema#\r\n */\r\n comment: _NS$B(\"comment\"),\r\n /**\r\n * The subject is a subclass of a class.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2000/01/rdf-schema#\r\n */\r\n subClassOf: _NS$B(\"subClassOf\"),\r\n /**\r\n * A range of the subject property.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2000/01/rdf-schema#\r\n */\r\n range: _NS$B(\"range\"),\r\n /**\r\n * A domain of the subject property.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2000/01/rdf-schema#\r\n */\r\n domain: _NS$B(\"domain\"),\r\n /**\r\n * The subject is a subproperty of a property.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2000/01/rdf-schema#\r\n */\r\n subPropertyOf: _NS$B(\"subPropertyOf\"),\r\n /**\r\n * Further information about the subject resource.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2000/01/rdf-schema#\r\n */\r\n seeAlso: _NS$B(\"seeAlso\"),\r\n /**\r\n * A member of the subject resource.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2000/01/rdf-schema#\r\n */\r\n member: _NS$B(\"member\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$A = new rdfDataFactory.DataFactory();\r\nfunction _NS$A(localName) {\r\n return rdfFactory$A.namedNode(\"http://www.w3.org/2001/XMLSchema#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * A vocabulary for describing XML Schema datatypes.\r\n */\r\nvar XSD = {\r\n PREFIX: \"xsd\",\r\n NAMESPACE: \"http://www.w3.org/2001/XMLSchema#\",\r\n PREFIX_AND_NAMESPACE: { \"xsd\": \"http://www.w3.org/2001/XMLSchema#\" },\r\n NS: _NS$A,\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n changes: _NS$A(\"changes\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n string: _NS$A(\"string\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n boolean: _NS$A(\"boolean\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n float: _NS$A(\"float\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n double: _NS$A(\"double\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n decimal: _NS$A(\"decimal\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n dateTime: _NS$A(\"dateTime\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n duration: _NS$A(\"duration\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n hexBinary: _NS$A(\"hexBinary\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n base64Binary: _NS$A(\"base64Binary\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n anyURI: _NS$A(\"anyURI\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n ID: _NS$A(\"ID\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n IDREF: _NS$A(\"IDREF\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n ENTITY: _NS$A(\"ENTITY\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n NOTATION: _NS$A(\"NOTATION\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n normalizedString: _NS$A(\"normalizedString\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n token: _NS$A(\"token\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n language: _NS$A(\"language\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n IDREFS: _NS$A(\"IDREFS\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n ENTITIES: _NS$A(\"ENTITIES\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n NMTOKEN: _NS$A(\"NMTOKEN\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n NMTOKENS: _NS$A(\"NMTOKENS\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n Name: _NS$A(\"Name\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n QName: _NS$A(\"QName\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n NCName: _NS$A(\"NCName\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n integer: _NS$A(\"integer\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n nonNegativeInteger: _NS$A(\"nonNegativeInteger\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n positiveInteger: _NS$A(\"positiveInteger\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n nonPositiveInteger: _NS$A(\"nonPositiveInteger\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n negativeInteger: _NS$A(\"negativeInteger\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n byte: _NS$A(\"byte\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n int: _NS$A(\"int\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n long: _NS$A(\"long\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n short: _NS$A(\"short\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n unsignedByte: _NS$A(\"unsignedByte\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n unsignedInt: _NS$A(\"unsignedInt\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n unsignedLong: _NS$A(\"unsignedLong\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n unsignedShort: _NS$A(\"unsignedShort\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n date: _NS$A(\"date\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n time: _NS$A(\"time\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n gYearMonth: _NS$A(\"gYearMonth\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n gYear: _NS$A(\"gYear\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n gMonthDay: _NS$A(\"gMonthDay\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n gDay: _NS$A(\"gDay\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n gMonth: _NS$A(\"gMonth\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$z = new rdfDataFactory.DataFactory();\r\nfunction _NS$z(localName) {\r\n return rdfFactory$z.namedNode(\"http://www.w3.org/2002/07/owl#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n *\r\n This ontology partially describes the built-in classes and\r\n properties that together form the basis of the RDF/XML syntax of OWL 2.\r\n The content of this ontology is based on Tables 6.1 and 6.2\r\n in Section 6.4 of the OWL 2 RDF-Based Semantics specification,\r\n available at http://www.w3.org/TR/owl2-rdf-based-semantics/.\r\n Please note that those tables do not include the different annotations\r\n (labels, comments and rdfs:isDefinedBy links) used in this file.\r\n Also note that the descriptions provided in this ontology do not\r\n provide a complete and correct formal description of either the syntax\r\n or the semantics of the introduced terms (please see the OWL 2\r\n recommendations for the complete and normative specifications).\r\n Furthermore, the information provided by this ontology may be\r\n misleading if not used with care. This ontology SHOULD NOT be imported\r\n into OWL ontologies. Importing this file into an OWL 2 DL ontology\r\n will cause it to become an OWL 2 Full ontology and may have other,\r\n unexpected, consequences.\r\n \n */\r\nvar OWL = {\r\n PREFIX: \"owl\",\r\n NAMESPACE: \"http://www.w3.org/2002/07/owl#\",\r\n PREFIX_AND_NAMESPACE: { \"owl\": \"http://www.w3.org/2002/07/owl#\" },\r\n NS: _NS$z,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * The class of ontologies.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n Ontology: _NS$z(\"Ontology\"),\r\n /**\r\n * The class of collections of pairwise different individuals.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n AllDifferent: _NS$z(\"AllDifferent\"),\r\n /**\r\n * The class of collections of pairwise disjoint classes.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n AllDisjointClasses: _NS$z(\"AllDisjointClasses\"),\r\n /**\r\n * The class of collections of pairwise disjoint properties.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n AllDisjointProperties: _NS$z(\"AllDisjointProperties\"),\r\n /**\r\n * The class of annotated annotations for which the RDF serialization consists of an annotated subject, predicate and object.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n Annotation: _NS$z(\"Annotation\"),\r\n /**\r\n * The class of annotation properties.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n AnnotationProperty: _NS$z(\"AnnotationProperty\"),\r\n /**\r\n * The class of asymmetric properties.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n AsymmetricProperty: _NS$z(\"AsymmetricProperty\"),\r\n /**\r\n * The class of object properties.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n ObjectProperty: _NS$z(\"ObjectProperty\"),\r\n /**\r\n * The class of annotated axioms for which the RDF serialization consists of an annotated subject, predicate and object.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n Axiom: _NS$z(\"Axiom\"),\r\n /**\r\n * The class of OWL classes.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n Class: _NS$z(\"Class\"),\r\n /**\r\n * The class of OWL data ranges, which are special kinds of datatypes. Note: The use of the IRI owl:DataRange has been deprecated as of OWL 2. The IRI rdfs:Datatype SHOULD be used instead.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n DataRange: _NS$z(\"DataRange\"),\r\n /**\r\n * The class of data properties.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n DatatypeProperty: _NS$z(\"DatatypeProperty\"),\r\n /**\r\n * The class of deprecated classes.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n DeprecatedClass: _NS$z(\"DeprecatedClass\"),\r\n /**\r\n * The class of deprecated properties.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n DeprecatedProperty: _NS$z(\"DeprecatedProperty\"),\r\n /**\r\n * The class of functional properties.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n FunctionalProperty: _NS$z(\"FunctionalProperty\"),\r\n /**\r\n * The class of inverse-functional properties.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n InverseFunctionalProperty: _NS$z(\"InverseFunctionalProperty\"),\r\n /**\r\n * The class of irreflexive properties.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n IrreflexiveProperty: _NS$z(\"IrreflexiveProperty\"),\r\n /**\r\n * The class of named individuals.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n NamedIndividual: _NS$z(\"NamedIndividual\"),\r\n /**\r\n * The class of OWL individuals.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n Thing: _NS$z(\"Thing\"),\r\n /**\r\n * The class of negative property assertions.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n NegativePropertyAssertion: _NS$z(\"NegativePropertyAssertion\"),\r\n /**\r\n * This is the empty class.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n Nothing: _NS$z(\"Nothing\"),\r\n /**\r\n * The class of ontology properties.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n OntologyProperty: _NS$z(\"OntologyProperty\"),\r\n /**\r\n * The class of reflexive properties.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n ReflexiveProperty: _NS$z(\"ReflexiveProperty\"),\r\n /**\r\n * The class of property restrictions.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n Restriction: _NS$z(\"Restriction\"),\r\n /**\r\n * The class of symmetric properties.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n SymmetricProperty: _NS$z(\"SymmetricProperty\"),\r\n /**\r\n * The class of transitive properties.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n TransitiveProperty: _NS$z(\"TransitiveProperty\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * The annotation property that provides version information for an ontology or another OWL construct.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n versionInfo: _NS$z(\"versionInfo\"),\r\n /**\r\n * The property that determines the class that a universal property restriction refers to.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n allValuesFrom: _NS$z(\"allValuesFrom\"),\r\n /**\r\n * The property that determines the predicate of an annotated axiom or annotated annotation.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n annotatedProperty: _NS$z(\"annotatedProperty\"),\r\n /**\r\n * The property that determines the subject of an annotated axiom or annotated annotation.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n annotatedSource: _NS$z(\"annotatedSource\"),\r\n /**\r\n * The property that determines the object of an annotated axiom or annotated annotation.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n annotatedTarget: _NS$z(\"annotatedTarget\"),\r\n /**\r\n * The property that determines the predicate of a negative property assertion.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n assertionProperty: _NS$z(\"assertionProperty\"),\r\n /**\r\n * The annotation property that indicates that a given ontology is backward compatible with another ontology.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n backwardCompatibleWith: _NS$z(\"backwardCompatibleWith\"),\r\n /**\r\n * The data property that does not relate any individual to any data value.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n bottomDataProperty: _NS$z(\"bottomDataProperty\"),\r\n /**\r\n * The object property that does not relate any two individuals.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n bottomObjectProperty: _NS$z(\"bottomObjectProperty\"),\r\n /**\r\n * The property that determines the cardinality of an exact cardinality restriction.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n cardinality: _NS$z(\"cardinality\"),\r\n /**\r\n * The property that determines that a given class is the complement of another class.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n complementOf: _NS$z(\"complementOf\"),\r\n /**\r\n * The property that determines that a given data range is the complement of another data range with respect to the data domain.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n datatypeComplementOf: _NS$z(\"datatypeComplementOf\"),\r\n /**\r\n * The annotation property that indicates that a given entity has been deprecated.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n deprecated: _NS$z(\"deprecated\"),\r\n /**\r\n * The property that determines that two given individuals are different.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n differentFrom: _NS$z(\"differentFrom\"),\r\n /**\r\n * The property that determines that a given class is equivalent to the disjoint union of a collection of other classes.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n disjointUnionOf: _NS$z(\"disjointUnionOf\"),\r\n /**\r\n * The property that determines that two given classes are disjoint.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n disjointWith: _NS$z(\"disjointWith\"),\r\n /**\r\n * The property that determines the collection of pairwise different individuals in a owl:AllDifferent axiom.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n distinctMembers: _NS$z(\"distinctMembers\"),\r\n /**\r\n * The property that determines that two given classes are equivalent, and that is used to specify datatype definitions.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n equivalentClass: _NS$z(\"equivalentClass\"),\r\n /**\r\n * The property that determines that two given properties are equivalent.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n equivalentProperty: _NS$z(\"equivalentProperty\"),\r\n /**\r\n * The property that determines the collection of properties that jointly build a key.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n hasKey: _NS$z(\"hasKey\"),\r\n /**\r\n * The property that determines the property that a self restriction refers to.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n hasSelf: _NS$z(\"hasSelf\"),\r\n /**\r\n * The property that determines the individual that a has-value restriction refers to.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n hasValue: _NS$z(\"hasValue\"),\r\n /**\r\n * The annotation property that indicates that a given ontology is incompatible with another ontology.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n incompatibleWith: _NS$z(\"incompatibleWith\"),\r\n /**\r\n * The property that determines the collection of classes or data ranges that build an intersection.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n intersectionOf: _NS$z(\"intersectionOf\"),\r\n /**\r\n * The property that determines that two given properties are inverse.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n inverseOf: _NS$z(\"inverseOf\"),\r\n /**\r\n * The property that determines the cardinality of a maximum cardinality restriction.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n maxCardinality: _NS$z(\"maxCardinality\"),\r\n /**\r\n * The property that determines the cardinality of a maximum qualified cardinality restriction.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n maxQualifiedCardinality: _NS$z(\"maxQualifiedCardinality\"),\r\n /**\r\n * The property that determines the collection of members in either a owl:AllDifferent, owl:AllDisjointClasses or owl:AllDisjointProperties axiom.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n members: _NS$z(\"members\"),\r\n /**\r\n * The property that determines the cardinality of a minimum cardinality restriction.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n minCardinality: _NS$z(\"minCardinality\"),\r\n /**\r\n * The property that determines the cardinality of a minimum qualified cardinality restriction.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n minQualifiedCardinality: _NS$z(\"minQualifiedCardinality\"),\r\n /**\r\n * The property that determines the class that a qualified object cardinality restriction refers to.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n onClass: _NS$z(\"onClass\"),\r\n /**\r\n * The property that determines the data range that a qualified data cardinality restriction refers to.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n onDataRange: _NS$z(\"onDataRange\"),\r\n /**\r\n * The property that determines the datatype that a datatype restriction refers to.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n onDatatype: _NS$z(\"onDatatype\"),\r\n /**\r\n * The property that determines the collection of individuals or data values that build an enumeration.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n oneOf: _NS$z(\"oneOf\"),\r\n /**\r\n * The property that determines the n-tuple of properties that a property restriction on an n-ary data range refers to.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n onProperties: _NS$z(\"onProperties\"),\r\n /**\r\n * The property that determines the property that a property restriction refers to.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n onProperty: _NS$z(\"onProperty\"),\r\n /**\r\n * The annotation property that indicates the predecessor ontology of a given ontology.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n priorVersion: _NS$z(\"priorVersion\"),\r\n /**\r\n * The property that determines the n-tuple of properties that build a sub property chain of a given property.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n propertyChainAxiom: _NS$z(\"propertyChainAxiom\"),\r\n /**\r\n * The property that determines that two given properties are disjoint.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n propertyDisjointWith: _NS$z(\"propertyDisjointWith\"),\r\n /**\r\n * The property that determines the cardinality of an exact qualified cardinality restriction.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n qualifiedCardinality: _NS$z(\"qualifiedCardinality\"),\r\n /**\r\n * The property that determines that two given individuals are equal.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n sameAs: _NS$z(\"sameAs\"),\r\n /**\r\n * The property that determines the class that an existential property restriction refers to.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n someValuesFrom: _NS$z(\"someValuesFrom\"),\r\n /**\r\n * The property that determines the subject of a negative property assertion.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n sourceIndividual: _NS$z(\"sourceIndividual\"),\r\n /**\r\n * The property that determines the object of a negative object property assertion.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n targetIndividual: _NS$z(\"targetIndividual\"),\r\n /**\r\n * The property that determines the value of a negative data property assertion.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n targetValue: _NS$z(\"targetValue\"),\r\n /**\r\n * The data property that relates every individual to every data value.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n topDataProperty: _NS$z(\"topDataProperty\"),\r\n /**\r\n * The object property that relates every two individuals.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n topObjectProperty: _NS$z(\"topObjectProperty\"),\r\n /**\r\n * The property that determines the collection of classes or data ranges that build a union.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n unionOf: _NS$z(\"unionOf\"),\r\n /**\r\n * The property that determines the collection of facet-value pairs that define a datatype restriction.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n withRestrictions: _NS$z(\"withRestrictions\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$y = new rdfDataFactory.DataFactory();\r\nfunction _NS$y(localName) {\r\n return rdfFactory$y.namedNode(\"http://www.w3.org/ns/ldp#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * Vocabulary URIs defined in the Linked Data Platform (LDP) namespace.\r\n */\r\nvar LDP = {\r\n PREFIX: \"ldp\",\r\n NAMESPACE: \"http://www.w3.org/ns/ldp#\",\r\n PREFIX_AND_NAMESPACE: { \"ldp\": \"http://www.w3.org/ns/ldp#\" },\r\n NS: _NS$y,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * A HTTP-addressable resource whose lifecycle is managed by a LDP server.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n Resource: _NS$y(\"Resource\"),\r\n /**\r\n * A Linked Data Platform Resource (LDPR) whose state is represented as RDF.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n RDFSource: _NS$y(\"RDFSource\"),\r\n /**\r\n * A Linked Data Platform Resource (LDPR) whose state is NOT represented as RDF.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n NonRDFSource: _NS$y(\"NonRDFSource\"),\r\n /**\r\n * A Linked Data Platform RDF Source (LDP-RS) that also conforms to additional patterns and conventions for managing membership. Readers should refer to the specification defining this ontology for the list of behaviors associated with it.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n Container: _NS$y(\"Container\"),\r\n /**\r\n * An LDPC that uses a predefined predicate to simply link to its contained resources.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n BasicContainer: _NS$y(\"BasicContainer\"),\r\n /**\r\n * An LDPC that is similar to a LDP-DC but it allows an indirection with the ability to list as member a resource, such as a URI representing a real-world object, that is different from the resource that is created.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n DirectContainer: _NS$y(\"DirectContainer\"),\r\n /**\r\n * An LDPC that has the flexibility of choosing what form the membership triples take.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n IndirectContainer: _NS$y(\"IndirectContainer\"),\r\n /**\r\n * URI signifying that the resource is an in-sequence page resource, as defined by LDP Paging. Typically used on Link rel='type' response headers.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n Page: _NS$y(\"Page\"),\r\n /**\r\n * Element in the list of sorting criteria used by the server to assign container members to pages.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n PageSortCriterion: _NS$y(\"PageSortCriterion\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * Indicates which predicate is used in membership triples, and that the membership triple pattern is < membership-constant-URI , object-of-hasMemberRelation, member-URI >.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n hasMemberRelation: _NS$y(\"hasMemberRelation\"),\r\n /**\r\n * Indicates which predicate is used in membership triples, and that the membership triple pattern is < member-URI , object-of-isMemberOfRelation, membership-constant-URI >.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n isMemberOfRelation: _NS$y(\"isMemberOfRelation\"),\r\n /**\r\n * Indicates the membership-constant-URI in a membership triple. Depending upon the membership triple pattern a container uses, as indicated by the presence of ldp:hasMemberRelation or ldp:isMemberOfRelation, the membership-constant-URI might occupy either the subject or object position in membership triples.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n membershipResource: _NS$y(\"membershipResource\"),\r\n /**\r\n * Indicates which triple in a creation request should be used as the member-URI value in the membership triple added when the creation request is successful.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n insertedContentRelation: _NS$y(\"insertedContentRelation\"),\r\n /**\r\n * LDP servers should use this predicate as the membership predicate if there is no obvious predicate from an application vocabulary to use.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n member: _NS$y(\"member\"),\r\n /**\r\n * Links a container with resources created through the container.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n contains: _NS$y(\"contains\"),\r\n /**\r\n * Links a resource with constraints that the server requires requests like creation and update to conform to.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n constrainedBy: _NS$y(\"constrainedBy\"),\r\n /**\r\n * Link to the list of sorting criteria used by the server in a representation. Typically used on Link response headers as an extension link relation URI in the rel= parameter.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n pageSortCriteria: _NS$y(\"pageSortCriteria\"),\r\n /**\r\n * Predicate used to specify the order of the members across a page sequence's in-sequence page resources; it asserts nothing about the order of members in the representation of a single page.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n pageSortPredicate: _NS$y(\"pageSortPredicate\"),\r\n /**\r\n * The ascending/descending/etc order used to order the members across pages in a page sequence.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n pageSortOrder: _NS$y(\"pageSortOrder\"),\r\n /**\r\n * The collation used to order the members across pages in a page sequence when comparing strings.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n pageSortCollation: _NS$y(\"pageSortCollation\"),\r\n /**\r\n * Link to a page sequence resource, as defined by LDP Paging. Typically used to communicate the sorting criteria used to allocate LDPC members to pages.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n pageSequence: _NS$y(\"pageSequence\"),\r\n /**\r\n * Links a resource to a container where notifications for the resource can be created and discovered.\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/TR/ldn/\r\n */\r\n inbox: _NS$y(\"inbox\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$x = new rdfDataFactory.DataFactory();\r\nfunction _NS$x(localName) {\r\n return rdfFactory$x.namedNode(\"http://www.w3.org/ns/ldp#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * Vocabulary URIs defined in the Linked Data Platform (LDP) namespace.\r\n */\r\nvar LDP_INRUPT = {\r\n PREFIX: \"ldp-inrupt\",\r\n NAMESPACE: \"http://www.w3.org/ns/ldp#\",\r\n PREFIX_AND_NAMESPACE: { \"ldp-inrupt\": \"http://www.w3.org/ns/ldp#\" },\r\n NS: _NS$x,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * A HTTP-addressable resource whose lifecycle is managed by a LDP server.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n Resource: _NS$x(\"Resource\"),\r\n /**\r\n * A Linked Data Platform Resource (LDPR) whose state is represented as RDF.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n RDFSource: _NS$x(\"RDFSource\"),\r\n /**\r\n * A Linked Data Platform Resource (LDPR) whose state is NOT represented as RDF.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n NonRDFSource: _NS$x(\"NonRDFSource\"),\r\n /**\r\n * A Linked Data Platform RDF Source (LDP-RS) that also conforms to additional patterns and conventions for managing membership. Readers should refer to the specification defining this ontology for the list of behaviors associated with it.\r\n *\r\n * This term has [1] label and comment, in the language [fr].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n Container: _NS$x(\"Container\"),\r\n /**\r\n * An LDPC that uses a predefined predicate to simply link to its contained resources.\r\n *\r\n * This term has [1] label and comment, in the language [fr].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n BasicContainer: _NS$x(\"BasicContainer\"),\r\n /**\r\n * An LDPC that is similar to a LDP-DC but it allows an indirection with the ability to list as member a resource, such as a URI representing a real-world object, that is different from the resource that is created.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n DirectContainer: _NS$x(\"DirectContainer\"),\r\n /**\r\n * An LDPC that has the flexibility of choosing what form the membership triples take.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n IndirectContainer: _NS$x(\"IndirectContainer\"),\r\n /**\r\n * URI signifying that the resource is an in-sequence page resource, as defined by LDP Paging. Typically used on Link rel='type' response headers.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n Page: _NS$x(\"Page\"),\r\n /**\r\n * Element in the list of sorting criteria used by the server to assign container members to pages.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n PageSortCriterion: _NS$x(\"PageSortCriterion\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * Indicates which predicate is used in membership triples, and that the membership triple pattern is < membership-constant-URI , object-of-hasMemberRelation, member-URI >.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n hasMemberRelation: _NS$x(\"hasMemberRelation\"),\r\n /**\r\n * Indicates which predicate is used in membership triples, and that the membership triple pattern is < member-URI , object-of-isMemberOfRelation, membership-constant-URI >.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n isMemberOfRelation: _NS$x(\"isMemberOfRelation\"),\r\n /**\r\n * Indicates the membership-constant-URI in a membership triple. Depending upon the membership triple pattern a container uses, as indicated by the presence of ldp:hasMemberRelation or ldp:isMemberOfRelation, the membership-constant-URI might occupy either the subject or object position in membership triples.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n membershipResource: _NS$x(\"membershipResource\"),\r\n /**\r\n * Indicates which triple in a creation request should be used as the member-URI value in the membership triple added when the creation request is successful.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n insertedContentRelation: _NS$x(\"insertedContentRelation\"),\r\n /**\r\n * LDP servers should use this predicate as the membership predicate if there is no obvious predicate from an application vocabulary to use.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n member: _NS$x(\"member\"),\r\n /**\r\n * Links a container with resources created through the container.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n contains: _NS$x(\"contains\"),\r\n /**\r\n * Links a resource with constraints that the server requires requests like creation and update to conform to.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n constrainedBy: _NS$x(\"constrainedBy\"),\r\n /**\r\n * Link to the list of sorting criteria used by the server in a representation. Typically used on Link response headers as an extension link relation URI in the rel= parameter.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n pageSortCriteria: _NS$x(\"pageSortCriteria\"),\r\n /**\r\n * Predicate used to specify the order of the members across a page sequence's in-sequence page resources; it asserts nothing about the order of members in the representation of a single page.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n pageSortPredicate: _NS$x(\"pageSortPredicate\"),\r\n /**\r\n * The ascending/descending/etc order used to order the members across pages in a page sequence.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n pageSortOrder: _NS$x(\"pageSortOrder\"),\r\n /**\r\n * The collation used to order the members across pages in a page sequence when comparing strings.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n pageSortCollation: _NS$x(\"pageSortCollation\"),\r\n /**\r\n * Link to a page sequence resource, as defined by LDP Paging. Typically used to communicate the sorting criteria used to allocate LDPC members to pages.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n pageSequence: _NS$x(\"pageSequence\"),\r\n /**\r\n * Links a resource to a container where notifications for the resource can be created and discovered.\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/TR/ldn/\r\n */\r\n inbox: _NS$x(\"inbox\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$w = new rdfDataFactory.DataFactory();\r\nfunction _NS$w(localName) {\r\n return rdfFactory$w.namedNode(\"http://www.w3.org/2011/http#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * A namespace for describing HTTP messages (http://www.w3.org/Protocols/rfc2616/rfc2616.html)\r\n */\r\nvar HTTP = {\r\n PREFIX: \"http\",\r\n NAMESPACE: \"http://www.w3.org/2011/http#\",\r\n PREFIX_AND_NAMESPACE: { \"http\": \"http://www.w3.org/2011/http#\" },\r\n NS: _NS$w,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * A connection used for HTTP transfer.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n Connection: _NS$w(\"Connection\"),\r\n /**\r\n * An entity header in an HTTP message.\r\n */\r\n EntityHeader: _NS$w(\"EntityHeader\"),\r\n /**\r\n * A header in an HTTP message.\r\n */\r\n MessageHeader: _NS$w(\"MessageHeader\"),\r\n /**\r\n * A general header in an HTTP message.\r\n */\r\n GeneralHeader: _NS$w(\"GeneralHeader\"),\r\n /**\r\n * A part of a deconstructed header value.\r\n */\r\n HeaderElement: _NS$w(\"HeaderElement\"),\r\n /**\r\n * A header name.\r\n */\r\n HeaderName: _NS$w(\"HeaderName\"),\r\n /**\r\n * An HTTP message.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n Message: _NS$w(\"Message\"),\r\n /**\r\n * The HTTP method used for the request.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n Method: _NS$w(\"Method\"),\r\n /**\r\n * A parameter for a part of a header value.\r\n */\r\n Parameter: _NS$w(\"Parameter\"),\r\n /**\r\n * An HTTP request.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n Request: _NS$w(\"Request\"),\r\n /**\r\n * A header in an HTTP request message.\r\n */\r\n RequestHeader: _NS$w(\"RequestHeader\"),\r\n /**\r\n * An HTTP response.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n Response: _NS$w(\"Response\"),\r\n /**\r\n * A header in an HTTP response message.\r\n */\r\n ResponseHeader: _NS$w(\"ResponseHeader\"),\r\n /**\r\n * The status code of an HTTP response.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n StatusCode: _NS$w(\"StatusCode\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * The absolute request URI.\r\n */\r\n absoluteURI: _NS$w(\"absoluteURI\"),\r\n /**\r\n * The request URI of an HTTP request.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n requestURI: _NS$w(\"requestURI\"),\r\n /**\r\n * The absolute path sort of request URI.\r\n */\r\n absolutePath: _NS$w(\"absolutePath\"),\r\n /**\r\n * The authority sort of request URI.\r\n */\r\n authority: _NS$w(\"authority\"),\r\n /**\r\n * The entity body of an HTTP message.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n body: _NS$w(\"body\"),\r\n /**\r\n * The authority of a connection used for the HTTP transfer.\r\n */\r\n connectionAuthority: _NS$w(\"connectionAuthority\"),\r\n /**\r\n * The name of a header element.\r\n */\r\n elementName: _NS$w(\"elementName\"),\r\n /**\r\n * The value of a header element.\r\n */\r\n elementValue: _NS$w(\"elementValue\"),\r\n /**\r\n * The name of an HTTP header field.\r\n */\r\n fieldName: _NS$w(\"fieldName\"),\r\n /**\r\n * The value of an HTTP header field.\r\n */\r\n fieldValue: _NS$w(\"fieldValue\"),\r\n /**\r\n * The deconstructed parts of an HTTP header value.\r\n */\r\n headerElements: _NS$w(\"headerElements\"),\r\n /**\r\n * The name of an HTTP header.\r\n */\r\n hdrName: _NS$w(\"hdrName\"),\r\n /**\r\n * The headers in an HTTP message.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n headers: _NS$w(\"headers\"),\r\n /**\r\n * The HTTP version of an HTTP message.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n httpVersion: _NS$w(\"httpVersion\"),\r\n /**\r\n * The HTTP method used for the HTTP request.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n mthd: _NS$w(\"mthd\"),\r\n /**\r\n * The HTTP method name used for the HTTP request.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n methodName: _NS$w(\"methodName\"),\r\n /**\r\n * The name of a parameter in a part of a deconstructed HTTP header value.\r\n */\r\n paramName: _NS$w(\"paramName\"),\r\n /**\r\n * The parameters in a part of a deconstructed HTTP header value.\r\n */\r\n params: _NS$w(\"params\"),\r\n /**\r\n * The value of a parameter in a part of a deconstructed HTTP header value.\r\n */\r\n paramValue: _NS$w(\"paramValue\"),\r\n /**\r\n * The reason phrase (status text) of an HTTP response.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n reasonPhrase: _NS$w(\"reasonPhrase\"),\r\n /**\r\n * The HTTP requests made via a connection.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n requests: _NS$w(\"requests\"),\r\n /**\r\n * The HTTP response sent in answer to an HTTP request.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n resp: _NS$w(\"resp\"),\r\n /**\r\n * The status code of an HTTP response.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n sc: _NS$w(\"sc\"),\r\n /**\r\n * The status code number.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n statusCodeNumber: _NS$w(\"statusCodeNumber\"),\r\n /**\r\n * The status code value of an HTTP response.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n statusCodeValue: _NS$w(\"statusCodeValue\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$v = new rdfDataFactory.DataFactory();\r\nfunction _NS$v(localName) {\r\n return rdfFactory$v.namedNode(\"http://www.w3.org/2007/ont/httph#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * This vocabulary is a one deemed to contain all HTTP headers.\r\nThe rdflib.js library uses it as for relationships between an HTTP response\r\nand the content (value) of the HTTP header in that response. The ontology\r\nis deemed to contain one property for every HTTP header, standard or not.\r\nThe property in this ontology has a localname which is the header field converted\r\nto lower case.\r\n */\r\nvar HTTPH_INRUPT = {\r\n PREFIX: \"httph-inrupt\",\r\n NAMESPACE: \"http://www.w3.org/2007/ont/httph#\",\r\n PREFIX_AND_NAMESPACE: { \"httph-inrupt\": \"http://www.w3.org/2007/ont/httph#\" },\r\n NS: _NS$v,\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * See the HTTP specification\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2007/ont/httph\r\n */\r\n content_type: _NS$v(\"content-type\"),\r\n /**\r\n * See the HTTP specification\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2007/ont/httph#\r\n */\r\n accept: _NS$v(\"accept\"),\r\n /**\r\n * See the HTTP specification\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2007/ont/httph#\r\n */\r\n accept_language: _NS$v(\"accept-language\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$u = new rdfDataFactory.DataFactory();\r\nfunction _NS$u(localName) {\r\n return rdfFactory$u.namedNode(\"http://purl.org/ontology/olo/core#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * [Generator provided] - OLO (Ordered List Ontology) - for describing ordered lists\r\n */\r\nvar OLO = {\r\n PREFIX: \"olo\",\r\n NAMESPACE: \"http://purl.org/ontology/olo/core#\",\r\n PREFIX_AND_NAMESPACE: { \"olo\": \"http://purl.org/ontology/olo/core#\" },\r\n NS: _NS$u,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * An ordered list with a given length an indexed items.\r\n *\r\n * Defined by the vocabulary: http://purl.org/ontology/olo/core#\r\n */\r\n OrderedList: _NS$u(\"OrderedList\"),\r\n /**\r\n * A slot in an ordered list with a fixed index.\r\n *\r\n * Defined by the vocabulary: http://purl.org/ontology/olo/core#\r\n */\r\n Slot: _NS$u(\"Slot\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * The length of an ordered list.\r\n *\r\n * Defined by the vocabulary: http://purl.org/ontology/olo/core#\r\n */\r\n length: _NS$u(\"length\"),\r\n /**\r\n * Associates the next slot in an ordered list.\r\n *\r\n * Defined by the vocabulary: http://purl.org/ontology/olo/core#\r\n */\r\n next: _NS$u(\"next\"),\r\n /**\r\n * An index of a slot in an ordered list.\r\n *\r\n * Defined by the vocabulary: http://purl.org/ontology/olo/core#\r\n */\r\n index: _NS$u(\"index\"),\r\n /**\r\n * An ordered list of an slot.\r\n *\r\n * Defined by the vocabulary: http://purl.org/ontology/olo/core#\r\n */\r\n ordered_list: _NS$u(\"ordered_list\"),\r\n /**\r\n * Associates the previous slot in an ordered list\r\n *\r\n * Defined by the vocabulary: http://purl.org/ontology/olo/core#\r\n */\r\n previous: _NS$u(\"previous\"),\r\n /**\r\n * An item of a slot in an ordered list.\r\n *\r\n * Defined by the vocabulary: http://purl.org/ontology/olo/core#\r\n */\r\n item: _NS$u(\"item\"),\r\n /**\r\n * A slot in an ordered list.\r\n *\r\n * Defined by the vocabulary: http://purl.org/ontology/olo/core#\r\n */\r\n slot: _NS$u(\"slot\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$t = new rdfDataFactory.DataFactory();\r\nfunction _NS$t(localName) {\r\n return rdfFactory$t.namedNode(\"http://www.w3.org/2004/02/skos/core#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * An RDF vocabulary for describing the basic structure and content of concept schemes such as thesauri, classification schemes, subject heading lists, taxonomies, 'folksonomies', other types of controlled vocabulary, and also concept schemes embedded in glossaries and terminologies.\r\n */\r\nvar SKOS = {\r\n PREFIX: \"skos\",\r\n NAMESPACE: \"http://www.w3.org/2004/02/skos/core#\",\r\n PREFIX_AND_NAMESPACE: { \"skos\": \"http://www.w3.org/2004/02/skos/core#\" },\r\n NS: _NS$t,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * An idea or notion; a unit of thought.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n Concept: _NS$t(\"Concept\"),\r\n /**\r\n * A set of concepts, optionally including statements about semantic relationships between those concepts.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n ConceptScheme: _NS$t(\"ConceptScheme\"),\r\n /**\r\n * A meaningful collection of concepts.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n Collection: _NS$t(\"Collection\"),\r\n /**\r\n * An ordered collection of concepts, where both the grouping and the ordering are meaningful.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n OrderedCollection: _NS$t(\"OrderedCollection\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * A statement or formal explanation of the meaning of a concept.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n definition: _NS$t(\"definition\"),\r\n /**\r\n * A note that helps to clarify the meaning and/or the use of a concept.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n scopeNote: _NS$t(\"scopeNote\"),\r\n /**\r\n * An example of the use of a concept.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n example: _NS$t(\"example\"),\r\n /**\r\n * Relates a resource (for example a concept) to a concept scheme in which it is included.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n inScheme: _NS$t(\"inScheme\"),\r\n /**\r\n * Relates, by convention, a concept scheme to a concept which is topmost in the broader/narrower concept hierarchies for that scheme, providing an entry point to these hierarchies.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n hasTopConcept: _NS$t(\"hasTopConcept\"),\r\n /**\r\n * Relates a concept to the concept scheme that it is a top level concept of.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n topConceptOf: _NS$t(\"topConceptOf\"),\r\n /**\r\n * A resource has no more than one value of skos:prefLabel per language tag, and no more than one value of skos:prefLabel without language tag.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n prefLabel: _NS$t(\"prefLabel\"),\r\n /**\r\n * The range of skos:altLabel is the class of RDF plain literals.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n altLabel: _NS$t(\"altLabel\"),\r\n /**\r\n * skos:prefLabel, skos:altLabel and skos:hiddenLabel are pairwise disjoint properties.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n hiddenLabel: _NS$t(\"hiddenLabel\"),\r\n /**\r\n * A notation, also known as classification code, is a string of characters such as \"T58.5\" or \"303.4833\" used to uniquely identify a concept within the scope of a given concept scheme.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n notation: _NS$t(\"notation\"),\r\n /**\r\n * A general note, for any purpose.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n note: _NS$t(\"note\"),\r\n /**\r\n * A note about a modification to a concept.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n changeNote: _NS$t(\"changeNote\"),\r\n /**\r\n * A note for an editor, translator or maintainer of the vocabulary.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n editorialNote: _NS$t(\"editorialNote\"),\r\n /**\r\n * A note about the past state/use/meaning of a concept.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n historyNote: _NS$t(\"historyNote\"),\r\n /**\r\n * Links a concept to a concept related by meaning.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n semanticRelation: _NS$t(\"semanticRelation\"),\r\n /**\r\n * Broader concepts are typically rendered as parents in a concept hierarchy (tree).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n broader: _NS$t(\"broader\"),\r\n /**\r\n * skos:broaderTransitive is a transitive superproperty of skos:broader.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n broaderTransitive: _NS$t(\"broaderTransitive\"),\r\n /**\r\n * Narrower concepts are typically rendered as children in a concept hierarchy (tree).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n narrower: _NS$t(\"narrower\"),\r\n /**\r\n * skos:narrowerTransitive is a transitive superproperty of skos:narrower.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n narrowerTransitive: _NS$t(\"narrowerTransitive\"),\r\n /**\r\n * skos:related is disjoint with skos:broaderTransitive\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n related: _NS$t(\"related\"),\r\n /**\r\n * Relates a collection to one of its members.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n member: _NS$t(\"member\"),\r\n /**\r\n * For any resource, every item in the list given as the value of the\r\n skos:memberList property is also a value of the skos:member property.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n memberList: _NS$t(\"memberList\"),\r\n /**\r\n * These concept mapping relations mirror semantic relations, and the data model defined below is similar (with the exception of skos:exactMatch) to the data model defined for semantic relations. A distinct vocabulary is provided for concept mapping relations, to provide a convenient way to differentiate links within a concept scheme from links between concept schemes. However, this pattern of usage is not a formal requirement of the SKOS data model, and relies on informal definitions of best practice.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n mappingRelation: _NS$t(\"mappingRelation\"),\r\n /**\r\n * skos:broadMatch is used to state a hierarchical mapping link between two conceptual resources in different concept schemes.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n broadMatch: _NS$t(\"broadMatch\"),\r\n /**\r\n * skos:narrowMatch is used to state a hierarchical mapping link between two conceptual resources in different concept schemes.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n narrowMatch: _NS$t(\"narrowMatch\"),\r\n /**\r\n * skos:relatedMatch is used to state an associative mapping link between two conceptual resources in different concept schemes.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n relatedMatch: _NS$t(\"relatedMatch\"),\r\n /**\r\n * skos:exactMatch is disjoint with each of the properties skos:broadMatch and skos:relatedMatch.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n exactMatch: _NS$t(\"exactMatch\"),\r\n /**\r\n * skos:closeMatch is used to link two concepts that are sufficiently similar that they can be used interchangeably in some information retrieval applications. In order to avoid the possibility of \"compound errors\" when combining mappings across more than two concept schemes, skos:closeMatch is not declared to be a transitive property.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n closeMatch: _NS$t(\"closeMatch\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$s = new rdfDataFactory.DataFactory();\r\nfunction _NS$s(localName) {\r\n return rdfFactory$s.namedNode(\"http://www.w3.org/2008/05/skos-xl#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * An RDF vocabulary extending SKOS and allowing the description and linking of lexical entities.\r\n */\r\nvar SKOS_XL = {\r\n PREFIX: \"skos-xl\",\r\n NAMESPACE: \"http://www.w3.org/2008/05/skos-xl#\",\r\n PREFIX_AND_NAMESPACE: { \"skos-xl\": \"http://www.w3.org/2008/05/skos-xl#\" },\r\n NS: _NS$s,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * A special class of lexical entities.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2008/05/skos-xl\r\n */\r\n Label: _NS$s(\"Label\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * If two instances of the class skosxl:Label have the same literal form, they are not necessarily the same resource.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2008/05/skos-xl\r\n */\r\n literalForm: _NS$s(\"literalForm\"),\r\n /**\r\n * If C skosxl:prefLabel L and L skosxl:literalForm V, then X skos:prefLabel V.\r\n *\r\n * See also:\r\n * - http://www.w3.org/2004/02/skos/core#prefLabel\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2008/05/skos-xl\r\n */\r\n prefLabel: _NS$s(\"prefLabel\"),\r\n /**\r\n * If C skosxl:altLabel L and L skosxl:literalForm V, then X skos:altLabel V.\r\n *\r\n * See also:\r\n * - http://www.w3.org/2004/02/skos/core#altLabel\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2008/05/skos-xl\r\n */\r\n altLabel: _NS$s(\"altLabel\"),\r\n /**\r\n * If C skosxl:hiddenLabel L and L skosxl:literalForm V, then C skos:hiddenLabel V.\r\n *\r\n * See also:\r\n * - http://www.w3.org/2004/02/skos/core#hiddenLabel\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2008/05/skos-xl\r\n */\r\n hiddenLabel: _NS$s(\"hiddenLabel\"),\r\n /**\r\n * The property skosxl:labelRelation is used for representing binary ('direct') relations between instances of the class skosxl:Label.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2008/05/skos-xl\r\n */\r\n labelRelation: _NS$s(\"labelRelation\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$r = new rdfDataFactory.DataFactory();\r\nfunction _NS$r(localName) {\r\n return rdfFactory$r.namedNode(\"http://www.w3.org/ns/ui#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * [Generator provided] - UI Ontology\r\n */\r\nvar UI = {\r\n PREFIX: \"ui\",\r\n NAMESPACE: \"http://www.w3.org/ns/ui#\",\r\n PREFIX_AND_NAMESPACE: { \"ui\": \"http://www.w3.org/ns/ui#\" },\r\n NS: _NS$r,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n *\r\n */\r\n BooleanField: _NS$r(\"BooleanField\"),\r\n /**\r\n *\r\n */\r\n NumericField: _NS$r(\"NumericField\"),\r\n /**\r\n *\r\n */\r\n Group: _NS$r(\"Group\"),\r\n /**\r\n *\r\n */\r\n Choice: _NS$r(\"Choice\"),\r\n /**\r\n * A form can be any type of single field, or typically a Group of several fields,\r\n including interspersed headings and comments.\r\n */\r\n Form: _NS$r(\"Form\"),\r\n /**\r\n *\r\n */\r\n Single: _NS$r(\"Single\"),\r\n /**\r\n * A classifier allows the user to select the type of an object.\r\n The possible types must be subclasses of some overall class, the \"category\".\r\n (Ideally, the superclass is also set up as the disjoint union of the subclasses,\r\n if they are disjoint.)\r\n \n The form normally stores the resulting classes using an r:type triple,\r\n but a different predicate can be used if required, so the classifier field\r\n needs is 'property' defined too.\r\n \n If the subclass selected itself is has subclasses defined, the user can\r\n recursively select from them in turn, as many levels as needed.\r\n */\r\n Classifier: _NS$r(\"Classifier\"),\r\n /**\r\n *\r\n */\r\n ColorField: _NS$r(\"ColorField\"),\r\n /**\r\n *\r\n */\r\n ValueField: _NS$r(\"ValueField\"),\r\n /**\r\n * Comment\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n Comment: _NS$r(\"Comment\"),\r\n /**\r\n *\r\n */\r\n DateField: _NS$r(\"DateField\"),\r\n /**\r\n *\r\n */\r\n DateTimeField: _NS$r(\"DateTimeField\"),\r\n /**\r\n *\r\n */\r\n DecimalField: _NS$r(\"DecimalField\"),\r\n /**\r\n *\r\n */\r\n EmailField: _NS$r(\"EmailField\"),\r\n /**\r\n *\r\n */\r\n Heading: _NS$r(\"Heading\"),\r\n /**\r\n *\r\n */\r\n SingleLineTextField: _NS$r(\"SingleLineTextField\"),\r\n /**\r\n *\r\n */\r\n Options: _NS$r(\"Options\"),\r\n /**\r\n *\r\n */\r\n TextField: _NS$r(\"TextField\"),\r\n /**\r\n *\r\n */\r\n IntegerField: _NS$r(\"IntegerField\"),\r\n /**\r\n *\r\n */\r\n FloatField: _NS$r(\"FloatField\"),\r\n /**\r\n *\r\n */\r\n PhoneField: _NS$r(\"PhoneField\"),\r\n /**\r\n *\r\n */\r\n Multiple: _NS$r(\"Multiple\"),\r\n /**\r\n *\r\n */\r\n MultiLineTextField: _NS$r(\"MultiLineTextField\"),\r\n /**\r\n * A NamedNodeURIField is like a SingleLineTextField, except\r\n that the value it generates is not a literal string but an RDF node with the given URI.\r\n Normally users should not see URIs. When they do, this a way to do it.\r\n \n */\r\n NamedNodeURIField: _NS$r(\"NamedNodeURIField\"),\r\n /**\r\n *\r\n */\r\n TriStateField: _NS$r(\"TriStateField\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * from\r\n */\r\n from: _NS$r(\"from\"),\r\n /**\r\n * Label\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n label: _NS$r(\"label\"),\r\n /**\r\n * Many fields prompt for information about a given property of the subject.\r\n When field is filled in, this gives which property is written into the data.\r\n */\r\n property: _NS$r(\"property\"),\r\n /**\r\n * The value for which this case is selected.\r\n */\r\n for: _NS$r(\"for\"),\r\n /**\r\n *\r\n */\r\n use: _NS$r(\"use\"),\r\n /**\r\n * parts\r\n */\r\n parts: _NS$r(\"parts\"),\r\n /**\r\n * Must be a valid CSS color string such as one could put in\r\n an HTML style attribute. This must be in the #xxxxxx form,\r\n (with 6 digits of lowercase hex) so that it\r\n can work eg with Graphviz.\r\n As this is just an encoded array of RGB values,\r\n you can do math with these, such as blending, complement, etc.\r\n */\r\n Color: _NS$r(\"Color\"),\r\n /**\r\n * Contents\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n contents: _NS$r(\"contents\"),\r\n /**\r\n * size of field\r\n */\r\n size: _NS$r(\"size\"),\r\n /**\r\n * Must be a valid CSS style string such as one could put in\r\n an HTML style attribute. Depending on the user interface system, this can\r\n by given to individuals, classes or properties. It is up to a user interface\r\n which wants to draw on them to pick how it uses styles from which parts\r\n of the data it has. For example, the style of a class may be picked\r\n to distinguish information about things in that class.\r\n */\r\n style: _NS$r(\"style\"),\r\n /**\r\n * The superclass subclasses of which will be selected.\r\n */\r\n category: _NS$r(\"category\"),\r\n /**\r\n * Max length\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n maxLength: _NS$r(\"maxLength\"),\r\n /**\r\n * Many fields prompt for information about a given property of the subject\r\n */\r\n dependingOn: _NS$r(\"dependingOn\"),\r\n /**\r\n * part\r\n */\r\n part: _NS$r(\"part\"),\r\n /**\r\n * A form which may be used to collect information about a\r\n hitherto locally undocumented instance instance of this class.\r\n */\r\n creationForm: _NS$r(\"creationForm\"),\r\n /**\r\n * Time field\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n TimeField: _NS$r(\"TimeField\"),\r\n /**\r\n * A form which may be used to add more infromation to an\r\n instance of this class which we know something about. Anything from\r\n adding just add one more fact, to adding a whole lot of information about a specific\r\n facet of the thing.\r\n \n */\r\n annotationForm: _NS$r(\"annotationForm\"),\r\n /**\r\n * background color\r\n */\r\n backgroundColor: _NS$r(\"backgroundColor\"),\r\n /**\r\n * URI or base64 representation of an image\r\n */\r\n backgroundImage: _NS$r(\"backgroundImage\"),\r\n /**\r\n * Base\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n base: _NS$r(\"base\"),\r\n /**\r\n * color\r\n */\r\n color: _NS$r(\"color\"),\r\n /**\r\n * Default error\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n defaultError: _NS$r(\"defaultError\"),\r\n /**\r\n * A string for the UI to use if the user needs a longer\r\n prompts than just a field name, the s:label.\r\n */\r\n prompt: _NS$r(\"prompt\"),\r\n /**\r\n * A really simple way of enabling user interfaces to\r\n create new information about a class of things is to make a define of properties\r\n to be specified when a information about a new item\r\n (\"New item\" here means an item which the system\r\n does not have prvious information about yet,\r\n not an items which has just been created,\r\n like new friend as opposed to new baby)\r\n */\r\n initialProperties: _NS$r(\"initialProperties\"),\r\n /**\r\n * Maximum date offset\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n maxDateOffset: _NS$r(\"maxDateOffset\"),\r\n /**\r\n * Maximum datetime offset\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n maxDatetimeOffset: _NS$r(\"maxDatetimeOffset\"),\r\n /**\r\n * max\r\n */\r\n maxValue: _NS$r(\"maxValue\"),\r\n /**\r\n * Minimum date offset\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n minDateOffset: _NS$r(\"minDateOffset\"),\r\n /**\r\n * Minimum datetime offset\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n minDatetimeOffset: _NS$r(\"minDatetimeOffset\"),\r\n /**\r\n * Min length\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n minLength: _NS$r(\"minLength\"),\r\n /**\r\n * min\r\n */\r\n minValue: _NS$r(\"minValue\"),\r\n /**\r\n * Name\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n name: _NS$r(\"name\"),\r\n /**\r\n * Old value\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n oldValue: _NS$r(\"oldValue\"),\r\n /**\r\n * Parent property\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n parentProperty: _NS$r(\"parentProperty\"),\r\n /**\r\n * Parts clone\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n partsClone: _NS$r(\"partsClone\"),\r\n /**\r\n * Pattern\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n pattern: _NS$r(\"pattern\"),\r\n /**\r\n * Reference\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n reference: _NS$r(\"reference\"),\r\n /**\r\n * Required\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n required: _NS$r(\"required\"),\r\n /**\r\n * Required error\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n requiredError: _NS$r(\"requiredError\"),\r\n /**\r\n * The sequence in which this item is arranged with repect to other parts.\r\n */\r\n seqeunce: _NS$r(\"seqeunce\"),\r\n /**\r\n * A property which typically is used to sort\r\n members of a given class.\r\n */\r\n sortBy: _NS$r(\"sortBy\"),\r\n /**\r\n * When individuals or classes must be sorted, then\r\n if they are given different values of sortPriority a user agent can\r\n use this as a hint to how to present information.\r\n */\r\n sortPriority: _NS$r(\"sortPriority\"),\r\n /**\r\n * This is a crude way of specifying a table-based\r\n view for objects of this class.\r\n */\r\n tableProperties: _NS$r(\"tableProperties\"),\r\n /**\r\n * Valid\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n valid: _NS$r(\"valid\"),\r\n /**\r\n * Validation error\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n validationError: _NS$r(\"validationError\"),\r\n /**\r\n * Value\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n value: _NS$r(\"value\"),\r\n /**\r\n * Values\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n values: _NS$r(\"values\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$q = new rdfDataFactory.DataFactory();\r\nfunction _NS$q(localName) {\r\n return rdfFactory$q.namedNode(\"http://www.w3.org/ns/ui#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * Extension to UI terms providing multilingual alternative names and translations for comments (e.g. for use directly as labels or tool-tips in user interfaces or error messages)\r\n */\r\nvar UI_INRUPT = {\r\n PREFIX: \"ui-inrupt\",\r\n NAMESPACE: \"http://www.w3.org/ns/ui#\",\r\n PREFIX_AND_NAMESPACE: { \"ui-inrupt\": \"http://www.w3.org/ns/ui#\" },\r\n NS: _NS$q,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n *\r\n */\r\n BooleanField: _NS$q(\"BooleanField\"),\r\n /**\r\n *\r\n */\r\n NumericField: _NS$q(\"NumericField\"),\r\n /**\r\n *\r\n */\r\n ValueField: _NS$q(\"ValueField\"),\r\n /**\r\n *\r\n */\r\n Group: _NS$q(\"Group\"),\r\n /**\r\n * A form can be any type of single field, or typically a Group of several fields,\r\n including interspersed headings and comments.\r\n */\r\n Form: _NS$q(\"Form\"),\r\n /**\r\n *\r\n */\r\n Single: _NS$q(\"Single\"),\r\n /**\r\n *\r\n */\r\n Choice: _NS$q(\"Choice\"),\r\n /**\r\n * A classifier allows the user to select the type of an object.\r\n The possible types must be subclasses of some overall class, the \"category\".\r\n (Ideally, the superclass is also set up as the disjoint union of the subclasses,\r\n if they are disjoint.)\r\n \n The form normally stores the resulting classes using an r:type triple,\r\n but a different predicate can be used if required, so the classifier field\r\n needs is 'property' defined too.\r\n \n If the subclass selected itself is has subclasses defined, the user can\r\n recursively select from them in turn, as many levels as needed.\r\n */\r\n Classifier: _NS$q(\"Classifier\"),\r\n /**\r\n *\r\n */\r\n ColorField: _NS$q(\"ColorField\"),\r\n /**\r\n * Comment\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n Comment: _NS$q(\"Comment\"),\r\n /**\r\n *\r\n */\r\n DateField: _NS$q(\"DateField\"),\r\n /**\r\n *\r\n */\r\n DateTimeField: _NS$q(\"DateTimeField\"),\r\n /**\r\n *\r\n */\r\n DecimalField: _NS$q(\"DecimalField\"),\r\n /**\r\n *\r\n */\r\n EmailField: _NS$q(\"EmailField\"),\r\n /**\r\n *\r\n */\r\n Heading: _NS$q(\"Heading\"),\r\n /**\r\n *\r\n */\r\n SingleLineTextField: _NS$q(\"SingleLineTextField\"),\r\n /**\r\n *\r\n */\r\n TextField: _NS$q(\"TextField\"),\r\n /**\r\n *\r\n */\r\n Options: _NS$q(\"Options\"),\r\n /**\r\n *\r\n */\r\n IntegerField: _NS$q(\"IntegerField\"),\r\n /**\r\n *\r\n */\r\n FloatField: _NS$q(\"FloatField\"),\r\n /**\r\n *\r\n */\r\n PhoneField: _NS$q(\"PhoneField\"),\r\n /**\r\n *\r\n */\r\n Multiple: _NS$q(\"Multiple\"),\r\n /**\r\n *\r\n */\r\n MultiLineTextField: _NS$q(\"MultiLineTextField\"),\r\n /**\r\n * A NamedNodeURIField is like a SingleLineTextField, except\r\n that the value it generates is not a literal string but an RDF node with the given URI.\r\n Normally users should not see URIs. When they do, this a way to do it.\r\n \n */\r\n NamedNodeURIField: _NS$q(\"NamedNodeURIField\"),\r\n /**\r\n *\r\n */\r\n TriStateField: _NS$q(\"TriStateField\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * parts\r\n */\r\n parts: _NS$q(\"parts\"),\r\n /**\r\n * from\r\n */\r\n from: _NS$q(\"from\"),\r\n /**\r\n * Label\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n label: _NS$q(\"label\"),\r\n /**\r\n * Many fields prompt for information about a given property of the subject.\r\n When field is filled in, this gives which property is written into the data.\r\n */\r\n property: _NS$q(\"property\"),\r\n /**\r\n * The value for which this case is selected.\r\n */\r\n for: _NS$q(\"for\"),\r\n /**\r\n * A string for the UI to use if the user needs a longer\r\n prompts than just a field name, the s:label.\r\n */\r\n prompt: _NS$q(\"prompt\"),\r\n /**\r\n *\r\n */\r\n use: _NS$q(\"use\"),\r\n /**\r\n * A form which may be used to collect information about a\r\n hitherto locally undocumented instance instance of this class.\r\n */\r\n creationForm: _NS$q(\"creationForm\"),\r\n /**\r\n * Must be a valid CSS color string such as one could put in\r\n an HTML style attribute. This must be in the #xxxxxx form,\r\n (with 6 digits of lowercase hex) so that it\r\n can work eg with Graphviz.\r\n As this is just an encoded array of RGB values,\r\n you can do math with these, such as blending, complement, etc.\r\n */\r\n Color: _NS$q(\"Color\"),\r\n /**\r\n * Contents\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n contents: _NS$q(\"contents\"),\r\n /**\r\n * size of field\r\n */\r\n size: _NS$q(\"size\"),\r\n /**\r\n * Must be a valid CSS style string such as one could put in\r\n an HTML style attribute. Depending on the user interface system, this can\r\n by given to individuals, classes or properties. It is up to a user interface\r\n which wants to draw on them to pick how it uses styles from which parts\r\n of the data it has. For example, the style of a class may be picked\r\n to distinguish information about things in that class.\r\n */\r\n style: _NS$q(\"style\"),\r\n /**\r\n * The superclass subclasses of which will be selected.\r\n */\r\n category: _NS$q(\"category\"),\r\n /**\r\n * Many fields prompt for information about a given property of the subject\r\n */\r\n dependingOn: _NS$q(\"dependingOn\"),\r\n /**\r\n * Max length\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n maxLength: _NS$q(\"maxLength\"),\r\n /**\r\n * part\r\n */\r\n part: _NS$q(\"part\"),\r\n /**\r\n * Time field\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n TimeField: _NS$q(\"TimeField\"),\r\n /**\r\n * A form which may be used to add more infromation to an\r\n instance of this class which we know something about. Anything from\r\n adding just add one more fact, to adding a whole lot of information about a specific\r\n facet of the thing.\r\n \n */\r\n annotationForm: _NS$q(\"annotationForm\"),\r\n /**\r\n * background color\r\n */\r\n backgroundColor: _NS$q(\"backgroundColor\"),\r\n /**\r\n * URI or base64 representation of an image\r\n */\r\n backgroundImage: _NS$q(\"backgroundImage\"),\r\n /**\r\n * Base\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n base: _NS$q(\"base\"),\r\n /**\r\n * color\r\n */\r\n color: _NS$q(\"color\"),\r\n /**\r\n * Default error\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n defaultError: _NS$q(\"defaultError\"),\r\n /**\r\n * A really simple way of enabling user interfaces to\r\n create new information about a class of things is to make a define of properties\r\n to be specified when a information about a new item\r\n (\"New item\" here means an item which the system\r\n does not have prvious information about yet,\r\n not an items which has just been created,\r\n like new friend as opposed to new baby)\r\n */\r\n initialProperties: _NS$q(\"initialProperties\"),\r\n /**\r\n * Maximum date offset\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n maxDateOffset: _NS$q(\"maxDateOffset\"),\r\n /**\r\n * Maximum datetime offset\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n maxDatetimeOffset: _NS$q(\"maxDatetimeOffset\"),\r\n /**\r\n * max\r\n */\r\n maxValue: _NS$q(\"maxValue\"),\r\n /**\r\n * Minimum date offset\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n minDateOffset: _NS$q(\"minDateOffset\"),\r\n /**\r\n * Minimum datetime offset\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n minDatetimeOffset: _NS$q(\"minDatetimeOffset\"),\r\n /**\r\n * Min length\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n minLength: _NS$q(\"minLength\"),\r\n /**\r\n * min\r\n */\r\n minValue: _NS$q(\"minValue\"),\r\n /**\r\n * Name\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n name: _NS$q(\"name\"),\r\n /**\r\n * Old value\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n oldValue: _NS$q(\"oldValue\"),\r\n /**\r\n * Parent property\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n parentProperty: _NS$q(\"parentProperty\"),\r\n /**\r\n * Parts clone\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n partsClone: _NS$q(\"partsClone\"),\r\n /**\r\n * Pattern\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n pattern: _NS$q(\"pattern\"),\r\n /**\r\n * Reference\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n reference: _NS$q(\"reference\"),\r\n /**\r\n * Required\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n required: _NS$q(\"required\"),\r\n /**\r\n * Required error\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n requiredError: _NS$q(\"requiredError\"),\r\n /**\r\n * The sequence in which this item is arranged with repect to other parts.\r\n */\r\n seqeunce: _NS$q(\"seqeunce\"),\r\n /**\r\n * A property which typically is used to sort\r\n members of a given class.\r\n */\r\n sortBy: _NS$q(\"sortBy\"),\r\n /**\r\n * When individuals or classes must be sorted, then\r\n if they are given different values of sortPriority a user agent can\r\n use this as a hint to how to present information.\r\n */\r\n sortPriority: _NS$q(\"sortPriority\"),\r\n /**\r\n * This is a crude way of specifying a table-based\r\n view for objects of this class.\r\n */\r\n tableProperties: _NS$q(\"tableProperties\"),\r\n /**\r\n * Valid\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n valid: _NS$q(\"valid\"),\r\n /**\r\n * Validation error\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n validationError: _NS$q(\"validationError\"),\r\n /**\r\n * Value\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n value: _NS$q(\"value\"),\r\n /**\r\n * Values\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n values: _NS$q(\"values\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$p = new rdfDataFactory.DataFactory();\r\nfunction _NS$p(localName) {\r\n return rdfFactory$p.namedNode(\"http://purl.org/vocab/vann/\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * A vocabulary for annotating vocabulary descriptions (VANN).\r\n */\r\nvar VANN = {\r\n PREFIX: \"vann\",\r\n NAMESPACE: \"http://purl.org/vocab/vann/\",\r\n PREFIX_AND_NAMESPACE: { \"vann\": \"http://purl.org/vocab/vann/\" },\r\n NS: _NS$p,\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * The preferred namespace prefix to ue when using terms from this vocabulary in an XML document.\r\n */\r\n preferredNamespacePrefix: _NS$p(\"preferredNamespacePrefix\"),\r\n /**\r\n * The preferred namespace URI to use when using terms from this vocabulary in an XML document.\r\n */\r\n preferredNamespaceUri: _NS$p(\"preferredNamespaceUri\"),\r\n /**\r\n * A reference to a resource that describes changes between this version of a vocabulary and the previous.\r\n */\r\n changes: _NS$p(\"changes\"),\r\n /**\r\n * A reference to a resource that provides an example of how this resource can be used.\r\n */\r\n example: _NS$p(\"example\"),\r\n /**\r\n * A group of related terms in a vocabulary.\r\n */\r\n termGroup: _NS$p(\"termGroup\"),\r\n /**\r\n * A reference to a resource that provides information on how this resource is to be used.\r\n */\r\n usageNote: _NS$p(\"usageNote\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$o = new rdfDataFactory.DataFactory();\r\nfunction _NS$o(localName) {\r\n return rdfFactory$o.namedNode(\"http://purl.org/dc/terms/\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * [Generator provided] - Dublin Core Terms - for describing resources\r\n */\r\nvar DCTERMS = {\r\n PREFIX: \"dcterms\",\r\n NAMESPACE: \"http://purl.org/dc/terms/\",\r\n PREFIX_AND_NAMESPACE: { \"dcterms\": \"http://purl.org/dc/terms/\" },\r\n NS: _NS$o,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * A resource that acts or has the power to act.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n Agent: _NS$o(\"Agent\"),\r\n /**\r\n * A group of agents.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n AgentClass: _NS$o(\"AgentClass\"),\r\n /**\r\n * A book, article, or other documentary resource.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n BibliographicResource: _NS$o(\"BibliographicResource\"),\r\n /**\r\n * A digital resource format.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n FileFormat: _NS$o(\"FileFormat\"),\r\n /**\r\n * A file format or physical medium.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n MediaType: _NS$o(\"MediaType\"),\r\n /**\r\n * A rate at which something recurs.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n Frequency: _NS$o(\"Frequency\"),\r\n /**\r\n * The extent or range of judicial, law enforcement, or other authority.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n Jurisdiction: _NS$o(\"Jurisdiction\"),\r\n /**\r\n * A location, period of time, or jurisdiction.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n LocationPeriodOrJurisdiction: _NS$o(\"LocationPeriodOrJurisdiction\"),\r\n /**\r\n * A legal document giving official permission to do something with a Resource.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n LicenseDocument: _NS$o(\"LicenseDocument\"),\r\n /**\r\n * A statement about the intellectual property rights (IPR) held in or over a Resource, a legal document giving official permission to do something with a resource, or a statement about access rights.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n RightsStatement: _NS$o(\"RightsStatement\"),\r\n /**\r\n * A system of signs, symbols, sounds, gestures, or rules used in communication.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n LinguisticSystem: _NS$o(\"LinguisticSystem\"),\r\n /**\r\n * A spatial region or named place.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n Location: _NS$o(\"Location\"),\r\n /**\r\n * A media type or extent.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n MediaTypeOrExtent: _NS$o(\"MediaTypeOrExtent\"),\r\n /**\r\n * A method by which resources are added to a collection.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n MethodOfAccrual: _NS$o(\"MethodOfAccrual\"),\r\n /**\r\n * A process that is used to engender knowledge, attitudes, and skills.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n MethodOfInstruction: _NS$o(\"MethodOfInstruction\"),\r\n /**\r\n * An interval of time that is named or defined by its start and end dates.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n PeriodOfTime: _NS$o(\"PeriodOfTime\"),\r\n /**\r\n * A physical material or carrier.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n PhysicalMedium: _NS$o(\"PhysicalMedium\"),\r\n /**\r\n * A material thing.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n PhysicalResource: _NS$o(\"PhysicalResource\"),\r\n /**\r\n * A plan or course of action by an authority, intended to influence and determine decisions, actions, and other matters.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n Policy: _NS$o(\"Policy\"),\r\n /**\r\n * A statement of any changes in ownership and custody of a resource since its creation that are significant for its authenticity, integrity, and interpretation.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n ProvenanceStatement: _NS$o(\"ProvenanceStatement\"),\r\n /**\r\n * A dimension or extent, or a time taken to play or execute.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n SizeOrDuration: _NS$o(\"SizeOrDuration\"),\r\n /**\r\n * A basis for comparison; a reference point against which other things can be evaluated.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n Standard: _NS$o(\"Standard\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * Date on which the resource was changed.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n modified: _NS$o(\"modified\"),\r\n /**\r\n * An entity responsible for making the resource available.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n publisher: _NS$o(\"publisher\"),\r\n /**\r\n * A name given to the resource.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n title: _NS$o(\"title\"),\r\n /**\r\n * An account of the resource.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n description: _NS$o(\"description\"),\r\n /**\r\n * A related resource that is a version, edition, or adaptation of the described resource.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n hasVersion: _NS$o(\"hasVersion\"),\r\n /**\r\n * Date of formal issuance (e.g., publication) of the resource.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n issued: _NS$o(\"issued\"),\r\n /**\r\n * The set of regions in space defined by their geographic coordinates according to the DCMI Box Encoding Scheme.\r\n *\r\n * See also:\r\n * - http://dublincore.org/documents/dcmi-box/\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n Box: _NS$o(\"Box\"),\r\n /**\r\n * The set of codes listed in ISO 3166-1 for the representation of names of countries.\r\n *\r\n * See also:\r\n * - http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n ISO3166: _NS$o(\"ISO3166\"),\r\n /**\r\n * The three-letter alphabetic codes listed in ISO639-2 for the representation of names of languages.\r\n *\r\n * See also:\r\n * - http://lcweb.loc.gov/standards/iso639-2/langhome.html\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n ISO639_2: _NS$o(\"ISO639-2\"),\r\n /**\r\n * The set of three-letter codes listed in ISO 639-3 for the representation of names of languages.\r\n *\r\n * See also:\r\n * - http://www.sil.org/iso639-3/\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n ISO639_3: _NS$o(\"ISO639-3\"),\r\n /**\r\n * The set of time intervals defined by their limits according to the DCMI Period Encoding Scheme.\r\n *\r\n * See also:\r\n * - http://dublincore.org/documents/dcmi-period/\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n Period: _NS$o(\"Period\"),\r\n /**\r\n * The set of points in space defined by their geographic coordinates according to the DCMI Point Encoding Scheme.\r\n *\r\n * See also:\r\n * - http://dublincore.org/documents/dcmi-point/\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n Point: _NS$o(\"Point\"),\r\n /**\r\n * The set of tags, constructed according to RFC 1766, for the identification of languages.\r\n *\r\n * See also:\r\n * - http://www.ietf.org/rfc/rfc1766.txt\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n RFC1766: _NS$o(\"RFC1766\"),\r\n /**\r\n * The set of tags constructed according to RFC 3066 for the identification of languages.\r\n *\r\n * See also:\r\n * - http://www.ietf.org/rfc/rfc3066.txt\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n RFC3066: _NS$o(\"RFC3066\"),\r\n /**\r\n * The set of tags constructed according to RFC 4646 for the identification of languages.\r\n *\r\n * See also:\r\n * - http://www.ietf.org/rfc/rfc4646.txt\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n RFC4646: _NS$o(\"RFC4646\"),\r\n /**\r\n * The set of tags constructed according to RFC 5646 for the identification of languages.\r\n *\r\n * See also:\r\n * - http://www.ietf.org/rfc/rfc5646.txt\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n RFC5646: _NS$o(\"RFC5646\"),\r\n /**\r\n * The set of identifiers constructed according to the generic syntax for Uniform Resource Identifiers as specified by the Internet Engineering Task Force.\r\n *\r\n * See also:\r\n * - http://www.ietf.org/rfc/rfc3986.txt\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n URI: _NS$o(\"URI\"),\r\n /**\r\n * The set of dates and times constructed according to the W3C Date and Time Formats Specification.\r\n *\r\n * See also:\r\n * - http://www.w3.org/TR/NOTE-datetime\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n W3CDTF: _NS$o(\"W3CDTF\"),\r\n /**\r\n * A summary of the resource.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n abstract: _NS$o(\"abstract\"),\r\n /**\r\n * Information about who can access the resource or an indication of its security status.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n accessRights: _NS$o(\"accessRights\"),\r\n /**\r\n * Information about rights held in and over the resource.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n rights: _NS$o(\"rights\"),\r\n /**\r\n * The method by which items are added to a collection.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n accrualMethod: _NS$o(\"accrualMethod\"),\r\n /**\r\n * The frequency with which items are added to a collection.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n accrualPeriodicity: _NS$o(\"accrualPeriodicity\"),\r\n /**\r\n * The policy governing the addition of items to a collection.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n accrualPolicy: _NS$o(\"accrualPolicy\"),\r\n /**\r\n * An alternative name for the resource.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n alternative: _NS$o(\"alternative\"),\r\n /**\r\n * A class of entity for whom the resource is intended or useful.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n audience: _NS$o(\"audience\"),\r\n /**\r\n * Date (often a range) that the resource became or will become available.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n available: _NS$o(\"available\"),\r\n /**\r\n * A point or period of time associated with an event in the lifecycle of the resource.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n date: _NS$o(\"date\"),\r\n /**\r\n * A bibliographic reference for the resource.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n bibliographicCitation: _NS$o(\"bibliographicCitation\"),\r\n /**\r\n * An unambiguous reference to the resource within a given context.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n identifier: _NS$o(\"identifier\"),\r\n /**\r\n * An established standard to which the described resource conforms.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n conformsTo: _NS$o(\"conformsTo\"),\r\n /**\r\n * A related resource.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n relation: _NS$o(\"relation\"),\r\n /**\r\n * An entity responsible for making contributions to the resource.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n contributor: _NS$o(\"contributor\"),\r\n /**\r\n * The spatial or temporal topic of the resource, the spatial applicability of the resource, or the jurisdiction under which the resource is relevant.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n coverage: _NS$o(\"coverage\"),\r\n /**\r\n * Date of creation of the resource.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n created: _NS$o(\"created\"),\r\n /**\r\n * An entity primarily responsible for making the resource.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n creator: _NS$o(\"creator\"),\r\n /**\r\n * Date of acceptance of the resource.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n dateAccepted: _NS$o(\"dateAccepted\"),\r\n /**\r\n * Date of copyright.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n dateCopyrighted: _NS$o(\"dateCopyrighted\"),\r\n /**\r\n * Date of submission of the resource.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n dateSubmitted: _NS$o(\"dateSubmitted\"),\r\n /**\r\n * A class of entity, defined in terms of progression through an educational or training context, for which the described resource is intended.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n educationLevel: _NS$o(\"educationLevel\"),\r\n /**\r\n * The size or duration of the resource.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n extent: _NS$o(\"extent\"),\r\n /**\r\n * The file format, physical medium, or dimensions of the resource.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n format: _NS$o(\"format\"),\r\n /**\r\n * A related resource that is substantially the same as the pre-existing described resource, but in another format.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n hasFormat: _NS$o(\"hasFormat\"),\r\n /**\r\n * A related resource that is included either physically or logically in the described resource.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n hasPart: _NS$o(\"hasPart\"),\r\n /**\r\n * A process, used to engender knowledge, attitudes and skills, that the described resource is designed to support.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n instructionalMethod: _NS$o(\"instructionalMethod\"),\r\n /**\r\n * A related resource that is substantially the same as the described resource, but in another format.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n isFormatOf: _NS$o(\"isFormatOf\"),\r\n /**\r\n * A related resource in which the described resource is physically or logically included.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n isPartOf: _NS$o(\"isPartOf\"),\r\n /**\r\n * A related resource that references, cites, or otherwise points to the described resource.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n isReferencedBy: _NS$o(\"isReferencedBy\"),\r\n /**\r\n * A related resource that supplants, displaces, or supersedes the described resource.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n isReplacedBy: _NS$o(\"isReplacedBy\"),\r\n /**\r\n * A related resource that requires the described resource to support its function, delivery, or coherence.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n isRequiredBy: _NS$o(\"isRequiredBy\"),\r\n /**\r\n * A related resource of which the described resource is a version, edition, or adaptation.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n isVersionOf: _NS$o(\"isVersionOf\"),\r\n /**\r\n * A language of the resource.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n language: _NS$o(\"language\"),\r\n /**\r\n * A legal document giving official permission to do something with the resource.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n license: _NS$o(\"license\"),\r\n /**\r\n * An entity that mediates access to the resource and for whom the resource is intended or useful.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n mediator: _NS$o(\"mediator\"),\r\n /**\r\n * The material or physical carrier of the resource.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n medium: _NS$o(\"medium\"),\r\n /**\r\n * A statement of any changes in ownership and custody of the resource since its creation that are significant for its authenticity, integrity, and interpretation.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n provenance: _NS$o(\"provenance\"),\r\n /**\r\n * A related resource that is referenced, cited, or otherwise pointed to by the described resource.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n references: _NS$o(\"references\"),\r\n /**\r\n * A related resource that is supplanted, displaced, or superseded by the described resource.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n replaces: _NS$o(\"replaces\"),\r\n /**\r\n * A related resource that is required by the described resource to support its function, delivery, or coherence.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n requires: _NS$o(\"requires\"),\r\n /**\r\n * A person or organization owning or managing rights over the resource.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n rightsHolder: _NS$o(\"rightsHolder\"),\r\n /**\r\n * A related resource from which the described resource is derived.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n source: _NS$o(\"source\"),\r\n /**\r\n * Spatial characteristics of the resource.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n spatial: _NS$o(\"spatial\"),\r\n /**\r\n * The topic of the resource.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n subject: _NS$o(\"subject\"),\r\n /**\r\n * A list of subunits of the resource.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n tableOfContents: _NS$o(\"tableOfContents\"),\r\n /**\r\n * Temporal characteristics of the resource.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n temporal: _NS$o(\"temporal\"),\r\n /**\r\n * The nature or genre of the resource.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n type: _NS$o(\"type\"),\r\n /**\r\n * Date (often a range) of validity of a resource.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n valid: _NS$o(\"valid\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$n = new rdfDataFactory.DataFactory();\r\nfunction _NS$n(localName) {\r\n return rdfFactory$n.namedNode(\"https://www.w3.org/ns/activitystreams#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * Extended Activity Streams 2.0 Vocabulary\r\n */\r\nvar AS = {\r\n PREFIX: \"as\",\r\n NAMESPACE: \"https://www.w3.org/ns/activitystreams#\",\r\n PREFIX_AND_NAMESPACE: { \"as\": \"https://www.w3.org/ns/activitystreams#\" },\r\n NS: _NS$n,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * An Object representing some form of Action that has been taken\r\n */\r\n Activity: _NS$n(\"Activity\"),\r\n /**\r\n * Object\r\n */\r\n Object: _NS$n(\"Object\"),\r\n /**\r\n * Represents a qualified reference to another resource. Patterned after the RFC5988 Web Linking Model\r\n */\r\n Link: _NS$n(\"Link\"),\r\n /**\r\n * An ordered or unordered collection of Objects or Links\r\n */\r\n Collection: _NS$n(\"Collection\"),\r\n /**\r\n * A subset of items from a Collection\r\n */\r\n CollectionPage: _NS$n(\"CollectionPage\"),\r\n /**\r\n * An Image file\r\n */\r\n Image: _NS$n(\"Image\"),\r\n /**\r\n * A rdf:List variant for Objects and Links\r\n */\r\n OrderedItems: _NS$n(\"OrderedItems\"),\r\n /**\r\n * Represents a Social Graph relationship between two Individuals (indicated by the 'a' and 'b' properties)\r\n */\r\n Relationship: _NS$n(\"Relationship\"),\r\n /**\r\n * A question of any sort.\r\n */\r\n Question: _NS$n(\"Question\"),\r\n /**\r\n * A Profile Document\r\n */\r\n Profile: _NS$n(\"Profile\"),\r\n /**\r\n * A placeholder for a deleted object\r\n */\r\n Tombstone: _NS$n(\"Tombstone\"),\r\n /**\r\n * A physical or logical location\r\n */\r\n Place: _NS$n(\"Place\"),\r\n /**\r\n * An ordered subset of items from an OrderedCollection\r\n */\r\n OrderedCollectionPage: _NS$n(\"OrderedCollectionPage\"),\r\n /**\r\n * Actor accepts the Object\r\n */\r\n Accept: _NS$n(\"Accept\"),\r\n /**\r\n * Block\r\n */\r\n Block: _NS$n(\"Block\"),\r\n /**\r\n * Actor is ignoring the Object\r\n */\r\n Ignore: _NS$n(\"Ignore\"),\r\n /**\r\n * An Activity that has no direct object\r\n */\r\n IntransitiveActivity: _NS$n(\"IntransitiveActivity\"),\r\n /**\r\n * To Add an Object or Link to Something\r\n */\r\n Add: _NS$n(\"Add\"),\r\n /**\r\n * Actor announces the object to the target\r\n */\r\n Announce: _NS$n(\"Announce\"),\r\n /**\r\n * Represents a software application of any sort\r\n */\r\n Application: _NS$n(\"Application\"),\r\n /**\r\n * To Arrive Somewhere (can be used, for instance, to indicate that a particular entity is currently located somewhere, e.g. a \"check-in\")\r\n */\r\n Arrive: _NS$n(\"Arrive\"),\r\n /**\r\n * A written work. Typically several paragraphs long. For example, a blog post or a news article.\r\n */\r\n Article: _NS$n(\"Article\"),\r\n /**\r\n * An audio file\r\n */\r\n Audio: _NS$n(\"Audio\"),\r\n /**\r\n * Represents a digital document/file of any sort\r\n */\r\n Document: _NS$n(\"Document\"),\r\n /**\r\n * A variation of Collection in which items are strictly ordered\r\n */\r\n OrderedCollection: _NS$n(\"OrderedCollection\"),\r\n /**\r\n * To Create Something\r\n */\r\n Create: _NS$n(\"Create\"),\r\n /**\r\n * To Delete Something\r\n */\r\n Delete: _NS$n(\"Delete\"),\r\n /**\r\n * The actor dislikes the object\r\n */\r\n Dislike: _NS$n(\"Dislike\"),\r\n /**\r\n * An Event of any kind\r\n */\r\n Event: _NS$n(\"Event\"),\r\n /**\r\n * To flag something (e.g. flag as inappropriate, flag as spam, etc)\r\n */\r\n Flag: _NS$n(\"Flag\"),\r\n /**\r\n * To Express Interest in Something\r\n */\r\n Follow: _NS$n(\"Follow\"),\r\n /**\r\n * A Group of any kind.\r\n */\r\n Group: _NS$n(\"Group\"),\r\n /**\r\n * To invite someone or something to something\r\n */\r\n Invite: _NS$n(\"Invite\"),\r\n /**\r\n * To Offer something to someone or something\r\n */\r\n Offer: _NS$n(\"Offer\"),\r\n /**\r\n * To Join Something\r\n */\r\n Join: _NS$n(\"Join\"),\r\n /**\r\n * To Leave Something\r\n */\r\n Leave: _NS$n(\"Leave\"),\r\n /**\r\n * To Like Something\r\n */\r\n Like: _NS$n(\"Like\"),\r\n /**\r\n * The actor viewed the object\r\n */\r\n View: _NS$n(\"View\"),\r\n /**\r\n * The actor listened to the object\r\n */\r\n Listen: _NS$n(\"Listen\"),\r\n /**\r\n * The actor read the object\r\n */\r\n Read: _NS$n(\"Read\"),\r\n /**\r\n * The actor is moving the object. The target specifies where the object is moving to. The origin specifies where the object is moving from.\r\n */\r\n Move: _NS$n(\"Move\"),\r\n /**\r\n * The actor is traveling to the target. The origin specifies where the actor is traveling from.\r\n */\r\n Travel: _NS$n(\"Travel\"),\r\n /**\r\n * A specialized Link that represents an @mention\r\n */\r\n Mention: _NS$n(\"Mention\"),\r\n /**\r\n * A Short note, typically less than a single paragraph. A \"tweet\" is an example, or a \"status update\"\r\n */\r\n Note: _NS$n(\"Note\"),\r\n /**\r\n * A Web Page\r\n */\r\n Page: _NS$n(\"Page\"),\r\n /**\r\n * A Person\r\n */\r\n Person: _NS$n(\"Person\"),\r\n /**\r\n * An Organization\r\n */\r\n Organization: _NS$n(\"Organization\"),\r\n /**\r\n * Actor rejects the Object\r\n */\r\n Reject: _NS$n(\"Reject\"),\r\n /**\r\n * To Remove Something\r\n */\r\n Remove: _NS$n(\"Remove\"),\r\n /**\r\n * A service provided by some entity\r\n */\r\n Service: _NS$n(\"Service\"),\r\n /**\r\n * Actor tentatively accepts the Object\r\n */\r\n TentativeAccept: _NS$n(\"TentativeAccept\"),\r\n /**\r\n * Actor tentatively rejects the object\r\n */\r\n TentativeReject: _NS$n(\"TentativeReject\"),\r\n /**\r\n * To Undo Something. This would typically be used to indicate that a previous Activity has been undone.\r\n */\r\n Undo: _NS$n(\"Undo\"),\r\n /**\r\n * To Update/Modify Something\r\n */\r\n Update: _NS$n(\"Update\"),\r\n /**\r\n * A Video document of any kind.\r\n */\r\n Video: _NS$n(\"Video\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * Subproperty of as:attributedTo that identifies the primary actor\r\n */\r\n actor: _NS$n(\"actor\"),\r\n /**\r\n * Identifies an entity to which an object is attributed\r\n */\r\n attributedTo: _NS$n(\"attributedTo\"),\r\n /**\r\n * attachment\r\n */\r\n attachment: _NS$n(\"attachment\"),\r\n /**\r\n * attachments\r\n */\r\n attachments: _NS$n(\"attachments\"),\r\n /**\r\n * Identifies the author of an object. Deprecated. Use as:attributedTo instead\r\n */\r\n author: _NS$n(\"author\"),\r\n /**\r\n * bcc\r\n */\r\n bcc: _NS$n(\"bcc\"),\r\n /**\r\n * bto\r\n */\r\n bto: _NS$n(\"bto\"),\r\n /**\r\n * cc\r\n */\r\n cc: _NS$n(\"cc\"),\r\n /**\r\n * Specifies the context within which an object exists or an activity was performed\r\n */\r\n context: _NS$n(\"context\"),\r\n /**\r\n * current\r\n */\r\n current: _NS$n(\"current\"),\r\n /**\r\n * first\r\n */\r\n first: _NS$n(\"first\"),\r\n /**\r\n * generator\r\n */\r\n generator: _NS$n(\"generator\"),\r\n /**\r\n * icon\r\n */\r\n icon: _NS$n(\"icon\"),\r\n /**\r\n * image\r\n */\r\n image: _NS$n(\"image\"),\r\n /**\r\n * inReplyTo\r\n */\r\n inReplyTo: _NS$n(\"inReplyTo\"),\r\n /**\r\n * items\r\n */\r\n items: _NS$n(\"items\"),\r\n /**\r\n * last\r\n */\r\n last: _NS$n(\"last\"),\r\n /**\r\n * location\r\n */\r\n location: _NS$n(\"location\"),\r\n /**\r\n * next\r\n */\r\n next: _NS$n(\"next\"),\r\n /**\r\n * object\r\n */\r\n object: _NS$n(\"object\"),\r\n /**\r\n * Describes a possible exclusive answer or option for a question.\r\n */\r\n oneOf: _NS$n(\"oneOf\"),\r\n /**\r\n * Describes a possible inclusive answer or option for a question.\r\n */\r\n anyOf: _NS$n(\"anyOf\"),\r\n /**\r\n * prev\r\n */\r\n prev: _NS$n(\"prev\"),\r\n /**\r\n * preview\r\n */\r\n preview: _NS$n(\"preview\"),\r\n /**\r\n * provider\r\n */\r\n provider: _NS$n(\"provider\"),\r\n /**\r\n * replies\r\n */\r\n replies: _NS$n(\"replies\"),\r\n /**\r\n * result\r\n */\r\n result: _NS$n(\"result\"),\r\n /**\r\n * audience\r\n */\r\n audience: _NS$n(\"audience\"),\r\n /**\r\n * partOf\r\n */\r\n partOf: _NS$n(\"partOf\"),\r\n /**\r\n * tag\r\n */\r\n tag: _NS$n(\"tag\"),\r\n /**\r\n * tags\r\n */\r\n tags: _NS$n(\"tags\"),\r\n /**\r\n * target\r\n */\r\n target: _NS$n(\"target\"),\r\n /**\r\n * For certain activities, specifies the entity from which the action is directed.\r\n */\r\n origin: _NS$n(\"origin\"),\r\n /**\r\n * Indentifies an object used (or to be used) to complete an activity\r\n */\r\n instrument: _NS$n(\"instrument\"),\r\n /**\r\n * to\r\n */\r\n to: _NS$n(\"to\"),\r\n /**\r\n * Specifies a link to a specific representation of the Object\r\n */\r\n url: _NS$n(\"url\"),\r\n /**\r\n * On a Relationship object, identifies the subject. e.g. when saying \"John is connected to Sally\", 'subject' refers to 'John'\r\n */\r\n subject: _NS$n(\"subject\"),\r\n /**\r\n * On a Relationship object, describes the type of relationship\r\n */\r\n relationship: _NS$n(\"relationship\"),\r\n /**\r\n * On a Profile object, describes the object described by the profile\r\n */\r\n describes: _NS$n(\"describes\"),\r\n /**\r\n * On a Tombstone object, describes the former type of the deleted object\r\n */\r\n formerType: _NS$n(\"formerType\"),\r\n /**\r\n * Specifies the accuracy around the point established by the longitude and latitude\r\n */\r\n accuracy: _NS$n(\"accuracy\"),\r\n /**\r\n * The altitude of a place\r\n */\r\n altitude: _NS$n(\"altitude\"),\r\n /**\r\n * The content of the object.\r\n */\r\n content: _NS$n(\"content\"),\r\n /**\r\n * name\r\n */\r\n name: _NS$n(\"name\"),\r\n /**\r\n * downstreamDuplicates\r\n */\r\n downstreamDuplicates: _NS$n(\"downstreamDuplicates\"),\r\n /**\r\n * The duration of the object\r\n */\r\n duration: _NS$n(\"duration\"),\r\n /**\r\n * The ending time of the object\r\n */\r\n endTime: _NS$n(\"endTime\"),\r\n /**\r\n * The display height expressed as device independent pixels\r\n */\r\n height: _NS$n(\"height\"),\r\n /**\r\n * The target URI of the Link\r\n */\r\n href: _NS$n(\"href\"),\r\n /**\r\n * A hint about the language of the referenced resource\r\n */\r\n hreflang: _NS$n(\"hreflang\"),\r\n /**\r\n * id\r\n */\r\n id: _NS$n(\"id\"),\r\n /**\r\n * The latitude\r\n */\r\n latitude: _NS$n(\"latitude\"),\r\n /**\r\n * The longitude\r\n */\r\n longitude: _NS$n(\"longitude\"),\r\n /**\r\n * The MIME Media Type\r\n */\r\n mediaType: _NS$n(\"mediaType\"),\r\n /**\r\n * objectType\r\n */\r\n objectType: _NS$n(\"objectType\"),\r\n /**\r\n * Specifies the date and time the object was published\r\n */\r\n published: _NS$n(\"published\"),\r\n /**\r\n * Specifies a radius around the point established by the longitude and latitude\r\n */\r\n radius: _NS$n(\"radius\"),\r\n /**\r\n * A numeric rating (>= 0.0, <= 5.0) for the object\r\n */\r\n rating: _NS$n(\"rating\"),\r\n /**\r\n * The RFC 5988 or HTML5 Link Relation associated with the Link\r\n */\r\n rel: _NS$n(\"rel\"),\r\n /**\r\n * In a strictly ordered logical collection, specifies the index position of the first item in the items list\r\n */\r\n startIndex: _NS$n(\"startIndex\"),\r\n /**\r\n * The starting time of the object\r\n */\r\n startTime: _NS$n(\"startTime\"),\r\n /**\r\n * A short summary of the object\r\n */\r\n summary: _NS$n(\"summary\"),\r\n /**\r\n * The total number of items in a logical collection\r\n */\r\n totalItems: _NS$n(\"totalItems\"),\r\n /**\r\n * Identifies the unit of measurement used by the radius, altitude and accuracy properties. The value can be expressed either as one of a set of predefined units or as a well-known common URI that identifies units.\r\n */\r\n units: _NS$n(\"units\"),\r\n /**\r\n * Specifies when the object was last updated\r\n */\r\n updated: _NS$n(\"updated\"),\r\n /**\r\n * upstreamDuplicates\r\n */\r\n upstreamDuplicates: _NS$n(\"upstreamDuplicates\"),\r\n /**\r\n * verb\r\n */\r\n verb: _NS$n(\"verb\"),\r\n /**\r\n * Specifies the preferred display width of the content, expressed in terms of device independent pixels.\r\n */\r\n width: _NS$n(\"width\"),\r\n /**\r\n * Specifies the date and time the object was deleted\r\n */\r\n deleted: _NS$n(\"deleted\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$m = new rdfDataFactory.DataFactory();\r\nfunction _NS$m(localName) {\r\n return rdfFactory$m.namedNode(\"http://persistence.uni-leipzig.org/nlp2rdf/ontologies/rlog#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * Inrupt-created copy of RLOG, needed due to Server 500 errors resolving original uni-leipzig.org!\r\n */\r\nvar RLOG = {\r\n PREFIX: \"rlog\",\r\n NAMESPACE: \"http://persistence.uni-leipzig.org/nlp2rdf/ontologies/rlog#\",\r\n PREFIX_AND_NAMESPACE: { \"rlog\": \"http://persistence.uni-leipzig.org/nlp2rdf/ontologies/rlog#\" },\r\n NS: _NS$m,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * look here: http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/Level.html\r\n */\r\n Level: _NS$m(\"Level\"),\r\n /**\r\n * An entry in a log.\r\n */\r\n Entry: _NS$m(\"Entry\"),\r\n /**\r\n * A status code which can occur in an application. Instances of this class must put the name of the status as rdfs:label and describe it with rdfs:comment.\r\n */\r\n StatusCode: _NS$m(\"StatusCode\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * The ALL has the lowest possible rank and is intended to turn on all logging.\r\n */\r\n ALL: _NS$m(\"ALL\"),\r\n /**\r\n * Attention: the ids here can change, they are just used to define an order over the levels!\r\n */\r\n priority: _NS$m(\"priority\"),\r\n /**\r\n * The DEBUG Level designates fine-grained informational events that are most useful to debug an application.\r\n */\r\n DEBUG: _NS$m(\"DEBUG\"),\r\n /**\r\n * The ERROR level designates error events that might still allow the application to continue running.\r\n */\r\n ERROR: _NS$m(\"ERROR\"),\r\n /**\r\n * The FATAL level designates very severe error events that will presumably lead the application to abort.\r\n */\r\n FATAL: _NS$m(\"FATAL\"),\r\n /**\r\n * The INFO level designates informational messages that highlight the progress of the application at coarse-grained level.\r\n */\r\n INFO: _NS$m(\"INFO\"),\r\n /**\r\n * The OFF has the highest possible rank and is intended to turn off logging.\r\n */\r\n OFF: _NS$m(\"OFF\"),\r\n /**\r\n * The TRACE Level designates finer-grained informational events than the DEBUG.\r\n */\r\n TRACE: _NS$m(\"TRACE\"),\r\n /**\r\n * The WARN level designates potentially harmful situations.\r\n */\r\n WARN: _NS$m(\"WARN\"),\r\n /**\r\n * Outputs the fully qualified class name of the caller issuing the logging request.\r\n */\r\n className: _NS$m(\"className\"),\r\n /**\r\n * The numerical value of the code, e.g. 200, 404 or 42.\r\n */\r\n codeId: _NS$m(\"codeId\"),\r\n /**\r\n * Logging datetime (or just date)\r\n */\r\n date: _NS$m(\"date\"),\r\n /**\r\n * Links a log message to a status code.\r\n */\r\n hasCode: _NS$m(\"hasCode\"),\r\n /**\r\n * logLevel\r\n */\r\n level: _NS$m(\"level\"),\r\n /**\r\n * Logging message\r\n */\r\n message: _NS$m(\"message\"),\r\n /**\r\n * If we mix normal and log output, this can be used to refer to the resource in the RDF the error is connected to.\r\n */\r\n resource: _NS$m(\"resource\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$l = new rdfDataFactory.DataFactory();\r\nfunction _NS$l(localName) {\r\n return rdfFactory$l.namedNode(\"http://xmlns.com/foaf/0.1/\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * [Generator provided] - Friend of a friend, v0.99\r\n */\r\nvar FOAF = {\r\n PREFIX: \"foaf\",\r\n NAMESPACE: \"http://xmlns.com/foaf/0.1/\",\r\n PREFIX_AND_NAMESPACE: { \"foaf\": \"http://xmlns.com/foaf/0.1/\" },\r\n NS: _NS$l,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * An agent (eg. person, group, software or physical artifact).\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n Agent: _NS$l(\"Agent\"),\r\n /**\r\n * A document.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n Document: _NS$l(\"Document\"),\r\n /**\r\n * An organization.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n Organization: _NS$l(\"Organization\"),\r\n /**\r\n * A project (a collective endeavour of some kind).\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n Project: _NS$l(\"Project\"),\r\n /**\r\n * A class of Agents.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n Group: _NS$l(\"Group\"),\r\n /**\r\n * An image.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n Image: _NS$l(\"Image\"),\r\n /**\r\n * A foaf:LabelProperty is any RDF property with texual values that serve as labels.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n LabelProperty: _NS$l(\"LabelProperty\"),\r\n /**\r\n * An online account.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n OnlineAccount: _NS$l(\"OnlineAccount\"),\r\n /**\r\n * An online chat account.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n OnlineChatAccount: _NS$l(\"OnlineChatAccount\"),\r\n /**\r\n * An online e-commerce account.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n OnlineEcommerceAccount: _NS$l(\"OnlineEcommerceAccount\"),\r\n /**\r\n * An online gaming account.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n OnlineGamingAccount: _NS$l(\"OnlineGamingAccount\"),\r\n /**\r\n * A person.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n Person: _NS$l(\"Person\"),\r\n /**\r\n * A personal profile RDF document.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n PersonalProfileDocument: _NS$l(\"PersonalProfileDocument\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * Indicates an account held by this agent.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n account: _NS$l(\"account\"),\r\n /**\r\n * Indicates the name (identifier) associated with this online account.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n accountName: _NS$l(\"accountName\"),\r\n /**\r\n * Indicates a homepage of the service provide for this online account.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n accountServiceHomepage: _NS$l(\"accountServiceHomepage\"),\r\n /**\r\n * The age in years of some agent.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n age: _NS$l(\"age\"),\r\n /**\r\n * An AIM chat ID\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n aimChatID: _NS$l(\"aimChatID\"),\r\n /**\r\n * A short informal nickname characterising an agent (includes login identifiers, IRC and other chat nicknames).\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n nick: _NS$l(\"nick\"),\r\n /**\r\n * A location that something is based near, for some broadly human notion of near.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n based_near: _NS$l(\"based_near\"),\r\n /**\r\n * The birthday of this Agent, represented in mm-dd string form, eg. '12-31'.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n birthday: _NS$l(\"birthday\"),\r\n /**\r\n * A current project this person works on.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n currentProject: _NS$l(\"currentProject\"),\r\n /**\r\n * A depiction of some thing.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n depiction: _NS$l(\"depiction\"),\r\n /**\r\n * A thing depicted in this representation.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n depicts: _NS$l(\"depicts\"),\r\n /**\r\n * A checksum for the DNA of some thing. Joke.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n dnaChecksum: _NS$l(\"dnaChecksum\"),\r\n /**\r\n * The family name of some person.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n familyName: _NS$l(\"familyName\"),\r\n /**\r\n * The family name of some person.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n family_name: _NS$l(\"family_name\"),\r\n /**\r\n * The first name of a person.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n firstName: _NS$l(\"firstName\"),\r\n /**\r\n * The underlying or 'focal' entity associated with some SKOS-described concept.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n focus: _NS$l(\"focus\"),\r\n /**\r\n * An organization funding a project or person.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n fundedBy: _NS$l(\"fundedBy\"),\r\n /**\r\n * A textual geekcode for this person, see http://www.geekcode.com/geek.html\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n geekcode: _NS$l(\"geekcode\"),\r\n /**\r\n * The gender of this Agent (typically but not necessarily 'male' or 'female').\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n gender: _NS$l(\"gender\"),\r\n /**\r\n * The given name of some person.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n givenName: _NS$l(\"givenName\"),\r\n /**\r\n * The given name of some person.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n givenname: _NS$l(\"givenname\"),\r\n /**\r\n * Indicates an account held by this agent.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n holdsAccount: _NS$l(\"holdsAccount\"),\r\n /**\r\n * A homepage for some thing.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n homepage: _NS$l(\"homepage\"),\r\n /**\r\n * A page or document about this thing.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n page: _NS$l(\"page\"),\r\n /**\r\n * A document that this thing is the primary topic of.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n isPrimaryTopicOf: _NS$l(\"isPrimaryTopicOf\"),\r\n /**\r\n * An ICQ chat ID\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n icqChatID: _NS$l(\"icqChatID\"),\r\n /**\r\n * An image that can be used to represent some thing (ie. those depictions which are particularly representative of something, eg. one's photo on a homepage).\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n img: _NS$l(\"img\"),\r\n /**\r\n * A page about a topic of interest to this person.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n interest: _NS$l(\"interest\"),\r\n /**\r\n * The primary topic of some page or document.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n primaryTopic: _NS$l(\"primaryTopic\"),\r\n /**\r\n * A jabber ID for something.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n jabberID: _NS$l(\"jabberID\"),\r\n /**\r\n * A person known by this person (indicating some level of reciprocated interaction between the parties).\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n knows: _NS$l(\"knows\"),\r\n /**\r\n * The last name of a person.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n lastName: _NS$l(\"lastName\"),\r\n /**\r\n * A logo representing some thing.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n logo: _NS$l(\"logo\"),\r\n /**\r\n * Something that was made by this agent.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n made: _NS$l(\"made\"),\r\n /**\r\n * An agent that made this thing.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n maker: _NS$l(\"maker\"),\r\n /**\r\n * A personal mailbox, ie. an Internet mailbox associated with exactly one owner, the first owner of this mailbox. This is a 'static inverse functional property', in that there is (across time and change) at most one individual that ever has any particular value for foaf:mbox.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n mbox: _NS$l(\"mbox\"),\r\n /**\r\n * The sha1sum of the URI of an Internet mailbox associated with exactly one owner, the first owner of the mailbox.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n mbox_sha1sum: _NS$l(\"mbox_sha1sum\"),\r\n /**\r\n * Indicates a member of a Group\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n member: _NS$l(\"member\"),\r\n /**\r\n * Indicates the class of individuals that are a member of a Group\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n membershipClass: _NS$l(\"membershipClass\"),\r\n /**\r\n * An MSN chat ID\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n msnChatID: _NS$l(\"msnChatID\"),\r\n /**\r\n * A Myers Briggs (MBTI) personality classification.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n myersBriggs: _NS$l(\"myersBriggs\"),\r\n /**\r\n * A name for some thing.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n name: _NS$l(\"name\"),\r\n /**\r\n * An OpenID for an Agent.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n openid: _NS$l(\"openid\"),\r\n /**\r\n * A topic of some page or document.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n topic: _NS$l(\"topic\"),\r\n /**\r\n * A project this person has previously worked on.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n pastProject: _NS$l(\"pastProject\"),\r\n /**\r\n * A phone, specified using fully qualified tel: URI scheme (refs: http://www.w3.org/Addressing/schemes.html#tel).\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n phone: _NS$l(\"phone\"),\r\n /**\r\n * A .plan comment, in the tradition of finger and '.plan' files.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n plan: _NS$l(\"plan\"),\r\n /**\r\n * A link to the publications of this person.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n publications: _NS$l(\"publications\"),\r\n /**\r\n * A homepage of a school attended by the person.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n schoolHomepage: _NS$l(\"schoolHomepage\"),\r\n /**\r\n * A sha1sum hash, in hex.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n sha1: _NS$l(\"sha1\"),\r\n /**\r\n * A Skype ID\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n skypeID: _NS$l(\"skypeID\"),\r\n /**\r\n * A string expressing what the user is happy for the general public (normally) to know about their current activity.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n status: _NS$l(\"status\"),\r\n /**\r\n * The surname of some person.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n surname: _NS$l(\"surname\"),\r\n /**\r\n * A theme.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n theme: _NS$l(\"theme\"),\r\n /**\r\n * A derived thumbnail image.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n thumbnail: _NS$l(\"thumbnail\"),\r\n /**\r\n * A tipjar document for this agent, describing means for payment and reward.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n tipjar: _NS$l(\"tipjar\"),\r\n /**\r\n * Title (Mr, Mrs, Ms, Dr. etc)\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n title: _NS$l(\"title\"),\r\n /**\r\n * A thing of interest to this person.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n topic_interest: _NS$l(\"topic_interest\"),\r\n /**\r\n * A weblog of some thing (whether person, group, company etc.).\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n weblog: _NS$l(\"weblog\"),\r\n /**\r\n * A work info homepage of some person; a page about their work for some organization.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n workInfoHomepage: _NS$l(\"workInfoHomepage\"),\r\n /**\r\n * A workplace homepage of some person; the homepage of an organization they work for.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n workplaceHomepage: _NS$l(\"workplaceHomepage\"),\r\n /**\r\n * A Yahoo chat ID\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n yahooChatID: _NS$l(\"yahooChatID\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$k = new rdfDataFactory.DataFactory();\r\nfunction _NS$k(localName) {\r\n return rdfFactory$k.namedNode(\"http://purl.org/linked-data/cube#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * This vocabulary allows multi-dimensional data, such as statistics, to be published in RDF. It is based on the core information model from SDMX (and thus also DDI).\r\n */\r\nvar QB = {\r\n PREFIX: \"qb\",\r\n NAMESPACE: \"http://purl.org/linked-data/cube#\",\r\n PREFIX_AND_NAMESPACE: { \"qb\": \"http://purl.org/linked-data/cube#\" },\r\n NS: _NS$k,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * Represents a collection of observations, possibly organized into various slices, conforming to some common dimensional structure.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n DataSet: _NS$k(\"DataSet\"),\r\n /**\r\n * Abstract superclass for everything that can have attributes and dimensions\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n Attachable: _NS$k(\"Attachable\"),\r\n /**\r\n * A single observation in the cube, may have one or more associated measured values\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n Observation: _NS$k(\"Observation\"),\r\n /**\r\n * A, possibly arbitrary, group of observations.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n ObservationGroup: _NS$k(\"ObservationGroup\"),\r\n /**\r\n * Denotes a subset of a DataSet defined by fixing a subset of the dimensional values, component properties on the Slice\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n Slice: _NS$k(\"Slice\"),\r\n /**\r\n * Abstract super-property of all properties representing dimensions, attributes or measures\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n ComponentProperty: _NS$k(\"ComponentProperty\"),\r\n /**\r\n * The class of components which represent the dimensions of the cube\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n DimensionProperty: _NS$k(\"DimensionProperty\"),\r\n /**\r\n * Superclass of all coded ComponentProperties\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n CodedProperty: _NS$k(\"CodedProperty\"),\r\n /**\r\n * The class of components which represent the measured value of the phenomenon being observed\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n MeasureProperty: _NS$k(\"MeasureProperty\"),\r\n /**\r\n * The class of components which represent attributes of observations in the cube, e.g. unit of measurement\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n AttributeProperty: _NS$k(\"AttributeProperty\"),\r\n /**\r\n * Defines the structure of a DataSet or slice\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n DataStructureDefinition: _NS$k(\"DataStructureDefinition\"),\r\n /**\r\n * Abstract class of things which reference one or more ComponentProperties\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n ComponentSet: _NS$k(\"ComponentSet\"),\r\n /**\r\n * Used to define properties of a component (attribute, dimension etc) which are specific to its usage in a DSD.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n ComponentSpecification: _NS$k(\"ComponentSpecification\"),\r\n /**\r\n * Denotes a subset of the component properties of a DataSet which are fixed in the corresponding slices\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n SliceKey: _NS$k(\"SliceKey\"),\r\n /**\r\n * Represents a generalized hierarchy of concepts which can be used for coding. The hierarchy is defined by one or more roots together with a property which relates concepts in the hierarchy to thier child concept . The same concepts may be members of multiple hierarchies provided that different qb:parentChildProperty values are used for each hierarchy.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n HierarchicalCodeList: _NS$k(\"HierarchicalCodeList\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * indicates the data set of which this observation is a part\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n dataSet: _NS$k(\"dataSet\"),\r\n /**\r\n * indicates a observation contained within this slice of the data set\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n observation: _NS$k(\"observation\"),\r\n /**\r\n * Indicates a group of observations. The domain of this property is left open so that a group may be attached to different resources and need not be restricted to a single DataSet\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n observationGroup: _NS$k(\"observationGroup\"),\r\n /**\r\n * Indicates a subset of a DataSet defined by fixing a subset of the dimensional values\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n slice: _NS$k(\"slice\"),\r\n /**\r\n * Generic measure dimension, the value of this dimension indicates which measure (from the set of measures in the DSD) is being given by the obsValue (or other primary measure)\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n measureType: _NS$k(\"measureType\"),\r\n /**\r\n * indicates the structure to which this data set conforms\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n structure: _NS$k(\"structure\"),\r\n /**\r\n * indicates a component specification which is included in the structure of the dataset\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n component: _NS$k(\"component\"),\r\n /**\r\n * indicates a ComponentProperty (i.e. attribute/dimension) expected on a DataSet, or a dimension fixed in a SliceKey\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n componentProperty: _NS$k(\"componentProperty\"),\r\n /**\r\n * indicates a priority order for the components of sets with this structure, used to guide presentations - lower order numbers come before higher numbers, un-numbered components come last\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n order: _NS$k(\"order\"),\r\n /**\r\n * Indicates whether a component property is required (true) or optional (false) in the context of a DSD. Only applicable\r\n to components correspond to an attribute. Defaults to false (optional).\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n componentRequired: _NS$k(\"componentRequired\"),\r\n /**\r\n * Indicates the level at which the component property should be attached, this might an qb:DataSet, qb:Slice or qb:Observation, or a qb:MeasureProperty.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n componentAttachment: _NS$k(\"componentAttachment\"),\r\n /**\r\n * An alternative to qb:componentProperty which makes explicit that the component is a dimension\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n dimension: _NS$k(\"dimension\"),\r\n /**\r\n * An alternative to qb:componentProperty which makes explicit that the component is a measure\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n measure: _NS$k(\"measure\"),\r\n /**\r\n * An alternative to qb:componentProperty which makes explicit that the component is a attribute\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n attribute: _NS$k(\"attribute\"),\r\n /**\r\n * An alternative to qb:componentProperty which makes explicit that the component is a measure dimension\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n measureDimension: _NS$k(\"measureDimension\"),\r\n /**\r\n * indicates the sub-key corresponding to this slice\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n sliceStructure: _NS$k(\"sliceStructure\"),\r\n /**\r\n * indicates a slice key which is used for slices in this dataset\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n sliceKey: _NS$k(\"sliceKey\"),\r\n /**\r\n * gives the concept which is being measured or indicated by a ComponentProperty\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n concept: _NS$k(\"concept\"),\r\n /**\r\n * gives the code list associated with a CodedProperty\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n codeList: _NS$k(\"codeList\"),\r\n /**\r\n * Specifies a root of the hierarchy. A hierarchy may have multiple roots but must have at least one.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n hierarchyRoot: _NS$k(\"hierarchyRoot\"),\r\n /**\r\n * Specifies a property which relates a parent concept in the hierarchy to a child concept.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n parentChildProperty: _NS$k(\"parentChildProperty\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$j = new rdfDataFactory.DataFactory();\r\nfunction _NS$j(localName) {\r\n return rdfFactory$j.namedNode(\"http://purl.org/linked-data/sdmx/2009/dimension#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * [Generator provided] - SDMX Dimension Vocabulary\r\n */\r\nvar SDMX_DIMENSION = {\r\n PREFIX: \"sdmx-dimension\",\r\n NAMESPACE: \"http://purl.org/linked-data/sdmx/2009/dimension#\",\r\n PREFIX_AND_NAMESPACE: { \"sdmx-dimension\": \"http://purl.org/linked-data/sdmx/2009/dimension#\" },\r\n NS: _NS$j,\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * The length of time that a person has lived or a thing has existed.\r\n *\r\n * Defined by the vocabulary: https://sdmx.org/wp-content/uploads/01_sdmx_cog_annex_1_cdc_2009.pdf\r\n */\r\n age: _NS$j(\"age\"),\r\n /**\r\n * Legal, conjugal status of each individual in relation to the marriage laws or customs of the country.\r\n *\r\n * Defined by the vocabulary: https://sdmx.org/wp-content/uploads/01_sdmx_cog_annex_1_cdc_2009.pdf\r\n */\r\n civilStatus: _NS$j(\"civilStatus\"),\r\n /**\r\n * Monetary denomination of the object being measured.\r\n *\r\n * Defined by the vocabulary: https://sdmx.org/wp-content/uploads/01_sdmx_cog_annex_1_cdc_2009.pdf\r\n */\r\n currency: _NS$j(\"currency\"),\r\n /**\r\n * The highest level of an educational programme the person has successfully completed.\r\n *\r\n * Defined by the vocabulary: https://sdmx.org/wp-content/uploads/01_sdmx_cog_annex_1_cdc_2009.pdf\r\n */\r\n educationLev: _NS$j(\"educationLev\"),\r\n /**\r\n * The time interval at which observations occur over a given time period.\r\n *\r\n * Defined by the vocabulary: https://sdmx.org/wp-content/uploads/01_sdmx_cog_annex_1_cdc_2009.pdf\r\n */\r\n freq: _NS$j(\"freq\"),\r\n /**\r\n * Job or position held by an individual who performs a set of tasks and duties.\r\n *\r\n * Defined by the vocabulary: https://sdmx.org/wp-content/uploads/01_sdmx_cog_annex_1_cdc_2009.pdf\r\n */\r\n occupation: _NS$j(\"occupation\"),\r\n /**\r\n * The country or geographic area to which the measured statistical phenomenon relates.\r\n *\r\n * Defined by the vocabulary: https://sdmx.org/wp-content/uploads/01_sdmx_cog_annex_1_cdc_2009.pdf\r\n */\r\n refArea: _NS$j(\"refArea\"),\r\n /**\r\n * The period of time or point in time to which the measured observation is intended to refer.\r\n *\r\n * Defined by the vocabulary: https://sdmx.org/wp-content/uploads/01_sdmx_cog_annex_1_cdc_2009.pdf\r\n */\r\n refPeriod: _NS$j(\"refPeriod\"),\r\n /**\r\n * The state of being male or female.\r\n *\r\n * Defined by the vocabulary: https://sdmx.org/wp-content/uploads/01_sdmx_cog_annex_1_cdc_2009.pdf\r\n */\r\n sex: _NS$j(\"sex\"),\r\n /**\r\n * The period of time or point in time to which the measured observation refers.\r\n *\r\n * Defined by the vocabulary: https://sdmx.org/wp-content/uploads/01_sdmx_cog_annex_1_cdc_2009.pdf\r\n */\r\n timePeriod: _NS$j(\"timePeriod\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$i = new rdfDataFactory.DataFactory();\r\nfunction _NS$i(localName) {\r\n return rdfFactory$i.namedNode(\"http://www.w3.org/ns/shex#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * [Generator provided] - Shape Expressions (ShEx) - for validating RDF\r\n */\r\nvar SHEX = {\r\n PREFIX: \"shex\",\r\n NAMESPACE: \"http://www.w3.org/ns/shex#\",\r\n PREFIX_AND_NAMESPACE: { \"shex\": \"http://www.w3.org/ns/shex#\" },\r\n NS: _NS$i,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * Annotations provide a format-independent way to provide additional information about elements in a schema.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n Annotation: _NS$i(\"Annotation\"),\r\n /**\r\n * A TripleExpression composed of one or more sub-expressions, all of which must match.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n EachOf: _NS$i(\"EachOf\"),\r\n /**\r\n * The abstract class of Triple Expressions.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n TripleExpression: _NS$i(\"TripleExpression\"),\r\n /**\r\n * An IRI prefix used for matching IRIs.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n IriStem: _NS$i(\"IriStem\"),\r\n /**\r\n * Abstract class for Stems\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n Stem: _NS$i(\"Stem\"),\r\n /**\r\n * An IRI prefix (or wildcard) along with a set of excluded values, used for node matching.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n IriStemRange: _NS$i(\"IriStemRange\"),\r\n /**\r\n * Abstract Class for Stem Ranges\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n StemRange: _NS$i(\"StemRange\"),\r\n /**\r\n * An Language tag used for matching Literal Languages.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n Language: _NS$i(\"Language\"),\r\n /**\r\n * An Language prefix used for matching Literal Languages.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n LanguageStem: _NS$i(\"LanguageStem\"),\r\n /**\r\n * An Language prefix (or wildcard) along with a set of excluded values, used for node matching.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n LanguageStemRange: _NS$i(\"LanguageStemRange\"),\r\n /**\r\n * An Literal prefix used for matching Literals.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n LiteralStem: _NS$i(\"LiteralStem\"),\r\n /**\r\n * An Literal prefix (or wildcard) along with a set of excluded values, used for node matching.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n LiteralStemRange: _NS$i(\"LiteralStemRange\"),\r\n /**\r\n * A constraint on the type or value of an RDF Node.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n NodeConstraint: _NS$i(\"NodeConstraint\"),\r\n /**\r\n * The abstract class of Shape Expressions.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n ShapeExpression: _NS$i(\"ShapeExpression\"),\r\n /**\r\n * The set of kinds of RDF Nodes.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n NodeKind: _NS$i(\"NodeKind\"),\r\n /**\r\n * A TripleExpression composed of one or more sub-expressions, one of which must match.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n OneOf: _NS$i(\"OneOf\"),\r\n /**\r\n * A Schema contains the set of shapes, used for matching a focus node.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n Schema: _NS$i(\"Schema\"),\r\n /**\r\n * A list of Semantic Actions that serve as an extension point for Shape Expressions. They appear in lists in Schema's startActs and Shape, OneOf, EachOf and TripleConstraint's semActs.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n SemAct: _NS$i(\"SemAct\"),\r\n /**\r\n * A shapes schema is captured in a Schema object where shapes is a mapping from shape label to shape expression.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n Shape: _NS$i(\"Shape\"),\r\n /**\r\n * A ShapeExpression composed of one or more sub-expressions, all of which must match.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n ShapeAnd: _NS$i(\"ShapeAnd\"),\r\n /**\r\n * A reference to a shape defined in some external Schema.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n ShapeExternal: _NS$i(\"ShapeExternal\"),\r\n /**\r\n * A ShapeNot is satisfied when it’s included ShapeExpression is not satisfied.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n ShapeNot: _NS$i(\"ShapeNot\"),\r\n /**\r\n * A ShapeExpression composed of one or more sub-expressions, one of which must match.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n ShapeOr: _NS$i(\"ShapeOr\"),\r\n /**\r\n * A constraint on a triple having a specific predicate and optionally a shape expression used for matching values.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n TripleConstraint: _NS$i(\"TripleConstraint\"),\r\n /**\r\n * Indicates that a stem is a Wildcard, rather than a URI prefix.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n Wildcard: _NS$i(\"Wildcard\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * Annotations on a TripleExpression.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n annotation: _NS$i(\"annotation\"),\r\n /**\r\n * Indicates that a Shape is closed, meaning that it may contain no property values other than those used within TripleConstraints.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n closed: _NS$i(\"closed\"),\r\n /**\r\n * Code executed by Semantic Action.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n code: _NS$i(\"code\"),\r\n /**\r\n * A datatype constraint.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n datatype: _NS$i(\"datatype\"),\r\n /**\r\n * Values that are excluded from value matching.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n exclusion: _NS$i(\"exclusion\"),\r\n /**\r\n * Expression associated with the TripleExpression.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n expression: _NS$i(\"expression\"),\r\n /**\r\n * List of 2 or more expressions associated with the TripleExpression.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n expressions: _NS$i(\"expressions\"),\r\n /**\r\n * Properties which may have extra values beyond those matched through a constraint.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n extra: _NS$i(\"extra\"),\r\n /**\r\n * Regular expression flags\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n flags: _NS$i(\"flags\"),\r\n /**\r\n * for \"fractiondigits\" constraints, v is less than or equals the number of digits to the right of the decimal place in the XML Schema canonical form[xmlschema-2] of the value of n, ignoring trailing zeros.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n fractiondigits: _NS$i(\"fractiondigits\"),\r\n /**\r\n * Abstract property of numeric facets on a NodeConstraint.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n numericFacet: _NS$i(\"numericFacet\"),\r\n /**\r\n * Constrains the subject of a triple, rather than the object.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n inverse: _NS$i(\"inverse\"),\r\n /**\r\n * The value used to match the language tag of a language-tagged string.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n languageTag: _NS$i(\"languageTag\"),\r\n /**\r\n * The exact length of the value of the cell.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n length: _NS$i(\"length\"),\r\n /**\r\n * An abstract property of string facets on a NodeConstraint.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n stringFacet: _NS$i(\"stringFacet\"),\r\n /**\r\n * Maximum number of times this TripleExpression may match; -1 for “*”\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n max: _NS$i(\"max\"),\r\n /**\r\n * An atomic property that contains a single number that is the maximum valid value (exclusive).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n maxexclusive: _NS$i(\"maxexclusive\"),\r\n /**\r\n * An atomic property that contains a single number that is the maximum valid value (inclusive).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n maxinclusive: _NS$i(\"maxinclusive\"),\r\n /**\r\n * A numeric atomic property that contains a single integer that is the maximum length of the value.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n maxlength: _NS$i(\"maxlength\"),\r\n /**\r\n * Minimum number of times this TripleExpression may match.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n min: _NS$i(\"min\"),\r\n /**\r\n * An atomic property that contains a single number that is the minimum valid value (exclusive).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n minexclusive: _NS$i(\"minexclusive\"),\r\n /**\r\n * An atomic property that contains a single number that is the minimum valid value (inclusive).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n mininclusive: _NS$i(\"mininclusive\"),\r\n /**\r\n * An atomic property that contains a single integer that is the minimum length of the value.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n minlength: _NS$i(\"minlength\"),\r\n /**\r\n * Identifier of SemAct extension.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n name: _NS$i(\"name\"),\r\n /**\r\n * Restiction on the kind of node matched; restricted to the defined instances of NodeKind. One of shex:iri, shex:bnode, shex:literal, or shex:nonliteral.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n nodeKind: _NS$i(\"nodeKind\"),\r\n /**\r\n * An abstract property of string and numeric facets on a NodeConstraint.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n xsFacet: _NS$i(\"xsFacet\"),\r\n /**\r\n * The object of an Annotation.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n object: _NS$i(\"object\"),\r\n /**\r\n * A regular expression used for matching a value.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n pattern: _NS$i(\"pattern\"),\r\n /**\r\n * The predicate of a TripleConstraint or Annotation.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n predicate: _NS$i(\"predicate\"),\r\n /**\r\n * Semantic Actions on this TripleExpression.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n semActs: _NS$i(\"semActs\"),\r\n /**\r\n * Shape Expression referenced by this shape.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n shapeExpr: _NS$i(\"shapeExpr\"),\r\n /**\r\n * A list of 2 or more Shape Expressions referenced by this shape.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n shapeExprs: _NS$i(\"shapeExprs\"),\r\n /**\r\n * Shapes in this Schema.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n shapes: _NS$i(\"shapes\"),\r\n /**\r\n * A ShapeExpression matched against the focus node prior to any other mapped expressions.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n start: _NS$i(\"start\"),\r\n /**\r\n * Semantic Actions run on the Schema.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n startActs: _NS$i(\"startActs\"),\r\n /**\r\n * A stem value used for matching or excluding values.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n stem: _NS$i(\"stem\"),\r\n /**\r\n * for \"totaldigits\" constraints, v equals the number of digits in the XML Schema canonical form[xmlschema-2] of the value of n\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n totaldigits: _NS$i(\"totaldigits\"),\r\n /**\r\n * A ShapeExpression used for matching the object (or subject if inverted) of a TripleConstraint.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n valueExpr: _NS$i(\"valueExpr\"),\r\n /**\r\n * A value restriction on a NodeConstraint.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n values: _NS$i(\"values\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$h = new rdfDataFactory.DataFactory();\r\nfunction _NS$h(localName) {\r\n return rdfFactory$h.namedNode(\"http://www.w3.org/ns/auth/acl#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * [Generator provided] - Web Access Control Vocabulary\r\n */\r\nvar ACL = {\r\n PREFIX: \"acl\",\r\n NAMESPACE: \"http://www.w3.org/ns/auth/acl#\",\r\n PREFIX_AND_NAMESPACE: { \"acl\": \"http://www.w3.org/ns/auth/acl#\" },\r\n NS: _NS$h,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * Any kind of access to a resource. Don't use this, use R W and RW\r\n */\r\n Access: _NS$h(\"Access\"),\r\n /**\r\n * Append accesses are specific write access which only add information, and do not remove information.\r\n For text files, for example, append access allows bytes to be added onto the end of the file.\r\n For RDF graphs, Append access allows adds triples to the graph but does not remove any.\r\n Append access is useful for dropbox functionality.\r\n Dropbox can be used for link notification, which the information added is a notification\r\n that a some link has been made elsewhere relevant to the given resource.\r\n \n */\r\n Append: _NS$h(\"Append\"),\r\n /**\r\n * write\r\n */\r\n Write: _NS$h(\"Write\"),\r\n /**\r\n * A class of agents who have been authenticated.\r\n In other words, anyone can access this resource, but not anonymously.\r\n The social expectation is that the authentication process will provide an\r\n identify and a name, or pseudonym.\r\n (A new ID should not be minted for every access: the intent is that the user\r\n is able to continue to use the ID for continues interactions with peers,\r\n and for example to develop a reputation)\r\n \n */\r\n AuthenticatedAgent: _NS$h(\"AuthenticatedAgent\"),\r\n /**\r\n * An element of access control,\r\n allowing agent to agents access of some kind to resources or classes of resources\r\n */\r\n Authorization: _NS$h(\"Authorization\"),\r\n /**\r\n * Allows read/write access to the ACL for the resource(s)\r\n */\r\n Control: _NS$h(\"Control\"),\r\n /**\r\n * An Origin is basically a web site\r\n (Note WITHOUT the trailing slash after the domain name and port in its URI)\r\n and is the basis for controlling access to data by web apps\r\n in the Same Origin Model of web security.\r\n All scripts from the same origin are given the same right.\r\n *\r\n * See also:\r\n * - https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin\r\n */\r\n Origin: _NS$h(\"Origin\"),\r\n /**\r\n * The class of read operations\r\n */\r\n Read: _NS$h(\"Read\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * The Access Control file for this information resource.\r\n This may of course be a virtual resource implemented by the access control system.\r\n Note also HTTP's header Link: foo.meta ;rel=meta can be used for this.\r\n */\r\n accessControl: _NS$h(\"accessControl\"),\r\n /**\r\n * The information resource to which access is being granted.\r\n */\r\n accessTo: _NS$h(\"accessTo\"),\r\n /**\r\n * A class of information resources to which access is being granted.\r\n */\r\n accessToClass: _NS$h(\"accessToClass\"),\r\n /**\r\n * A person or social entity to being given the right\r\n */\r\n agent: _NS$h(\"agent\"),\r\n /**\r\n * A class of persons or social entities to being given the right\r\n */\r\n agentClass: _NS$h(\"agentClass\"),\r\n /**\r\n * A group of persons or social entities to being given the right.\r\n The right is given to any entity which is a vcard:member of the group,\r\n as defined by the document received when the Group is dereferenced.\r\n */\r\n agentGroup: _NS$h(\"agentGroup\"),\r\n /**\r\n * If a resource has no ACL file (it is 404),\r\n then access to the resource if given by the ACL of the immediately\r\n containing directory, or failing that (404) the ACL of the recursively next\r\n containing directory which has an ACL file.\r\n Within that ACL file,\r\n any Authentication which has that directory as its acl:default applies to the\r\n resource. (The highest directory must have an ACL file.)\r\n \n */\r\n default: _NS$h(\"default\"),\r\n /**\r\n * THIS IS OBSOLETE AS OF 2017-08-01. See 'default'.\r\n Was: A directory for which this authorization is used for new files in the directory.\r\n */\r\n defaultForNew: _NS$h(\"defaultForNew\"),\r\n /**\r\n * Delegates a person or another agent to act on behalf of the agent.\r\n For example, Alice delegates Bob to act on behalf of Alice for ACL purposes.\r\n */\r\n delegates: _NS$h(\"delegates\"),\r\n /**\r\n * A mode of access such as read or write.\r\n */\r\n mode: _NS$h(\"mode\"),\r\n /**\r\n * A web application, identified by its Origin, such as\r\n , being given the right.\r\n When a user of the web application at a certain origin accesses the server,\r\n then the browser sets the Origin: header to warn that a possibly untrusted webapp\r\n is being used.\r\n Then, BOTH the user AND the origin must have the required access.\r\n *\r\n * See also:\r\n * - https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Origin\r\n */\r\n origin: _NS$h(\"origin\"),\r\n /**\r\n * The person or other agent which owns this.\r\n For example, the owner of a file in a filesystem.\r\n There is a sense of right to control. Typically defaults to the agent who craeted\r\n something but can be changed.\r\n */\r\n owner: _NS$h(\"owner\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$g = new rdfDataFactory.DataFactory();\r\nfunction _NS$g(localName) {\r\n return rdfFactory$g.namedNode(\"http://www.w3.org/ns/posix/stat#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * A vocabulary for the basic POSIX terms.\r\n */\r\nvar POSIX = {\r\n PREFIX: \"posix\",\r\n NAMESPACE: \"http://www.w3.org/ns/posix/stat#\",\r\n PREFIX_AND_NAMESPACE: { \"posix\": \"http://www.w3.org/ns/posix/stat#\" },\r\n NS: _NS$g,\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * Time of last access\r\n */\r\n atime: _NS$g(\"atime\"),\r\n /**\r\n * Blocksize for file system I/O\r\n */\r\n blksize: _NS$g(\"blksize\"),\r\n /**\r\n * Number of 512B blocks allocated\r\n */\r\n blocks: _NS$g(\"blocks\"),\r\n /**\r\n * Time of last status change\r\n */\r\n ctime: _NS$g(\"ctime\"),\r\n /**\r\n * ID of device containing file\r\n */\r\n dev: _NS$g(\"dev\"),\r\n /**\r\n * Group ID of owner\r\n */\r\n gid: _NS$g(\"gid\"),\r\n /**\r\n * inode number\r\n */\r\n ino: _NS$g(\"ino\"),\r\n /**\r\n * Protection\r\n */\r\n mode: _NS$g(\"mode\"),\r\n /**\r\n * Time of last modification\r\n */\r\n mtime: _NS$g(\"mtime\"),\r\n /**\r\n * Number of hard links\r\n */\r\n nlink: _NS$g(\"nlink\"),\r\n /**\r\n * Device ID (if special file)\r\n */\r\n rdev: _NS$g(\"rdev\"),\r\n /**\r\n * Total size, in bytes\r\n */\r\n size: _NS$g(\"size\"),\r\n /**\r\n * User ID of owner\r\n */\r\n uid: _NS$g(\"uid\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$f = new rdfDataFactory.DataFactory();\r\nfunction _NS$f(localName) {\r\n return rdfFactory$f.namedNode(\"https://www.w3.org/2002/12/cal/ical#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * [Generator provided] - iCal - a vocabulary for description of events and calendars\r\n */\r\nvar ICAL = {\r\n PREFIX: \"ical\",\r\n NAMESPACE: \"https://www.w3.org/2002/12/cal/ical#\",\r\n PREFIX_AND_NAMESPACE: { \"ical\": \"https://www.w3.org/2002/12/cal/ical#\" },\r\n NS: _NS$f,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * Provide a grouping of component properties that define an alarm.\r\n */\r\n Valarm: _NS$f(\"Valarm\"),\r\n /**\r\n *\r\n */\r\n Value_CAL_ADDRESS: _NS$f(\"Value_CAL-ADDRESS\"),\r\n /**\r\n *\r\n */\r\n Value_DATE: _NS$f(\"Value_DATE\"),\r\n /**\r\n *\r\n */\r\n Value_DATE_TIME: _NS$f(\"Value_DATE-TIME\"),\r\n /**\r\n *\r\n */\r\n Value_DURATION: _NS$f(\"Value_DURATION\"),\r\n /**\r\n *\r\n */\r\n Value_PERIOD: _NS$f(\"Value_PERIOD\"),\r\n /**\r\n *\r\n */\r\n Value_RECUR: _NS$f(\"Value_RECUR\"),\r\n /**\r\n * Provide a grouping of component properties that describe an event.\r\n */\r\n Vevent: _NS$f(\"Vevent\"),\r\n /**\r\n * Provide a grouping of component properties that describe either a request for free/busy time, describe a response to a request for free/busy time or describe a published set of busy time.\r\n */\r\n Vfreebusy: _NS$f(\"Vfreebusy\"),\r\n /**\r\n * Provide a grouping of component properties that describe a journal entry.\r\n */\r\n Vjournal: _NS$f(\"Vjournal\"),\r\n /**\r\n * Provide a grouping of component properties that defines a time zone.\r\n */\r\n Vtimezone: _NS$f(\"Vtimezone\"),\r\n /**\r\n * Provide a grouping of calendar properties that describe a to-do.\r\n */\r\n Vtodo: _NS$f(\"Vtodo\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n *\r\n default value type: URI\r\n */\r\n attach: _NS$f(\"attach\"),\r\n /**\r\n *\r\n value type: TEXT\r\n */\r\n description: _NS$f(\"description\"),\r\n /**\r\n *\r\n value type: TEXT\r\n */\r\n summary: _NS$f(\"summary\"),\r\n /**\r\n *\r\n value type: DURATION\r\n */\r\n duration: _NS$f(\"duration\"),\r\n /**\r\n *\r\n value type: CAL-ADDRESS\r\n */\r\n attendee: _NS$f(\"attendee\"),\r\n /**\r\n *\r\n value type: TEXT\r\n */\r\n action: _NS$f(\"action\"),\r\n /**\r\n *\r\n value type: INTEGER\r\n */\r\n repeat: _NS$f(\"repeat\"),\r\n /**\r\n *\r\n default value type: DURATION\r\n */\r\n trigger: _NS$f(\"trigger\"),\r\n /**\r\n *\r\n value type: TEXT\r\n */\r\n categories: _NS$f(\"categories\"),\r\n /**\r\n *\r\n value type: TEXT\r\n */\r\n class: _NS$f(\"class\"),\r\n /**\r\n *\r\n value type: TEXT\r\n */\r\n comment: _NS$f(\"comment\"),\r\n /**\r\n * This property specifies information related to the global position for the activity specified by a calendar component.\r\n */\r\n geo: _NS$f(\"geo\"),\r\n /**\r\n *\r\n value type: TEXT\r\n */\r\n location: _NS$f(\"location\"),\r\n /**\r\n *\r\n value type: INTEGER\r\n */\r\n priority: _NS$f(\"priority\"),\r\n /**\r\n *\r\n value type: TEXT\r\n */\r\n resources: _NS$f(\"resources\"),\r\n /**\r\n *\r\n value type: TEXT\r\n */\r\n status: _NS$f(\"status\"),\r\n /**\r\n *\r\n default value type: DATE-TIME\r\n */\r\n dtend: _NS$f(\"dtend\"),\r\n /**\r\n *\r\n default value type: DATE-TIME\r\n */\r\n dtstart: _NS$f(\"dtstart\"),\r\n /**\r\n *\r\n value type: TEXT\r\n */\r\n transp: _NS$f(\"transp\"),\r\n /**\r\n *\r\n value type: TEXT\r\n */\r\n contact: _NS$f(\"contact\"),\r\n /**\r\n *\r\n value type: CAL-ADDRESS\r\n */\r\n organizer: _NS$f(\"organizer\"),\r\n /**\r\n *\r\n value type: TEXT\r\n */\r\n relatedTo: _NS$f(\"relatedTo\"),\r\n /**\r\n *\r\n value type: URI\r\n */\r\n url: _NS$f(\"url\"),\r\n /**\r\n *\r\n value type: TEXT\r\n */\r\n uid: _NS$f(\"uid\"),\r\n /**\r\n *\r\n value type: RECUR\r\n */\r\n exrule: _NS$f(\"exrule\"),\r\n /**\r\n *\r\n default value type: DATE-TIME\r\n */\r\n rdate: _NS$f(\"rdate\"),\r\n /**\r\n *\r\n value type: RECUR\r\n */\r\n rrule: _NS$f(\"rrule\"),\r\n /**\r\n *\r\n value type: DATE-TIME\r\n */\r\n created: _NS$f(\"created\"),\r\n /**\r\n *\r\n value type: DATE-TIME\r\n */\r\n dtstamp: _NS$f(\"dtstamp\"),\r\n /**\r\n *\r\n value type: DATE-TIME\r\n */\r\n lastModified: _NS$f(\"lastModified\"),\r\n /**\r\n *\r\n value type: integer\r\n */\r\n sequence: _NS$f(\"sequence\"),\r\n /**\r\n *\r\n value type: TEXT\r\n */\r\n requestStatus: _NS$f(\"requestStatus\"),\r\n /**\r\n *\r\n value type: PERIOD\r\n */\r\n freebusy: _NS$f(\"freebusy\"),\r\n /**\r\n *\r\n value type: TEXT\r\n */\r\n tzid: _NS$f(\"tzid\"),\r\n /**\r\n *\r\n value type: TEXT\r\n */\r\n tzname: _NS$f(\"tzname\"),\r\n /**\r\n *\r\n value type: UTC-OFFSET\r\n */\r\n tzoffsetfrom: _NS$f(\"tzoffsetfrom\"),\r\n /**\r\n *\r\n value type: UTC-OFFSET\r\n */\r\n tzoffsetto: _NS$f(\"tzoffsetto\"),\r\n /**\r\n *\r\n value type: URI\r\n */\r\n tzurl: _NS$f(\"tzurl\"),\r\n /**\r\n *\r\n value type: INTEGER\r\n */\r\n percentComplete: _NS$f(\"percentComplete\"),\r\n /**\r\n *\r\n value type: DATE-TIME\r\n */\r\n completed: _NS$f(\"completed\"),\r\n /**\r\n *\r\n default value type: DATE-TIME\r\n */\r\n due: _NS$f(\"due\"),\r\n /**\r\n *\r\n value type: TEXT\r\n */\r\n X_: _NS$f(\"X-\"),\r\n /**\r\n *\r\n value type: TEXT\r\n */\r\n calscale: _NS$f(\"calscale\"),\r\n /**\r\n *\r\n default value type: DATE-TIME\r\n */\r\n exdate: _NS$f(\"exdate\"),\r\n /**\r\n *\r\n value type: TEXT\r\n */\r\n method: _NS$f(\"method\"),\r\n /**\r\n *\r\n value type: TEXT\r\n */\r\n prodid: _NS$f(\"prodid\"),\r\n /**\r\n *\r\n default value type: DATE-TIME\r\n */\r\n recurrenceId: _NS$f(\"recurrenceId\"),\r\n /**\r\n *\r\n value type: TEXT\r\n */\r\n version: _NS$f(\"version\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$e = new rdfDataFactory.DataFactory();\r\nfunction _NS$e(localName) {\r\n return rdfFactory$e.namedNode(\"http://www.w3.org/ns/prov#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * This document is published by the Provenance Working Group (http://www.w3.org/2011/prov/wiki/Main_Page).\r\n\nIf you wish to make comments regarding this document, please send them to public-prov-comments@w3.org (subscribe public-prov-comments-request@w3.org, archives http://lists.w3.org/Archives/Public/public-prov-comments/). All feedback is welcome.\r\n */\r\nvar PROV_O = {\r\n PREFIX: \"prov-o\",\r\n NAMESPACE: \"http://www.w3.org/ns/prov#\",\r\n PREFIX_AND_NAMESPACE: { \"prov-o\": \"http://www.w3.org/ns/prov#\" },\r\n NS: _NS$e,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * Activity\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Activity: _NS$e(\"Activity\"),\r\n /**\r\n * Entity\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Entity: _NS$e(\"Entity\"),\r\n /**\r\n * ActivityInfluence provides additional descriptions of an Activity's binary influence upon any other kind of resource. Instances of ActivityInfluence use the prov:activity property to cite the influencing Activity.\r\n *\r\n * See also:\r\n * - http://www.w3.org/ns/prov#activity\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n ActivityInfluence: _NS$e(\"ActivityInfluence\"),\r\n /**\r\n * An instance of prov:Influence provides additional descriptions about the binary prov:wasInfluencedBy relation from some influenced Activity, Entity, or Agent to the influencing Activity, Entity, or Agent. For example, :stomach_ache prov:wasInfluencedBy :spoon; prov:qualifiedInfluence [ a prov:Influence; prov:entity :spoon; :foo :bar ] . Because prov:Influence is a broad relation, the more specific relations (Communication, Delegation, End, etc.) should be used when applicable.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Influence: _NS$e(\"Influence\"),\r\n /**\r\n * EntityInfluence provides additional descriptions of an Entity's binary influence upon any other kind of resource. Instances of EntityInfluence use the prov:entity property to cite the influencing Entity.\r\n *\r\n * See also:\r\n * - http://www.w3.org/ns/prov#entity\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n EntityInfluence: _NS$e(\"EntityInfluence\"),\r\n /**\r\n * Agent\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Agent: _NS$e(\"Agent\"),\r\n /**\r\n * An instantaneous event, or event for short, happens in the world and marks a change in the world, in its activities and in its entities. The term 'event' is commonly used in process algebra with a similar meaning. Events represent communications or interactions; they are assumed to be atomic and instantaneous.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n InstantaneousEvent: _NS$e(\"InstantaneousEvent\"),\r\n /**\r\n * AgentInfluence provides additional descriptions of an Agent's binary influence upon any other kind of resource. Instances of AgentInfluence use the prov:agent property to cite the influencing Agent.\r\n *\r\n * See also:\r\n * - http://www.w3.org/ns/prov#agent\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n AgentInfluence: _NS$e(\"AgentInfluence\"),\r\n /**\r\n * An instance of prov:Association provides additional descriptions about the binary prov:wasAssociatedWith relation from an prov:Activity to some prov:Agent that had some responsiblity for it. For example, :baking prov:wasAssociatedWith :baker; prov:qualifiedAssociation [ a prov:Association; prov:agent :baker; :foo :bar ].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Association: _NS$e(\"Association\"),\r\n /**\r\n * An instance of prov:Attribution provides additional descriptions about the binary prov:wasAttributedTo relation from an prov:Entity to some prov:Agent that had some responsible for it. For example, :cake prov:wasAttributedTo :baker; prov:qualifiedAttribution [ a prov:Attribution; prov:entity :baker; :foo :bar ].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Attribution: _NS$e(\"Attribution\"),\r\n /**\r\n * Note that there are kinds of bundles (e.g. handwritten letters, audio recordings, etc.) that are not expressed in PROV-O, but can be still be described by PROV-O.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Bundle: _NS$e(\"Bundle\"),\r\n /**\r\n * Collection\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Collection: _NS$e(\"Collection\"),\r\n /**\r\n * An instance of prov:Communication provides additional descriptions about the binary prov:wasInformedBy relation from an informed prov:Activity to the prov:Activity that informed it. For example, :you_jumping_off_bridge prov:wasInformedBy :everyone_else_jumping_off_bridge; prov:qualifiedCommunication [ a prov:Communication; prov:activity :everyone_else_jumping_off_bridge; :foo :bar ].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Communication: _NS$e(\"Communication\"),\r\n /**\r\n * An instance of prov:Delegation provides additional descriptions about the binary prov:actedOnBehalfOf relation from a performing prov:Agent to some prov:Agent for whom it was performed. For example, :mixing prov:wasAssociatedWith :toddler . :toddler prov:actedOnBehalfOf :mother; prov:qualifiedDelegation [ a prov:Delegation; prov:entity :mother; :foo :bar ].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Delegation: _NS$e(\"Delegation\"),\r\n /**\r\n * An instance of prov:Derivation provides additional descriptions about the binary prov:wasDerivedFrom relation from some derived prov:Entity to another prov:Entity from which it was derived. For example, :chewed_bubble_gum prov:wasDerivedFrom :unwrapped_bubble_gum; prov:qualifiedDerivation [ a prov:Derivation; prov:entity :unwrapped_bubble_gum; :foo :bar ].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Derivation: _NS$e(\"Derivation\"),\r\n /**\r\n * EmptyCollection\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n EmptyCollection: _NS$e(\"EmptyCollection\"),\r\n /**\r\n * An instance of prov:End provides additional descriptions about the binary prov:wasEndedBy relation from some ended prov:Activity to an prov:Entity that ended it. For example, :ball_game prov:wasEndedBy :buzzer; prov:qualifiedEnd [ a prov:End; prov:entity :buzzer; :foo :bar; prov:atTime '2012-03-09T08:05:08-05:00'^^xsd:dateTime ].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n End: _NS$e(\"End\"),\r\n /**\r\n * An instance of prov:Generation provides additional descriptions about the binary prov:wasGeneratedBy relation from a generated prov:Entity to the prov:Activity that generated it. For example, :cake prov:wasGeneratedBy :baking; prov:qualifiedGeneration [ a prov:Generation; prov:activity :baking; :foo :bar ].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Generation: _NS$e(\"Generation\"),\r\n /**\r\n * An instance of prov:Invalidation provides additional descriptions about the binary prov:wasInvalidatedBy relation from an invalidated prov:Entity to the prov:Activity that invalidated it. For example, :uncracked_egg prov:wasInvalidatedBy :baking; prov:qualifiedInvalidation [ a prov:Invalidation; prov:activity :baking; :foo :bar ].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Invalidation: _NS$e(\"Invalidation\"),\r\n /**\r\n * Location\r\n *\r\n * See also:\r\n * - http://www.w3.org/ns/prov#atLocation\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Location: _NS$e(\"Location\"),\r\n /**\r\n * Organization\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Organization: _NS$e(\"Organization\"),\r\n /**\r\n * Person\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Person: _NS$e(\"Person\"),\r\n /**\r\n * There exist no prescriptive requirement on the nature of plans, their representation, the actions or steps they consist of, or their intended goals. Since plans may evolve over time, it may become necessary to track their provenance, so plans themselves are entities. Representing the plan explicitly in the provenance can be useful for various tasks: for example, to validate the execution as represented in the provenance record, to manage expectation failures, or to provide explanations.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Plan: _NS$e(\"Plan\"),\r\n /**\r\n * An instance of prov:PrimarySource provides additional descriptions about the binary prov:hadPrimarySource relation from some secondary prov:Entity to an earlier, primary prov:Entity. For example, :blog prov:hadPrimarySource :newsArticle; prov:qualifiedPrimarySource [ a prov:PrimarySource; prov:entity :newsArticle; :foo :bar ] .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n PrimarySource: _NS$e(\"PrimarySource\"),\r\n /**\r\n * An instance of prov:Quotation provides additional descriptions about the binary prov:wasQuotedFrom relation from some taken prov:Entity from an earlier, larger prov:Entity. For example, :here_is_looking_at_you_kid prov:wasQuotedFrom :casablanca_script; prov:qualifiedQuotation [ a prov:Quotation; prov:entity :casablanca_script; :foo :bar ].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Quotation: _NS$e(\"Quotation\"),\r\n /**\r\n * An instance of prov:Revision provides additional descriptions about the binary prov:wasRevisionOf relation from some newer prov:Entity to an earlier prov:Entity. For example, :draft_2 prov:wasRevisionOf :draft_1; prov:qualifiedRevision [ a prov:Revision; prov:entity :draft_1; :foo :bar ].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Revision: _NS$e(\"Revision\"),\r\n /**\r\n * Role\r\n *\r\n * See also:\r\n * - http://www.w3.org/ns/prov#hadRole\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Role: _NS$e(\"Role\"),\r\n /**\r\n * SoftwareAgent\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n SoftwareAgent: _NS$e(\"SoftwareAgent\"),\r\n /**\r\n * An instance of prov:Start provides additional descriptions about the binary prov:wasStartedBy relation from some started prov:Activity to an prov:Entity that started it. For example, :foot_race prov:wasStartedBy :bang; prov:qualifiedStart [ a prov:Start; prov:entity :bang; :foo :bar; prov:atTime '2012-03-09T08:05:08-05:00'^^xsd:dateTime ] .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Start: _NS$e(\"Start\"),\r\n /**\r\n * An instance of prov:Usage provides additional descriptions about the binary prov:used relation from some prov:Activity to an prov:Entity that it used. For example, :keynote prov:used :podium; prov:qualifiedUsage [ a prov:Usage; prov:entity :podium; :foo :bar ].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Usage: _NS$e(\"Usage\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * Classify prov-o terms into three categories, including 'starting-point', 'qualifed', and 'extended'. This classification is used by the prov-o html document to gently introduce prov-o terms to its users.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n category: _NS$e(\"category\"),\r\n /**\r\n * Classify prov-o terms into six components according to prov-dm, including 'agents-responsibility', 'alternate', 'annotations', 'collections', 'derivations', and 'entities-activities'. This classification is used so that readers of prov-o specification can find its correspondence with the prov-dm specification.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n component: _NS$e(\"component\"),\r\n /**\r\n * A reference to the principal section of the PROV-CONSTRAINTS document that describes this concept.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n constraints: _NS$e(\"constraints\"),\r\n /**\r\n * A definition quoted from PROV-DM or PROV-CONSTRAINTS that describes the concept expressed with this OWL term.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n definition: _NS$e(\"definition\"),\r\n /**\r\n * A reference to the principal section of the PROV-DM document that describes this concept.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n dm: _NS$e(\"dm\"),\r\n /**\r\n * A reference to the principal section of the PROV-DM document that describes this concept.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n n: _NS$e(\"n\"),\r\n /**\r\n * activity\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n activity: _NS$e(\"activity\"),\r\n /**\r\n * The _optional_ Activity of an Influence, which used, generated, invalidated, or was the responsibility of some Entity. This property is _not_ used by ActivityInfluence (use prov:activity instead).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n hadActivity: _NS$e(\"hadActivity\"),\r\n /**\r\n * When the prov-o term does not have a definition drawn from prov-dm, and the prov-o editor provides one.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n editorsDefinition: _NS$e(\"editorsDefinition\"),\r\n /**\r\n * agent\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n agent: _NS$e(\"agent\"),\r\n /**\r\n * Classes and properties used to qualify relationships are annotated with prov:unqualifiedForm to indicate the property used to assert an unqualified provenance relation.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n unqualifiedForm: _NS$e(\"unqualifiedForm\"),\r\n /**\r\n * An prov:Agent that had some (unspecified) responsibility for the occurrence of this prov:Activity.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n wasAssociatedWith: _NS$e(\"wasAssociatedWith\"),\r\n /**\r\n * Attribution is the ascribing of an entity to an agent.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n wasAttributedTo: _NS$e(\"wasAttributedTo\"),\r\n /**\r\n * An activity a2 is dependent on or informed by another activity a1, by way of some unspecified entity that is generated by a1 and used by a2.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n wasInformedBy: _NS$e(\"wasInformedBy\"),\r\n /**\r\n * An object property to express the accountability of an agent towards another agent. The subordinate agent acted on behalf of the responsible agent in an actual activity.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n actedOnBehalfOf: _NS$e(\"actedOnBehalfOf\"),\r\n /**\r\n * The more specific subproperties of prov:wasDerivedFrom (i.e., prov:wasQuotedFrom, prov:wasRevisionOf, prov:hadPrimarySource) should be used when applicable.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n wasDerivedFrom: _NS$e(\"wasDerivedFrom\"),\r\n /**\r\n * End is when an activity is deemed to have ended. An end may refer to an entity, known as trigger, that terminated the activity.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n wasEndedBy: _NS$e(\"wasEndedBy\"),\r\n /**\r\n * entity\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n entity: _NS$e(\"entity\"),\r\n /**\r\n * wasGeneratedBy\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n wasGeneratedBy: _NS$e(\"wasGeneratedBy\"),\r\n /**\r\n * Because prov:wasInfluencedBy is a broad relation, its more specific subproperties (e.g. prov:wasInformedBy, prov:actedOnBehalfOf, prov:wasEndedBy, etc.) should be used when applicable.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n wasInfluencedBy: _NS$e(\"wasInfluencedBy\"),\r\n /**\r\n * wasInvalidatedBy\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n wasInvalidatedBy: _NS$e(\"wasInvalidatedBy\"),\r\n /**\r\n * The Location of any resource.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n atLocation: _NS$e(\"atLocation\"),\r\n /**\r\n * hadPrimarySource\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n hadPrimarySource: _NS$e(\"hadPrimarySource\"),\r\n /**\r\n * An entity is derived from an original entity by copying, or 'quoting', some or all of it.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n wasQuotedFrom: _NS$e(\"wasQuotedFrom\"),\r\n /**\r\n * A revision is a derivation that revises an entity into a revised version.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n wasRevisionOf: _NS$e(\"wasRevisionOf\"),\r\n /**\r\n * The _optional_ Role that an Entity assumed in the context of an Activity. For example, :baking prov:used :spoon; prov:qualified [ a prov:Usage; prov:entity :spoon; prov:hadRole roles:mixing_implement ].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n hadRole: _NS$e(\"hadRole\"),\r\n /**\r\n * Start is when an activity is deemed to have started. A start may refer to an entity, known as trigger, that initiated the activity.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n wasStartedBy: _NS$e(\"wasStartedBy\"),\r\n /**\r\n * A prov:Entity that was used by this prov:Activity. For example, :baking prov:used :spoon, :egg, :oven .\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n used: _NS$e(\"used\"),\r\n /**\r\n * If this Agent prov:actedOnBehalfOf Agent :ag, then it can qualify how with prov:qualifiedResponsibility [ a prov:Responsibility; prov:agent :ag; :foo :bar ].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n qualifiedDelegation: _NS$e(\"qualifiedDelegation\"),\r\n /**\r\n * PROV-O does not define all property inverses. The directionalities defined in PROV-O should be given preference over those not defined. However, if users wish to name the inverse of a PROV-O property, the local name given by prov:inverse should be used.\r\n *\r\n * See also:\r\n * - http://www.w3.org/TR/prov-o/#names-of-inverse-properties\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n inverse: _NS$e(\"inverse\"),\r\n /**\r\n * This annotation property links a subproperty of prov:wasInfluencedBy with the subclass of prov:Influence and the qualifying property that are used to qualify it.\r\n \n Example annotation:\r\n \n prov:wasGeneratedBy prov:qualifiedForm prov:qualifiedGeneration, prov:Generation .\r\n \n Then this unqualified assertion:\r\n \n :entity1 prov:wasGeneratedBy :activity1 .\r\n \n can be qualified by adding:\r\n \n :entity1 prov:qualifiedGeneration :entity1Gen .\r\n :entity1Gen\r\n a prov:Generation, prov:Influence;\r\n prov:activity :activity1;\r\n :customValue 1337 .\r\n \n Note how the value of the unqualified influence (prov:wasGeneratedBy :activity1) is mirrored as the value of the prov:activity (or prov:entity, or prov:agent) property on the influence class.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n qualifiedForm: _NS$e(\"qualifiedForm\"),\r\n /**\r\n * Subproperties of prov:influencer are used to cite the object of an unqualified PROV-O triple whose predicate is a subproperty of prov:wasInfluencedBy (e.g. prov:used, prov:wasGeneratedBy). prov:influencer is used much like rdf:object is used.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n influencer: _NS$e(\"influencer\"),\r\n /**\r\n * A note by the OWL development team about how this term expresses the PROV-DM concept, or how it should be used in context of semantic web or linked data.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n editorialNote: _NS$e(\"editorialNote\"),\r\n /**\r\n * alternateOf\r\n *\r\n * See also:\r\n * - http://www.w3.org/ns/prov#specializationOf\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n alternateOf: _NS$e(\"alternateOf\"),\r\n /**\r\n * specializationOf\r\n *\r\n * See also:\r\n * - http://www.w3.org/ns/prov#alternateOf\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n specializationOf: _NS$e(\"specializationOf\"),\r\n /**\r\n *\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n aq: _NS$e(\"aq\"),\r\n /**\r\n *\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n sharesDefinitionWith: _NS$e(\"sharesDefinitionWith\"),\r\n /**\r\n * The time at which an InstantaneousEvent occurred, in the form of xsd:dateTime.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n atTime: _NS$e(\"atTime\"),\r\n /**\r\n * The time at which an activity ended. See also prov:startedAtTime.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n endedAtTime: _NS$e(\"endedAtTime\"),\r\n /**\r\n * The time at which an entity was completely created and is available for use.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n generatedAtTime: _NS$e(\"generatedAtTime\"),\r\n /**\r\n * The time at which an entity was invalidated (i.e., no longer usable).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n invalidatedAtTime: _NS$e(\"invalidatedAtTime\"),\r\n /**\r\n * The time at which an activity started. See also prov:endedAtTime.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n startedAtTime: _NS$e(\"startedAtTime\"),\r\n /**\r\n * generated\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n generated: _NS$e(\"generated\"),\r\n /**\r\n * influenced\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n influenced: _NS$e(\"influenced\"),\r\n /**\r\n * The _optional_ Generation involved in an Entity's Derivation.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n hadGeneration: _NS$e(\"hadGeneration\"),\r\n /**\r\n * hadMember\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n hadMember: _NS$e(\"hadMember\"),\r\n /**\r\n * The _optional_ Plan adopted by an Agent in Association with some Activity. Plan specifications are out of the scope of this specification.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n hadPlan: _NS$e(\"hadPlan\"),\r\n /**\r\n * If this Entity prov:hadPrimarySource Entity :e, then it can qualify how using prov:qualifiedPrimarySource [ a prov:PrimarySource; prov:entity :e; :foo :bar ].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n qualifiedPrimarySource: _NS$e(\"qualifiedPrimarySource\"),\r\n /**\r\n * The _optional_ Usage involved in an Entity's Derivation.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n hadUsage: _NS$e(\"hadUsage\"),\r\n /**\r\n * invalidated\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n invalidated: _NS$e(\"invalidated\"),\r\n /**\r\n * The position that this OWL term should be listed within documentation. The scope of the documentation (e.g., among all terms, among terms within a prov:category, among properties applying to a particular class, etc.) is unspecified.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n order: _NS$e(\"order\"),\r\n /**\r\n * If this Activity prov:wasAssociatedWith Agent :ag, then it can qualify the Association using prov:qualifiedAssociation [ a prov:Association; prov:agent :ag; :foo :bar ].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n qualifiedAssociation: _NS$e(\"qualifiedAssociation\"),\r\n /**\r\n * Because prov:qualifiedInfluence is a broad relation, the more specific relations (qualifiedCommunication, qualifiedDelegation, qualifiedEnd, etc.) should be used when applicable.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n qualifiedInfluence: _NS$e(\"qualifiedInfluence\"),\r\n /**\r\n * If this Entity prov:wasAttributedTo Agent :ag, then it can qualify how it was influenced using prov:qualifiedAttribution [ a prov:Attribution; prov:agent :ag; :foo :bar ].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n qualifiedAttribution: _NS$e(\"qualifiedAttribution\"),\r\n /**\r\n * If this Activity prov:wasInformedBy Activity :a, then it can qualify how it was influenced using prov:qualifiedCommunication [ a prov:Communication; prov:activity :a; :foo :bar ].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n qualifiedCommunication: _NS$e(\"qualifiedCommunication\"),\r\n /**\r\n * If this Entity prov:wasDerivedFrom Entity :e, then it can qualify how it was derived using prov:qualifiedDerivation [ a prov:Derivation; prov:entity :e; :foo :bar ].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n qualifiedDerivation: _NS$e(\"qualifiedDerivation\"),\r\n /**\r\n * If this Activity prov:wasEndedBy Entity :e1, then it can qualify how it was ended using prov:qualifiedEnd [ a prov:End; prov:entity :e1; :foo :bar ].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n qualifiedEnd: _NS$e(\"qualifiedEnd\"),\r\n /**\r\n * If this Activity prov:generated Entity :e, then it can qualify how it performed the Generation using prov:qualifiedGeneration [ a prov:Generation; prov:entity :e; :foo :bar ].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n qualifiedGeneration: _NS$e(\"qualifiedGeneration\"),\r\n /**\r\n * If this Entity prov:wasInvalidatedBy Activity :a, then it can qualify how it was invalidated using prov:qualifiedInvalidation [ a prov:Invalidation; prov:activity :a; :foo :bar ].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n qualifiedInvalidation: _NS$e(\"qualifiedInvalidation\"),\r\n /**\r\n * If this Entity prov:wasQuotedFrom Entity :e, then it can qualify how using prov:qualifiedQuotation [ a prov:Quotation; prov:entity :e; :foo :bar ].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n qualifiedQuotation: _NS$e(\"qualifiedQuotation\"),\r\n /**\r\n * If this Entity prov:wasRevisionOf Entity :e, then it can qualify how it was revised using prov:qualifiedRevision [ a prov:Revision; prov:entity :e; :foo :bar ].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n qualifiedRevision: _NS$e(\"qualifiedRevision\"),\r\n /**\r\n * If this Activity prov:wasStartedBy Entity :e1, then it can qualify how it was started using prov:qualifiedStart [ a prov:Start; prov:entity :e1; :foo :bar ].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n qualifiedStart: _NS$e(\"qualifiedStart\"),\r\n /**\r\n * If this Activity prov:used Entity :e, then it can qualify how it used it using prov:qualifiedUsage [ a prov:Usage; prov:entity :e; :foo :bar ].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n qualifiedUsage: _NS$e(\"qualifiedUsage\"),\r\n /**\r\n *\r\n */\r\n todo: _NS$e(\"todo\"),\r\n /**\r\n * value\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n value: _NS$e(\"value\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$d = new rdfDataFactory.DataFactory();\r\nfunction _NS$d(localName) {\r\n return rdfFactory$d.namedNode(\"http://www.w3.org/ns/dx/conneg/altr#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * This ontology allows for the description of representations of Internet resources.\r\n\nRepresentations may conform to prof:Profile instances and may have the format of a particular dct:MediaType.\r\n */\r\nvar ALTR = {\r\n PREFIX: \"altr\",\r\n NAMESPACE: \"http://www.w3.org/ns/dx/conneg/altr#\",\r\n PREFIX_AND_NAMESPACE: { \"altr\": \"http://www.w3.org/ns/dx/conneg/altr#\" },\r\n NS: _NS$d,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * An abstraction of the current or desired state of a thing in HTTP communications.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/dx/connegp/altp\r\n */\r\n Representation: _NS$d(\"Representation\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * Indicates a Representation of a Resource.\r\n */\r\n hasRepresentation: _NS$d(\"hasRepresentation\"),\r\n /**\r\n * Indicates the default Representation of a Resource.\r\n */\r\n hasDefaultRepresentation: _NS$d(\"hasDefaultRepresentation\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$c = new rdfDataFactory.DataFactory();\r\nfunction _NS$c(localName) {\r\n return rdfFactory$c.namedNode(\"http://www.w3.org/ns/hydra/core#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * The Hydra Core Vocabulary is a lightweight vocabulary to create hypermedia-driven Web APIs. By specifying a number of concepts commonly used in Web APIs it enables the creation of generic API clients.\r\n */\r\nvar HYDRA = {\r\n PREFIX: \"hydra\",\r\n NAMESPACE: \"http://www.w3.org/ns/hydra/core#\",\r\n PREFIX_AND_NAMESPACE: { \"hydra\": \"http://www.w3.org/ns/hydra/core#\" },\r\n NS: _NS$c,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * The class of Hydra classes.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n Class: _NS$c(\"Class\"),\r\n /**\r\n * The class of properties representing links.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n Link: _NS$c(\"Link\"),\r\n /**\r\n * The Hydra API documentation class\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n ApiDocumentation: _NS$c(\"ApiDocumentation\"),\r\n /**\r\n * A templated link.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n TemplatedLink: _NS$c(\"TemplatedLink\"),\r\n /**\r\n * A runtime error, used to report information beyond the returned status code.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n Error: _NS$c(\"Error\"),\r\n /**\r\n * A collection holding references to a number of related resources.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n Collection: _NS$c(\"Collection\"),\r\n /**\r\n * A PartialCollectionView describes a partial view of a Collection. Multiple PartialCollectionViews can be connected with the the next/previous properties to allow a client to retrieve all members of the collection.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n PartialCollectionView: _NS$c(\"PartialCollectionView\"),\r\n /**\r\n * Provides a base abstract for base Uri source for Iri template resolution.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n BaseUriSource: _NS$c(\"BaseUriSource\"),\r\n /**\r\n * Specifies a possible either expected or returned header values\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n HeaderSpecification: _NS$c(\"HeaderSpecification\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * A property\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n property: _NS$c(\"property\"),\r\n /**\r\n * True if the property is required, false otherwise.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n required: _NS$c(\"required\"),\r\n /**\r\n * True if the client can retrieve the property's value, false otherwise.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n readable: _NS$c(\"readable\"),\r\n /**\r\n * True if the client can change the property's value, false otherwise.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n writable: _NS$c(\"writable\"),\r\n /**\r\n * This property is left for compatibility purposes and hydra:writable should be used instead.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n writeable: _NS$c(\"writeable\"),\r\n /**\r\n * The HTTP method.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n method: _NS$c(\"method\"),\r\n /**\r\n * The HTTP status code. Please note it may happen this value will be different to actual status code received.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n statusCode: _NS$c(\"statusCode\"),\r\n /**\r\n * A title, often used along with a description.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n title: _NS$c(\"title\"),\r\n /**\r\n * A description.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n description: _NS$c(\"description\"),\r\n /**\r\n * This predicate is left for compatibility purposes and hydra:memberAssertion should be used instead.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n manages: _NS$c(\"manages\"),\r\n /**\r\n * The total number of items referenced by a collection.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n totalItems: _NS$c(\"totalItems\"),\r\n /**\r\n * A property representing a freetext query.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n freetextQuery: _NS$c(\"freetextQuery\"),\r\n /**\r\n * A templated string with placeholders. The literal's datatype indicates the template syntax; if not specified, hydra:Rfc6570Template is assumed.\r\n *\r\n * See also:\r\n * - http://www.w3.org/ns/hydra/core#Rfc6570Template\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n template: _NS$c(\"template\"),\r\n /**\r\n * An IRI template as defined by RFC6570.\r\n *\r\n * See also:\r\n * - http://tools.ietf.org/html/rfc6570\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n Rfc6570Template: _NS$c(\"Rfc6570Template\"),\r\n /**\r\n * The representation format to use when expanding the IRI template.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n variableRepresentation: _NS$c(\"variableRepresentation\"),\r\n /**\r\n * A variable-to-property mapping of the IRI template.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n mapping: _NS$c(\"mapping\"),\r\n /**\r\n * An IRI template variable\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n variable: _NS$c(\"variable\"),\r\n /**\r\n * relative Uri resolution\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n resolveRelativeUsing: _NS$c(\"resolveRelativeUsing\"),\r\n /**\r\n * Instructs to skip N elements of the set.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n offset: _NS$c(\"offset\"),\r\n /**\r\n * Instructs to limit set only to N elements.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n limit: _NS$c(\"limit\"),\r\n /**\r\n * Instructs to provide a specific page of the collection at a given index.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n pageIndex: _NS$c(\"pageIndex\"),\r\n /**\r\n * Instructs to provide a specific page reference of the collection.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n pageReference: _NS$c(\"pageReference\"),\r\n /**\r\n * Name of the header returned by the operation.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n returnsHeader: _NS$c(\"returnsHeader\"),\r\n /**\r\n * Specification of the header expected by the operation.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n expectsHeader: _NS$c(\"expectsHeader\"),\r\n /**\r\n * Name of the header.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n headerName: _NS$c(\"headerName\"),\r\n /**\r\n * Possible value of the header.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n possibleValue: _NS$c(\"possibleValue\"),\r\n /**\r\n * Determines whether the provided set of header values is closed or not.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n closedSet: _NS$c(\"closedSet\"),\r\n /**\r\n * Hint on what kind of extensions are in use.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n extension: _NS$c(\"extension\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$b = new rdfDataFactory.DataFactory();\r\nfunction _NS$b(localName) {\r\n return rdfFactory$b.namedNode(\"http://www.w3.org/ns/dcat#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * DCAT es un vocabulario RDF diseñado para facilitar la interoperabilidad entre catálogos de datos publicados en la Web. Utilizando DCAT para describir datos disponibles en catálogos se aumenta la posibilidad de que sean descubiertos y se permite que las aplicaciones consuman fácilmente los metadatos de varios catálogos.\r\n */\r\nvar DCAT = {\r\n PREFIX: \"dcat\",\r\n NAMESPACE: \"http://www.w3.org/ns/dcat#\",\r\n PREFIX_AND_NAMESPACE: { \"dcat\": \"http://www.w3.org/ns/dcat#\" },\r\n NS: _NS$b,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * A curated collection of metadata about resources (e.g., datasets and data services in the context of a data catalog).\r\n *\r\n * This term has [8] labels and comments, in the languages [ar, cs, da, el, es, fr, it, ja].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/TR/vocab-dcat/\r\n */\r\n Catalog: _NS$b(\"Catalog\"),\r\n /**\r\n * A collection of data, published or curated by a single source, and available for access or download in one or more representations.\r\n *\r\n * This term has [8] labels and comments, in the languages [ar, cs, da, el, es, fr, it, ja].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/TR/vocab-dcat/\r\n */\r\n Dataset: _NS$b(\"Dataset\"),\r\n /**\r\n * Resource published or curated by a single agent.\r\n *\r\n * This term has [4] labels and comments, in the languages [cs, da, es, it].\r\n */\r\n Resource: _NS$b(\"Resource\"),\r\n /**\r\n * A record in a data catalog, describing the registration of a single dataset or data service.\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [8] labels in languages [ar, cs, da, el, es, fr, it, ja], but [7] comments in languages [cs, da, el, es, fr, it, ja].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/TR/vocab-dcat/\r\n */\r\n CatalogRecord: _NS$b(\"CatalogRecord\"),\r\n /**\r\n * A site or end-point providing operations related to the discovery of, access to, or processing functions on, data or related resources.\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [3] labels in languages [da, es, it], but [4] comments in languages [cs, da, es, it].\r\n */\r\n DataService: _NS$b(\"DataService\"),\r\n /**\r\n * A specific representation of a dataset. A dataset might be available in multiple serializations that may differ in various ways, including natural language, media-type or format, schematic organization, temporal and spatial resolution, level of detail or profiles (which might specify any or all of the above).\r\n *\r\n * This term has [8] labels and comments, in the languages [ar, cs, da, el, es, fr, it, ja].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/TR/vocab-dcat/\r\n */\r\n Distribution: _NS$b(\"Distribution\"),\r\n /**\r\n * An association class for attaching additional information to a relationship between DCAT Resources.\r\n *\r\n * This term has [4] labels and comments, in the languages [cs, da, es, it].\r\n */\r\n Relationship: _NS$b(\"Relationship\"),\r\n /**\r\n * A role is the function of a resource or agent with respect to another resource, in the context of resource attribution or resource relationships.\r\n *\r\n * This term has [4] labels and comments, in the languages [cs, da, es, it].\r\n *\r\n * See also:\r\n * - http://www.w3.org/ns/dcat#hadRole\r\n */\r\n Role: _NS$b(\"Role\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * The root location or primary endpoint of the service (a web-resolvable IRI).\r\n *\r\n * This term has [4] labels and comments, in the languages [cs, da, es, it].\r\n */\r\n endpointURL: _NS$b(\"endpointURL\"),\r\n /**\r\n * The function of an entity or agent with respect to another entity or resource.\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [3] labels in languages [cs, da, it], but [4] comments in languages [cs, da, es, it].\r\n */\r\n hadRole: _NS$b(\"hadRole\"),\r\n /**\r\n * A site or end-point that gives access to the distribution of the dataset.\r\n *\r\n * This term has [4] labels and comments, in the languages [cs, da, es, it].\r\n */\r\n accessService: _NS$b(\"accessService\"),\r\n /**\r\n * A URL of a resource that gives access to a distribution of the dataset. E.g. landing page, feed, SPARQL endpoint. Use for all cases except a simple download link, in which case downloadURL is preferred.\r\n *\r\n * This term has [8] labels and comments, in the languages [ar, cs, da, el, es, fr, it, ja].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/TR/vocab-dcat/\r\n */\r\n accessURL: _NS$b(\"accessURL\"),\r\n /**\r\n * The geographic bounding box of a resource.\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [4] labels in languages [cs, da, es, it], but [0] comments.\r\n */\r\n bbox: _NS$b(\"bbox\"),\r\n /**\r\n * The size of a distribution in bytes.\r\n *\r\n * This term has [8] labels and comments, in the languages [ar, cs, da, el, es, fr, it, ja].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/TR/vocab-dcat/\r\n */\r\n byteSize: _NS$b(\"byteSize\"),\r\n /**\r\n * A catalog whose contents are of interest in the context of this catalog.\r\n *\r\n * This term has [4] labels and comments, in the languages [cs, da, es, it].\r\n */\r\n catalog: _NS$b(\"catalog\"),\r\n /**\r\n * The geographic center (centroid) of a resource.\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [4] labels in languages [cs, da, es, it], but [0] comments.\r\n */\r\n centroid: _NS$b(\"centroid\"),\r\n /**\r\n * The compression format of the distribution in which the data is contained in a compressed form, e.g. to reduce the size of the downloadable file.\r\n *\r\n * This term has [4] labels and comments, in the languages [cs, da, es, it].\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/TR/vocab-dcat-2/\r\n */\r\n compressFormat: _NS$b(\"compressFormat\"),\r\n /**\r\n * Relevant contact information for the catalogued resource. Use of vCard is recommended.\r\n *\r\n * This term has [8] labels and comments, in the languages [ar, cs, da, el, es, fr, it, ja].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/TR/vocab-dcat/\r\n */\r\n contactPoint: _NS$b(\"contactPoint\"),\r\n /**\r\n * A collection of data that is listed in the catalog.\r\n *\r\n * This term has [8] labels and comments, in the languages [ar, cs, da, el, es, fr, it, ja].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/TR/vocab-dcat/\r\n */\r\n dataset: _NS$b(\"dataset\"),\r\n /**\r\n * An available distribution of the dataset.\r\n *\r\n * This term has [8] labels and comments, in the languages [ar, cs, da, el, es, fr, it, ja].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/TR/vocab-dcat/\r\n */\r\n distribution: _NS$b(\"distribution\"),\r\n /**\r\n * The URL of the downloadable file in a given format. E.g. CSV file or RDF file. The format is indicated by the distribution's dct:format and/or dcat:mediaType.\r\n *\r\n * This term has [8] labels and comments, in the languages [ar, cs, da, el, es, fr, it, ja].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/TR/vocab-dcat/\r\n */\r\n downloadURL: _NS$b(\"downloadURL\"),\r\n /**\r\n * The end of the period.\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [4] labels in languages [cs, da, es, it], but [0] comments.\r\n */\r\n endDate: _NS$b(\"endDate\"),\r\n /**\r\n * A description of the service end-point, including its operations, parameters etc.\r\n *\r\n * This term has [4] labels and comments, in the languages [cs, da, es, it].\r\n */\r\n endpointDescription: _NS$b(\"endpointDescription\"),\r\n /**\r\n * A keyword or tag describing a resource.\r\n *\r\n * This term has [8] labels and comments, in the languages [ar, cs, da, el, es, fr, it, ja].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/TR/vocab-dcat/\r\n */\r\n keyword: _NS$b(\"keyword\"),\r\n /**\r\n * A Web page that can be navigated to in a Web browser to gain access to the catalog, a dataset, its distributions and/or additional information.\r\n *\r\n * This term has [8] labels and comments, in the languages [ar, cs, da, el, es, fr, it, ja].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/TR/vocab-dcat/\r\n */\r\n landingPage: _NS$b(\"landingPage\"),\r\n /**\r\n * The media type of the distribution as defined by IANA\r\n *\r\n * This term has [8] labels and comments, in the languages [ar, cs, da, el, es, fr, it, ja].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/TR/vocab-dcat/\r\n */\r\n mediaType: _NS$b(\"mediaType\"),\r\n /**\r\n * The package format of the distribution in which one or more data files are grouped together, e.g. to enable a set of related files to be downloaded together.\r\n *\r\n * This term has [4] labels and comments, in the languages [cs, da, es, it].\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/TR/vocab-dcat-2/\r\n */\r\n packageFormat: _NS$b(\"packageFormat\"),\r\n /**\r\n * Link to a description of a relationship with another resource.\r\n *\r\n * This term has [4] labels and comments, in the languages [cs, da, es, it].\r\n */\r\n qualifiedRelation: _NS$b(\"qualifiedRelation\"),\r\n /**\r\n * A record describing the registration of a single dataset or data service that is part of the catalog.\r\n *\r\n * This term has [8] labels and comments, in the languages [ar, cs, da, el, es, fr, it, ja].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/TR/vocab-dcat/\r\n */\r\n record: _NS$b(\"record\"),\r\n /**\r\n * A collection of data that this DataService can distribute.\r\n *\r\n * This term has [4] labels and comments, in the languages [cs, da, es, it].\r\n */\r\n servesDataset: _NS$b(\"servesDataset\"),\r\n /**\r\n * A site or endpoint that is listed in the catalog.\r\n *\r\n * This term has [4] labels and comments, in the languages [cs, da, es, it].\r\n */\r\n service: _NS$b(\"service\"),\r\n /**\r\n * minimum spatial separation resolvable in a dataset, measured in meters.\r\n *\r\n * This term has [4] labels and comments, in the languages [cs, da, es, it].\r\n */\r\n spatialResolutionInMeters: _NS$b(\"spatialResolutionInMeters\"),\r\n /**\r\n * The start of the period\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [3] labels in languages [cs, da, it], but [0] comments.\r\n */\r\n startDate: _NS$b(\"startDate\"),\r\n /**\r\n * minimum time period resolvable in a dataset.\r\n *\r\n * This term has [4] labels and comments, in the languages [cs, da, es, it].\r\n */\r\n temporalResolution: _NS$b(\"temporalResolution\"),\r\n /**\r\n * A main category of the resource. A resource can have multiple themes.\r\n *\r\n * This term has [8] labels and comments, in the languages [ar, cs, da, el, es, fr, it, ja].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/TR/vocab-dcat/\r\n */\r\n theme: _NS$b(\"theme\"),\r\n /**\r\n * The knowledge organization system (KOS) used to classify catalog's datasets.\r\n *\r\n * This term has [8] labels and comments, in the languages [ar, cs, da, el, es, fr, it, ja].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/TR/vocab-dcat/\r\n */\r\n themeTaxonomy: _NS$b(\"themeTaxonomy\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$a = new rdfDataFactory.DataFactory();\r\nfunction _NS$a(localName) {\r\n return rdfFactory$a.namedNode(\"http://www.w3.org/2002/01/bookmark#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * [Generator provided] - W3C Bookmark vocabulary\r\n */\r\nvar BOOKMARK = {\r\n PREFIX: \"bookmark\",\r\n NAMESPACE: \"http://www.w3.org/2002/01/bookmark#\",\r\n PREFIX_AND_NAMESPACE: { \"bookmark\": \"http://www.w3.org/2002/01/bookmark#\" },\r\n NS: _NS$a,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * Topic\r\n */\r\n Topic: _NS$a(\"Topic\"),\r\n /**\r\n * Specifies a behavior; when the\r\n object of type 'Shortcut' is activated, the\r\n client follows the 'recalls' property and\r\n activates the object at the end of that\r\n 'recalls' property. The target object may\r\n be another Bookmark or may be a Topic.\r\n */\r\n Shortcut: _NS$a(\"Shortcut\"),\r\n /**\r\n * The class to which all bookmarks belong.\r\n */\r\n Bookmark: _NS$a(\"Bookmark\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * relates a bookmark to a topic.\r\n A bookmark must have at least one hasTopic property.\r\n The typical user operation of following a bookmark link\r\n will use the value of the b:recalls property. This property\r\n corresponds to XBEL:href property.\r\n */\r\n hasTopic: _NS$a(\"hasTopic\"),\r\n /**\r\n * connects a Shortcut to the bookmark or topic that is\r\n being included by reference in some other topic\r\n */\r\n leadsTo: _NS$a(\"leadsTo\"),\r\n /**\r\n * This corresponds to XBEL:href an\r\n object of type Bookmark is expected to have a\r\n 'recalls' relationship to the document being\r\n bookmarked. The 'bookmarks' property is an older\r\n name for the 'recalls' relationship.\r\n */\r\n bookmarks: _NS$a(\"bookmarks\"),\r\n /**\r\n * Relates a bookmark with the resource that\r\n has been bookmarked. This corresponds to XBEL:href;\r\n an object of type Bookmark is expected to have a\r\n 'recalls' relationship to the document being\r\n bookmarked\r\n */\r\n recalls: _NS$a(\"recalls\"),\r\n /**\r\n * Describes a relationship between Topics.\r\n When a topic T is a sub-topic of a topic U then all\r\n bookmarks that have topic T are also considered to have\r\n topic U. A topic may be a sub-topic of one or more\r\n topics; trivially, every topic is a sub-topic of itself.\r\n More formally; for all B, T, and U: b b:hasTopic T,\r\n T b:subTopicOf U implies B b:hasTopic U.\r\n */\r\n subTopicOf: _NS$a(\"subTopicOf\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$9 = new rdfDataFactory.DataFactory();\r\nfunction _NS$9(localName) {\r\n return rdfFactory$9.namedNode(\"http://www.w3.org/ns/sparql-service-description#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * [Generator provided] - SPARQL Service Description vocabulary\r\n */\r\nvar SD = {\r\n PREFIX: \"sd\",\r\n NAMESPACE: \"http://www.w3.org/ns/sparql-service-description#\",\r\n PREFIX_AND_NAMESPACE: { \"sd\": \"http://www.w3.org/ns/sparql-service-description#\" },\r\n NS: _NS$9,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * An instance of sd:Service represents a SPARQL service made available via the SPARQL Protocol.\r\n */\r\n Service: _NS$9(\"Service\"),\r\n /**\r\n * An instance of sd:Feature represents a feature of a SPARQL service. Specific types of features include functions, aggregates, languages, and entailment regimes and profiles. This document defines five instances of sd:Feature: sd:DereferencesURIs, sd:UnionDefaultGraph, sd:RequiresDataset, sd:EmptyGraphs, and sd:BasicFederatedQuery.\r\n */\r\n Feature: _NS$9(\"Feature\"),\r\n /**\r\n * An instance of sd:EntailmentRegime represents an entailment regime used in basic graph pattern matching (as described by SPARQL 1.1 Query Language).\r\n */\r\n EntailmentRegime: _NS$9(\"EntailmentRegime\"),\r\n /**\r\n * An instance of sd:NamedGraph represents a named graph having a name (via sd:name) and an optional graph description (via sd:graph).\r\n */\r\n NamedGraph: _NS$9(\"NamedGraph\"),\r\n /**\r\n * An instance of sd:EntailmentProfile represents a profile of an entailment regime. An entailment profile MAY impose restrictions on what constitutes valid RDF with respect to entailment.\r\n */\r\n EntailmentProfile: _NS$9(\"EntailmentProfile\"),\r\n /**\r\n * An instance of sd:Function represents a function that may be used in a SPARQL SELECT expression or a FILTER, HAVING, GROUP BY, ORDER BY, or BIND clause.\r\n */\r\n Function: _NS$9(\"Function\"),\r\n /**\r\n * An instance of sd:Aggregate represents an aggregate that may be used in a SPARQL aggregate query (for instance in a HAVING clause or SELECT expression) besides the standard list of supported aggregates COUNT, SUM, MIN, MAX, AVG, GROUP_CONCAT, and SAMPLE.\r\n */\r\n Aggregate: _NS$9(\"Aggregate\"),\r\n /**\r\n * An instance of sd:Language represents one of the SPARQL languages, including specific configurations providing particular features or extensions. This document defines three instances of sd:Language: sd:SPARQL10Query, sd:SPARQL11Query, and sd:SPARQL11Update.\r\n */\r\n Language: _NS$9(\"Language\"),\r\n /**\r\n * An instance of sd:Dataset represents a RDF Dataset comprised of a default graph and zero or more named graphs.\r\n */\r\n Dataset: _NS$9(\"Dataset\"),\r\n /**\r\n * An instance of sd:GraphCollection represents a collection of zero or more named graph descriptions. Each named graph description belonging to an sd:GraphCollection MUST be linked with the sd:namedGraph predicate.\r\n */\r\n GraphCollection: _NS$9(\"GraphCollection\"),\r\n /**\r\n * An instance of sd:Graph represents the description of an RDF graph.\r\n */\r\n Graph: _NS$9(\"Graph\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * The SPARQL endpoint of an sd:Service that implements the SPARQL Protocol service. The object of the sd:endpoint property is an IRI.\r\n */\r\n endpoint: _NS$9(\"endpoint\"),\r\n /**\r\n * Relates an instance of sd:Service with a resource representing a supported feature.\r\n */\r\n feature: _NS$9(\"feature\"),\r\n /**\r\n * Relates an instance of sd:Service with a resource representing an entailment regime used for basic graph pattern matching. This property is intended for use when a single entailment regime by default applies to all graphs in the default dataset of the service. In situations where a different entailment regime applies to a specific graph in the dataset, the sd:entailmentRegime property should be used to indicate this fact in the description of that graph.\r\n */\r\n defaultEntailmentRegime: _NS$9(\"defaultEntailmentRegime\"),\r\n /**\r\n * Relates a named graph description with a resource representing an entailment regime used for basic graph pattern matching over that graph.\r\n */\r\n entailmentRegime: _NS$9(\"entailmentRegime\"),\r\n /**\r\n * Relates an instance of sd:Service with a resource representing a supported profile of the default entailment regime (as declared by sd:defaultEntailmentRegime).\r\n */\r\n defaultSupportedEntailmentProfile: _NS$9(\"defaultSupportedEntailmentProfile\"),\r\n /**\r\n * Relates a named graph description with a resource representing a supported profile of the entailment regime (as declared by sd:entailmentRegime) used for basic graph pattern matching over that graph.\r\n */\r\n supportedEntailmentProfile: _NS$9(\"supportedEntailmentProfile\"),\r\n /**\r\n * Relates an instance of sd:Service to a function that may be used in a SPARQL SELECT expression or a FILTER, HAVING, GROUP BY, ORDER BY, or BIND clause.\r\n */\r\n extensionFunction: _NS$9(\"extensionFunction\"),\r\n /**\r\n * Relates an instance of sd:Service to an aggregate that may be used in a SPARQL aggregate query (for instance in a HAVING clause or SELECT expression) besides the standard list of supported aggregates COUNT, SUM, MIN, MAX, AVG, GROUP_CONCAT, and SAMPLE\r\n */\r\n extensionAggregate: _NS$9(\"extensionAggregate\"),\r\n /**\r\n * Relates an instance of sd:Service to a resource representing an implemented extension to the SPARQL Query or Update language.\r\n */\r\n languageExtension: _NS$9(\"languageExtension\"),\r\n /**\r\n * Relates an instance of sd:Service to a SPARQL language (e.g. Query and Update) that it implements.\r\n */\r\n supportedLanguage: _NS$9(\"supportedLanguage\"),\r\n /**\r\n * Relates an instance of sd:Service to a resource representing an implemented feature that extends the SPARQL Query or Update language and that is accessed by using the named property.\r\n */\r\n propertyFeature: _NS$9(\"propertyFeature\"),\r\n /**\r\n * Relates an instance of sd:Service to a description of the default dataset available when no explicit dataset is specified in the query, update request or via protocol parameters.\r\n */\r\n defaultDataset: _NS$9(\"defaultDataset\"),\r\n /**\r\n * Relates an instance of sd:Service to a description of the graphs which are allowed in the construction of a dataset either via the SPARQL Protocol, with FROM/FROM NAMED clauses in a query, or with USING/USING NAMED in an update request, if the service limits the scope of dataset construction.\r\n */\r\n availableGraphs: _NS$9(\"availableGraphs\"),\r\n /**\r\n * Relates an instance of sd:Service to a format that is supported for serializing query results.\r\n */\r\n resultFormat: _NS$9(\"resultFormat\"),\r\n /**\r\n * Relates an instance of sd:Service to a format that is supported for parsing RDF input; for example, via a SPARQL 1.1 Update LOAD statement, or when URIs are dereferenced in FROM/FROM NAMED/USING/USING NAMED clauses.\r\n */\r\n inputFormat: _NS$9(\"inputFormat\"),\r\n /**\r\n * Relates an instance of sd:Dataset to the description of its default graph.\r\n */\r\n defaultGraph: _NS$9(\"defaultGraph\"),\r\n /**\r\n * Relates an instance of sd:GraphCollection (or its subclass sd:Dataset) to the description of one of its named graphs. The description of such a named graph MUST include the sd:name property and MAY include the sd:graph property.\r\n */\r\n namedGraph: _NS$9(\"namedGraph\"),\r\n /**\r\n * Relates a named graph to the name by which it may be referenced in a FROM/FROM NAMED clause. The object of the sd:name property is an IRI.\r\n */\r\n name: _NS$9(\"name\"),\r\n /**\r\n * Relates a named graph to its graph description.\r\n */\r\n graph: _NS$9(\"graph\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$8 = new rdfDataFactory.DataFactory();\r\nfunction _NS$8(localName) {\r\n return rdfFactory$8.namedNode(\"http://rdfs.org/ns/void#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * The Vocabulary of Interlinked Datasets (VoID) is an RDF Schema vocabulary for expressing metadata about RDF datasets. It is intended as a bridge between the publishers and users of RDF data, with applications ranging from data discovery to cataloging and archiving of datasets. This document provides a formal definition of the new RDF classes and properties introduced for VoID. It is a companion to the main specification document for VoID, Describing Linked Datasets with the VoID Vocabulary.\r\n */\r\nvar VOID = {\r\n PREFIX: \"void\",\r\n NAMESPACE: \"http://rdfs.org/ns/void#\",\r\n PREFIX_AND_NAMESPACE: { \"void\": \"http://rdfs.org/ns/void#\" },\r\n NS: _NS$8,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * A set of RDF triples that are published, maintained or aggregated by a single provider.\r\n */\r\n Dataset: _NS$8(\"Dataset\"),\r\n /**\r\n * A collection of RDF links between two void:Datasets.\r\n */\r\n Linkset: _NS$8(\"Linkset\"),\r\n /**\r\n * A technical feature of a void:Dataset, such as a supported RDF serialization format.\r\n */\r\n TechnicalFeature: _NS$8(\"TechnicalFeature\"),\r\n /**\r\n * A web resource whose foaf:primaryTopic or foaf:topics include void:Datasets.\r\n */\r\n DatasetDescription: _NS$8(\"DatasetDescription\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * feature\r\n */\r\n feature: _NS$8(\"feature\"),\r\n /**\r\n * has subset\r\n */\r\n subset: _NS$8(\"subset\"),\r\n /**\r\n * One of the two datasets linked by the Linkset.\r\n */\r\n target: _NS$8(\"target\"),\r\n /**\r\n * has a SPARQL endpoint at\r\n */\r\n sparqlEndpoint: _NS$8(\"sparqlEndpoint\"),\r\n /**\r\n * a link predicate\r\n */\r\n linkPredicate: _NS$8(\"linkPredicate\"),\r\n /**\r\n * example resource of dataset\r\n */\r\n exampleResource: _NS$8(\"exampleResource\"),\r\n /**\r\n * A vocabulary that is used in the dataset.\r\n */\r\n vocabulary: _NS$8(\"vocabulary\"),\r\n /**\r\n * The dataset describing the subjects of triples contained in the Linkset.\r\n */\r\n subjectsTarget: _NS$8(\"subjectsTarget\"),\r\n /**\r\n * The dataset describing the objects of the triples contained in the Linkset.\r\n */\r\n objectsTarget: _NS$8(\"objectsTarget\"),\r\n /**\r\n * An RDF dump, partial or complete, of a void:Dataset.\r\n */\r\n dataDump: _NS$8(\"dataDump\"),\r\n /**\r\n * Defines a simple URI look-up protocol for accessing a dataset.\r\n */\r\n uriLookupEndpoint: _NS$8(\"uriLookupEndpoint\"),\r\n /**\r\n * Defines a regular expression pattern matching URIs in the dataset.\r\n */\r\n uriRegexPattern: _NS$8(\"uriRegexPattern\"),\r\n /**\r\n * The rdfs:Class that is the rdf:type of all entities in a class-based partition.\r\n */\r\n class: _NS$8(\"class\"),\r\n /**\r\n * The total number of distinct classes in a void:Dataset. In other words, the number of distinct resources occuring as objects of rdf:type triples in the dataset.\r\n */\r\n classes: _NS$8(\"classes\"),\r\n /**\r\n * A subset of a void:Dataset that contains only the entities of a certain rdfs:Class.\r\n */\r\n classPartition: _NS$8(\"classPartition\"),\r\n /**\r\n * The total number of distinct objects in a void:Dataset. In other words, the number of distinct resources that occur in the object position of triples in the dataset. Literals are included in this count.\r\n */\r\n distinctObjects: _NS$8(\"distinctObjects\"),\r\n /**\r\n * The total number of distinct subjects in a void:Dataset. In other words, the number of distinct resources that occur in the subject position of triples in the dataset.\r\n */\r\n distinctSubjects: _NS$8(\"distinctSubjects\"),\r\n /**\r\n * The total number of documents, for datasets that are published as a set of individual documents, such as RDF/XML documents or RDFa-annotated web pages. Non-RDF documents, such as web pages in HTML or images, are usually not included in this count. This property is intended for datasets where the total number of triples or entities is hard to determine. void:triples or void:entities should be preferred where practical.\r\n */\r\n documents: _NS$8(\"documents\"),\r\n /**\r\n * The total number of entities that are described in a void:Dataset.\r\n */\r\n entities: _NS$8(\"entities\"),\r\n /**\r\n * Points to the void:Dataset that a document is a part of.\r\n */\r\n inDataset: _NS$8(\"inDataset\"),\r\n /**\r\n * An OpenSearch description document for a free-text search service over a void:Dataset.\r\n */\r\n openSearchDescription: _NS$8(\"openSearchDescription\"),\r\n /**\r\n * The total number of distinct properties in a void:Dataset. In other words, the number of distinct resources that occur in the predicate position of triples in the dataset.\r\n */\r\n properties: _NS$8(\"properties\"),\r\n /**\r\n * The rdf:Property that is the predicate of all triples in a property-based partition.\r\n */\r\n property: _NS$8(\"property\"),\r\n /**\r\n * A subset of a void:Dataset that contains only the triples of a certain rdf:Property.\r\n */\r\n propertyPartition: _NS$8(\"propertyPartition\"),\r\n /**\r\n * A top concept or entry point for a void:Dataset that is structured in a tree-like fashion. All resources in a dataset can be reached by following links from its root resources in a small number of steps.\r\n */\r\n rootResource: _NS$8(\"rootResource\"),\r\n /**\r\n * The total number of triples contained in a void:Dataset.\r\n */\r\n triples: _NS$8(\"triples\"),\r\n /**\r\n * A URI that is a common string prefix of all the entity URIs in a void:Dataset.\r\n */\r\n uriSpace: _NS$8(\"uriSpace\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$7 = new rdfDataFactory.DataFactory();\r\nfunction _NS$7(localName) {\r\n return rdfFactory$7.namedNode(\"http://www.w3.org/2006/time#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * [Generator provided] - Time Ontology in OWL\r\n */\r\nvar TIME = {\r\n PREFIX: \"time\",\r\n NAMESPACE: \"http://www.w3.org/2006/time#\",\r\n PREFIX_AND_NAMESPACE: { \"time\": \"http://www.w3.org/2006/time#\" },\r\n NS: _NS$7,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * Description of date and time structured with separate values for the various elements of a calendar-clock system. The temporal reference system is fixed to Gregorian Calendar, and the range of year, month, day properties restricted to corresponding XML Schema types xsd:gYear, xsd:gMonth and xsd:gDay, respectively.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n DateTimeDescription: _NS$7(\"DateTimeDescription\"),\r\n /**\r\n * Description of date and time structured with separate values for the various elements of a calendar-clock system\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n GeneralDateTimeDescription: _NS$7(\"GeneralDateTimeDescription\"),\r\n /**\r\n * DateTimeInterval is a subclass of ProperInterval, defined using the multi-element DateTimeDescription.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n DateTimeInterval: _NS$7(\"DateTimeInterval\"),\r\n /**\r\n * A temporal entity with non-zero extent or duration, i.e. for which the value of the beginning and end are different\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n ProperInterval: _NS$7(\"ProperInterval\"),\r\n /**\r\n * The day of week\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n DayOfWeek: _NS$7(\"DayOfWeek\"),\r\n /**\r\n * Duration of a temporal extent expressed as a number scaled by a temporal unit\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [0] labels, but [1] comment in the language [es].\r\n */\r\n Duration: _NS$7(\"Duration\"),\r\n /**\r\n * Time extent; duration of a time interval separate from its particular start position\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n TemporalDuration: _NS$7(\"TemporalDuration\"),\r\n /**\r\n * Description of temporal extent structured with separate values for the various elements of a calendar-clock system. The temporal reference system is fixed to Gregorian Calendar, and the range of each of the numeric properties is restricted to xsd:decimal\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n DurationDescription: _NS$7(\"DurationDescription\"),\r\n /**\r\n * Description of temporal extent structured with separate values for the various elements of a calendar-clock system.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n GeneralDurationDescription: _NS$7(\"GeneralDurationDescription\"),\r\n /**\r\n * A position on a time-line\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n TemporalPosition: _NS$7(\"TemporalPosition\"),\r\n /**\r\n * A temporal entity with zero extent or duration\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n Instant: _NS$7(\"Instant\"),\r\n /**\r\n * A temporal interval or instant.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n TemporalEntity: _NS$7(\"TemporalEntity\"),\r\n /**\r\n * A temporal entity with an extent or duration\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n Interval: _NS$7(\"Interval\"),\r\n /**\r\n * January\r\n */\r\n January: _NS$7(\"January\"),\r\n /**\r\n * The month of the year\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n MonthOfYear: _NS$7(\"MonthOfYear\"),\r\n /**\r\n * A temporal reference system, such as a temporal coordinate system (with an origin, direction, and scale), a calendar-clock combination, or a (possibly hierarchical) ordinal system.\r\n \n This is a stub class, representing the set of all temporal reference systems.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n TRS: _NS$7(\"TRS\"),\r\n /**\r\n * A standard duration, which provides a scale factor for a time extent, or the granularity or precision for a time position.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n TemporalUnit: _NS$7(\"TemporalUnit\"),\r\n /**\r\n * A temporal position described using either a (nominal) value from an ordinal reference system, or a (numeric) value in a temporal coordinate system.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n TimePosition: _NS$7(\"TimePosition\"),\r\n /**\r\n * A Time Zone specifies the amount by which the local time is offset from UTC.\r\n A time zone is usually denoted geographically (e.g. Australian Eastern Daylight Time), with a constant value in a given region.\r\n The region where it applies and the offset from UTC are specified by a locally recognised governing authority.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n TimeZone: _NS$7(\"TimeZone\"),\r\n /**\r\n * Year duration\r\n */\r\n Year: _NS$7(\"Year\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * Day position in a calendar-clock system.\r\n \n The range of this property is not specified, so can be replaced by any specific representation of a calendar day from any calendar.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n day: _NS$7(\"day\"),\r\n /**\r\n * Month position in a calendar-clock system.\r\n \n The range of this property is not specified, so can be replaced by any specific representation of a calendar month from any calendar.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n month: _NS$7(\"month\"),\r\n /**\r\n * Year position in a calendar-clock system.\r\n \n The range of this property is not specified, so can be replaced by any specific representation of a calendar year from any calendar.\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [0] labels, but [1] comment in the language [es].\r\n */\r\n year: _NS$7(\"year\"),\r\n /**\r\n * The temporal reference system used by a temporal position or extent description.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n hasTRS: _NS$7(\"hasTRS\"),\r\n /**\r\n * Value of a temporal extent expressed as a decimal number scaled by a temporal unit\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n numericDuration: _NS$7(\"numericDuration\"),\r\n /**\r\n * The temporal unit which provides the precision of a date-time value or scale of a temporal extent\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n unitType: _NS$7(\"unitType\"),\r\n /**\r\n * length of, or element of the length of, a temporal extent expressed in days\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n days: _NS$7(\"days\"),\r\n /**\r\n * length of, or element of the length of, a temporal extent expressed in hours\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n hours: _NS$7(\"hours\"),\r\n /**\r\n * length, or element of, a temporal extent expressed in minutes\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n minutes: _NS$7(\"minutes\"),\r\n /**\r\n * length of, or element of the length of, a temporal extent expressed in months\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n months: _NS$7(\"months\"),\r\n /**\r\n * length of, or element of the length of, a temporal extent expressed in seconds\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n *\r\n * See also:\r\n * - http://www.bipm.org/en/publications/si-brochure/second.html\r\n */\r\n seconds: _NS$7(\"seconds\"),\r\n /**\r\n * length of, or element of the length of, a temporal extent expressed in weeks\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n weeks: _NS$7(\"weeks\"),\r\n /**\r\n * length of, or element of the length of, a temporal extent expressed in years\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n years: _NS$7(\"years\"),\r\n /**\r\n * The day of week, whose value is a member of the class time:DayOfWeek\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n */\r\n dayOfWeek: _NS$7(\"dayOfWeek\"),\r\n /**\r\n * The number of the day within the year\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n dayOfYear: _NS$7(\"dayOfYear\"),\r\n /**\r\n * Hour position in a calendar-clock system.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n hour: _NS$7(\"hour\"),\r\n /**\r\n * Minute position in a calendar-clock system.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n minute: _NS$7(\"minute\"),\r\n /**\r\n * The month of the year, whose value is a member of the class time:MonthOfYear\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n monthOfYear: _NS$7(\"monthOfYear\"),\r\n /**\r\n * Second position in a calendar-clock system.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n second: _NS$7(\"second\"),\r\n /**\r\n * The time zone for clock elements in the temporal position\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n */\r\n timeZone: _NS$7(\"timeZone\"),\r\n /**\r\n * Week number within the year.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n week: _NS$7(\"week\"),\r\n /**\r\n * The (numeric) value indicating position within a temporal coordinate system\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n numericPosition: _NS$7(\"numericPosition\"),\r\n /**\r\n * The (nominal) value indicating temporal position in an ordinal reference system\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n nominalPosition: _NS$7(\"nominalPosition\"),\r\n /**\r\n * Gives directionality to time. If a temporal entity T1 is after another temporal entity T2, then the beginning of T1 is after the end of T2.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n after: _NS$7(\"after\"),\r\n /**\r\n * Gives directionality to time. If a temporal entity T1 is before another temporal entity T2, then the end of T1 is before the beginning of T2. Thus, \"before\" can be considered to be basic to instants and derived for intervals.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n before: _NS$7(\"before\"),\r\n /**\r\n * Day of month - formulated as a text string with a pattern constraint to reproduce the same lexical form as gDay, except that values up to 99 are permitted, in order to support calendars with more than 31 days in a month.\r\n Note that the value-space is not defined, so a generic OWL2 processor cannot compute ordering relationships of values of this type.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n generalDay: _NS$7(\"generalDay\"),\r\n /**\r\n * Month of year - formulated as a text string with a pattern constraint to reproduce the same lexical form as gMonth, except that values up to 20 are permitted, in order to support calendars with more than 12 months in the year.\r\n Note that the value-space is not defined, so a generic OWL2 processor cannot compute ordering relationships of values of this type.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n generalMonth: _NS$7(\"generalMonth\"),\r\n /**\r\n * Year number - formulated as a text string with a pattern constraint to reproduce the same lexical form as gYear, but not restricted to values from the Gregorian calendar.\r\n Note that the value-space is not defined, so a generic OWL2 processor cannot compute ordering relationships of values of this type.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n generalYear: _NS$7(\"generalYear\"),\r\n /**\r\n * Beginning of a temporal entity\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n hasBeginning: _NS$7(\"hasBeginning\"),\r\n /**\r\n * Supports the association of a temporal entity (instant or interval) to any thing\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n hasTime: _NS$7(\"hasTime\"),\r\n /**\r\n * Value of DateTimeInterval expressed as a structured value. The beginning and end of the interval coincide with the limits of the shortest element in the description.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n hasDateTimeDescription: _NS$7(\"hasDateTimeDescription\"),\r\n /**\r\n * Duration of a temporal entity, expressed as a scaled value or nominal value\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n hasDuration: _NS$7(\"hasDuration\"),\r\n /**\r\n * Duration of a temporal entity.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n hasTemporalDuration: _NS$7(\"hasTemporalDuration\"),\r\n /**\r\n * Duration of a temporal entity, expressed using a structured description\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n hasDurationDescription: _NS$7(\"hasDurationDescription\"),\r\n /**\r\n * End of a temporal entity.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n hasEnd: _NS$7(\"hasEnd\"),\r\n /**\r\n * Extent of a temporal entity, expressed using xsd:duration\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n hasXSDDuration: _NS$7(\"hasXSDDuration\"),\r\n /**\r\n * Position of an instant, expressed using a structured description\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n inDateTime: _NS$7(\"inDateTime\"),\r\n /**\r\n * Position of a time instant\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n inTemporalPosition: _NS$7(\"inTemporalPosition\"),\r\n /**\r\n * Position of an instant, expressed as a temporal coordinate or nominal value\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n inTimePosition: _NS$7(\"inTimePosition\"),\r\n /**\r\n * Position of an instant, expressed using xsd:date\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n inXSDDate: _NS$7(\"inXSDDate\"),\r\n /**\r\n * Position of an instant, expressed using xsd:dateTime\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n inXSDDateTime: _NS$7(\"inXSDDateTime\"),\r\n /**\r\n * Position of an instant, expressed using xsd:dateTimeStamp\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n inXSDDateTimeStamp: _NS$7(\"inXSDDateTimeStamp\"),\r\n /**\r\n * Position of an instant, expressed using xsd:gYear\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n inXSDgYear: _NS$7(\"inXSDgYear\"),\r\n /**\r\n * Position of an instant, expressed using xsd:gYearMonth\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n inXSDgYearMonth: _NS$7(\"inXSDgYearMonth\"),\r\n /**\r\n * An instant that falls inside the interval. It is not intended to include beginnings and ends of intervals.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n inside: _NS$7(\"inside\"),\r\n /**\r\n * If a proper interval T1 is intervalAfter another proper interval T2, then the beginning of T1 is after the end of T2.\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [1] label in the language [es], but [0] comments.\r\n */\r\n intervalAfter: _NS$7(\"intervalAfter\"),\r\n /**\r\n * If a proper interval T1 is intervalDisjoint another proper interval T2, then the beginning of T1 is after the end of T2, or the end of T1 is before the beginning of T2, i.e. the intervals do not overlap in any way, but their ordering relationship is not known.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n intervalDisjoint: _NS$7(\"intervalDisjoint\"),\r\n /**\r\n * If a proper interval T1 is intervalBefore another proper interval T2, then the end of T1 is before the beginning of T2.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n intervalBefore: _NS$7(\"intervalBefore\"),\r\n /**\r\n * If a proper interval T1 is intervalContains another proper interval T2, then the beginning of T1 is before the beginning of T2, and the end of T1 is after the end of T2.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n intervalContains: _NS$7(\"intervalContains\"),\r\n /**\r\n * If a proper interval T1 is intervalDuring another proper interval T2, then the beginning of T1 is after the beginning of T2, and the end of T1 is before the end of T2.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n intervalDuring: _NS$7(\"intervalDuring\"),\r\n /**\r\n * If a proper interval T1 is intervalIn another proper interval T2, then the beginning of T1 is after the beginning of T2 or is coincident with the beginning of T2, and the end of T1 is before the end of T2, or is coincident with the end of T2, except that end of T1 may not be coincident with the end of T2 if the beginning of T1 is coincident with the beginning of T2.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n intervalIn: _NS$7(\"intervalIn\"),\r\n /**\r\n * If a proper interval T1 is intervalEquals another proper interval T2, then the beginning of T1 is coincident with the beginning of T2, and the end of T1 is coincident with the end of T2.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n intervalEquals: _NS$7(\"intervalEquals\"),\r\n /**\r\n * If a proper interval T1 is intervalFinishedBy another proper interval T2, then the beginning of T1 is before the beginning of T2, and the end of T1 is coincident with the end of T2.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n intervalFinishedBy: _NS$7(\"intervalFinishedBy\"),\r\n /**\r\n * If a proper interval T1 is intervalFinishes another proper interval T2, then the beginning of T1 is after the beginning of T2, and the end of T1 is coincident with the end of T2.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n intervalFinishes: _NS$7(\"intervalFinishes\"),\r\n /**\r\n * If a proper interval T1 is intervalMeets another proper interval T2, then the end of T1 is coincident with the beginning of T2.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n intervalMeets: _NS$7(\"intervalMeets\"),\r\n /**\r\n * If a proper interval T1 is intervalMetBy another proper interval T2, then the beginning of T1 is coincident with the end of T2.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n intervalMetBy: _NS$7(\"intervalMetBy\"),\r\n /**\r\n * If a proper interval T1 is intervalOverlappedBy another proper interval T2, then the beginning of T1 is after the beginning of T2, the beginning of T1 is before the end of T2, and the end of T1 is after the end of T2.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n intervalOverlappedBy: _NS$7(\"intervalOverlappedBy\"),\r\n /**\r\n * If a proper interval T1 is intervalOverlaps another proper interval T2, then the beginning of T1 is before the beginning of T2, the end of T1 is after the beginning of T2, and the end of T1 is before the end of T2.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n intervalOverlaps: _NS$7(\"intervalOverlaps\"),\r\n /**\r\n * If a proper interval T1 is intervalStarted another proper interval T2, then the beginning of T1 is coincident with the beginning of T2, and the end of T1 is after the end of T2.\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [0] labels, but [1] comment in the language [es].\r\n */\r\n intervalStartedBy: _NS$7(\"intervalStartedBy\"),\r\n /**\r\n * If a proper interval T1 is intervalStarts another proper interval T2, then the beginning of T1 is coincident with the beginning of T2, and the end of T1 is before the end of T2.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n intervalStarts: _NS$7(\"intervalStarts\"),\r\n /**\r\n * Value of DateTimeInterval expressed as a compact value.\r\n *\r\n * This term has [1] label and comment, in the language [es].\r\n */\r\n xsdDateTime: _NS$7(\"xsdDateTime\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$6 = new rdfDataFactory.DataFactory();\r\nfunction _NS$6(localName) {\r\n return rdfFactory$6.namedNode(\"http://www.w3.org/ns/odrl/2/\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * The ODRL Vocabulary and Expression defines a set of concepts and terms (the vocabulary) and encoding mechanism (the expression) for permissions and obligations statements describing digital content usage based on the ODRL Information Model.\r\n */\r\nvar ODRL = {\r\n PREFIX: \"odrl\",\r\n NAMESPACE: \"http://www.w3.org/ns/odrl/2/\",\r\n PREFIX_AND_NAMESPACE: { \"odrl\": \"http://www.w3.org/ns/odrl/2/\" },\r\n NS: _NS$6,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * A non-empty group of Permissions and/or Prohibitions.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Policy: _NS$6(\"Policy\"),\r\n /**\r\n * An unambiguous identifier\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n uid: _NS$6(\"uid\"),\r\n /**\r\n * The identifier(s) of an ODRL Profile that the Policy conforms to.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n profile: _NS$6(\"profile\"),\r\n /**\r\n * Relates a (child) policy to another (parent) policy from which terms are inherited.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n inheritFrom: _NS$6(\"inheritFrom\"),\r\n /**\r\n * An abstract concept that represents the common characteristics of Permissions, Prohibitions, and Duties.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Rule: _NS$6(\"Rule\"),\r\n /**\r\n * Relation is an abstract property which creates an explicit link between an Action and an Asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n relation: _NS$6(\"relation\"),\r\n /**\r\n * Function is an abstract property whose sub-properties define the functional roles which may be fulfilled by a party in relation to a Rule.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n function: _NS$6(\"function\"),\r\n /**\r\n * Failure is an abstract property that defines the violation (or unmet) relationship between Rules.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n failure: _NS$6(\"failure\"),\r\n /**\r\n * Used to establish strategies to resolve conflicts that arise from the merging of Policies or conflicts between Permissions and Prohibitions in the same Policy.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n ConflictTerm: _NS$6(\"ConflictTerm\"),\r\n /**\r\n * The conflict-resolution strategy for a Policy.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n conflict: _NS$6(\"conflict\"),\r\n /**\r\n * Permissions take preference over prohibitions.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n perm: _NS$6(\"perm\"),\r\n /**\r\n * Prohibitions take preference over permissions.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n prohibit: _NS$6(\"prohibit\"),\r\n /**\r\n * The policy is void.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n invalid: _NS$6(\"invalid\"),\r\n /**\r\n * A Policy that grants the assignee a Rule over an Asset from an assigner.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Agreement: _NS$6(\"Agreement\"),\r\n /**\r\n * A Policy that proposes a Rule over an Asset from an assigner.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Offer: _NS$6(\"Offer\"),\r\n /**\r\n * A Policy that expresses a Rule over an Asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Set: _NS$6(\"Set\"),\r\n /**\r\n * A Policy that asserts a Rule over an Asset from parties.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Assertion: _NS$6(\"Assertion\"),\r\n /**\r\n * A Policy that expresses a Rule over an Asset containing personal information.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Privacy: _NS$6(\"Privacy\"),\r\n /**\r\n * A Policy that proposes a Rule over an Asset from an assignee.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Request: _NS$6(\"Request\"),\r\n /**\r\n * A Policy that grants the holder a Rule over an Asset from an assigner.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Ticket: _NS$6(\"Ticket\"),\r\n /**\r\n * A resource or a collection of resources that are the subject of a Rule.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Asset: _NS$6(\"Asset\"),\r\n /**\r\n * An Asset that is collection of individual resources\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n AssetCollection: _NS$6(\"AssetCollection\"),\r\n /**\r\n * The target property indicates the Asset that is the primary subject to which the Rule action directly applies.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n target: _NS$6(\"target\"),\r\n /**\r\n * Identifies an ODRL Policy for which the identified Asset is the target Asset to all the Rules.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n hasPolicy: _NS$6(\"hasPolicy\"),\r\n /**\r\n * The output property specifies the Asset which is created from the output of the Action.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n output: _NS$6(\"output\"),\r\n /**\r\n * An entity or a collection of entities that undertake Roles in a Rule.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Party: _NS$6(\"Party\"),\r\n /**\r\n * A Party that is a group of individual entities\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n PartyCollection: _NS$6(\"PartyCollection\"),\r\n /**\r\n * The Party is the recipient of the Rule.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n assignee: _NS$6(\"assignee\"),\r\n /**\r\n * The Party is the issuer of the Rule.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n assigner: _NS$6(\"assigner\"),\r\n /**\r\n * Identifies an ODRL Policy for which the identified Party undertakes the assignee functional role.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n assigneeOf: _NS$6(\"assigneeOf\"),\r\n /**\r\n * Identifies an ODRL Policy for which the identified Party undertakes the assigner functional role.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n assignerOf: _NS$6(\"assignerOf\"),\r\n /**\r\n * The Party to be attributed.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n attributedParty: _NS$6(\"attributedParty\"),\r\n /**\r\n * The Party who undertakes the attribution.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n attributingParty: _NS$6(\"attributingParty\"),\r\n /**\r\n * The Party is the recipient of the compensation.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n compensatedParty: _NS$6(\"compensatedParty\"),\r\n /**\r\n * The Party that is the provider of the compensation.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n compensatingParty: _NS$6(\"compensatingParty\"),\r\n /**\r\n * The Party to obtain consent from.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n consentingParty: _NS$6(\"consentingParty\"),\r\n /**\r\n * The Party who obtains the consent.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n consentedParty: _NS$6(\"consentedParty\"),\r\n /**\r\n * The Party who is offering the contract.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n contractingParty: _NS$6(\"contractingParty\"),\r\n /**\r\n * The Party who is being contracted.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n contractedParty: _NS$6(\"contractedParty\"),\r\n /**\r\n * The Party to be informed of all uses.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n informedParty: _NS$6(\"informedParty\"),\r\n /**\r\n * The Party who provides the inform use data.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n informingParty: _NS$6(\"informingParty\"),\r\n /**\r\n * The Party who is tracking usage.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n trackingParty: _NS$6(\"trackingParty\"),\r\n /**\r\n * The Party whose usage is being tracked.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n trackedParty: _NS$6(\"trackedParty\"),\r\n /**\r\n * Identifies an Asset/PartyCollection that the Asset/Party is a member of.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n partOf: _NS$6(\"partOf\"),\r\n /**\r\n * Reference to a Asset/PartyCollection\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n source: _NS$6(\"source\"),\r\n /**\r\n * An operation on an Asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Action: _NS$6(\"Action\"),\r\n /**\r\n * The operation relating to the Asset for which the Rule is being subjected.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n action: _NS$6(\"action\"),\r\n /**\r\n * An Action transitively asserts that another Action that encompasses its operational semantics.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n includedIn: _NS$6(\"includedIn\"),\r\n /**\r\n * An Action asserts that another Action is not prohibited to enable its operational semantics.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n implies: _NS$6(\"implies\"),\r\n /**\r\n * The ability to perform an Action over an Asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Permission: _NS$6(\"Permission\"),\r\n /**\r\n * Relates an individual Permission to a Policy.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n permission: _NS$6(\"permission\"),\r\n /**\r\n * The inability to perform an Action over an Asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Prohibition: _NS$6(\"Prohibition\"),\r\n /**\r\n * Relates an individual Prohibition to a Policy.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n prohibition: _NS$6(\"prohibition\"),\r\n /**\r\n * To use the Asset\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n use: _NS$6(\"use\"),\r\n /**\r\n * To transfer the ownership of the Asset in perpetuity.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n transfer: _NS$6(\"transfer\"),\r\n /**\r\n * To accept that the use of the Asset may be tracked.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n acceptTracking: _NS$6(\"acceptTracking\"),\r\n /**\r\n * To use the Asset or parts of it as part of a composite collection.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n aggregate: _NS$6(\"aggregate\"),\r\n /**\r\n * To add explanatory notations/commentaries to the Asset without modifying the Asset in any other way.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n annotate: _NS$6(\"annotate\"),\r\n /**\r\n * To anonymize all or parts of the Asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n anonymize: _NS$6(\"anonymize\"),\r\n /**\r\n * To store the Asset (in a non-transient form).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n archive: _NS$6(\"archive\"),\r\n /**\r\n * To attribute the use of the Asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n attribute: _NS$6(\"attribute\"),\r\n /**\r\n * To compensate by transfer of some amount of value, if defined, for using or selling the Asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n compensate: _NS$6(\"compensate\"),\r\n /**\r\n * To create multiple copies of the Asset that are being concurrently used.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n concurrentUse: _NS$6(\"concurrentUse\"),\r\n /**\r\n * To permanently remove all copies of the Asset after it has been used.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n delete: _NS$6(\"delete\"),\r\n /**\r\n * To create a new derivative Asset from this Asset and to edit or modify the derivative.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n derive: _NS$6(\"derive\"),\r\n /**\r\n * To produce a digital copy of (or otherwise digitize) the Asset from its analogue form.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n digitize: _NS$6(\"digitize\"),\r\n /**\r\n * To create a static and transient rendition of an Asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n display: _NS$6(\"display\"),\r\n /**\r\n * To supply the Asset to third-parties.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n distribute: _NS$6(\"distribute\"),\r\n /**\r\n * To ensure that the Rule on the Asset is exclusive.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n ensureExclusivity: _NS$6(\"ensureExclusivity\"),\r\n /**\r\n * To run the computer program Asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n execute: _NS$6(\"execute\"),\r\n /**\r\n * To extract parts of the Asset and to use it as a new Asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n extract: _NS$6(\"extract\"),\r\n /**\r\n * To transfer the ownership of the Asset to a third party without compensation and while deleting the original asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n give: _NS$6(\"give\"),\r\n /**\r\n * To grant the use of the Asset to third parties.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n grantUse: _NS$6(\"grantUse\"),\r\n /**\r\n * To include other related assets in the Asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n include: _NS$6(\"include\"),\r\n /**\r\n * To record the Asset in an index.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n index: _NS$6(\"index\"),\r\n /**\r\n * To inform that an action has been performed on or in relation to the Asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n inform: _NS$6(\"inform\"),\r\n /**\r\n * To load the computer program Asset onto a storage device which allows operating or running the Asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n install: _NS$6(\"install\"),\r\n /**\r\n * To change existing content of the Asset. A new asset is not created by this action.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n modify: _NS$6(\"modify\"),\r\n /**\r\n * To move the Asset from one digital location to another including deleting the original copy.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n move: _NS$6(\"move\"),\r\n /**\r\n * To grant the specified Policy to a third party for their use of the Asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n nextPolicy: _NS$6(\"nextPolicy\"),\r\n /**\r\n * To obtain verifiable consent to perform the requested action in relation to the Asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n obtainConsent: _NS$6(\"obtainConsent\"),\r\n /**\r\n * To create a sequential and transient rendition of an Asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n play: _NS$6(\"play\"),\r\n /**\r\n * To publicly perform the Asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n present: _NS$6(\"present\"),\r\n /**\r\n * To create a tangible and permanent rendition of an Asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n print: _NS$6(\"print\"),\r\n /**\r\n * To obtain data from the Asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n read: _NS$6(\"read\"),\r\n /**\r\n * To make duplicate copies the Asset in any material form.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n reproduce: _NS$6(\"reproduce\"),\r\n /**\r\n * To review the Policy applicable to the Asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n reviewPolicy: _NS$6(\"reviewPolicy\"),\r\n /**\r\n * To transfer the ownership of the Asset to a third party with compensation and while deleting the original asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n sell: _NS$6(\"sell\"),\r\n /**\r\n * To deliver the Asset in real-time.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n stream: _NS$6(\"stream\"),\r\n /**\r\n * To use the Asset in timed relations with media (audio/visual) elements of another Asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n synchronize: _NS$6(\"synchronize\"),\r\n /**\r\n * To have a text Asset read out loud.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n textToSpeech: _NS$6(\"textToSpeech\"),\r\n /**\r\n * To convert the Asset into a different format.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n transform: _NS$6(\"transform\"),\r\n /**\r\n * To translate the original natural language of an Asset into another natural language.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n translate: _NS$6(\"translate\"),\r\n /**\r\n * To unload and delete the computer program Asset from a storage device and disable its readiness for operation.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n uninstall: _NS$6(\"uninstall\"),\r\n /**\r\n * To apply a watermark to the Asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n watermark: _NS$6(\"watermark\"),\r\n /**\r\n * The obligation to perform an Action\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Duty: _NS$6(\"Duty\"),\r\n /**\r\n * Relates an individual Duty to a Policy.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n obligation: _NS$6(\"obligation\"),\r\n /**\r\n * Relates an individual Duty to a Permission.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n duty: _NS$6(\"duty\"),\r\n /**\r\n * Relates a Duty to another Duty, the latter being a consequence of not fulfilling the former.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n consequence: _NS$6(\"consequence\"),\r\n /**\r\n * Relates an individual remedy Duty to a Prohibition.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n remedy: _NS$6(\"remedy\"),\r\n /**\r\n * A boolean expression that refines the semantics of an Action and Party/Asset Collection or declare the conditions applicable to a Rule.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Constraint: _NS$6(\"Constraint\"),\r\n /**\r\n * Constraint applied to a Rule\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n constraint: _NS$6(\"constraint\"),\r\n /**\r\n * Constraint used to refine the semantics of an Action, or Party/Asset Collection\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n refinement: _NS$6(\"refinement\"),\r\n /**\r\n * Operator for constraint expression.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Operator: _NS$6(\"Operator\"),\r\n /**\r\n * The operator function applied to operands of a Constraint\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n operator: _NS$6(\"operator\"),\r\n /**\r\n * Right operand for constraint expression.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n RightOperand: _NS$6(\"RightOperand\"),\r\n /**\r\n * The value of the right operand in a constraint expression.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n rightOperand: _NS$6(\"rightOperand\"),\r\n /**\r\n * A reference to a web resource providing the value for the right operand of a Constraint.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n rightOperandReference: _NS$6(\"rightOperandReference\"),\r\n /**\r\n * Left operand for a constraint expression.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n LeftOperand: _NS$6(\"LeftOperand\"),\r\n /**\r\n * The left operand in a constraint expression.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n leftOperand: _NS$6(\"leftOperand\"),\r\n /**\r\n * The datatype of the value of the rightOperand or rightOperandReference of a Constraint.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n dataType: _NS$6(\"dataType\"),\r\n /**\r\n * the value generated from the leftOperand action or a value related to the leftOperand set as the reference for the comparison.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n status: _NS$6(\"status\"),\r\n /**\r\n * A logical expression that refines the semantics of an Action and Party/Asset Collection or declare the conditions applicable to a Rule.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n LogicalConstraint: _NS$6(\"LogicalConstraint\"),\r\n /**\r\n * Operand is an abstract property for a logical relationship.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n operand: _NS$6(\"operand\"),\r\n /**\r\n * A point in space or time defined with absolute coordinates for the positioning of the target Asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n absolutePosition: _NS$6(\"absolutePosition\"),\r\n /**\r\n * The absolute spatial positions of four corners of a rectangle on a 2D-canvas or the eight corners of a cuboid in a 3D-space for the target Asset to fit.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n absoluteSpatialPosition: _NS$6(\"absoluteSpatialPosition\"),\r\n /**\r\n * The absolute temporal positions in a media stream the target Asset has to fit.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n absoluteTemporalPosition: _NS$6(\"absoluteTemporalPosition\"),\r\n /**\r\n * Measure(s) of one or two axes for 2D-objects or measure(s) of one to tree axes for 3D-objects of the target Asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n absoluteSize: _NS$6(\"absoluteSize\"),\r\n /**\r\n * Numeric count of executions of the action of the Rule.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n count: _NS$6(\"count\"),\r\n /**\r\n * The date (and optional time and timezone) of exercising the action of the Rule. Right operand value MUST be an xsd:date or xsd:dateTime as defined by [[xmlschema11-2]].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n dateTime: _NS$6(\"dateTime\"),\r\n /**\r\n * A time delay period prior to exercising the action of the Rule. The point in time triggering this period MAY be defined by another temporal Constraint combined by a Logical Constraint (utilising the odrl:andSequence operand). Right operand value MUST be an xsd:duration as defined by [[xmlschema11-2]].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n delayPeriod: _NS$6(\"delayPeriod\"),\r\n /**\r\n * The delivery channel used for exercising the action of the Rule.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n deliveryChannel: _NS$6(\"deliveryChannel\"),\r\n /**\r\n * A continuous elapsed time period which may be used for exercising of the action of the Rule. Right operand value MUST be an xsd:duration as defined by [[xmlschema11-2]].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n elapsedTime: _NS$6(\"elapsedTime\"),\r\n /**\r\n * An identified event setting a context for exercising the action of the Rule.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n event: _NS$6(\"event\"),\r\n /**\r\n * A transformed file format of the target Asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n fileFormat: _NS$6(\"fileFormat\"),\r\n /**\r\n * A defined industry sector setting a context for exercising the action of the Rule.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n industry: _NS$6(\"industry\"),\r\n /**\r\n * A natural language used by the target Asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n language: _NS$6(\"language\"),\r\n /**\r\n * Category of a media asset setting a context for exercising the action of the Rule.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n media: _NS$6(\"media\"),\r\n /**\r\n * An accumulated amount of one to many metered time periods which were used for exercising the action of the Rule. Right operand value MUST be an xsd:duration as defined by [[xmlschema11-2]].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n meteredTime: _NS$6(\"meteredTime\"),\r\n /**\r\n * The amount of a financial payment. Right operand value MUST be an xsd:decimal.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n payAmount: _NS$6(\"payAmount\"),\r\n /**\r\n * A percentage amount of the target Asset relevant for exercising the action of the Rule. Right operand value MUST be an xsd:decimal from 0 to 100.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n percentage: _NS$6(\"percentage\"),\r\n /**\r\n * Category of product or service setting a context for exercising the action of the Rule.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n product: _NS$6(\"product\"),\r\n /**\r\n * A defined purpose for exercising the action of the Rule.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n purpose: _NS$6(\"purpose\"),\r\n /**\r\n * The party receiving the result/outcome of exercising the action of the Rule.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n recipient: _NS$6(\"recipient\"),\r\n /**\r\n * A point in space or time defined with coordinates relative to full measures the positioning of the target Asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n relativePosition: _NS$6(\"relativePosition\"),\r\n /**\r\n * The relative spatial positions - expressed as percentages of full values - of four corners of a rectangle on a 2D-canvas or the eight corners of a cuboid in a 3D-space of the target Asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n relativeSpatialPosition: _NS$6(\"relativeSpatialPosition\"),\r\n /**\r\n * A point in space or time defined with coordinates relative to full measures the positioning of the target Asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n relativeTemporalPosition: _NS$6(\"relativeTemporalPosition\"),\r\n /**\r\n * Measure(s) of one or two axes for 2D-objects or measure(s) of one to tree axes for 3D-objects - expressed as percentages of full values - of the target Asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n relativeSize: _NS$6(\"relativeSize\"),\r\n /**\r\n * Resolution of the rendition of the target Asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n resolution: _NS$6(\"resolution\"),\r\n /**\r\n * A named and identified geospatial area with defined borders which is used for exercising the action of the Rule. An IRI MUST be used to represent this value.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n spatial: _NS$6(\"spatial\"),\r\n /**\r\n * A set of coordinates setting the borders of a geospatial area used for exercising the action of the Rule. The coordinates MUST include longitude and latitude, they MAY include altitude and the geodetic datum.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n spatialCoordinates: _NS$6(\"spatialCoordinates\"),\r\n /**\r\n * An identified computing system or computing device used for exercising the action of the Rule.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n systemDevice: _NS$6(\"systemDevice\"),\r\n /**\r\n * A recurring period of time before the next execution of the action of the Rule. Right operand value MUST be an xsd:duration as defined by [[xmlschema11-2]].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n timeInterval: _NS$6(\"timeInterval\"),\r\n /**\r\n * The unit of measure used for counting the executions of the action of the Rule.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n unitOfCount: _NS$6(\"unitOfCount\"),\r\n /**\r\n * The version of the target Asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n version: _NS$6(\"version\"),\r\n /**\r\n * An identified location of the IT communication space which is relevant for exercising the action of the Rule.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n virtualLocation: _NS$6(\"virtualLocation\"),\r\n /**\r\n * The relation is satisfied when at least one of the Constraints is satisfied.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n or: _NS$6(\"or\"),\r\n /**\r\n * The relation is satisfied when only one, and not more, of the Constaints is satisfied\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n xone: _NS$6(\"xone\"),\r\n /**\r\n * The relation is satisfied when all of the Constraints are satisfied.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n and: _NS$6(\"and\"),\r\n /**\r\n * The relation is satisfied when each of the Constraints are satisfied in the order specified.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n andSequence: _NS$6(\"andSequence\"),\r\n /**\r\n * Indicating that a given value equals the right operand of the Constraint.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n eq: _NS$6(\"eq\"),\r\n /**\r\n * Indicating that a given value is greater than the right operand of the Constraint.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n gt: _NS$6(\"gt\"),\r\n /**\r\n * Indicating that a given value is greater than or equal to the right operand of the Constraint.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n gteq: _NS$6(\"gteq\"),\r\n /**\r\n * Indicating that a given value is less than the right operand of the Constraint.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n lt: _NS$6(\"lt\"),\r\n /**\r\n * Indicating that a given value is less than or equal to the right operand of the Constraint.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n lteq: _NS$6(\"lteq\"),\r\n /**\r\n * Indicating that a given value is not equal to the right operand of the Constraint.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n neq: _NS$6(\"neq\"),\r\n /**\r\n * A set-based operator indicating that a given value is an instance of the right operand of the Constraint.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n isA: _NS$6(\"isA\"),\r\n /**\r\n * A set-based operator indicating that a given value contains the right operand of the Constraint.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n hasPart: _NS$6(\"hasPart\"),\r\n /**\r\n * A set-based operator indicating that a given value is contained by the right operand of the Constraint.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n isPartOf: _NS$6(\"isPartOf\"),\r\n /**\r\n * A set-based operator indicating that a given value is all of the right operand of the Constraint.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n isAllOf: _NS$6(\"isAllOf\"),\r\n /**\r\n * A set-based operator indicating that a given value is any of the right operand of the Constraint.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n isAnyOf: _NS$6(\"isAnyOf\"),\r\n /**\r\n * A set-based operator indicating that a given value is none of the right operand of the Constraint.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n isNoneOf: _NS$6(\"isNoneOf\"),\r\n /**\r\n * Indicates the actual datetime the action of the Rule was exercised.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n policyUsage: _NS$6(\"policyUsage\"),\r\n /**\r\n * An identified device used for exercising the action of the Rule.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n device: _NS$6(\"device\"),\r\n /**\r\n * An identified computing system used for exercising the action of the Rule.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n system: _NS$6(\"system\"),\r\n /**\r\n * An value indicating the closeness or nearness.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n proximity: _NS$6(\"proximity\"),\r\n /**\r\n * The act of adding to the end of an asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n append: _NS$6(\"append\"),\r\n /**\r\n * The act of appending data to the Asset without modifying the Asset in any other way.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n appendTo: _NS$6(\"appendTo\"),\r\n /**\r\n * The act of making an exact reproduction of the asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n copy: _NS$6(\"copy\"),\r\n /**\r\n * The act of transforming the asset into a new form.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n export: _NS$6(\"export\"),\r\n /**\r\n * The act of making available the asset to a third-party for a fixed period of time with exchange of value.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n lease: _NS$6(\"lease\"),\r\n /**\r\n * The act of granting the right to use the asset to a third-party.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n license: _NS$6(\"license\"),\r\n /**\r\n * The act of making available the asset to a third-party for a fixed period of time without exchange of value.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n lend: _NS$6(\"lend\"),\r\n /**\r\n * The act of paying a financial amount to a party for use of the asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n pay: _NS$6(\"pay\"),\r\n /**\r\n * The Party is the recipient of the payment.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n payeeParty: _NS$6(\"payeeParty\"),\r\n /**\r\n * The act of providing a short preview of the asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n preview: _NS$6(\"preview\"),\r\n /**\r\n * The act of using the asset for a purpose other than the purpose it was intended for.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n secondaryUse: _NS$6(\"secondaryUse\"),\r\n /**\r\n * The act of writing to the Asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n write: _NS$6(\"write\"),\r\n /**\r\n * The act of adding data to the Asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n writeTo: _NS$6(\"writeTo\"),\r\n /**\r\n * The act of sharing the asset to parties in close proximity to the owner.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n adHocShare: _NS$6(\"adHocShare\"),\r\n /**\r\n * The act of extracting (replicating) unchanged characters from the asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n extractChar: _NS$6(\"extractChar\"),\r\n /**\r\n * The act of extracting (replicating) unchanged pages from the asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n extractPage: _NS$6(\"extractPage\"),\r\n /**\r\n * The act of extracting (replicating) unchanged words from the asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n extractWord: _NS$6(\"extractWord\"),\r\n /**\r\n * The number of seconds after which timed metering use of the asset begins.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n timedCount: _NS$6(\"timedCount\"),\r\n /**\r\n * Indentifies the type of inheritance.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n inheritRelation: _NS$6(\"inheritRelation\"),\r\n /**\r\n * Indicates if the Policy entity can be inherited.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n inheritAllowed: _NS$6(\"inheritAllowed\"),\r\n /**\r\n * Is used to indicate how to support Actions that are not part of any vocabulary or profile in the policy expression system.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n UndefinedTerm: _NS$6(\"UndefinedTerm\"),\r\n /**\r\n * Relates the strategy used for handling undefined actions to a Policy.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n undefined: _NS$6(\"undefined\"),\r\n /**\r\n * The Action is to be ignored and is not part of the policy – and the policy remains valid.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n ignore: _NS$6(\"ignore\"),\r\n /**\r\n * The Action is to be supported as part of the policy – and the policy remains valid.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n support: _NS$6(\"support\"),\r\n /**\r\n * Scopes for Asset Scope expressions.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n AssetScope: _NS$6(\"AssetScope\"),\r\n /**\r\n * Scopes for Party Scope expressions.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n PartyScope: _NS$6(\"PartyScope\"),\r\n /**\r\n * The identifier of a scope that provides context to the extent of the entity.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n scope: _NS$6(\"scope\"),\r\n /**\r\n * Specifies that the scope of the relationship is the defined group with multiple individual members.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Group: _NS$6(\"Group\"),\r\n /**\r\n * Specifies that the scope of the relationship is the single Party individual.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Individual: _NS$6(\"Individual\"),\r\n /**\r\n * Specifies that the scope of the relationship is all of the collective individuals within a context.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n All: _NS$6(\"All\"),\r\n /**\r\n * Specifies that the scope of the relationship is all of the first-level connections of the Party.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n AllConnections: _NS$6(\"AllConnections\"),\r\n /**\r\n * Specifies that the scope of the relationship is all of the second-level connections to the Party.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n All2ndConnections: _NS$6(\"All2ndConnections\"),\r\n /**\r\n * Specifies that the scope of the relationship is all of the group connections of the Party.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n AllGroups: _NS$6(\"AllGroups\"),\r\n /**\r\n * The act of keeping the policy notice with the asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n attachPolicy: _NS$6(\"attachPolicy\"),\r\n /**\r\n * The act of attaching the source of the asset and its derivatives.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n attachSource: _NS$6(\"attachSource\"),\r\n /**\r\n * The act of distributing any derivative asset under the same terms as the original asset.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n shareAlike: _NS$6(\"shareAlike\"),\r\n /**\r\n * The act of using the asset in a business environment.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n commercialize: _NS$6(\"commercialize\"),\r\n /**\r\n * The act of the non-commercial reproduction and distribution of the asset to third-parties.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n share: _NS$6(\"share\"),\r\n /**\r\n * Identifier for the ODRL Core Profile\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n core: _NS$6(\"core\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * The unit of measurement of the value of the rightOperand or rightOperandReference of a Constraint.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n unit: _NS$6(\"unit\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$5 = new rdfDataFactory.DataFactory();\r\nfunction _NS$5(localName) {\r\n return rdfFactory$5.namedNode(\"https://w3id.org/security#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * [Generator provided] - Security vocabulary\r\n */\r\nvar SEC = {\r\n PREFIX: \"sec\",\r\n NAMESPACE: \"https://w3id.org/security#\",\r\n PREFIX_AND_NAMESPACE: { \"sec\": \"https://w3id.org/security#\" },\r\n NS: _NS$5,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n *\r\n */\r\n EcdsaSecp256k1Signature2019: _NS$5(\"EcdsaSecp256k1Signature2019\"),\r\n /**\r\n *\r\n */\r\n EcdsaSecp256k1VerificationKey2019: _NS$5(\"EcdsaSecp256k1VerificationKey2019\"),\r\n /**\r\n *\r\n */\r\n RsaSignature2018: _NS$5(\"RsaSignature2018\"),\r\n /**\r\n *\r\n */\r\n RsaVerificationKey2018: _NS$5(\"RsaVerificationKey2018\"),\r\n /**\r\n *\r\n */\r\n SchnorrSecp256k1Signature2019: _NS$5(\"SchnorrSecp256k1Signature2019\"),\r\n /**\r\n *\r\n */\r\n SchnorrSecp256k1VerificationKey2019: _NS$5(\"SchnorrSecp256k1VerificationKey2019\"),\r\n /**\r\n *\r\n */\r\n ServiceEndpointProxyService: _NS$5(\"ServiceEndpointProxyService\"),\r\n /**\r\n *\r\n */\r\n Digest: _NS$5(\"Digest\"),\r\n /**\r\n *\r\n */\r\n EncryptedMessage: _NS$5(\"EncryptedMessage\"),\r\n /**\r\n *\r\n */\r\n Signature: _NS$5(\"Signature\"),\r\n /**\r\n *\r\n */\r\n LinkedDataSignature2015: _NS$5(\"LinkedDataSignature2015\"),\r\n /**\r\n *\r\n */\r\n Ed25519VerificationKey2018: _NS$5(\"Ed25519VerificationKey2018\"),\r\n /**\r\n *\r\n */\r\n BbsBlsSignature2020: _NS$5(\"BbsBlsSignature2020\"),\r\n /**\r\n *\r\n */\r\n BbsBlsSignatureProof2020: _NS$5(\"BbsBlsSignatureProof2020\"),\r\n /**\r\n *\r\n */\r\n Bls12381G1Key2020: _NS$5(\"Bls12381G1Key2020\"),\r\n /**\r\n *\r\n */\r\n Bls12381G2Key2020: _NS$5(\"Bls12381G2Key2020\"),\r\n /**\r\n *\r\n */\r\n Key: _NS$5(\"Key\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n *\r\n */\r\n cipherAlgorithm: _NS$5(\"cipherAlgorithm\"),\r\n /**\r\n *\r\n */\r\n cipherData: _NS$5(\"cipherData\"),\r\n /**\r\n *\r\n */\r\n digestAlgorithm: _NS$5(\"digestAlgorithm\"),\r\n /**\r\n *\r\n */\r\n digestValue: _NS$5(\"digestValue\"),\r\n /**\r\n *\r\n */\r\n cipherKey: _NS$5(\"cipherKey\"),\r\n /**\r\n *\r\n */\r\n blockchainAccountId: _NS$5(\"blockchainAccountId\"),\r\n /**\r\n *\r\n */\r\n ethereumAddress: _NS$5(\"ethereumAddress\"),\r\n /**\r\n *\r\n */\r\n expires: _NS$5(\"expires\"),\r\n /**\r\n *\r\n */\r\n initializationVector: _NS$5(\"initializationVector\"),\r\n /**\r\n *\r\n */\r\n nonce: _NS$5(\"nonce\"),\r\n /**\r\n *\r\n */\r\n canonicalizationAlgorithm: _NS$5(\"canonicalizationAlgorithm\"),\r\n /**\r\n *\r\n */\r\n owner: _NS$5(\"owner\"),\r\n /**\r\n *\r\n */\r\n password: _NS$5(\"password\"),\r\n /**\r\n *\r\n */\r\n privateKeyPem: _NS$5(\"privateKeyPem\"),\r\n /**\r\n *\r\n */\r\n verificationMethod: _NS$5(\"verificationMethod\"),\r\n /**\r\n *\r\n */\r\n publicKey: _NS$5(\"publicKey\"),\r\n /**\r\n *\r\n */\r\n assertionMethod: _NS$5(\"assertionMethod\"),\r\n /**\r\n *\r\n */\r\n authentication: _NS$5(\"authentication\"),\r\n /**\r\n *\r\n */\r\n capabilityDelegation: _NS$5(\"capabilityDelegation\"),\r\n /**\r\n *\r\n */\r\n capabilityInvocation: _NS$5(\"capabilityInvocation\"),\r\n /**\r\n *\r\n */\r\n keyAgreement: _NS$5(\"keyAgreement\"),\r\n /**\r\n *\r\n */\r\n publicKeyBase58: _NS$5(\"publicKeyBase58\"),\r\n /**\r\n *\r\n */\r\n publicKeyJwk: _NS$5(\"publicKeyJwk\"),\r\n /**\r\n *\r\n */\r\n publicKeyPem: _NS$5(\"publicKeyPem\"),\r\n /**\r\n *\r\n */\r\n publicKeyHex: _NS$5(\"publicKeyHex\"),\r\n /**\r\n *\r\n */\r\n publicKeyService: _NS$5(\"publicKeyService\"),\r\n /**\r\n *\r\n */\r\n revoked: _NS$5(\"revoked\"),\r\n /**\r\n *\r\n */\r\n proof: _NS$5(\"proof\"),\r\n /**\r\n *\r\n */\r\n jws: _NS$5(\"jws\"),\r\n /**\r\n *\r\n */\r\n proofPurpose: _NS$5(\"proofPurpose\"),\r\n /**\r\n *\r\n */\r\n challenge: _NS$5(\"challenge\"),\r\n /**\r\n *\r\n */\r\n domain: _NS$5(\"domain\"),\r\n /**\r\n *\r\n */\r\n expiration: _NS$5(\"expiration\"),\r\n /**\r\n *\r\n */\r\n proofValue: _NS$5(\"proofValue\"),\r\n /**\r\n *\r\n */\r\n signature: _NS$5(\"signature\"),\r\n /**\r\n *\r\n */\r\n signatureValue: _NS$5(\"signatureValue\"),\r\n /**\r\n *\r\n */\r\n signatureAlgorithm: _NS$5(\"signatureAlgorithm\"),\r\n /**\r\n *\r\n */\r\n service: _NS$5(\"service\"),\r\n /**\r\n *\r\n */\r\n serviceEndpoint: _NS$5(\"serviceEndpoint\"),\r\n /**\r\n *\r\n */\r\n allowedAction: _NS$5(\"allowedAction\"),\r\n /**\r\n *\r\n */\r\n capability: _NS$5(\"capability\"),\r\n /**\r\n *\r\n */\r\n capabilityAction: _NS$5(\"capabilityAction\"),\r\n /**\r\n *\r\n */\r\n capabilityChain: _NS$5(\"capabilityChain\"),\r\n /**\r\n *\r\n */\r\n caveat: _NS$5(\"caveat\"),\r\n /**\r\n *\r\n */\r\n delegator: _NS$5(\"delegator\"),\r\n /**\r\n *\r\n */\r\n invocationTarget: _NS$5(\"invocationTarget\"),\r\n /**\r\n *\r\n */\r\n invoker: _NS$5(\"invoker\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$4 = new rdfDataFactory.DataFactory();\r\nfunction _NS$4(localName) {\r\n return rdfFactory$4.namedNode(\"http://www.w3.org/ns/json-ld#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * This is a vocabulary document and is used to achieve certain features of the JSON-LD language.\r\n */\r\nvar JSONLD = {\r\n PREFIX: \"jsonld\",\r\n NAMESPACE: \"http://www.w3.org/ns/json-ld#\",\r\n PREFIX_AND_NAMESPACE: { \"jsonld\": \"http://www.w3.org/ns/json-ld#\" },\r\n NS: _NS$4,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * Defines term definitions and other aspects of a JSON-LD `Context`.\r\n \n A [context definition](https://www.w3.org/TR/json-ld11/#dfn-context-definition) MUST be a map whose keys MUST be either _terms_, _compact IRIs_, _IRIs_, or one of the keywords `@base`, `@import`, `@language`, `@propagate`, `@protected`, `@type`, `@version`, or `@vocab`.\r\n *\r\n * See also:\r\n * - https://www.w3.org/TR/json-ld11/#context-definitions\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/json-ld#\r\n */\r\n Context: _NS$4(\"Context\"),\r\n /**\r\n * A string ([simple term definition](http://www.w3.org/TR/json-ld11/#dfn-simple-term-definitions)), expanding to an IRI.\r\n *\r\n * See also:\r\n * - https://www.w3.org/TR/json-ld11/#dfn-term-definition\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/json-ld#\r\n */\r\n PrefixDefinition: _NS$4(\"PrefixDefinition\"),\r\n /**\r\n * A [term definition](http://www.w3.org/TR/json-ld11/#dfn-term-definitions) is an entry in a [context](#Context), where the key defines a term which may be used within a dictionary as a key, type, or elsewhere that a string is interpreted as a vocabulary item. Its value is an [expanded term definition](https://www.w3.org/TR/json-ld11/#dfn-expanded-term-definitions).\r\n \n \n \n An [expanded term definition](https://www.w3.org/TR/json-ld11/#dfn-expanded-term-definition) MUST be a map composed of zero or more keys from `@id`, `@reverse`, `@type`, `@language`, `@container`, `@context`, `@prefix`, `@propagate`, or `@protected`. An expanded term definition SHOULD NOT contain any other keys.\r\n *\r\n * See also:\r\n * - https://www.w3.org/TR/json-ld11/#dfn-term-definition\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/json-ld#\r\n */\r\n TermDefinition: _NS$4(\"TermDefinition\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * If the [context definition](https://www.w3.org/TR/json-ld11/#dfn-context-definition) has an `@base` key, its value MUST be an _IRI reference_, or `null`.\r\n *\r\n * See also:\r\n * - https://www.w3.org/TR/json-ld11/#context-definitions\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/json-ld#\r\n */\r\n base: _NS$4(\"base\"),\r\n /**\r\n * This profile IRI is used to request or specify compacted JSON-LD document form.\r\n *\r\n * See also:\r\n * - https://www.w3.org/TR/json-ld11/#iana-considerations\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/json-ld#\r\n */\r\n compacted: _NS$4(\"compacted\"),\r\n /**\r\n * The associated `@container` value in an [expanded term definition](https://www.w3.org/TR/json-ld11/#dfn-expanded-term-definitions).\r\n \n If the [expanded term definition](https://www.w3.org/TR/json-ld11/#dfn-expanded-term-definitions) contains the `@container` keyword, its value MUST be either `@list`, `@set`, `@language`, `@index`, `@id`, `@graph`, `@type`, or be `null` or an array containing exactly any one of those keywords, or a combination of `@set` and any of `@index`, `@id`, `@graph`, `@type`, `@language` in any order.\r\n \n `@container` may also be an array containing `@graph` along with either `@id` or `@index` and also optionally including `@set`.\r\n \n If the value is `@language`, when the term is used outside of the `@context`, the associated value MUST be a language map.\r\n \n If the value is `@index`, when the term is used outside of the `@context`, the associated value MUST be an index map.\r\n *\r\n * See also:\r\n * - https://www.w3.org/TR/json-ld11/#expanded-term-definition\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/json-ld#\r\n */\r\n container: _NS$4(\"container\"),\r\n /**\r\n * As an IRI, this link relation is used to associate a JSON-LD context with a JSON document so that it can be interpreted as JSON-LD. In an HTTP request header, specifies the location of a context to use for compaction. As a Context, defines an inline `context definition`.\r\n *\r\n * See also:\r\n * - https://www.w3.org/TR/json-ld11/#interpreting-json-as-json-ld\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/json-ld#\r\n */\r\n context: _NS$4(\"context\"),\r\n /**\r\n * Term definition(s) associated with this context.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/json-ld#\r\n */\r\n definition: _NS$4(\"definition\"),\r\n /**\r\n * If the [context definition](https://www.w3.org/TR/json-ld11/#dfn-context-definition) has an `@direction` key, its value MUST be one of `\"ltr\"` or `\"rtl\"`, or be `null`.\r\n *\r\n * See also:\r\n * - https://www.w3.org/TR/json-ld11/#context-definitions\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/json-ld#\r\n */\r\n direction: _NS$4(\"direction\"),\r\n /**\r\n * This profile URI is used to request or specify expanded JSON-LD document form.\r\n *\r\n * See also:\r\n * - https://www.w3.org/TR/json-ld11/#iana-considerations\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/json-ld#\r\n */\r\n expanded: _NS$4(\"expanded\"),\r\n /**\r\n * This profile URI is used to request or specify flattened JSON-LD document form.\r\n *\r\n * See also:\r\n * - https://www.w3.org/TR/json-ld11/#iana-considerations\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/json-ld#\r\n */\r\n flattened: _NS$4(\"flattened\"),\r\n /**\r\n * As an IRI, this link relation is used to associate a JSON-LD frame with a JSON-LD document. In an HTTP request header, specifies the location of a frame to use for framing.\r\n *\r\n * See also:\r\n * - https://www.w3.org/TR/json-ld11/#iana-considerations\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/json-ld#\r\n */\r\n frame: _NS$4(\"frame\"),\r\n /**\r\n * This profile URI is used to request or specify framed JSON-LD document form.\r\n *\r\n * See also:\r\n * - https://www.w3.org/TR/json-ld11/#iana-considerations\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/json-ld#\r\n */\r\n framed: _NS$4(\"framed\"),\r\n /**\r\n * The `@id` mapping of a [term definition](#TermDefinition).\r\n *\r\n * See also:\r\n * - https://www.w3.org/TR/json-ld11/#expanded-term-definition\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/json-ld#\r\n */\r\n id: _NS$4(\"id\"),\r\n /**\r\n * If the [context definition](https://www.w3.org/TR/json-ld11/#dfn-context-definition) contains the `@import` keyword, its value MUST be an _IRI reference_. When used as a reference from an `@import`, the referenced context definition MUST NOT include an `@import` key, itself.\r\n *\r\n * See also:\r\n * - https://www.w3.org/TR/json-ld11/#context-definitions\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/json-ld#\r\n */\r\n import: _NS$4(\"import\"),\r\n /**\r\n * The [default language](https://www.w3.org/TR/json-ld11/#dfn-default-language) is set in the context using the `@language` key whose value MUST be a string representing a [BCP47](https://tools.ietf.org/html/bcp47) language code or null.\r\n *\r\n * See also:\r\n * - https://www.w3.org/TR/json-ld11/#dfn-default-language\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/json-ld#\r\n */\r\n language: _NS$4(\"language\"),\r\n /**\r\n * If the [expanded term definition](https://www.w3.org/TR/json-ld11/#dfn-expanded-term-definitions) contains the `@nest` keyword, its value MUST be either `@nest`, or a _term_ which expands to `@nest`.\r\n *\r\n * See also:\r\n * - https://www.w3.org/TR/json-ld11/#expanded-term-definition\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/json-ld#\r\n */\r\n nest: _NS$4(\"nest\"),\r\n /**\r\n * With the value `true`, allows this term to be used to construct a compact IRI when compacting.\r\n *\r\n * See also:\r\n * - https://www.w3.org/TR/json-ld11/#expanded-term-definition\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/json-ld#\r\n */\r\n prefix: _NS$4(\"prefix\"),\r\n /**\r\n * If the [context definition](https://www.w3.org/TR/json-ld11/#dfn-context-definition) contains the `@propagate` keyword, its value MUST be `true` or `false`.\r\n *\r\n * See also:\r\n * - https://www.w3.org/TR/json-ld11/#context-definitions\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/json-ld#\r\n */\r\n propagate: _NS$4(\"propagate\"),\r\n /**\r\n * If the [context definition](https://www.w3.org/TR/json-ld11/#dfn-context-definition) contains the `@protected` keyword, its value MUST be `true` or `false`.\r\n *\r\n * See also:\r\n * - https://www.w3.org/TR/json-ld11/#context-definitions\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/json-ld#\r\n */\r\n protected: _NS$4(\"protected\"),\r\n /**\r\n * The `@reverse` mapping of an [expanded term definition](https://www.w3.org/TR/json-ld11/#dfn-expanded-term-definitions).\r\n *\r\n * See also:\r\n * - https://www.w3.org/TR/json-ld11/#expanded-term-definition\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/json-ld#\r\n */\r\n reverse: _NS$4(\"reverse\"),\r\n /**\r\n * This profile URI is used to request or specify streaming JSON-LD document form.\r\n *\r\n * See also:\r\n * - https://www.w3.org/TR/json-ld11-streaming/#streaming-profile\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/json-ld#\r\n */\r\n streaming: _NS$4(\"streaming\"),\r\n /**\r\n * The term associated with a [term definition](#TermDefinition).\r\n *\r\n * See also:\r\n * - https://www.w3.org/TR/json-ld11/#dfn-term\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/json-ld#\r\n */\r\n term: _NS$4(\"term\"),\r\n /**\r\n * If the [context definition](https://www.w3.org/TR/json-ld11/#dfn-context-definition) contains the `@type` keyword, its value MUST be a map with only the entry `@container` set to `@set`, and optionally an entry `@protected`.\r\n \n \n \n If the [expanded term definition](https://www.w3.org/TR/json-ld11/#dfn-expanded-term-definitions) contains the `@type` keyword, its value MUST be an _IRI reference_, a _term_, `null`, or one of the keywords `@id`, `@json`, `@none`, or `@vocab`.\r\n *\r\n * See also:\r\n * - https://www.w3.org/TR/json-ld11/#context-definitions\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/json-ld#\r\n */\r\n type: _NS$4(\"type\"),\r\n /**\r\n * The [processing mode](https://www.w3.org/TR/json-ld11/#dfn-processing-mode) defines how a JSON-LD document is processed. By default, all documents are assumed to be conformant with [JSON-LD 1.1`](http://www.w3.org/TR/json-ld11). By defining a different version via explicit API option, other processing modes can be accessed. This specification defines extensions for the `json-ld-1.1` processing mode.\r\n *\r\n * See also:\r\n * - https://www.w3.org/TR/json-ld11/#dfn-processing-mode\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/json-ld#\r\n */\r\n version: _NS$4(\"version\"),\r\n /**\r\n * Used to expand properties and values in `@type` with a common prefix IRI.\r\n *\r\n * See also:\r\n * - https://www.w3.org/TR/json-ld11/#default-vocabulary\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/json-ld#\r\n */\r\n vocab: _NS$4(\"vocab\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$3 = new rdfDataFactory.DataFactory();\r\nfunction _NS$3(localName) {\r\n return rdfFactory$3.namedNode(\"http://www.w3.org/ns/earl#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * [Generator provided] - Evaluation and Report Language (EARL)\r\n */\r\nvar EARL = {\r\n PREFIX: \"earl\",\r\n NAMESPACE: \"http://www.w3.org/ns/earl#\",\r\n PREFIX_AND_NAMESPACE: { \"earl\": \"http://www.w3.org/ns/earl#\" },\r\n NS: _NS$3,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * a statement that embodies the results of a test\r\n */\r\n Assertion: _NS$3(\"Assertion\"),\r\n /**\r\n * an entity such as a person, a software tool, an organization, or any other grouping that carries out a test collectively\r\n */\r\n Assertor: _NS$3(\"Assertor\"),\r\n /**\r\n * the class of things that have been tested against some test criterion\r\n */\r\n TestSubject: _NS$3(\"TestSubject\"),\r\n /**\r\n * a testable statement, usually one that can be passed or failed\r\n */\r\n TestCriterion: _NS$3(\"TestCriterion\"),\r\n /**\r\n * a higher-level requirement that is tested by executing one or more sub-tests\r\n */\r\n TestRequirement: _NS$3(\"TestRequirement\"),\r\n /**\r\n * an atomic test, usually one that is a partial test for a requirement\r\n */\r\n TestCase: _NS$3(\"TestCase\"),\r\n /**\r\n * the actual result of performing the test\r\n */\r\n TestResult: _NS$3(\"TestResult\"),\r\n /**\r\n * describes how a test was carried out\r\n */\r\n TestMode: _NS$3(\"TestMode\"),\r\n /**\r\n * a discrete value that describes a resulting condition from carrying out the test\r\n */\r\n OutcomeValue: _NS$3(\"OutcomeValue\"),\r\n /**\r\n * the class of outcomes to denote passing a test\r\n */\r\n Pass: _NS$3(\"Pass\"),\r\n /**\r\n * the class of outcomes to denote failing a test\r\n */\r\n Fail: _NS$3(\"Fail\"),\r\n /**\r\n * the class of outcomes to denote an undetermined outcome\r\n */\r\n CannotTell: _NS$3(\"CannotTell\"),\r\n /**\r\n * the class of outcomes to denote the test is not applicable\r\n */\r\n NotApplicable: _NS$3(\"NotApplicable\"),\r\n /**\r\n * the class of outcomes to denote the test has not been carried out\r\n */\r\n NotTested: _NS$3(\"NotTested\"),\r\n /**\r\n * any piece of software such as an authoring tool, browser, or evaluation tool\r\n */\r\n Software: _NS$3(\"Software\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * assertor of an assertion\r\n */\r\n assertedBy: _NS$3(\"assertedBy\"),\r\n /**\r\n * test subject of an assertion\r\n */\r\n subject: _NS$3(\"subject\"),\r\n /**\r\n * test criterion of an assertion\r\n */\r\n test: _NS$3(\"test\"),\r\n /**\r\n * result of an assertion\r\n */\r\n result: _NS$3(\"result\"),\r\n /**\r\n * mode in which the test was performed\r\n */\r\n mode: _NS$3(\"mode\"),\r\n /**\r\n * assertor that is primarily responsible for performing the test\r\n */\r\n mainAssertor: _NS$3(\"mainAssertor\"),\r\n /**\r\n * outcome of performing the test\r\n */\r\n outcome: _NS$3(\"outcome\"),\r\n /**\r\n * location within a test subject that are most relevant to a test result\r\n */\r\n pointer: _NS$3(\"pointer\"),\r\n /**\r\n * additional warnings or error messages in a human-readable form\r\n */\r\n info: _NS$3(\"info\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$2 = new rdfDataFactory.DataFactory();\r\nfunction _NS$2(localName) {\r\n return rdfFactory$2.namedNode(\"http://www.w3.org/2003/06/sw-vocab-status/ns#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * This vocabulary was created in the FOAF project, based on experience with FOAF, Dublin Core and other early RDF vocabularies. Deployment experience shows that changing namespace URIs is expensive and unrewarding, so this vocabulary provides terms to support in-place evolution of structured data vocabularies. By indicating status at the level of terms rather than vocabularies, dictionary-style, fine grained improvements become easier. Different organizations and parties can agree or disagree on the status of a vocabulary term; however the status published alongside the term may deserve special attention. Future work could include patterns for citing announcements and decisions, or using SKOS to decentralise the extension of the basic status levels.\r\n */\r\nvar VS = {\r\n PREFIX: \"vs\",\r\n NAMESPACE: \"http://www.w3.org/2003/06/sw-vocab-status/ns#\",\r\n PREFIX_AND_NAMESPACE: { \"vs\": \"http://www.w3.org/2003/06/sw-vocab-status/ns#\" },\r\n NS: _NS$2,\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * the status of a vocabulary term, expressed as a short symbolic string; known values include 'unstable','testing', 'stable' and 'archaic'\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2003/06/sw-vocab-status/ns#\r\n */\r\n term_status: _NS$2(\"term_status\"),\r\n /**\r\n * more information about the status etc of a term, typically human oriented\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2003/06/sw-vocab-status/ns#\r\n */\r\n moreinfo: _NS$2(\"moreinfo\"),\r\n /**\r\n * human-oriented documentation, examples etc for use of this term\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2003/06/sw-vocab-status/ns#\r\n */\r\n userdocs: _NS$2(\"userdocs\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory$1 = new rdfDataFactory.DataFactory();\r\nfunction _NS$1(localName) {\r\n return rdfFactory$1.namedNode(\"http://usefulinc.com/ns/doap#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * [Generator provided] - Description of a Project (DOAP) vocabulary\r\n */\r\nvar DOAP = {\r\n PREFIX: \"doap\",\r\n NAMESPACE: \"http://usefulinc.com/ns/doap#\",\r\n PREFIX_AND_NAMESPACE: { \"doap\": \"http://usefulinc.com/ns/doap#\" },\r\n NS: _NS$1,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * A project.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n Project: _NS$1(\"Project\"),\r\n /**\r\n * Version information of a project release.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n Version: _NS$1(\"Version\"),\r\n /**\r\n * A specification of a system's aspects, technical or otherwise.\r\n *\r\n * This term has [1] label and comment, in the language [pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n Specification: _NS$1(\"Specification\"),\r\n /**\r\n * Source code repository.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n Repository: _NS$1(\"Repository\"),\r\n /**\r\n * Subversion source code repository.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n SVNRepository: _NS$1(\"SVNRepository\"),\r\n /**\r\n * Git source code repository.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n GitRepository: _NS$1(\"GitRepository\"),\r\n /**\r\n * BitKeeper source code repository.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n BKRepository: _NS$1(\"BKRepository\"),\r\n /**\r\n * CVS source code repository.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n CVSRepository: _NS$1(\"CVSRepository\"),\r\n /**\r\n * GNU Arch source code repository.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n ArchRepository: _NS$1(\"ArchRepository\"),\r\n /**\r\n * Bazaar source code branch.\r\n *\r\n * This term has [1] label and comment, in the language [pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n BazaarBranch: _NS$1(\"BazaarBranch\"),\r\n /**\r\n * Git source code branch.\r\n *\r\n * This term has [1] label and comment, in the language [pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n GitBranch: _NS$1(\"GitBranch\"),\r\n /**\r\n * Mercurial source code repository.\r\n *\r\n * This term has [1] label and comment, in the language [pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n HgRepository: _NS$1(\"HgRepository\"),\r\n /**\r\n * darcs source code repository.\r\n *\r\n * This term has [3] labels and comments, in the languages [es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n DarcsRepository: _NS$1(\"DarcsRepository\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * A name of something.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n name: _NS$1(\"name\"),\r\n /**\r\n * URL of a project's homepage,\r\n associated with exactly one project.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n homepage: _NS$1(\"homepage\"),\r\n /**\r\n * URL of a project's past homepage,\r\n associated with exactly one project.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n old_homepage: _NS$1(\"old-homepage\"),\r\n /**\r\n * Date when something was created, in YYYY-MM-DD form. e.g. 2004-04-05\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n created: _NS$1(\"created\"),\r\n /**\r\n * Short (8 or 9 words) plain text description of a project.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n shortdesc: _NS$1(\"shortdesc\"),\r\n /**\r\n * Plain text description of a project, of 2-4 sentences in length.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n description: _NS$1(\"description\"),\r\n /**\r\n * A project release.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n release: _NS$1(\"release\"),\r\n /**\r\n * Mailing list home page or email address.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n mailing_list: _NS$1(\"mailing-list\"),\r\n /**\r\n * A forum or community that supports this project.\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n support_forum: _NS$1(\"support-forum\"),\r\n /**\r\n * A forum or community for developers of this project.\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n developer_forum: _NS$1(\"developer-forum\"),\r\n /**\r\n * A category of project.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n category: _NS$1(\"category\"),\r\n /**\r\n * The URI of an RDF description of the license the software is distributed under. E.g. a SPDX reference\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n license: _NS$1(\"license\"),\r\n /**\r\n * Source code repository.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n repository: _NS$1(\"repository\"),\r\n /**\r\n * The project that uses a repository.\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n repositoryOf: _NS$1(\"repositoryOf\"),\r\n /**\r\n * Repository for anonymous access.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n anon_root: _NS$1(\"anon-root\"),\r\n /**\r\n * Web browser interface to repository.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n browse: _NS$1(\"browse\"),\r\n /**\r\n * Module name of a Subversion, CVS, BitKeeper or Arch repository.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n module: _NS$1(\"module\"),\r\n /**\r\n * Location of a repository.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n location: _NS$1(\"location\"),\r\n /**\r\n * Web page from which the project software can be downloaded.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n download_page: _NS$1(\"download-page\"),\r\n /**\r\n * Mirror of software download web page.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n download_mirror: _NS$1(\"download-mirror\"),\r\n /**\r\n * Revision identifier of a software release.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n revision: _NS$1(\"revision\"),\r\n /**\r\n * URI of download associated with this release.\r\n *\r\n * This term has [2] labels and comments, in the languages [cs, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n file_release: _NS$1(\"file-release\"),\r\n /**\r\n * URL of Wiki for collaborative discussion of project.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n wiki: _NS$1(\"wiki\"),\r\n /**\r\n * Bug tracker for a project.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n bug_database: _NS$1(\"bug-database\"),\r\n /**\r\n * Web page with screenshots of project.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n screenshots: _NS$1(\"screenshots\"),\r\n /**\r\n * Maintainer of a project, a project leader.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n maintainer: _NS$1(\"maintainer\"),\r\n /**\r\n * Developer of software for the project.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n developer: _NS$1(\"developer\"),\r\n /**\r\n * Contributor of documentation to the project.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n documenter: _NS$1(\"documenter\"),\r\n /**\r\n * Contributor of translations to the project.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n translator: _NS$1(\"translator\"),\r\n /**\r\n * A tester or other quality control contributor.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n tester: _NS$1(\"tester\"),\r\n /**\r\n * Project contributor.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n helper: _NS$1(\"helper\"),\r\n /**\r\n * Programming language a project is implemented in or intended for use with.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, de, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n programming_language: _NS$1(\"programming-language\"),\r\n /**\r\n * Operating system that a project is limited to. Omit this property if the project is not OS-specific.\r\n *\r\n * This term provides non-English descriptions, but a mismatch between labels and comments, with [5] labels in languages [cs, de, es, fr, pt], but [4] comments in languages [cs, de, es, fr].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n os: _NS$1(\"os\"),\r\n /**\r\n * A specification that a project implements. Could be a standard, API or legally defined level of conformance.\r\n *\r\n * This term has [1] label and comment, in the language [pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n implements: _NS$1(\"implements\"),\r\n /**\r\n * The URI of a web service endpoint where software as a service may be accessed\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n service_endpoint: _NS$1(\"service-endpoint\"),\r\n /**\r\n * ISO language code a project has been translated into\r\n *\r\n * This term has [1] label and comment, in the language [pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n language: _NS$1(\"language\"),\r\n /**\r\n * Vendor organization: commercial, free or otherwise\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n vendor: _NS$1(\"vendor\"),\r\n /**\r\n * Indicator of software platform (non-OS specific), e.g. Java, Firefox, ECMA CLR\r\n *\r\n * This term has [1] label and comment, in the language [pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n platform: _NS$1(\"platform\"),\r\n /**\r\n * Description of target user base\r\n *\r\n * This term has [1] label and comment, in the language [pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n audience: _NS$1(\"audience\"),\r\n /**\r\n * URI of a blog related to a project\r\n *\r\n * This term has [1] label and comment, in the language [pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n blog: _NS$1(\"blog\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2020 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the "Software"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nvar rdfFactory = new rdfDataFactory.DataFactory();\r\nfunction _NS(localName) {\r\n return rdfFactory.namedNode(\"https://www.w3.org/2018/credentials#\" + localName);\r\n}\r\n// Add 'any' type annotation in case this vocab includes 'NamedNode' instances,\r\n// for example instances of Constant IRIs (TypeScript compiler will complain of\r\n// \"semantic error TS2742\" otherwise).\r\n/**\r\n * A vocabulary for the Data Model for W3C Verifiable Credentials.\r\n */\r\nvar CRED = {\r\n PREFIX: \"cred\",\r\n NAMESPACE: \"https://www.w3.org/2018/credentials#\",\r\n PREFIX_AND_NAMESPACE: { \"cred\": \"https://www.w3.org/2018/credentials#\" },\r\n NS: _NS,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n VerifiableCredential: _NS(\"VerifiableCredential\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n JsonSchemaValidator2018: _NS(\"JsonSchemaValidator2018\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n ManualRefreshService2018: _NS(\"ManualRefreshService2018\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n VerifiablePresentation: _NS(\"VerifiablePresentation\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n verifiableCredential: _NS(\"verifiableCredential\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n credentialSchema: _NS(\"credentialSchema\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n credentialStatus: _NS(\"credentialStatus\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n credentialSubject: _NS(\"credentialSubject\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n evidence: _NS(\"evidence\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n expirationDate: _NS(\"expirationDate\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n holder: _NS(\"holder\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n issued: _NS(\"issued\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n issuer: _NS(\"issuer\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n issuanceDate: _NS(\"issuanceDate\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n refreshService: _NS(\"refreshService\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n termsOfUse: _NS(\"termsOfUse\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n validFrom: _NS(\"validFrom\"),\r\n /**\r\n * .\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n validUntil: _NS(\"validUntil\"),\r\n};\n\n\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/vocab-common-rdf/dist/index.es.js?"); + +/***/ }), + +/***/ "./node_modules/@rdfjs/data-model/index.js": +/*!*************************************************!*\ + !*** ./node_modules/@rdfjs/data-model/index.js ***! + \*************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +eval("const DataFactory = __webpack_require__(/*! ./lib/DataFactory.js */ \"./node_modules/@rdfjs/data-model/lib/DataFactory.js\")\n\nmodule.exports = DataFactory\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@rdfjs/data-model/index.js?"); + +/***/ }), + +/***/ "./node_modules/@rdfjs/data-model/lib/BlankNode.js": +/*!*********************************************************!*\ + !*** ./node_modules/@rdfjs/data-model/lib/BlankNode.js ***! + \*********************************************************/ +/***/ ((module) => { + +eval("class BlankNode {\n constructor (id) {\n this.value = id || ('b' + (++BlankNode.nextId))\n }\n\n equals (other) {\n return !!other && other.termType === this.termType && other.value === this.value\n }\n}\n\nBlankNode.prototype.termType = 'BlankNode'\n\nBlankNode.nextId = 0\n\nmodule.exports = BlankNode\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@rdfjs/data-model/lib/BlankNode.js?"); + +/***/ }), + +/***/ "./node_modules/@rdfjs/data-model/lib/DataFactory.js": +/*!***********************************************************!*\ + !*** ./node_modules/@rdfjs/data-model/lib/DataFactory.js ***! + \***********************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +eval("const BlankNode = __webpack_require__(/*! ./BlankNode.js */ \"./node_modules/@rdfjs/data-model/lib/BlankNode.js\")\nconst DefaultGraph = __webpack_require__(/*! ./DefaultGraph.js */ \"./node_modules/@rdfjs/data-model/lib/DefaultGraph.js\")\nconst fromTermRaw = __webpack_require__(/*! ./fromTerm.js */ \"./node_modules/@rdfjs/data-model/lib/fromTerm.js\")\nconst Literal = __webpack_require__(/*! ./Literal.js */ \"./node_modules/@rdfjs/data-model/lib/Literal.js\")\nconst NamedNode = __webpack_require__(/*! ./NamedNode.js */ \"./node_modules/@rdfjs/data-model/lib/NamedNode.js\")\nconst Quad = __webpack_require__(/*! ./Quad.js */ \"./node_modules/@rdfjs/data-model/lib/Quad.js\")\nconst Variable = __webpack_require__(/*! ./Variable.js */ \"./node_modules/@rdfjs/data-model/lib/Variable.js\")\n\nfunction namedNode (value) {\n return new NamedNode(value)\n}\n\nfunction blankNode (value) {\n return new BlankNode(value)\n}\n\nfunction literal (value, languageOrDatatype) {\n if (typeof languageOrDatatype === 'string') {\n if (languageOrDatatype.indexOf(':') === -1) {\n return new Literal(value, languageOrDatatype)\n }\n\n return new Literal(value, null, DataFactory.namedNode(languageOrDatatype))\n }\n\n return new Literal(value, null, languageOrDatatype)\n}\n\nfunction variable (value) {\n return new Variable(value)\n}\n\nfunction defaultGraph () {\n return DataFactory.defaultGraphInstance\n}\n\nfunction triple (subject, predicate, object) {\n return DataFactory.quad(subject, predicate, object)\n}\n\nfunction quad (subject, predicate, object, graph) {\n return new Quad(subject, predicate, object, graph || DataFactory.defaultGraphInstance)\n}\n\nfunction fromTerm (original) {\n return fromTermRaw.call(DataFactory, original)\n}\n\nfunction fromQuad (original) {\n return fromTermRaw.call(DataFactory, original)\n}\n\nconst DataFactory = {\n namedNode,\n blankNode,\n literal,\n variable,\n defaultGraph,\n triple,\n quad,\n fromTerm,\n fromQuad,\n defaultGraphInstance: new DefaultGraph()\n}\n\nmodule.exports = DataFactory\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@rdfjs/data-model/lib/DataFactory.js?"); + +/***/ }), + +/***/ "./node_modules/@rdfjs/data-model/lib/DefaultGraph.js": +/*!************************************************************!*\ + !*** ./node_modules/@rdfjs/data-model/lib/DefaultGraph.js ***! + \************************************************************/ +/***/ ((module) => { + +eval("class DefaultGraph {\n equals (other) {\n return !!other && other.termType === this.termType\n }\n}\n\nDefaultGraph.prototype.termType = 'DefaultGraph'\nDefaultGraph.prototype.value = ''\n\nmodule.exports = DefaultGraph\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@rdfjs/data-model/lib/DefaultGraph.js?"); + +/***/ }), + +/***/ "./node_modules/@rdfjs/data-model/lib/Literal.js": +/*!*******************************************************!*\ + !*** ./node_modules/@rdfjs/data-model/lib/Literal.js ***! + \*******************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +eval("const NamedNode = __webpack_require__(/*! ./NamedNode.js */ \"./node_modules/@rdfjs/data-model/lib/NamedNode.js\")\n\nclass Literal {\n constructor (value, language, datatype) {\n this.value = value\n this.datatype = Literal.stringDatatype\n this.language = ''\n\n if (language) {\n this.language = language\n this.datatype = Literal.langStringDatatype\n } else if (datatype) {\n this.datatype = datatype\n }\n }\n\n equals (other) {\n return !!other && other.termType === this.termType && other.value === this.value &&\n other.language === this.language && other.datatype.equals(this.datatype)\n }\n}\n\nLiteral.prototype.termType = 'Literal'\n\nLiteral.langStringDatatype = new NamedNode('http://www.w3.org/1999/02/22-rdf-syntax-ns#langString')\nLiteral.stringDatatype = new NamedNode('http://www.w3.org/2001/XMLSchema#string')\n\nmodule.exports = Literal\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@rdfjs/data-model/lib/Literal.js?"); + +/***/ }), + +/***/ "./node_modules/@rdfjs/data-model/lib/NamedNode.js": +/*!*********************************************************!*\ + !*** ./node_modules/@rdfjs/data-model/lib/NamedNode.js ***! + \*********************************************************/ +/***/ ((module) => { + +eval("class NamedNode {\n constructor (iri) {\n this.value = iri\n }\n\n equals (other) {\n return !!other && other.termType === this.termType && other.value === this.value\n }\n}\n\nNamedNode.prototype.termType = 'NamedNode'\n\nmodule.exports = NamedNode\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@rdfjs/data-model/lib/NamedNode.js?"); + +/***/ }), + +/***/ "./node_modules/@rdfjs/data-model/lib/Quad.js": +/*!****************************************************!*\ + !*** ./node_modules/@rdfjs/data-model/lib/Quad.js ***! + \****************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +eval("const DefaultGraph = __webpack_require__(/*! ./DefaultGraph.js */ \"./node_modules/@rdfjs/data-model/lib/DefaultGraph.js\")\n\nclass Quad {\n constructor (subject, predicate, object, graph) {\n this.subject = subject\n this.predicate = predicate\n this.object = object\n\n if (graph) {\n this.graph = graph\n } else {\n this.graph = new DefaultGraph()\n }\n }\n\n equals (other) {\n // `|| !other.termType` is for backwards-compatibility with old factories without RDF* support.\n return !!other && (other.termType === 'Quad' || !other.termType) &&\n other.subject.equals(this.subject) && other.predicate.equals(this.predicate) &&\n other.object.equals(this.object) && other.graph.equals(this.graph)\n }\n}\n\nQuad.prototype.termType = 'Quad'\nQuad.prototype.value = ''\n\nmodule.exports = Quad\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@rdfjs/data-model/lib/Quad.js?"); + +/***/ }), + +/***/ "./node_modules/@rdfjs/data-model/lib/Variable.js": +/*!********************************************************!*\ + !*** ./node_modules/@rdfjs/data-model/lib/Variable.js ***! + \********************************************************/ +/***/ ((module) => { + +eval("class Variable {\n constructor (name) {\n this.value = name\n }\n\n equals (other) {\n return !!other && other.termType === this.termType && other.value === this.value\n }\n}\n\nVariable.prototype.termType = 'Variable'\n\nmodule.exports = Variable\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@rdfjs/data-model/lib/Variable.js?"); + +/***/ }), + +/***/ "./node_modules/@rdfjs/data-model/lib/fromTerm.js": +/*!********************************************************!*\ + !*** ./node_modules/@rdfjs/data-model/lib/fromTerm.js ***! + \********************************************************/ +/***/ ((module) => { + +eval("function fromTerm (original) {\n if (!original) {\n return null\n }\n\n if (original.termType === 'BlankNode') {\n return this.blankNode(original.value)\n }\n\n if (original.termType === 'DefaultGraph') {\n return this.defaultGraph()\n }\n\n if (original.termType === 'Literal') {\n return this.literal(original.value, original.language || this.namedNode(original.datatype.value))\n }\n\n if (original.termType === 'NamedNode') {\n return this.namedNode(original.value)\n }\n\n if (original.termType === 'Quad') {\n const subject = this.fromTerm(original.subject)\n const predicate = this.fromTerm(original.predicate)\n const object = this.fromTerm(original.object)\n const graph = this.fromTerm(original.graph)\n\n return this.quad(subject, predicate, object, graph)\n }\n\n if (original.termType === 'Variable') {\n return this.variable(original.value)\n }\n\n throw new Error(`unknown termType ${original.termType}`)\n}\n\nmodule.exports = fromTerm\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@rdfjs/data-model/lib/fromTerm.js?"); + +/***/ }), + +/***/ "./node_modules/@rdfjs/dataset/DatasetCore.js": +/*!****************************************************!*\ + !*** ./node_modules/@rdfjs/dataset/DatasetCore.js ***! + \****************************************************/ +/***/ ((module) => { + +eval("function isString (s) {\n return typeof s === 'string' || s instanceof String\n}\n\nconst xsdString = 'http://www.w3.org/2001/XMLSchema#string'\n\nfunction termToId (term) {\n if (typeof term === 'string') {\n return term\n }\n\n if (!term) {\n return ''\n }\n\n if (typeof term.id !== 'undefined' && term.termType !== 'Quad') {\n return term.id\n }\n\n let subject, predicate, object, graph\n\n // Term instantiated with another library\n switch (term.termType) {\n case 'NamedNode':\n return term.value\n\n case 'BlankNode':\n return `_:${term.value}`\n\n case 'Variable':\n return `?${term.value}`\n\n case 'DefaultGraph':\n return ''\n\n case 'Literal':\n if (term.language) {\n return `\"${term.value}\"@${term.language}`\n }\n\n return `\"${term.value}\"${term.datatype && term.datatype.value !== xsdString ? `^^${term.datatype.value}` : ''}`\n\n case 'Quad':\n // To identify RDF* quad components, we escape quotes by doubling them.\n // This avoids the overhead of backslash parsing of Turtle-like syntaxes.\n subject = escapeQuotes(termToId(term.subject))\n predicate = escapeQuotes(termToId(term.predicate))\n object = escapeQuotes(termToId(term.object))\n graph = term.graph.termType === 'DefaultGraph' ? '' : ` ${termToId(term.graph)}`\n\n return `<<${subject} ${predicate} ${object}${graph}>>`\n\n default:\n throw new Error(`Unexpected termType: ${term.termType}`)\n }\n}\n\nconst escapedLiteral = /^\"(.*\".*)(?=\"[^\"]*$)/\n\nfunction escapeQuotes (id) {\n return id.replace(escapedLiteral, (_, quoted) => `\"${quoted.replace(/\"/g, '\"\"')}`)\n}\n\nclass DatasetCore {\n constructor (quads) {\n // The number of quads is initially zero\n this._size = 0\n // `_graphs` contains subject, predicate, and object indexes per graph\n this._graphs = Object.create(null)\n // `_ids` maps entities such as `http://xmlns.com/foaf/0.1/name` to numbers,\n // saving memory by using only numbers as keys in `_graphs`\n this._id = 0\n this._ids = Object.create(null)\n this._ids['><'] = 0 // dummy entry, so the first actual key is non-zero\n this._entities = Object.create(null) // inverse of `_ids`\n\n this._quads = new Map()\n\n // Add quads if passed\n if (quads) {\n for (const quad of quads) {\n this.add(quad)\n }\n }\n }\n\n get size () {\n // Return the quad count if if was cached\n let size = this._size\n\n if (size !== null) {\n return size\n }\n\n // Calculate the number of quads by counting to the deepest level\n size = 0\n const graphs = this._graphs\n let subjects, subject\n\n for (const graphKey in graphs) {\n for (const subjectKey in (subjects = graphs[graphKey].subjects)) {\n for (const predicateKey in (subject = subjects[subjectKey])) {\n size += Object.keys(subject[predicateKey]).length\n }\n }\n }\n\n this._size = size\n\n return this._size\n }\n\n add (quad) {\n // Convert terms to internal string representation\n let subject = termToId(quad.subject)\n let predicate = termToId(quad.predicate)\n let object = termToId(quad.object)\n const graph = termToId(quad.graph)\n\n // Find the graph that will contain the triple\n let graphItem = this._graphs[graph]\n // Create the graph if it doesn't exist yet\n if (!graphItem) {\n graphItem = this._graphs[graph] = { subjects: {}, predicates: {}, objects: {} }\n // Freezing a graph helps subsequent `add` performance,\n // and properties will never be modified anyway\n Object.freeze(graphItem)\n }\n\n // Since entities can often be long IRIs, we avoid storing them in every index.\n // Instead, we have a separate index that maps entities to numbers,\n // which are then used as keys in the other indexes.\n const ids = this._ids\n const entities = this._entities\n subject = ids[subject] || (ids[entities[++this._id] = subject] = this._id)\n predicate = ids[predicate] || (ids[entities[++this._id] = predicate] = this._id)\n object = ids[object] || (ids[entities[++this._id] = object] = this._id)\n\n this._addToIndex(graphItem.subjects, subject, predicate, object)\n this._addToIndex(graphItem.predicates, predicate, object, subject)\n this._addToIndex(graphItem.objects, object, subject, predicate)\n\n this._setQuad(subject, predicate, object, graph, quad)\n\n // The cached quad count is now invalid\n this._size = null\n\n return this\n }\n\n delete (quad) {\n // Convert terms to internal string representation\n let subject = termToId(quad.subject)\n let predicate = termToId(quad.predicate)\n let object = termToId(quad.object)\n const graph = termToId(quad.graph)\n\n // Find internal identifiers for all components\n // and verify the quad exists.\n const ids = this._ids\n const graphs = this._graphs\n let graphItem, subjects, predicates\n\n if (!(subject = ids[subject]) || !(predicate = ids[predicate]) ||\n !(object = ids[object]) || !(graphItem = graphs[graph]) ||\n !(subjects = graphItem.subjects[subject]) ||\n !(predicates = subjects[predicate]) ||\n !(object in predicates)\n ) {\n return this\n }\n\n // Remove it from all indexes\n this._removeFromIndex(graphItem.subjects, subject, predicate, object)\n this._removeFromIndex(graphItem.predicates, predicate, object, subject)\n this._removeFromIndex(graphItem.objects, object, subject, predicate)\n\n if (this._size !== null) {\n this._size--\n }\n\n this._deleteQuad(subject, predicate, object, graph)\n\n // Remove the graph if it is empty\n for (subject in graphItem.subjects) { // eslint-disable-line no-unreachable-loop\n return this\n }\n\n delete graphs[graph]\n\n return this\n }\n\n has (quad) {\n // Convert terms to internal string representation\n const subject = termToId(quad.subject)\n const predicate = termToId(quad.predicate)\n const object = termToId(quad.object)\n const graph = termToId(quad.graph)\n\n const graphItem = this._graphs[graph]\n\n if (!graphItem) {\n return false\n }\n\n const ids = this._ids\n let subjectId, predicateId, objectId\n\n // Translate IRIs to internal index keys.\n if (\n (isString(subject) && !(subjectId = ids[subject])) ||\n (isString(predicate) && !(predicateId = ids[predicate])) ||\n (isString(object) && !(objectId = ids[object]))\n ) {\n return false\n }\n\n return this._countInIndex(graphItem.objects, objectId, subjectId, predicateId) === 1\n }\n\n match (subject, predicate, object, graph) {\n return this._createDataset(this._match(subject, predicate, object, graph))\n }\n\n [Symbol.iterator] () {\n return this._match()[Symbol.iterator]()\n }\n\n // ## Private methods\n\n // ### `_addToIndex` adds a quad to a three-layered index.\n // Returns if the index has changed, if the entry did not already exist.\n _addToIndex (index0, key0, key1, key2) {\n // Create layers as necessary\n const index1 = index0[key0] || (index0[key0] = {})\n const index2 = index1[key1] || (index1[key1] = {})\n // Setting the key to _any_ value signals the presence of the quad\n const existed = key2 in index2\n\n if (!existed) {\n index2[key2] = null\n }\n\n return !existed\n }\n\n // ### `_removeFromIndex` removes a quad from a three-layered index\n _removeFromIndex (index0, key0, key1, key2) {\n // Remove the quad from the index\n const index1 = index0[key0]\n const index2 = index1[key1]\n delete index2[key2]\n\n // Remove intermediary index layers if they are empty\n for (const key in index2) { // eslint-disable-line no-unreachable-loop\n return\n }\n\n delete index1[key1]\n\n for (const key in index1) { // eslint-disable-line no-unreachable-loop\n return\n }\n\n delete index0[key0]\n }\n\n // ### `_findInIndex` finds a set of quads in a three-layered index.\n // The index base is `index0` and the keys at each level are `key0`, `key1`, and `key2`.\n // Any of these keys can be undefined, which is interpreted as a wildcard.\n // `name0`, `name1`, and `name2` are the names of the keys at each level,\n // used when reconstructing the resulting quad\n // (for instance: _subject_, _predicate_, and _object_).\n // Finally, `graph` will be the graph of the created quads.\n // If `callback` is given, each result is passed through it\n // and iteration halts when it returns truthy for any quad.\n // If instead `array` is given, each result is added to the array.\n _findInIndex (index0, key0, key1, key2, name0, name1, name2, graph, callback, array) {\n let tmp, index1, index2\n\n // If a key is specified, use only that part of index 0.\n if (key0) {\n (tmp = index0, index0 = {})[key0] = tmp[key0]\n }\n\n for (const value0 in index0) {\n index1 = index0[value0]\n\n if (index1) {\n // If a key is specified, use only that part of index 1.\n if (key1) {\n (tmp = index1, index1 = {})[key1] = tmp[key1]\n }\n\n for (const value1 in index1) {\n index2 = index1[value1]\n\n if (index2) {\n // If a key is specified, use only that part of index 2, if it exists.\n const values = key2 ? (key2 in index2 ? [key2] : []) : Object.keys(index2)\n // Create quads for all items found in index 2.\n for (let l = 0; l < values.length; l++) {\n const parts = {\n [name0]: value0,\n [name1]: value1,\n [name2]: values[l]\n }\n\n const quad = this._getQuad(parts.subject, parts.predicate, parts.object, graph)\n\n if (array) {\n array.push(quad)\n } else if (callback(quad)) {\n return true\n }\n }\n }\n }\n }\n }\n\n return array\n }\n\n // ### `_countInIndex` counts matching quads in a three-layered index.\n // The index base is `index0` and the keys at each level are `key0`, `key1`, and `key2`.\n // Any of these keys can be undefined, which is interpreted as a wildcard.\n _countInIndex (index0, key0, key1, key2) {\n let count = 0\n let tmp, index1, index2\n\n // If a key is specified, count only that part of index 0\n if (key0) {\n (tmp = index0, index0 = {})[key0] = tmp[key0]\n }\n\n for (const value0 in index0) {\n index1 = index0[value0]\n\n if (index1) {\n // If a key is specified, count only that part of index 1\n if (key1) {\n (tmp = index1, index1 = {})[key1] = tmp[key1]\n }\n\n for (const value1 in index1) {\n index2 = index1[value1]\n\n if (index2) {\n if (key2) {\n // If a key is specified, count the quad if it exists\n (key2 in index2) && count++\n } else {\n // Otherwise, count all quads\n count += Object.keys(index2).length\n }\n }\n }\n }\n }\n\n return count\n }\n\n // ### `_getGraphs` returns an array with the given graph,\n // or all graphs if the argument is null or undefined.\n _getGraphs (graph) {\n if (!isString(graph)) {\n return this._graphs\n }\n\n return {\n [graph]: this._graphs[graph]\n }\n }\n\n _match (subject, predicate, object, graph) {\n // Convert terms to internal string representation\n subject = subject && termToId(subject)\n predicate = predicate && termToId(predicate)\n object = object && termToId(object)\n graph = graph && termToId(graph)\n\n const quads = []\n const graphs = this._getGraphs(graph)\n const ids = this._ids\n let content, subjectId, predicateId, objectId\n\n // Translate IRIs to internal index keys.\n if (\n (isString(subject) && !(subjectId = ids[subject])) ||\n (isString(predicate) && !(predicateId = ids[predicate])) ||\n (isString(object) && !(objectId = ids[object]))\n ) {\n return quads\n }\n\n for (const graphId in graphs) {\n content = graphs[graphId]\n\n // Only if the specified graph contains triples, there can be results\n if (content) {\n // Choose the optimal index, based on what fields are present\n if (subjectId) {\n if (objectId) {\n // If subject and object are given, the object index will be the fastest\n this._findInIndex(content.objects, objectId, subjectId, predicateId, 'object', 'subject', 'predicate', graphId, null, quads)\n } else {\n // If only subject and possibly predicate are given, the subject index will be the fastest\n this._findInIndex(content.subjects, subjectId, predicateId, null, 'subject', 'predicate', 'object', graphId, null, quads)\n }\n } else if (predicateId) {\n // if only predicate and possibly object are given, the predicate index will be the fastest\n this._findInIndex(content.predicates, predicateId, objectId, null, 'predicate', 'object', 'subject', graphId, null, quads)\n } else if (objectId) {\n // If only object is given, the object index will be the fastest\n this._findInIndex(content.objects, objectId, null, null, 'object', 'subject', 'predicate', graphId, null, quads)\n } else {\n // If nothing is given, iterate subjects and predicates first\n this._findInIndex(content.subjects, null, null, null, 'subject', 'predicate', 'object', graphId, null, quads)\n }\n }\n }\n\n return quads\n }\n\n _getQuad (subjectId, predicateId, objectId, graphId) {\n return this._quads.get(this._toId(subjectId, predicateId, objectId, graphId))\n }\n\n _setQuad (subjectId, predicateId, objectId, graphId, quad) {\n this._quads.set(this._toId(subjectId, predicateId, objectId, graphId), quad)\n }\n\n _deleteQuad (subjectId, predicateId, objectId, graphId) {\n this._quads.delete(this._toId(subjectId, predicateId, objectId, graphId))\n }\n\n _createDataset (quads) {\n return new this.constructor(quads)\n }\n\n _toId (subjectId, predicateId, objectId, graphId) {\n return `${subjectId}:${predicateId}:${objectId}:${graphId}`\n }\n}\n\nmodule.exports = DatasetCore\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@rdfjs/dataset/DatasetCore.js?"); + +/***/ }), + +/***/ "./node_modules/@rdfjs/dataset/index.js": +/*!**********************************************!*\ + !*** ./node_modules/@rdfjs/dataset/index.js ***! + \**********************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +eval("const rdf = __webpack_require__(/*! @rdfjs/data-model */ \"./node_modules/@rdfjs/data-model/index.js\")\nconst DatasetCore = __webpack_require__(/*! ./DatasetCore */ \"./node_modules/@rdfjs/dataset/DatasetCore.js\")\n\nfunction dataset (quads) {\n return new DatasetCore(quads)\n}\n\nmodule.exports = Object.assign({ dataset }, rdf)\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@rdfjs/dataset/index.js?"); + +/***/ }), + +/***/ "./node_modules/cross-fetch/dist/browser-ponyfill.js": +/*!***********************************************************!*\ + !*** ./node_modules/cross-fetch/dist/browser-ponyfill.js ***! + \***********************************************************/ +/***/ (function(module, exports) { + +eval("var global = typeof self !== 'undefined' ? self : this;\nvar __self__ = (function () {\nfunction F() {\nthis.fetch = false;\nthis.DOMException = global.DOMException\n}\nF.prototype = global;\nreturn new F();\n})();\n(function(self) {\n\nvar irrelevant = (function (exports) {\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = 'statusText' in options ? options.statusText : 'OK';\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = self.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n resolve(new Response(body, options));\n };\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.onabort = function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n };\n\n xhr.open(request.method, request.url, true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob';\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!self.fetch) {\n self.fetch = fetch;\n self.Headers = Headers;\n self.Request = Request;\n self.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n return exports;\n\n}({}));\n})(__self__);\n__self__.fetch.ponyfill = true;\n// Remove \"polyfill\" property added by whatwg-fetch\ndelete __self__.fetch.polyfill;\n// Choose between native implementation (global) or custom implementation (__self__)\n// var ctx = global.fetch ? global : __self__;\nvar ctx = __self__; // this line disable service worker support temporarily\nexports = ctx.fetch // To enable: import fetch from 'cross-fetch'\nexports.default = ctx.fetch // For TypeScript consumers without esModuleInterop.\nexports.fetch = ctx.fetch // To enable: import {fetch} from 'cross-fetch'\nexports.Headers = ctx.Headers\nexports.Request = ctx.Request\nexports.Response = ctx.Response\nmodule.exports = exports\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/cross-fetch/dist/browser-ponyfill.js?"); + +/***/ }), + +/***/ "./node_modules/events/events.js": +/*!***************************************!*\ + !*** ./node_modules/events/events.js ***! + \***************************************/ +/***/ ((module) => { + +"use strict"; +eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/events/events.js?"); + +/***/ }), + +/***/ "./node_modules/form-urlencoded/form-urlencoded.mjs": +/*!**********************************************************!*\ + !*** ./node_modules/form-urlencoded/form-urlencoded.mjs ***! + \**********************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((data, opts = {}) => {\n const {\n sorted, skipIndex, ignorenull, skipBracket, useDot, whitespace = '+'\n } = opts;\n\n const encode = value => String(value)\n .replace(/[^ !'()~*]/gu, encodeURIComponent)\n .replace(/ /g, whitespace)\n .replace(/[!'()~*]/g, ch =>\n `%${ch.charCodeAt().toString(16).slice(-2).toUpperCase()}`);\n\n const keys = (obj, keyarr = Object.keys(obj)) =>\n sorted ? keyarr.sort() : keyarr;\n\n const filterjoin = arr => arr.filter(e => e).join('&');\n\n const objnest = (name, obj) => filterjoin(keys(obj).map(key => useDot\n ? nest(`${name}.${key}`, obj[key])\n : nest(`${name}[${key}]`, obj[key])));\n\n const arrnest = (name, arr, brackets = skipBracket ? '' : '[]') => arr.length\n ? filterjoin(arr.map((elem, index) => skipIndex\n ? nest(name + brackets, elem)\n : nest(name + '[' + index + ']', elem)))\n : encode(name + brackets);\n\n const setnest = (name, set) => filterjoin(\n Array.from(set).map(elem => nest(name, elem)));\n\n const nest = (name, value, type = typeof value, f = null) => {\n if (value === f)\n f = ignorenull ? f : encode(name) + '=' + f;\n else if (/string|number|boolean/.test(type))\n f = encode(name) + '=' + encode(value);\n else if (Array.isArray(value))\n f = arrnest(name, value);\n else if (value instanceof Set)\n f = setnest(name, value);\n else if (type === 'object')\n f = objnest(name, value);\n\n return f;\n };\n\n return data && filterjoin(keys(data).map(key => nest(key, data[key])));\n});\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/form-urlencoded/form-urlencoded.mjs?"); + +/***/ }), + +/***/ "./node_modules/http-link-header/lib/link.js": +/*!***************************************************!*\ + !*** ./node_modules/http-link-header/lib/link.js ***! + \***************************************************/ +/***/ ((module) => { + +"use strict"; +eval("\n\nvar COMPATIBLE_ENCODING_PATTERN = /^utf-?8|ascii|utf-?16-?le|ucs-?2|base-?64|latin-?1$/i\nvar WS_TRIM_PATTERN = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g\nvar WS_CHAR_PATTERN = /\\s|\\uFEFF|\\xA0/\nvar WS_FOLD_PATTERN = /\\r?\\n[\\x20\\x09]+/g\nvar DELIMITER_PATTERN = /[;,\"]/\nvar WS_DELIMITER_PATTERN = /[;,\"]|\\s/\n\n/**\n * Token character pattern\n * @type {RegExp}\n * @see https://tools.ietf.org/html/rfc7230#section-3.2.6\n */\nvar TOKEN_PATTERN = /^[!#$%&'*+\\-\\.^_`|~\\da-zA-Z]+$/\n\nvar STATE = {\n IDLE: 1 << 0,\n URI: 1 << 1,\n ATTR: 1 << 2,\n}\n\nfunction trim( value ) {\n return value.replace( WS_TRIM_PATTERN, '' )\n}\n\nfunction hasWhitespace( value ) {\n return WS_CHAR_PATTERN.test( value )\n}\n\nfunction skipWhitespace( value, offset ) {\n while( hasWhitespace( value[offset] ) ) {\n offset++\n }\n return offset\n}\n\nfunction needsQuotes( value ) {\n return WS_DELIMITER_PATTERN.test( value ) ||\n !TOKEN_PATTERN.test( value )\n}\n\nclass Link {\n\n /**\n * Link\n * @constructor\n * @param {String} [value]\n * @returns {Link}\n */\n constructor( value ) {\n\n /** @type {Array} URI references */\n this.refs = []\n\n if( value ) {\n this.parse( value )\n }\n\n }\n\n /**\n * Get refs with given relation type\n * @param {String} value\n * @returns {Array}\n */\n rel( value ) {\n\n var links = []\n var type = value.toLowerCase()\n\n for( var i = 0; i < this.refs.length; i++ ) {\n if( this.refs[ i ].rel.toLowerCase() === type ) {\n links.push( this.refs[ i ] )\n }\n }\n\n return links\n\n }\n\n /**\n * Get refs where given attribute has a given value\n * @param {String} attr\n * @param {String} value\n * @returns {Array}\n */\n get( attr, value ) {\n\n attr = attr.toLowerCase()\n\n var links = []\n\n for( var i = 0; i < this.refs.length; i++ ) {\n if( this.refs[ i ][ attr ] === value ) {\n links.push( this.refs[ i ] )\n }\n }\n\n return links\n\n }\n\n set( link ) {\n this.refs.push( link )\n return this\n }\n\n has( attr, value ) {\n\n attr = attr.toLowerCase()\n\n for( var i = 0; i < this.refs.length; i++ ) {\n if( this.refs[ i ][ attr ] === value ) {\n return true\n }\n }\n\n return false\n\n }\n\n parse( value, offset ) {\n\n offset = offset || 0\n value = offset ? value.slice( offset ) : value\n\n // Trim & unfold folded lines\n value = trim( value ).replace( WS_FOLD_PATTERN, '' )\n\n var state = STATE.IDLE\n var length = value.length\n var offset = 0\n var ref = null\n\n while( offset < length ) {\n if( state === STATE.IDLE ) {\n if( hasWhitespace( value[offset] ) ) {\n offset++\n continue\n } else if( value[offset] === '<' ) {\n if( ref != null ) {\n ref.rel != null ?\n this.refs.push( ...Link.expandRelations( ref ) ) :\n this.refs.push( ref )\n }\n var end = value.indexOf( '>', offset )\n if( end === -1 ) throw new Error( 'Expected end of URI delimiter at offset ' + offset )\n ref = { uri: value.slice( offset + 1, end ) }\n // this.refs.push( ref )\n offset = end\n state = STATE.URI\n } else {\n throw new Error( 'Unexpected character \"' + value[offset] + '\" at offset ' + offset )\n }\n offset++\n } else if( state === STATE.URI ) {\n if( hasWhitespace( value[offset] ) ) {\n offset++\n continue\n } else if( value[offset] === ';' ) {\n state = STATE.ATTR\n offset++\n } else if( value[offset] === ',' ) {\n state = STATE.IDLE\n offset++\n } else {\n throw new Error( 'Unexpected character \"' + value[offset] + '\" at offset ' + offset )\n }\n } else if( state === STATE.ATTR ) {\n if( value[offset] ===';' || hasWhitespace( value[offset] ) ) {\n offset++\n continue\n }\n var end = value.indexOf( '=', offset )\n if( end === -1 ) throw new Error( 'Expected attribute delimiter at offset ' + offset )\n var attr = trim( value.slice( offset, end ) ).toLowerCase()\n var attrValue = ''\n offset = end + 1\n offset = skipWhitespace( value, offset )\n if( value[offset] === '\"' ) {\n offset++\n while( offset < length ) {\n if( value[offset] === '\"' ) {\n offset++; break\n }\n if( value[offset] === '\\\\' ) {\n offset++\n }\n attrValue += value[offset]\n offset++\n }\n } else {\n var end = offset + 1\n while( !DELIMITER_PATTERN.test( value[end] ) && end < length ) {\n end++\n }\n attrValue = value.slice( offset, end )\n offset = end\n }\n if( ref[ attr ] && Link.isSingleOccurenceAttr( attr ) ) {\n // Ignore multiples of attributes which may only appear once\n } else if( attr[ attr.length - 1 ] === '*' ) {\n ref[ attr ] = Link.parseExtendedValue( attrValue )\n } else {\n attrValue = attr === 'type' ?\n attrValue.toLowerCase() : attrValue\n if( ref[ attr ] != null ) {\n if( Array.isArray( ref[ attr ] ) ) {\n ref[ attr ].push( attrValue )\n } else {\n ref[ attr ] = [ ref[ attr ], attrValue ]\n }\n } else {\n ref[ attr ] = attrValue\n }\n }\n switch( value[offset] ) {\n case ',': state = STATE.IDLE; break\n case ';': state = STATE.ATTR; break\n }\n offset++\n } else {\n throw new Error( 'Unknown parser state \"' + state + '\"' )\n }\n }\n\n if( ref != null ) {\n ref.rel != null ?\n this.refs.push( ...Link.expandRelations( ref ) ) :\n this.refs.push( ref )\n }\n\n ref = null\n\n return this\n\n }\n\n toString() {\n\n var refs = []\n var link = ''\n var ref = null\n\n for( var i = 0; i < this.refs.length; i++ ) {\n ref = this.refs[i]\n link = Object.keys( this.refs[i] ).reduce( function( link, attr ) {\n if( attr === 'uri' ) return link\n return link + '; ' + Link.formatAttribute( attr, ref[ attr ] )\n }, '<' + ref.uri + '>' )\n refs.push( link )\n }\n\n return refs.join( ', ' )\n\n }\n\n}\n\n/**\n * Determines whether an encoding can be\n * natively handled with a `Buffer`\n * @param {String} value\n * @returns {Boolean}\n */\nLink.isCompatibleEncoding = function( value ) {\n return COMPATIBLE_ENCODING_PATTERN.test( value )\n}\n\nLink.parse = function( value, offset ) {\n return new Link().parse( value, offset )\n}\n\nLink.isSingleOccurenceAttr = function( attr ) {\n return attr === 'rel' || attr === 'type' || attr === 'media' ||\n attr === 'title' || attr === 'title*'\n}\n\nLink.isTokenAttr = function( attr ) {\n return attr === 'rel' || attr === 'type' || attr === 'anchor'\n}\n\nLink.escapeQuotes = function( value ) {\n return value.replace( /\"/g, '\\\\\"' )\n}\n\nLink.expandRelations = function( ref ) {\n var rels = ref.rel.split( ' ' )\n return rels.map( function( rel ) {\n var value = Object.assign( {}, ref )\n value.rel = rel\n return value\n })\n}\n\n/**\n * Parses an extended value and attempts to decode it\n * @internal\n * @param {String} value\n * @return {Object}\n */\nLink.parseExtendedValue = function( value ) {\n var parts = /([^']+)?(?:'([^']+)')?(.+)/.exec( value )\n return {\n language: parts[2].toLowerCase(),\n encoding: Link.isCompatibleEncoding( parts[1] ) ?\n null : parts[1].toLowerCase(),\n value: Link.isCompatibleEncoding( parts[1] ) ?\n decodeURIComponent( parts[3] ) : parts[3]\n }\n}\n\n/**\n * Format a given extended attribute and it's value\n * @param {String} attr\n * @param {Object} data\n * @return {String}\n */\nLink.formatExtendedAttribute = function( attr, data ) {\n\n var encoding = ( data.encoding || 'utf-8' ).toUpperCase()\n var language = data.language || 'en'\n\n var encodedValue = ''\n\n if( Buffer.isBuffer( data.value ) && Link.isCompatibleEncoding( encoding ) ) {\n encodedValue = data.value.toString( encoding )\n } else if( Buffer.isBuffer( data.value ) ) {\n encodedValue = data.value.toString( 'hex' )\n .replace( /[0-9a-f]{2}/gi, '%$1' )\n } else {\n encodedValue = encodeURIComponent( data.value )\n }\n\n return attr + '=' + encoding + '\\'' +\n language + '\\'' + encodedValue\n\n}\n\n/**\n * Format a given attribute and it's value\n * @param {String} attr\n * @param {String|Object} value\n * @return {String}\n */\nLink.formatAttribute = function( attr, value ) {\n\n if( Array.isArray( value ) ) {\n return value.map(( item ) => {\n return Link.formatAttribute( attr, item )\n }).join( '; ' )\n }\n\n if( attr[ attr.length - 1 ] === '*' || typeof value !== 'string' ) {\n return Link.formatExtendedAttribute( attr, value )\n }\n\n if( Link.isTokenAttr( attr ) ) {\n value = needsQuotes( value ) ?\n '\"' + Link.escapeQuotes( value ) + '\"' :\n Link.escapeQuotes( value )\n } else if( needsQuotes( value ) ) {\n value = encodeURIComponent( value )\n // We don't need to escape <,> <;> within quotes\n value = value\n .replace( /%20/g, ' ' )\n .replace( /%2C/g, ',' )\n .replace( /%3B/g, ';' )\n\n value = '\"' + value + '\"'\n }\n\n return attr + '=' + value\n\n}\n\nmodule.exports = Link\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/http-link-header/lib/link.js?"); + +/***/ }), + +/***/ "./node_modules/oidc-client/lib/oidc-client.min.js": +/*!*********************************************************!*\ + !*** ./node_modules/oidc-client/lib/oidc-client.min.js ***! + \*********************************************************/ +/***/ (function(module) { + +eval("!function t(e,r){if(true)module.exports=r();else { var i, n; }}(this,(function(){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var i=e[n]={i:n,l:!1,exports:{}};return t[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var i in t)r.d(n,i,function(e){return t[e]}.bind(null,i));return n},r.n=function(t){var e=t&&t.__esModule?function e(){return t.default}:function e(){return t};return r.d(e,\"a\",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p=\"\",r(r.s=22)}([function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0});var n=function(){function t(t,e){for(var r=0;r=4){for(var e=arguments.length,r=Array(e),n=0;n=3){for(var e=arguments.length,r=Array(e),n=0;n=2){for(var e=arguments.length,r=Array(e),n=0;n=1){for(var e=arguments.length,r=Array(e),n=0;n1&&void 0!==arguments[1]?arguments[1]:o.JsonService;if(s(this,t),!e)throw i.Log.error(\"MetadataService: No settings passed to MetadataService\"),new Error(\"settings\");this._settings=e,this._jsonService=new r([\"application/jwk-set+json\"])}return t.prototype.resetSigningKeys=function t(){this._settings=this._settings||{},this._settings.signingKeys=void 0},t.prototype.getMetadata=function t(){var e=this;return this._settings.metadata?(i.Log.debug(\"MetadataService.getMetadata: Returning metadata from settings\"),Promise.resolve(this._settings.metadata)):this.metadataUrl?(i.Log.debug(\"MetadataService.getMetadata: getting metadata from\",this.metadataUrl),this._jsonService.getJson(this.metadataUrl).then((function(t){i.Log.debug(\"MetadataService.getMetadata: json received\");var r=e._settings.metadataSeed||{};return e._settings.metadata=Object.assign({},r,t),e._settings.metadata}))):(i.Log.error(\"MetadataService.getMetadata: No authority or metadataUrl configured on settings\"),Promise.reject(new Error(\"No authority or metadataUrl configured on settings\")))},t.prototype.getIssuer=function t(){return this._getMetadataProperty(\"issuer\")},t.prototype.getAuthorizationEndpoint=function t(){return this._getMetadataProperty(\"authorization_endpoint\")},t.prototype.getUserInfoEndpoint=function t(){return this._getMetadataProperty(\"userinfo_endpoint\")},t.prototype.getTokenEndpoint=function t(){var e=!(arguments.length>0&&void 0!==arguments[0])||arguments[0];return this._getMetadataProperty(\"token_endpoint\",e)},t.prototype.getCheckSessionIframe=function t(){return this._getMetadataProperty(\"check_session_iframe\",!0)},t.prototype.getEndSessionEndpoint=function t(){return this._getMetadataProperty(\"end_session_endpoint\",!0)},t.prototype.getRevocationEndpoint=function t(){return this._getMetadataProperty(\"revocation_endpoint\",!0)},t.prototype.getKeysEndpoint=function t(){return this._getMetadataProperty(\"jwks_uri\",!0)},t.prototype._getMetadataProperty=function t(e){var r=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return i.Log.debug(\"MetadataService.getMetadataProperty for: \"+e),this.getMetadata().then((function(t){if(i.Log.debug(\"MetadataService.getMetadataProperty: metadata recieved\"),void 0===t[e]){if(!0===r)return void i.Log.warn(\"MetadataService.getMetadataProperty: Metadata does not contain optional property \"+e);throw i.Log.error(\"MetadataService.getMetadataProperty: Metadata does not contain property \"+e),new Error(\"Metadata does not contain property \"+e)}return t[e]}))},t.prototype.getSigningKeys=function t(){var e=this;return this._settings.signingKeys?(i.Log.debug(\"MetadataService.getSigningKeys: Returning signingKeys from settings\"),Promise.resolve(this._settings.signingKeys)):this._getMetadataProperty(\"jwks_uri\").then((function(t){return i.Log.debug(\"MetadataService.getSigningKeys: jwks_uri received\",t),e._jsonService.getJson(t).then((function(t){if(i.Log.debug(\"MetadataService.getSigningKeys: key set received\",t),!t.keys)throw i.Log.error(\"MetadataService.getSigningKeys: Missing keys on keyset\"),new Error(\"Missing keys on keyset\");return e._settings.signingKeys=t.keys,e._settings.signingKeys}))}))},n(t,[{key:\"metadataUrl\",get:function t(){return this._metadataUrl||(this._settings.metadataUrl?this._metadataUrl=this._settings.metadataUrl:(this._metadataUrl=this._settings.authority,this._metadataUrl&&this._metadataUrl.indexOf(a)<0&&(\"/\"!==this._metadataUrl[this._metadataUrl.length-1]&&(this._metadataUrl+=\"/\"),this._metadataUrl+=a))),this._metadataUrl}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.UrlUtility=void 0;var n=r(0),i=r(1);e.UrlUtility=function(){function t(){!function e(t,r){if(!(t instanceof r))throw new TypeError(\"Cannot call a class as a function\")}(this,t)}return t.addQueryParam=function t(e,r,n){return e.indexOf(\"?\")<0&&(e+=\"?\"),\"?\"!==e[e.length-1]&&(e+=\"&\"),e+=encodeURIComponent(r),e+=\"=\",e+=encodeURIComponent(n)},t.parseUrlFragment=function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"#\",o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.Global;\"string\"!=typeof e&&(e=o.location.href);var s=e.lastIndexOf(r);s>=0&&(e=e.substr(s+1)),\"?\"===r&&(s=e.indexOf(\"#\"))>=0&&(e=e.substr(0,s));for(var a,u={},c=/([^&=]+)=([^&]*)/g,h=0;a=c.exec(e);)if(u[decodeURIComponent(a[1])]=decodeURIComponent(a[2].replace(/\\+/g,\" \")),h++>50)return n.Log.error(\"UrlUtility.parseUrlFragment: response exceeded expected number of parameters\",e),{error:\"Response exceeded expected number of parameters\"};for(var l in u)return u;return{}},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.JoseUtil=void 0;var n=r(26),i=function o(t){return t&&t.__esModule?t:{default:t}}(r(33));e.JoseUtil=(0,i.default)({jws:n.jws,KeyUtil:n.KeyUtil,X509:n.X509,crypto:n.crypto,hextob64u:n.hextob64u,b64tohex:n.b64tohex,AllowedSigningAlgs:n.AllowedSigningAlgs})},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.OidcClientSettings=void 0;var n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},i=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},r=e.authority,i=e.metadataUrl,o=e.metadata,l=e.signingKeys,p=e.metadataSeed,v=e.client_id,y=e.client_secret,m=e.response_type,_=void 0===m?f:m,S=e.scope,b=void 0===S?g:S,w=e.redirect_uri,F=e.post_logout_redirect_uri,E=e.client_authentication,x=void 0===E?d:E,A=e.prompt,k=e.display,P=e.max_age,C=e.ui_locales,T=e.acr_values,R=e.resource,I=e.response_mode,D=e.filterProtocolClaims,L=void 0===D||D,N=e.loadUserInfo,U=void 0===N||N,B=e.staleStateAge,O=void 0===B?900:B,j=e.clockSkew,M=void 0===j?300:j,H=e.clockService,V=void 0===H?new s.ClockService:H,K=e.userInfoJwtIssuer,q=void 0===K?\"OP\":K,J=e.mergeClaims,W=void 0!==J&&J,z=e.stateStore,Y=void 0===z?new a.WebStorageStateStore:z,G=e.ResponseValidatorCtor,X=void 0===G?u.ResponseValidator:G,$=e.MetadataServiceCtor,Q=void 0===$?c.MetadataService:$,Z=e.extraQueryParams,tt=void 0===Z?{}:Z,et=e.extraTokenParams,rt=void 0===et?{}:et;h(this,t),this._authority=r,this._metadataUrl=i,this._metadata=o,this._metadataSeed=p,this._signingKeys=l,this._client_id=v,this._client_secret=y,this._response_type=_,this._scope=b,this._redirect_uri=w,this._post_logout_redirect_uri=F,this._client_authentication=x,this._prompt=A,this._display=k,this._max_age=P,this._ui_locales=C,this._acr_values=T,this._resource=R,this._response_mode=I,this._filterProtocolClaims=!!L,this._loadUserInfo=!!U,this._staleStateAge=O,this._clockSkew=M,this._clockService=V,this._userInfoJwtIssuer=q,this._mergeClaims=!!W,this._stateStore=Y,this._validator=new X(this),this._metadataService=new Q(this),this._extraQueryParams=\"object\"===(void 0===tt?\"undefined\":n(tt))?tt:{},this._extraTokenParams=\"object\"===(void 0===rt?\"undefined\":n(rt))?rt:{}}return t.prototype.getEpochTime=function t(){return this._clockService.getEpochTime()},i(t,[{key:\"client_id\",get:function t(){return this._client_id},set:function t(e){if(this._client_id)throw o.Log.error(\"OidcClientSettings.set_client_id: client_id has already been assigned.\"),new Error(\"client_id has already been assigned.\");this._client_id=e}},{key:\"client_secret\",get:function t(){return this._client_secret}},{key:\"response_type\",get:function t(){return this._response_type}},{key:\"scope\",get:function t(){return this._scope}},{key:\"redirect_uri\",get:function t(){return this._redirect_uri}},{key:\"post_logout_redirect_uri\",get:function t(){return this._post_logout_redirect_uri}},{key:\"client_authentication\",get:function t(){return this._client_authentication}},{key:\"prompt\",get:function t(){return this._prompt}},{key:\"display\",get:function t(){return this._display}},{key:\"max_age\",get:function t(){return this._max_age}},{key:\"ui_locales\",get:function t(){return this._ui_locales}},{key:\"acr_values\",get:function t(){return this._acr_values}},{key:\"resource\",get:function t(){return this._resource}},{key:\"response_mode\",get:function t(){return this._response_mode}},{key:\"authority\",get:function t(){return this._authority},set:function t(e){if(this._authority)throw o.Log.error(\"OidcClientSettings.set_authority: authority has already been assigned.\"),new Error(\"authority has already been assigned.\");this._authority=e}},{key:\"metadataUrl\",get:function t(){return this._metadataUrl||(this._metadataUrl=this.authority,this._metadataUrl&&this._metadataUrl.indexOf(l)<0&&(\"/\"!==this._metadataUrl[this._metadataUrl.length-1]&&(this._metadataUrl+=\"/\"),this._metadataUrl+=l)),this._metadataUrl}},{key:\"metadata\",get:function t(){return this._metadata},set:function t(e){this._metadata=e}},{key:\"metadataSeed\",get:function t(){return this._metadataSeed},set:function t(e){this._metadataSeed=e}},{key:\"signingKeys\",get:function t(){return this._signingKeys},set:function t(e){this._signingKeys=e}},{key:\"filterProtocolClaims\",get:function t(){return this._filterProtocolClaims}},{key:\"loadUserInfo\",get:function t(){return this._loadUserInfo}},{key:\"staleStateAge\",get:function t(){return this._staleStateAge}},{key:\"clockSkew\",get:function t(){return this._clockSkew}},{key:\"userInfoJwtIssuer\",get:function t(){return this._userInfoJwtIssuer}},{key:\"mergeClaims\",get:function t(){return this._mergeClaims}},{key:\"stateStore\",get:function t(){return this._stateStore}},{key:\"validator\",get:function t(){return this._validator}},{key:\"metadataService\",get:function t(){return this._metadataService}},{key:\"extraQueryParams\",get:function t(){return this._extraQueryParams},set:function t(e){\"object\"===(void 0===e?\"undefined\":n(e))?this._extraQueryParams=e:this._extraQueryParams={}}},{key:\"extraTokenParams\",get:function t(){return this._extraTokenParams},set:function t(e){\"object\"===(void 0===e?\"undefined\":n(e))?this._extraTokenParams=e:this._extraTokenParams={}}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.WebStorageStateStore=void 0;var n=r(0),i=r(1);function o(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.WebStorageStateStore=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.prefix,n=void 0===r?\"oidc.\":r,s=e.store,a=void 0===s?i.Global.localStorage:s;o(this,t),this._store=a,this._prefix=n}return t.prototype.set=function t(e,r){return n.Log.debug(\"WebStorageStateStore.set\",e),e=this._prefix+e,this._store.setItem(e,r),Promise.resolve()},t.prototype.get=function t(e){n.Log.debug(\"WebStorageStateStore.get\",e),e=this._prefix+e;var r=this._store.getItem(e);return Promise.resolve(r)},t.prototype.remove=function t(e){n.Log.debug(\"WebStorageStateStore.remove\",e),e=this._prefix+e;var r=this._store.getItem(e);return this._store.removeItem(e),Promise.resolve(r)},t.prototype.getAllKeys=function t(){n.Log.debug(\"WebStorageStateStore.getAllKeys\");for(var e=[],r=0;r0&&void 0!==arguments[0]?arguments[0]:null,r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:i.Global.XMLHttpRequest,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null;o(this,t),e&&Array.isArray(e)?this._contentTypes=e.slice():this._contentTypes=[],this._contentTypes.push(\"application/json\"),n&&this._contentTypes.push(\"application/jwt\"),this._XMLHttpRequest=r,this._jwtHandler=n}return t.prototype.getJson=function t(e,r){var i=this;if(!e)throw n.Log.error(\"JsonService.getJson: No url passed\"),new Error(\"url\");return n.Log.debug(\"JsonService.getJson, url: \",e),new Promise((function(t,o){var s=new i._XMLHttpRequest;s.open(\"GET\",e);var a=i._contentTypes,u=i._jwtHandler;s.onload=function(){if(n.Log.debug(\"JsonService.getJson: HTTP response received, status\",s.status),200===s.status){var r=s.getResponseHeader(\"Content-Type\");if(r){var i=a.find((function(t){if(r.startsWith(t))return!0}));if(\"application/jwt\"==i)return void u(s).then(t,o);if(i)try{return void t(JSON.parse(s.responseText))}catch(t){return n.Log.error(\"JsonService.getJson: Error parsing JSON response\",t.message),void o(t)}}o(Error(\"Invalid response Content-Type: \"+r+\", from URL: \"+e))}else o(Error(s.statusText+\" (\"+s.status+\")\"))},s.onerror=function(){n.Log.error(\"JsonService.getJson: network error\"),o(Error(\"Network Error\"))},r&&(n.Log.debug(\"JsonService.getJson: token passed, setting Authorization header\"),s.setRequestHeader(\"Authorization\",\"Bearer \"+r)),s.send()}))},t.prototype.postForm=function t(e,r,i){var o=this;if(!e)throw n.Log.error(\"JsonService.postForm: No url passed\"),new Error(\"url\");return n.Log.debug(\"JsonService.postForm, url: \",e),new Promise((function(t,s){var a=new o._XMLHttpRequest;a.open(\"POST\",e);var u=o._contentTypes;a.onload=function(){if(n.Log.debug(\"JsonService.postForm: HTTP response received, status\",a.status),200!==a.status){if(400===a.status)if(i=a.getResponseHeader(\"Content-Type\"))if(u.find((function(t){if(i.startsWith(t))return!0})))try{var r=JSON.parse(a.responseText);if(r&&r.error)return n.Log.error(\"JsonService.postForm: Error from server: \",r.error),void s(new Error(r.error))}catch(t){return n.Log.error(\"JsonService.postForm: Error parsing JSON response\",t.message),void s(t)}s(Error(a.statusText+\" (\"+a.status+\")\"))}else{var i;if((i=a.getResponseHeader(\"Content-Type\"))&&u.find((function(t){if(i.startsWith(t))return!0})))try{return void t(JSON.parse(a.responseText))}catch(t){return n.Log.error(\"JsonService.postForm: Error parsing JSON response\",t.message),void s(t)}s(Error(\"Invalid response Content-Type: \"+i+\", from URL: \"+e))}},a.onerror=function(){n.Log.error(\"JsonService.postForm: network error\"),s(Error(\"Network Error\"))};var c=\"\";for(var h in r){var l=r[h];l&&(c.length>0&&(c+=\"&\"),c+=encodeURIComponent(h),c+=\"=\",c+=encodeURIComponent(l))}a.setRequestHeader(\"Content-Type\",\"application/x-www-form-urlencoded\"),void 0!==i&&a.setRequestHeader(\"Authorization\",\"Basic \"+btoa(i)),a.send(c)}))},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.SigninRequest=void 0;var n=r(0),i=r(3),o=r(13);e.SigninRequest=function(){function t(e){var r=e.url,s=e.client_id,a=e.redirect_uri,u=e.response_type,c=e.scope,h=e.authority,l=e.data,f=e.prompt,g=e.display,d=e.max_age,p=e.ui_locales,v=e.id_token_hint,y=e.login_hint,m=e.acr_values,_=e.resource,S=e.response_mode,b=e.request,w=e.request_uri,F=e.extraQueryParams,E=e.request_type,x=e.client_secret,A=e.extraTokenParams,k=e.skipUserInfo;if(function P(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),!r)throw n.Log.error(\"SigninRequest.ctor: No url passed\"),new Error(\"url\");if(!s)throw n.Log.error(\"SigninRequest.ctor: No client_id passed\"),new Error(\"client_id\");if(!a)throw n.Log.error(\"SigninRequest.ctor: No redirect_uri passed\"),new Error(\"redirect_uri\");if(!u)throw n.Log.error(\"SigninRequest.ctor: No response_type passed\"),new Error(\"response_type\");if(!c)throw n.Log.error(\"SigninRequest.ctor: No scope passed\"),new Error(\"scope\");if(!h)throw n.Log.error(\"SigninRequest.ctor: No authority passed\"),new Error(\"authority\");var C=t.isOidc(u),T=t.isCode(u);S||(S=t.isCode(u)?\"query\":null),this.state=new o.SigninState({nonce:C,data:l,client_id:s,authority:h,redirect_uri:a,code_verifier:T,request_type:E,response_mode:S,client_secret:x,scope:c,extraTokenParams:A,skipUserInfo:k}),r=i.UrlUtility.addQueryParam(r,\"client_id\",s),r=i.UrlUtility.addQueryParam(r,\"redirect_uri\",a),r=i.UrlUtility.addQueryParam(r,\"response_type\",u),r=i.UrlUtility.addQueryParam(r,\"scope\",c),r=i.UrlUtility.addQueryParam(r,\"state\",this.state.id),C&&(r=i.UrlUtility.addQueryParam(r,\"nonce\",this.state.nonce)),T&&(r=i.UrlUtility.addQueryParam(r,\"code_challenge\",this.state.code_challenge),r=i.UrlUtility.addQueryParam(r,\"code_challenge_method\",\"S256\"));var R={prompt:f,display:g,max_age:d,ui_locales:p,id_token_hint:v,login_hint:y,acr_values:m,resource:_,request:b,request_uri:w,response_mode:S};for(var I in R)R[I]&&(r=i.UrlUtility.addQueryParam(r,I,R[I]));for(var D in F)r=i.UrlUtility.addQueryParam(r,D,F[D]);this.url=r}return t.isOidc=function t(e){return!!e.split(/\\s+/g).filter((function(t){return\"id_token\"===t}))[0]},t.isOAuth=function t(e){return!!e.split(/\\s+/g).filter((function(t){return\"token\"===t}))[0]},t.isCode=function t(e){return!!e.split(/\\s+/g).filter((function(t){return\"code\"===t}))[0]},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.State=void 0;var n=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},r=e.id,n=e.data,i=e.created,s=e.request_type;a(this,t),this._id=r||(0,o.default)(),this._data=n,this._created=\"number\"==typeof i&&i>0?i:parseInt(Date.now()/1e3),this._request_type=s}return t.prototype.toStorageString=function t(){return i.Log.debug(\"State.toStorageString\"),JSON.stringify({id:this.id,data:this.data,created:this.created,request_type:this.request_type})},t.fromStorageString=function e(r){return i.Log.debug(\"State.fromStorageString\"),new t(JSON.parse(r))},t.clearStaleState=function e(r,n){var o=Date.now()/1e3-n;return r.getAllKeys().then((function(e){i.Log.debug(\"State.clearStaleState: got keys\",e);for(var n=[],s=function s(a){var c=e[a];u=r.get(c).then((function(e){var n=!1;if(e)try{var s=t.fromStorageString(e);i.Log.debug(\"State.clearStaleState: got item from key: \",c,s.created),s.created<=o&&(n=!0)}catch(t){i.Log.error(\"State.clearStaleState: Error parsing state for key\",c,t.message),n=!0}else i.Log.debug(\"State.clearStaleState: no item in storage for key: \",c),n=!0;if(n)return i.Log.debug(\"State.clearStaleState: removed item for key: \",c),r.remove(c)})),n.push(u)},a=0;a0&&void 0!==arguments[0]?arguments[0]:{};g(this,t),e instanceof o.OidcClientSettings?this._settings=e:this._settings=new o.OidcClientSettings(e)}return t.prototype.createSigninRequest=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=r.response_type,o=r.scope,s=r.redirect_uri,u=r.data,c=r.state,h=r.prompt,l=r.display,f=r.max_age,g=r.ui_locales,d=r.id_token_hint,p=r.login_hint,v=r.acr_values,y=r.resource,m=r.request,_=r.request_uri,S=r.response_mode,b=r.extraQueryParams,w=r.extraTokenParams,F=r.request_type,E=r.skipUserInfo,x=arguments[1];i.Log.debug(\"OidcClient.createSigninRequest\");var A=this._settings.client_id;n=n||this._settings.response_type,o=o||this._settings.scope,s=s||this._settings.redirect_uri,h=h||this._settings.prompt,l=l||this._settings.display,f=f||this._settings.max_age,g=g||this._settings.ui_locales,v=v||this._settings.acr_values,y=y||this._settings.resource,S=S||this._settings.response_mode,b=b||this._settings.extraQueryParams,w=w||this._settings.extraTokenParams;var k=this._settings.authority;return a.SigninRequest.isCode(n)&&\"code\"!==n?Promise.reject(new Error(\"OpenID Connect hybrid flow is not supported\")):this._metadataService.getAuthorizationEndpoint().then((function(t){i.Log.debug(\"OidcClient.createSigninRequest: Received authorization endpoint\",t);var r=new a.SigninRequest({url:t,client_id:A,redirect_uri:s,response_type:n,scope:o,data:u||c,authority:k,prompt:h,display:l,max_age:f,ui_locales:g,id_token_hint:d,login_hint:p,acr_values:v,resource:y,request:m,request_uri:_,extraQueryParams:b,extraTokenParams:w,request_type:F,response_mode:S,client_secret:e._settings.client_secret,skipUserInfo:E}),P=r.state;return(x=x||e._stateStore).set(P.id,P.toStorageString()).then((function(){return r}))}))},t.prototype.readSigninResponseState=function t(e,r){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];i.Log.debug(\"OidcClient.readSigninResponseState\");var o=\"query\"===this._settings.response_mode||!this._settings.response_mode&&a.SigninRequest.isCode(this._settings.response_type),s=o?\"?\":\"#\",c=new u.SigninResponse(e,s);if(!c.state)return i.Log.error(\"OidcClient.readSigninResponseState: No state in response\"),Promise.reject(new Error(\"No state in response\"));r=r||this._stateStore;var h=n?r.remove.bind(r):r.get.bind(r);return h(c.state).then((function(t){if(!t)throw i.Log.error(\"OidcClient.readSigninResponseState: No matching state found in storage\"),new Error(\"No matching state found in storage\");return{state:l.SigninState.fromStorageString(t),response:c}}))},t.prototype.processSigninResponse=function t(e,r){var n=this;return i.Log.debug(\"OidcClient.processSigninResponse\"),this.readSigninResponseState(e,r,!0).then((function(t){var e=t.state,r=t.response;return i.Log.debug(\"OidcClient.processSigninResponse: Received state from storage; validating response\"),n._validator.validateSigninResponse(e,r)}))},t.prototype.createSignoutRequest=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=r.id_token_hint,o=r.data,s=r.state,a=r.post_logout_redirect_uri,u=r.extraQueryParams,h=r.request_type,l=arguments[1];return i.Log.debug(\"OidcClient.createSignoutRequest\"),a=a||this._settings.post_logout_redirect_uri,u=u||this._settings.extraQueryParams,this._metadataService.getEndSessionEndpoint().then((function(t){if(!t)throw i.Log.error(\"OidcClient.createSignoutRequest: No end session endpoint url returned\"),new Error(\"no end session endpoint\");i.Log.debug(\"OidcClient.createSignoutRequest: Received end session endpoint\",t);var r=new c.SignoutRequest({url:t,id_token_hint:n,post_logout_redirect_uri:a,data:o||s,extraQueryParams:u,request_type:h}),f=r.state;return f&&(i.Log.debug(\"OidcClient.createSignoutRequest: Signout request has state to persist\"),(l=l||e._stateStore).set(f.id,f.toStorageString())),r}))},t.prototype.readSignoutResponseState=function t(e,r){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];i.Log.debug(\"OidcClient.readSignoutResponseState\");var o=new h.SignoutResponse(e);if(!o.state)return i.Log.debug(\"OidcClient.readSignoutResponseState: No state in response\"),o.error?(i.Log.warn(\"OidcClient.readSignoutResponseState: Response was error: \",o.error),Promise.reject(new s.ErrorResponse(o))):Promise.resolve({state:void 0,response:o});var a=o.state;r=r||this._stateStore;var u=n?r.remove.bind(r):r.get.bind(r);return u(a).then((function(t){if(!t)throw i.Log.error(\"OidcClient.readSignoutResponseState: No matching state found in storage\"),new Error(\"No matching state found in storage\");return{state:f.State.fromStorageString(t),response:o}}))},t.prototype.processSignoutResponse=function t(e,r){var n=this;return i.Log.debug(\"OidcClient.processSignoutResponse\"),this.readSignoutResponseState(e,r,!0).then((function(t){var e=t.state,r=t.response;return e?(i.Log.debug(\"OidcClient.processSignoutResponse: Received state from storage; validating response\"),n._validator.validateSignoutResponse(e,r)):(i.Log.debug(\"OidcClient.processSignoutResponse: No state from storage; skipping validating response\"),r)}))},t.prototype.clearStaleState=function t(e){return i.Log.debug(\"OidcClient.clearStaleState\"),e=e||this._stateStore,f.State.clearStaleState(e,this.settings.staleStateAge)},n(t,[{key:\"_stateStore\",get:function t(){return this.settings.stateStore}},{key:\"_validator\",get:function t(){return this.settings.validator}},{key:\"_metadataService\",get:function t(){return this.settings.metadataService}},{key:\"settings\",get:function t(){return this._settings}},{key:\"metadataService\",get:function t(){return this._metadataService}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.TokenClient=void 0;var n=r(7),i=r(2),o=r(0);function s(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.TokenClient=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.JsonService,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.MetadataService;if(s(this,t),!e)throw o.Log.error(\"TokenClient.ctor: No settings passed\"),new Error(\"settings\");this._settings=e,this._jsonService=new r,this._metadataService=new a(this._settings)}return t.prototype.exchangeCode=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(r=Object.assign({},r)).grant_type=r.grant_type||\"authorization_code\",r.client_id=r.client_id||this._settings.client_id,r.client_secret=r.client_secret||this._settings.client_secret,r.redirect_uri=r.redirect_uri||this._settings.redirect_uri;var n=void 0,i=r._client_authentication||this._settings._client_authentication;return delete r._client_authentication,r.code?r.redirect_uri?r.code_verifier?r.client_id?r.client_secret||\"client_secret_basic\"!=i?(\"client_secret_basic\"==i&&(n=r.client_id+\":\"+r.client_secret,delete r.client_id,delete r.client_secret),this._metadataService.getTokenEndpoint(!1).then((function(t){return o.Log.debug(\"TokenClient.exchangeCode: Received token endpoint\"),e._jsonService.postForm(t,r,n).then((function(t){return o.Log.debug(\"TokenClient.exchangeCode: response received\"),t}))}))):(o.Log.error(\"TokenClient.exchangeCode: No client_secret passed\"),Promise.reject(new Error(\"A client_secret is required\"))):(o.Log.error(\"TokenClient.exchangeCode: No client_id passed\"),Promise.reject(new Error(\"A client_id is required\"))):(o.Log.error(\"TokenClient.exchangeCode: No code_verifier passed\"),Promise.reject(new Error(\"A code_verifier is required\"))):(o.Log.error(\"TokenClient.exchangeCode: No redirect_uri passed\"),Promise.reject(new Error(\"A redirect_uri is required\"))):(o.Log.error(\"TokenClient.exchangeCode: No code passed\"),Promise.reject(new Error(\"A code is required\")))},t.prototype.exchangeRefreshToken=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(r=Object.assign({},r)).grant_type=r.grant_type||\"refresh_token\",r.client_id=r.client_id||this._settings.client_id,r.client_secret=r.client_secret||this._settings.client_secret;var n=void 0,i=r._client_authentication||this._settings._client_authentication;return delete r._client_authentication,r.refresh_token?r.client_id?(\"client_secret_basic\"==i&&(n=r.client_id+\":\"+r.client_secret,delete r.client_id,delete r.client_secret),this._metadataService.getTokenEndpoint(!1).then((function(t){return o.Log.debug(\"TokenClient.exchangeRefreshToken: Received token endpoint\"),e._jsonService.postForm(t,r,n).then((function(t){return o.Log.debug(\"TokenClient.exchangeRefreshToken: response received\"),t}))}))):(o.Log.error(\"TokenClient.exchangeRefreshToken: No client_id passed\"),Promise.reject(new Error(\"A client_id is required\"))):(o.Log.error(\"TokenClient.exchangeRefreshToken: No refresh_token passed\"),Promise.reject(new Error(\"A refresh_token is required\")))},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.ErrorResponse=void 0;var n=r(0);function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function o(t,e){if(!t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return!e||\"object\"!=typeof e&&\"function\"!=typeof e?t:e}e.ErrorResponse=function(t){function e(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=r.error,a=r.error_description,u=r.error_uri,c=r.state,h=r.session_state;if(i(this,e),!s)throw n.Log.error(\"No error passed to ErrorResponse\"),new Error(\"error\");var l=o(this,t.call(this,a||s));return l.name=\"ErrorResponse\",l.error=s,l.error_description=a,l.error_uri=u,l.state=c,l.session_state=h,l}return function r(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e}(Error)},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.SigninState=void 0;var n=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},n=r.nonce,i=r.authority,o=r.client_id,u=r.redirect_uri,l=r.code_verifier,f=r.response_mode,g=r.client_secret,d=r.scope,p=r.extraTokenParams,v=r.skipUserInfo;c(this,e);var y=h(this,t.call(this,arguments[0]));if(!0===n?y._nonce=(0,a.default)():n&&(y._nonce=n),!0===l?y._code_verifier=(0,a.default)()+(0,a.default)()+(0,a.default)():l&&(y._code_verifier=l),y.code_verifier){var m=s.JoseUtil.hashString(y.code_verifier,\"SHA256\");y._code_challenge=s.JoseUtil.hexToBase64Url(m)}return y._redirect_uri=u,y._authority=i,y._client_id=o,y._response_mode=f,y._client_secret=g,y._scope=d,y._extraTokenParams=p,y._skipUserInfo=v,y}return function r(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.toStorageString=function t(){return i.Log.debug(\"SigninState.toStorageString\"),JSON.stringify({id:this.id,data:this.data,created:this.created,request_type:this.request_type,nonce:this.nonce,code_verifier:this.code_verifier,redirect_uri:this.redirect_uri,authority:this.authority,client_id:this.client_id,response_mode:this.response_mode,client_secret:this.client_secret,scope:this.scope,extraTokenParams:this.extraTokenParams,skipUserInfo:this.skipUserInfo})},e.fromStorageString=function t(r){return i.Log.debug(\"SigninState.fromStorageString\"),new e(JSON.parse(r))},n(e,[{key:\"nonce\",get:function t(){return this._nonce}},{key:\"authority\",get:function t(){return this._authority}},{key:\"client_id\",get:function t(){return this._client_id}},{key:\"redirect_uri\",get:function t(){return this._redirect_uri}},{key:\"code_verifier\",get:function t(){return this._code_verifier}},{key:\"code_challenge\",get:function t(){return this._code_challenge}},{key:\"response_mode\",get:function t(){return this._response_mode}},{key:\"client_secret\",get:function t(){return this._client_secret}},{key:\"scope\",get:function t(){return this._scope}},{key:\"extraTokenParams\",get:function t(){return this._extraTokenParams}},{key:\"skipUserInfo\",get:function t(){return this._skipUserInfo}}]),e}(o.State)},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default=function n(){return(\"undefined\"!=i&&null!==i&&void 0!==i.getRandomValues?o:s)().replace(/-/g,\"\")};var i=\"undefined\"!=typeof window?window.crypto||window.msCrypto:null;function o(){return([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(function(t){return(t^i.getRandomValues(new Uint8Array(1))[0]&15>>t/4).toString(16)}))}function s(){return([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,(function(t){return(t^16*Math.random()>>t/4).toString(16)}))}t.exports=e.default},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.User=void 0;var n=function(){function t(t,e){for(var r=0;r0){var n=parseInt(Date.now()/1e3);this.expires_at=n+r}}},{key:\"expired\",get:function t(){var e=this.expires_in;if(void 0!==e)return e<=0}},{key:\"scopes\",get:function t(){return(this.scope||\"\").split(\" \")}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.AccessTokenEvents=void 0;var n=r(0),i=r(46);function o(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.AccessTokenEvents=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.accessTokenExpiringNotificationTime,n=void 0===r?60:r,s=e.accessTokenExpiringTimer,a=void 0===s?new i.Timer(\"Access token expiring\"):s,u=e.accessTokenExpiredTimer,c=void 0===u?new i.Timer(\"Access token expired\"):u;o(this,t),this._accessTokenExpiringNotificationTime=n,this._accessTokenExpiring=a,this._accessTokenExpired=c}return t.prototype.load=function t(e){if(e.access_token&&void 0!==e.expires_in){var r=e.expires_in;if(n.Log.debug(\"AccessTokenEvents.load: access token present, remaining duration:\",r),r>0){var i=r-this._accessTokenExpiringNotificationTime;i<=0&&(i=1),n.Log.debug(\"AccessTokenEvents.load: registering expiring timer in:\",i),this._accessTokenExpiring.init(i)}else n.Log.debug(\"AccessTokenEvents.load: canceling existing expiring timer becase we're past expiration.\"),this._accessTokenExpiring.cancel();var o=r+1;n.Log.debug(\"AccessTokenEvents.load: registering expired timer in:\",o),this._accessTokenExpired.init(o)}else this._accessTokenExpiring.cancel(),this._accessTokenExpired.cancel()},t.prototype.unload=function t(){n.Log.debug(\"AccessTokenEvents.unload: canceling existing access token timers\"),this._accessTokenExpiring.cancel(),this._accessTokenExpired.cancel()},t.prototype.addAccessTokenExpiring=function t(e){this._accessTokenExpiring.addHandler(e)},t.prototype.removeAccessTokenExpiring=function t(e){this._accessTokenExpiring.removeHandler(e)},t.prototype.addAccessTokenExpired=function t(e){this._accessTokenExpired.addHandler(e)},t.prototype.removeAccessTokenExpired=function t(e){this._accessTokenExpired.removeHandler(e)},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.Event=void 0;var n=r(0);e.Event=function(){function t(e){!function r(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),this._name=e,this._callbacks=[]}return t.prototype.addHandler=function t(e){this._callbacks.push(e)},t.prototype.removeHandler=function t(e){var r=this._callbacks.findIndex((function(t){return t===e}));r>=0&&this._callbacks.splice(r,1)},t.prototype.raise=function t(){n.Log.debug(\"Event: Raising event: \"+this._name);for(var e=0;e1&&void 0!==arguments[1]?arguments[1]:o.CheckSessionIFrame,u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:s.Global.timer;if(a(this,t),!e)throw i.Log.error(\"SessionMonitor.ctor: No user manager passed to SessionMonitor\"),new Error(\"userManager\");this._userManager=e,this._CheckSessionIFrameCtor=n,this._timer=u,this._userManager.events.addUserLoaded(this._start.bind(this)),this._userManager.events.addUserUnloaded(this._stop.bind(this)),Promise.resolve(this._userManager.getUser().then((function(t){t?r._start(t):r._settings.monitorAnonymousSession&&r._userManager.querySessionStatus().then((function(t){var e={session_state:t.session_state};t.sub&&t.sid&&(e.profile={sub:t.sub,sid:t.sid}),r._start(e)})).catch((function(t){i.Log.error(\"SessionMonitor ctor: error from querySessionStatus:\",t.message)}))})).catch((function(t){i.Log.error(\"SessionMonitor ctor: error from getUser:\",t.message)})))}return t.prototype._start=function t(e){var r=this,n=e.session_state;n&&(e.profile?(this._sub=e.profile.sub,this._sid=e.profile.sid,i.Log.debug(\"SessionMonitor._start: session_state:\",n,\", sub:\",this._sub)):(this._sub=void 0,this._sid=void 0,i.Log.debug(\"SessionMonitor._start: session_state:\",n,\", anonymous user\")),this._checkSessionIFrame?this._checkSessionIFrame.start(n):this._metadataService.getCheckSessionIframe().then((function(t){if(t){i.Log.debug(\"SessionMonitor._start: Initializing check session iframe\");var e=r._client_id,o=r._checkSessionInterval,s=r._stopCheckSessionOnError;r._checkSessionIFrame=new r._CheckSessionIFrameCtor(r._callback.bind(r),e,t,o,s),r._checkSessionIFrame.load().then((function(){r._checkSessionIFrame.start(n)}))}else i.Log.warn(\"SessionMonitor._start: No check session iframe found in the metadata\")})).catch((function(t){i.Log.error(\"SessionMonitor._start: Error from getCheckSessionIframe:\",t.message)})))},t.prototype._stop=function t(){var e=this;if(this._sub=void 0,this._sid=void 0,this._checkSessionIFrame&&(i.Log.debug(\"SessionMonitor._stop\"),this._checkSessionIFrame.stop()),this._settings.monitorAnonymousSession)var r=this._timer.setInterval((function(){e._timer.clearInterval(r),e._userManager.querySessionStatus().then((function(t){var r={session_state:t.session_state};t.sub&&t.sid&&(r.profile={sub:t.sub,sid:t.sid}),e._start(r)})).catch((function(t){i.Log.error(\"SessionMonitor: error from querySessionStatus:\",t.message)}))}),1e3)},t.prototype._callback=function t(){var e=this;this._userManager.querySessionStatus().then((function(t){var r=!0;t?t.sub===e._sub?(r=!1,e._checkSessionIFrame.start(t.session_state),t.sid===e._sid?i.Log.debug(\"SessionMonitor._callback: Same sub still logged in at OP, restarting check session iframe; session_state:\",t.session_state):(i.Log.debug(\"SessionMonitor._callback: Same sub still logged in at OP, session state has changed, restarting check session iframe; session_state:\",t.session_state),e._userManager.events._raiseUserSessionChanged())):i.Log.debug(\"SessionMonitor._callback: Different subject signed into OP:\",t.sub):i.Log.debug(\"SessionMonitor._callback: Subject no longer signed into OP\"),r&&(e._sub?(i.Log.debug(\"SessionMonitor._callback: SessionMonitor._callback; raising signed out event\"),e._userManager.events._raiseUserSignedOut()):(i.Log.debug(\"SessionMonitor._callback: SessionMonitor._callback; raising signed in event\"),e._userManager.events._raiseUserSignedIn()))})).catch((function(t){e._sub&&(i.Log.debug(\"SessionMonitor._callback: Error calling queryCurrentSigninSession; raising signed out event\",t.message),e._userManager.events._raiseUserSignedOut())}))},n(t,[{key:\"_settings\",get:function t(){return this._userManager.settings}},{key:\"_metadataService\",get:function t(){return this._userManager.metadataService}},{key:\"_client_id\",get:function t(){return this._settings.client_id}},{key:\"_checkSessionInterval\",get:function t(){return this._settings.checkSessionInterval}},{key:\"_stopCheckSessionOnError\",get:function t(){return this._settings.stopCheckSessionOnError}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.CheckSessionIFrame=void 0;var n=r(0);function i(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.CheckSessionIFrame=function(){function t(e,r,n,o){var s=!(arguments.length>4&&void 0!==arguments[4])||arguments[4];i(this,t),this._callback=e,this._client_id=r,this._url=n,this._interval=o||2e3,this._stopOnError=s;var a=n.indexOf(\"/\",n.indexOf(\"//\")+2);this._frame_origin=n.substr(0,a),this._frame=window.document.createElement(\"iframe\"),this._frame.style.visibility=\"hidden\",this._frame.style.position=\"absolute\",this._frame.style.display=\"none\",this._frame.width=0,this._frame.height=0,this._frame.src=n}return t.prototype.load=function t(){var e=this;return new Promise((function(t){e._frame.onload=function(){t()},window.document.body.appendChild(e._frame),e._boundMessageEvent=e._message.bind(e),window.addEventListener(\"message\",e._boundMessageEvent,!1)}))},t.prototype._message=function t(e){e.origin===this._frame_origin&&e.source===this._frame.contentWindow&&(\"error\"===e.data?(n.Log.error(\"CheckSessionIFrame: error message from check session op iframe\"),this._stopOnError&&this.stop()):\"changed\"===e.data?(n.Log.debug(\"CheckSessionIFrame: changed message from check session op iframe\"),this.stop(),this._callback()):n.Log.debug(\"CheckSessionIFrame: \"+e.data+\" message from check session op iframe\"))},t.prototype.start=function t(e){var r=this;if(this._session_state!==e){n.Log.debug(\"CheckSessionIFrame.start\"),this.stop(),this._session_state=e;var i=function t(){r._frame.contentWindow.postMessage(r._client_id+\" \"+r._session_state,r._frame_origin)};i(),this._timer=window.setInterval(i,this._interval)}},t.prototype.stop=function t(){this._session_state=null,this._timer&&(n.Log.debug(\"CheckSessionIFrame.stop\"),window.clearInterval(this._timer),this._timer=null)},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.TokenRevocationClient=void 0;var n=r(0),i=r(2),o=r(1);function s(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}var a=\"access_token\",u=\"refresh_token\";e.TokenRevocationClient=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o.Global.XMLHttpRequest,a=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.MetadataService;if(s(this,t),!e)throw n.Log.error(\"TokenRevocationClient.ctor: No settings provided\"),new Error(\"No settings provided.\");this._settings=e,this._XMLHttpRequestCtor=r,this._metadataService=new a(this._settings)}return t.prototype.revoke=function t(e,r){var i=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:\"access_token\";if(!e)throw n.Log.error(\"TokenRevocationClient.revoke: No token provided\"),new Error(\"No token provided.\");if(o!==a&&o!=u)throw n.Log.error(\"TokenRevocationClient.revoke: Invalid token type\"),new Error(\"Invalid token type.\");return this._metadataService.getRevocationEndpoint().then((function(t){if(t){n.Log.debug(\"TokenRevocationClient.revoke: Revoking \"+o);var s=i._settings.client_id,a=i._settings.client_secret;return i._revoke(t,s,a,e,o)}if(r)throw n.Log.error(\"TokenRevocationClient.revoke: Revocation not supported\"),new Error(\"Revocation not supported\")}))},t.prototype._revoke=function t(e,r,i,o,s){var a=this;return new Promise((function(t,u){var c=new a._XMLHttpRequestCtor;c.open(\"POST\",e),c.onload=function(){n.Log.debug(\"TokenRevocationClient.revoke: HTTP response received, status\",c.status),200===c.status?t():u(Error(c.statusText+\" (\"+c.status+\")\"))},c.onerror=function(){n.Log.debug(\"TokenRevocationClient.revoke: Network Error.\"),u(\"Network Error\")};var h=\"client_id=\"+encodeURIComponent(r);i&&(h+=\"&client_secret=\"+encodeURIComponent(i)),h+=\"&token_type_hint=\"+encodeURIComponent(s),h+=\"&token=\"+encodeURIComponent(o),c.setRequestHeader(\"Content-Type\",\"application/x-www-form-urlencoded\"),c.send(h)}))},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.CordovaPopupWindow=void 0;var n=function(){function t(t,e){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:o.MetadataService,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:s.UserInfoService,u=arguments.length>3&&void 0!==arguments[3]?arguments[3]:c.JoseUtil,l=arguments.length>4&&void 0!==arguments[4]?arguments[4]:a.TokenClient;if(h(this,t),!e)throw i.Log.error(\"ResponseValidator.ctor: No settings passed to ResponseValidator\"),new Error(\"settings\");this._settings=e,this._metadataService=new r(this._settings),this._userInfoService=new n(this._settings),this._joseUtil=u,this._tokenClient=new l(this._settings)}return t.prototype.validateSigninResponse=function t(e,r){var n=this;return i.Log.debug(\"ResponseValidator.validateSigninResponse\"),this._processSigninParams(e,r).then((function(t){return i.Log.debug(\"ResponseValidator.validateSigninResponse: state processed\"),n._validateTokens(e,t).then((function(t){return i.Log.debug(\"ResponseValidator.validateSigninResponse: tokens validated\"),n._processClaims(e,t).then((function(t){return i.Log.debug(\"ResponseValidator.validateSigninResponse: claims processed\"),t}))}))}))},t.prototype.validateSignoutResponse=function t(e,r){return e.id!==r.state?(i.Log.error(\"ResponseValidator.validateSignoutResponse: State does not match\"),Promise.reject(new Error(\"State does not match\"))):(i.Log.debug(\"ResponseValidator.validateSignoutResponse: state validated\"),r.state=e.data,r.error?(i.Log.warn(\"ResponseValidator.validateSignoutResponse: Response was error\",r.error),Promise.reject(new u.ErrorResponse(r))):Promise.resolve(r))},t.prototype._processSigninParams=function t(e,r){if(e.id!==r.state)return i.Log.error(\"ResponseValidator._processSigninParams: State does not match\"),Promise.reject(new Error(\"State does not match\"));if(!e.client_id)return i.Log.error(\"ResponseValidator._processSigninParams: No client_id on state\"),Promise.reject(new Error(\"No client_id on state\"));if(!e.authority)return i.Log.error(\"ResponseValidator._processSigninParams: No authority on state\"),Promise.reject(new Error(\"No authority on state\"));if(this._settings.authority){if(this._settings.authority&&this._settings.authority!==e.authority)return i.Log.error(\"ResponseValidator._processSigninParams: authority mismatch on settings vs. signin state\"),Promise.reject(new Error(\"authority mismatch on settings vs. signin state\"))}else this._settings.authority=e.authority;if(this._settings.client_id){if(this._settings.client_id&&this._settings.client_id!==e.client_id)return i.Log.error(\"ResponseValidator._processSigninParams: client_id mismatch on settings vs. signin state\"),Promise.reject(new Error(\"client_id mismatch on settings vs. signin state\"))}else this._settings.client_id=e.client_id;return i.Log.debug(\"ResponseValidator._processSigninParams: state validated\"),r.state=e.data,r.error?(i.Log.warn(\"ResponseValidator._processSigninParams: Response was error\",r.error),Promise.reject(new u.ErrorResponse(r))):e.nonce&&!r.id_token?(i.Log.error(\"ResponseValidator._processSigninParams: Expecting id_token in response\"),Promise.reject(new Error(\"No id_token in response\"))):!e.nonce&&r.id_token?(i.Log.error(\"ResponseValidator._processSigninParams: Not expecting id_token in response\"),Promise.reject(new Error(\"Unexpected id_token in response\"))):e.code_verifier&&!r.code?(i.Log.error(\"ResponseValidator._processSigninParams: Expecting code in response\"),Promise.reject(new Error(\"No code in response\"))):!e.code_verifier&&r.code?(i.Log.error(\"ResponseValidator._processSigninParams: Not expecting code in response\"),Promise.reject(new Error(\"Unexpected code in response\"))):(r.scope||(r.scope=e.scope),Promise.resolve(r))},t.prototype._processClaims=function t(e,r){var n=this;if(r.isOpenIdConnect){if(i.Log.debug(\"ResponseValidator._processClaims: response is OIDC, processing claims\"),r.profile=this._filterProtocolClaims(r.profile),!0!==e.skipUserInfo&&this._settings.loadUserInfo&&r.access_token)return i.Log.debug(\"ResponseValidator._processClaims: loading user info\"),this._userInfoService.getClaims(r.access_token).then((function(t){return i.Log.debug(\"ResponseValidator._processClaims: user info claims received from user info endpoint\"),t.sub!==r.profile.sub?(i.Log.error(\"ResponseValidator._processClaims: sub from user info endpoint does not match sub in id_token\"),Promise.reject(new Error(\"sub from user info endpoint does not match sub in id_token\"))):(r.profile=n._mergeClaims(r.profile,t),i.Log.debug(\"ResponseValidator._processClaims: user info claims received, updated profile:\",r.profile),r)}));i.Log.debug(\"ResponseValidator._processClaims: not loading user info\")}else i.Log.debug(\"ResponseValidator._processClaims: response is not OIDC, not processing claims\");return Promise.resolve(r)},t.prototype._mergeClaims=function t(e,r){var i=Object.assign({},e);for(var o in r){var s=r[o];Array.isArray(s)||(s=[s]);for(var a=0;a1)return i.Log.error(\"ResponseValidator._validateIdToken: No kid found in id_token and more than one key found in metadata\"),Promise.reject(new Error(\"No kid found in id_token and more than one key found in metadata\"));o=t[0]}return Promise.resolve(o)}))},t.prototype._getSigningKeyForJwtWithSingleRetry=function t(e){var r=this;return this._getSigningKeyForJwt(e).then((function(t){return t?Promise.resolve(t):(r._metadataService.resetSigningKeys(),r._getSigningKeyForJwt(e))}))},t.prototype._validateIdToken=function t(e,r){var n=this;if(!e.nonce)return i.Log.error(\"ResponseValidator._validateIdToken: No nonce on state\"),Promise.reject(new Error(\"No nonce on state\"));var o=this._joseUtil.parseJwt(r.id_token);return o&&o.header&&o.payload?e.nonce!==o.payload.nonce?(i.Log.error(\"ResponseValidator._validateIdToken: Invalid nonce in id_token\"),Promise.reject(new Error(\"Invalid nonce in id_token\"))):this._metadataService.getIssuer().then((function(t){return i.Log.debug(\"ResponseValidator._validateIdToken: Received issuer\"),n._getSigningKeyForJwtWithSingleRetry(o).then((function(s){if(!s)return i.Log.error(\"ResponseValidator._validateIdToken: No key matching kid or alg found in signing keys\"),Promise.reject(new Error(\"No key matching kid or alg found in signing keys\"));var a=e.client_id,u=n._settings.clockSkew;return i.Log.debug(\"ResponseValidator._validateIdToken: Validaing JWT; using clock skew (in seconds) of: \",u),n._joseUtil.validateJwt(r.id_token,s,t,a,u).then((function(){return i.Log.debug(\"ResponseValidator._validateIdToken: JWT validation successful\"),o.payload.sub?(r.profile=o.payload,r):(i.Log.error(\"ResponseValidator._validateIdToken: No sub present in id_token\"),Promise.reject(new Error(\"No sub present in id_token\")))}))}))})):(i.Log.error(\"ResponseValidator._validateIdToken: Failed to parse id_token\",o),Promise.reject(new Error(\"Failed to parse id_token\")))},t.prototype._filterByAlg=function t(e,r){var n=null;if(r.startsWith(\"RS\"))n=\"RSA\";else if(r.startsWith(\"PS\"))n=\"PS\";else{if(!r.startsWith(\"ES\"))return i.Log.debug(\"ResponseValidator._filterByAlg: alg not supported: \",r),[];n=\"EC\"}return i.Log.debug(\"ResponseValidator._filterByAlg: Looking for keys that match kty: \",n),e=e.filter((function(t){return t.kty===n})),i.Log.debug(\"ResponseValidator._filterByAlg: Number of keys that match kty: \",n,e.length),e},t.prototype._validateAccessToken=function t(e){if(!e.profile)return i.Log.error(\"ResponseValidator._validateAccessToken: No profile loaded from id_token\"),Promise.reject(new Error(\"No profile loaded from id_token\"));if(!e.profile.at_hash)return i.Log.error(\"ResponseValidator._validateAccessToken: No at_hash in id_token\"),Promise.reject(new Error(\"No at_hash in id_token\"));if(!e.id_token)return i.Log.error(\"ResponseValidator._validateAccessToken: No id_token\"),Promise.reject(new Error(\"No id_token\"));var r=this._joseUtil.parseJwt(e.id_token);if(!r||!r.header)return i.Log.error(\"ResponseValidator._validateAccessToken: Failed to parse id_token\",r),Promise.reject(new Error(\"Failed to parse id_token\"));var n=r.header.alg;if(!n||5!==n.length)return i.Log.error(\"ResponseValidator._validateAccessToken: Unsupported alg:\",n),Promise.reject(new Error(\"Unsupported alg: \"+n));var o=n.substr(2,3);if(!o)return i.Log.error(\"ResponseValidator._validateAccessToken: Unsupported alg:\",n,o),Promise.reject(new Error(\"Unsupported alg: \"+n));if(256!==(o=parseInt(o))&&384!==o&&512!==o)return i.Log.error(\"ResponseValidator._validateAccessToken: Unsupported alg:\",n,o),Promise.reject(new Error(\"Unsupported alg: \"+n));var s=\"sha\"+o,a=this._joseUtil.hashString(e.access_token,s);if(!a)return i.Log.error(\"ResponseValidator._validateAccessToken: access_token hash failed:\",s),Promise.reject(new Error(\"Failed to validate at_hash\"));var u=a.substr(0,a.length/2),c=this._joseUtil.hexToBase64Url(u);return c!==e.profile.at_hash?(i.Log.error(\"ResponseValidator._validateAccessToken: Failed to validate at_hash\",c,e.profile.at_hash),Promise.reject(new Error(\"Failed to validate at_hash\"))):(i.Log.debug(\"ResponseValidator._validateAccessToken: success\"),Promise.resolve(e))},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.UserInfoService=void 0;var n=r(7),i=r(2),o=r(0),s=r(4);function a(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}e.UserInfoService=function(){function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:n.JsonService,u=arguments.length>2&&void 0!==arguments[2]?arguments[2]:i.MetadataService,c=arguments.length>3&&void 0!==arguments[3]?arguments[3]:s.JoseUtil;if(a(this,t),!e)throw o.Log.error(\"UserInfoService.ctor: No settings passed\"),new Error(\"settings\");this._settings=e,this._jsonService=new r(void 0,void 0,this._getClaimsFromJwt.bind(this)),this._metadataService=new u(this._settings),this._joseUtil=c}return t.prototype.getClaims=function t(e){var r=this;return e?this._metadataService.getUserInfoEndpoint().then((function(t){return o.Log.debug(\"UserInfoService.getClaims: received userinfo url\",t),r._jsonService.getJson(t,e).then((function(t){return o.Log.debug(\"UserInfoService.getClaims: claims received\",t),t}))})):(o.Log.error(\"UserInfoService.getClaims: No token passed\"),Promise.reject(new Error(\"A token is required\")))},t.prototype._getClaimsFromJwt=function t(e){var r=this;try{var n=this._joseUtil.parseJwt(e.responseText);if(!n||!n.header||!n.payload)return o.Log.error(\"UserInfoService._getClaimsFromJwt: Failed to parse JWT\",n),Promise.reject(new Error(\"Failed to parse id_token\"));var i=n.header.kid,s=void 0;switch(this._settings.userInfoJwtIssuer){case\"OP\":s=this._metadataService.getIssuer();break;case\"ANY\":s=Promise.resolve(n.payload.iss);break;default:s=Promise.resolve(this._settings.userInfoJwtIssuer)}return s.then((function(t){return o.Log.debug(\"UserInfoService._getClaimsFromJwt: Received issuer:\"+t),r._metadataService.getSigningKeys().then((function(s){if(!s)return o.Log.error(\"UserInfoService._getClaimsFromJwt: No signing keys from metadata\"),Promise.reject(new Error(\"No signing keys from metadata\"));o.Log.debug(\"UserInfoService._getClaimsFromJwt: Received signing keys\");var a=void 0;if(i)a=s.filter((function(t){return t.kid===i}))[0];else{if((s=r._filterByAlg(s,n.header.alg)).length>1)return o.Log.error(\"UserInfoService._getClaimsFromJwt: No kid found in id_token and more than one key found in metadata\"),Promise.reject(new Error(\"No kid found in id_token and more than one key found in metadata\"));a=s[0]}if(!a)return o.Log.error(\"UserInfoService._getClaimsFromJwt: No key matching kid or alg found in signing keys\"),Promise.reject(new Error(\"No key matching kid or alg found in signing keys\"));var u=r._settings.client_id,c=r._settings.clockSkew;return o.Log.debug(\"UserInfoService._getClaimsFromJwt: Validaing JWT; using clock skew (in seconds) of: \",c),r._joseUtil.validateJwt(e.responseText,a,t,u,c,void 0,!0).then((function(){return o.Log.debug(\"UserInfoService._getClaimsFromJwt: JWT validation successful\"),n.payload}))}))}))}catch(t){return o.Log.error(\"UserInfoService._getClaimsFromJwt: Error parsing JWT response\",t.message),void reject(t)}},t.prototype._filterByAlg=function t(e,r){var n=null;if(r.startsWith(\"RS\"))n=\"RSA\";else if(r.startsWith(\"PS\"))n=\"PS\";else{if(!r.startsWith(\"ES\"))return o.Log.debug(\"UserInfoService._filterByAlg: alg not supported: \",r),[];n=\"EC\"}return o.Log.debug(\"UserInfoService._filterByAlg: Looking for keys that match kty: \",n),e=e.filter((function(t){return t.kty===n})),o.Log.debug(\"UserInfoService._filterByAlg: Number of keys that match kty: \",n,e.length),e},t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.AllowedSigningAlgs=e.b64tohex=e.hextob64u=e.crypto=e.X509=e.KeyUtil=e.jws=void 0;var n=r(27);e.jws=n.jws,e.KeyUtil=n.KEYUTIL,e.X509=n.X509,e.crypto=n.crypto,e.hextob64u=n.hextob64u,e.b64tohex=n.b64tohex,e.AllowedSigningAlgs=[\"RS256\",\"RS384\",\"RS512\",\"PS256\",\"PS384\",\"PS512\",\"ES256\",\"ES384\",\"ES512\"]},function(t,e,r){\"use strict\";(function(t){Object.defineProperty(e,\"__esModule\",{value:!0});var r=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t},n={userAgent:!1},i={};\n/*!\nCopyright (c) 2011, Yahoo! Inc. All rights reserved.\nCode licensed under the BSD License:\nhttp://developer.yahoo.com/yui/license.html\nversion: 2.9.0\n*/\nif(void 0===o)var o={};o.lang={extend:function t(e,r,i){if(!r||!e)throw new Error(\"YAHOO.lang.extend failed, please check that all dependencies are included.\");var o=function t(){};if(o.prototype=r.prototype,e.prototype=new o,e.prototype.constructor=e,e.superclass=r.prototype,r.prototype.constructor==Object.prototype.constructor&&(r.prototype.constructor=r),i){var s;for(s in i)e.prototype[s]=i[s];var a=function t(){},u=[\"toString\",\"valueOf\"];try{/MSIE/.test(n.userAgent)&&(a=function t(e,r){for(s=0;s>>2]>>>24-s%4*8&255;r[i+s>>>2]|=a<<24-(i+s)%4*8}else for(s=0;s>>2]=n[s>>>2];return this.sigBytes+=o,this},clamp:function t(){var e=this.words,r=this.sigBytes;e[r>>>2]&=4294967295<<32-r%4*8,e.length=s.ceil(r/4)},clone:function t(){var e=c.clone.call(this);return e.words=this.words.slice(0),e},random:function t(e){for(var r=[],n=0;n>>2]>>>24-o%4*8&255;i.push((s>>>4).toString(16)),i.push((15&s).toString(16))}return i.join(\"\")},parse:function t(e){for(var r=e.length,n=[],i=0;i>>3]|=parseInt(e.substr(i,2),16)<<24-i%8*4;return new h.init(n,r/2)}},g=l.Latin1={stringify:function t(e){for(var r=e.words,n=e.sigBytes,i=[],o=0;o>>2]>>>24-o%4*8&255;i.push(String.fromCharCode(s))}return i.join(\"\")},parse:function t(e){for(var r=e.length,n=[],i=0;i>>2]|=(255&e.charCodeAt(i))<<24-i%4*8;return new h.init(n,r)}},d=l.Utf8={stringify:function t(e){try{return decodeURIComponent(escape(g.stringify(e)))}catch(t){throw new Error(\"Malformed UTF-8 data\")}},parse:function t(e){return g.parse(unescape(encodeURIComponent(e)))}},p=u.BufferedBlockAlgorithm=c.extend({reset:function t(){this._data=new h.init,this._nDataBytes=0},_append:function t(e){\"string\"==typeof e&&(e=d.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function t(e){var r=this._data,n=r.words,i=r.sigBytes,o=this.blockSize,a=i/(4*o),u=(a=e?s.ceil(a):s.max((0|a)-this._minBufferSize,0))*o,c=s.min(4*u,i);if(u){for(var l=0;l>>2]>>>24-o%4*8&255)<<16|(r[o+1>>>2]>>>24-(o+1)%4*8&255)<<8|r[o+2>>>2]>>>24-(o+2)%4*8&255,a=0;4>a&&o+.75*a>>6*(3-a)&63));if(r=i.charAt(64))for(;e.length%4;)e.push(r);return e.join(\"\")},parse:function t(r){var n=r.length,i=this._map;(o=i.charAt(64))&&(-1!=(o=r.indexOf(o))&&(n=o));for(var o=[],s=0,a=0;a>>6-a%4*2;o[s>>>2]|=(u|c)<<24-s%4*8,s++}return e.create(o,s)},_map:\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\"}}(),function(t){for(var e=y,r=(i=e.lib).WordArray,n=i.Hasher,i=e.algo,o=[],s=[],a=function t(e){return 4294967296*(e-(0|e))|0},u=2,c=0;64>c;){var h;t:{h=u;for(var l=t.sqrt(h),f=2;f<=l;f++)if(!(h%f)){h=!1;break t}h=!0}h&&(8>c&&(o[c]=a(t.pow(u,.5))),s[c]=a(t.pow(u,1/3)),c++),u++}var g=[];i=i.SHA256=n.extend({_doReset:function t(){this._hash=new r.init(o.slice(0))},_doProcessBlock:function t(e,r){for(var n=this._hash.words,i=n[0],o=n[1],a=n[2],u=n[3],c=n[4],h=n[5],l=n[6],f=n[7],d=0;64>d;d++){if(16>d)g[d]=0|e[r+d];else{var p=g[d-15],v=g[d-2];g[d]=((p<<25|p>>>7)^(p<<14|p>>>18)^p>>>3)+g[d-7]+((v<<15|v>>>17)^(v<<13|v>>>19)^v>>>10)+g[d-16]}p=f+((c<<26|c>>>6)^(c<<21|c>>>11)^(c<<7|c>>>25))+(c&h^~c&l)+s[d]+g[d],v=((i<<30|i>>>2)^(i<<19|i>>>13)^(i<<10|i>>>22))+(i&o^i&a^o&a),f=l,l=h,h=c,c=u+p|0,u=a,a=o,o=i,i=p+v|0}n[0]=n[0]+i|0,n[1]=n[1]+o|0,n[2]=n[2]+a|0,n[3]=n[3]+u|0,n[4]=n[4]+c|0,n[5]=n[5]+h|0,n[6]=n[6]+l|0,n[7]=n[7]+f|0},_doFinalize:function e(){var r=this._data,n=r.words,i=8*this._nDataBytes,o=8*r.sigBytes;return n[o>>>5]|=128<<24-o%32,n[14+(o+64>>>9<<4)]=t.floor(i/4294967296),n[15+(o+64>>>9<<4)]=i,r.sigBytes=4*n.length,this._process(),this._hash},clone:function t(){var e=n.clone.call(this);return e._hash=this._hash.clone(),e}});e.SHA256=n._createHelper(i),e.HmacSHA256=n._createHmacHelper(i)}(Math),function(){function t(){return n.create.apply(n,arguments)}for(var e=y,r=e.lib.Hasher,n=(o=e.x64).Word,i=o.WordArray,o=e.algo,s=[t(1116352408,3609767458),t(1899447441,602891725),t(3049323471,3964484399),t(3921009573,2173295548),t(961987163,4081628472),t(1508970993,3053834265),t(2453635748,2937671579),t(2870763221,3664609560),t(3624381080,2734883394),t(310598401,1164996542),t(607225278,1323610764),t(1426881987,3590304994),t(1925078388,4068182383),t(2162078206,991336113),t(2614888103,633803317),t(3248222580,3479774868),t(3835390401,2666613458),t(4022224774,944711139),t(264347078,2341262773),t(604807628,2007800933),t(770255983,1495990901),t(1249150122,1856431235),t(1555081692,3175218132),t(1996064986,2198950837),t(2554220882,3999719339),t(2821834349,766784016),t(2952996808,2566594879),t(3210313671,3203337956),t(3336571891,1034457026),t(3584528711,2466948901),t(113926993,3758326383),t(338241895,168717936),t(666307205,1188179964),t(773529912,1546045734),t(1294757372,1522805485),t(1396182291,2643833823),t(1695183700,2343527390),t(1986661051,1014477480),t(2177026350,1206759142),t(2456956037,344077627),t(2730485921,1290863460),t(2820302411,3158454273),t(3259730800,3505952657),t(3345764771,106217008),t(3516065817,3606008344),t(3600352804,1432725776),t(4094571909,1467031594),t(275423344,851169720),t(430227734,3100823752),t(506948616,1363258195),t(659060556,3750685593),t(883997877,3785050280),t(958139571,3318307427),t(1322822218,3812723403),t(1537002063,2003034995),t(1747873779,3602036899),t(1955562222,1575990012),t(2024104815,1125592928),t(2227730452,2716904306),t(2361852424,442776044),t(2428436474,593698344),t(2756734187,3733110249),t(3204031479,2999351573),t(3329325298,3815920427),t(3391569614,3928383900),t(3515267271,566280711),t(3940187606,3454069534),t(4118630271,4000239992),t(116418474,1914138554),t(174292421,2731055270),t(289380356,3203993006),t(460393269,320620315),t(685471733,587496836),t(852142971,1086792851),t(1017036298,365543100),t(1126000580,2618297676),t(1288033470,3409855158),t(1501505948,4234509866),t(1607167915,987167468),t(1816402316,1246189591)],a=[],u=0;80>u;u++)a[u]=t();o=o.SHA512=r.extend({_doReset:function t(){this._hash=new i.init([new n.init(1779033703,4089235720),new n.init(3144134277,2227873595),new n.init(1013904242,4271175723),new n.init(2773480762,1595750129),new n.init(1359893119,2917565137),new n.init(2600822924,725511199),new n.init(528734635,4215389547),new n.init(1541459225,327033209)])},_doProcessBlock:function t(e,r){for(var n=(f=this._hash.words)[0],i=f[1],o=f[2],u=f[3],c=f[4],h=f[5],l=f[6],f=f[7],g=n.high,d=n.low,p=i.high,v=i.low,y=o.high,m=o.low,_=u.high,S=u.low,b=c.high,w=c.low,F=h.high,E=h.low,x=l.high,A=l.low,k=f.high,P=f.low,C=g,T=d,R=p,I=v,D=y,L=m,N=_,U=S,B=b,O=w,j=F,M=E,H=x,V=A,K=k,q=P,J=0;80>J;J++){var W=a[J];if(16>J)var z=W.high=0|e[r+2*J],Y=W.low=0|e[r+2*J+1];else{z=((Y=(z=a[J-15]).high)>>>1|(G=z.low)<<31)^(Y>>>8|G<<24)^Y>>>7;var G=(G>>>1|Y<<31)^(G>>>8|Y<<24)^(G>>>7|Y<<25),X=((Y=(X=a[J-2]).high)>>>19|($=X.low)<<13)^(Y<<3|$>>>29)^Y>>>6,$=($>>>19|Y<<13)^($<<3|Y>>>29)^($>>>6|Y<<26),Q=(Y=a[J-7]).high,Z=(tt=a[J-16]).high,tt=tt.low;z=(z=(z=z+Q+((Y=G+Y.low)>>>0>>0?1:0))+X+((Y=Y+$)>>>0<$>>>0?1:0))+Z+((Y=Y+tt)>>>0>>0?1:0);W.high=z,W.low=Y}Q=B&j^~B&H,tt=O&M^~O&V,W=C&R^C&D^R&D;var et=T&I^T&L^I&L,rt=(G=(C>>>28|T<<4)^(C<<30|T>>>2)^(C<<25|T>>>7),X=(T>>>28|C<<4)^(T<<30|C>>>2)^(T<<25|C>>>7),($=s[J]).high),nt=$.low;Z=K+((B>>>14|O<<18)^(B>>>18|O<<14)^(B<<23|O>>>9))+(($=q+((O>>>14|B<<18)^(O>>>18|B<<14)^(O<<23|B>>>9)))>>>0>>0?1:0),K=H,q=V,H=j,V=M,j=B,M=O,B=N+(Z=(Z=(Z=Z+Q+(($=$+tt)>>>0>>0?1:0))+rt+(($=$+nt)>>>0>>0?1:0))+z+(($=$+Y)>>>0>>0?1:0))+((O=U+$|0)>>>0>>0?1:0)|0,N=D,U=L,D=R,L=I,R=C,I=T,C=Z+(W=G+W+((Y=X+et)>>>0>>0?1:0))+((T=$+Y|0)>>>0<$>>>0?1:0)|0}d=n.low=d+T,n.high=g+C+(d>>>0>>0?1:0),v=i.low=v+I,i.high=p+R+(v>>>0>>0?1:0),m=o.low=m+L,o.high=y+D+(m>>>0>>0?1:0),S=u.low=S+U,u.high=_+N+(S>>>0>>0?1:0),w=c.low=w+O,c.high=b+B+(w>>>0>>0?1:0),E=h.low=E+M,h.high=F+j+(E>>>0>>0?1:0),A=l.low=A+V,l.high=x+H+(A>>>0>>0?1:0),P=f.low=P+q,f.high=k+K+(P>>>0>>0?1:0)},_doFinalize:function t(){var e=this._data,r=e.words,n=8*this._nDataBytes,i=8*e.sigBytes;return r[i>>>5]|=128<<24-i%32,r[30+(i+128>>>10<<5)]=Math.floor(n/4294967296),r[31+(i+128>>>10<<5)]=n,e.sigBytes=4*r.length,this._process(),this._hash.toX32()},clone:function t(){var e=r.clone.call(this);return e._hash=this._hash.clone(),e},blockSize:32}),e.SHA512=r._createHelper(o),e.HmacSHA512=r._createHmacHelper(o)}(),function(){var t=y,e=(i=t.x64).Word,r=i.WordArray,n=(i=t.algo).SHA512,i=i.SHA384=n.extend({_doReset:function t(){this._hash=new r.init([new e.init(3418070365,3238371032),new e.init(1654270250,914150663),new e.init(2438529370,812702999),new e.init(355462360,4144912697),new e.init(1731405415,4290775857),new e.init(2394180231,1750603025),new e.init(3675008525,1694076839),new e.init(1203062813,3204075428)])},_doFinalize:function t(){var e=n._doFinalize.call(this);return e.sigBytes-=16,e}});t.SHA384=n._createHelper(i),t.HmacSHA384=n._createHmacHelper(i)}();\n/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\nvar m,_=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";function S(t){var e,r,n=\"\";for(e=0;e+3<=t.length;e+=3)r=parseInt(t.substring(e,e+3),16),n+=_.charAt(r>>6)+_.charAt(63&r);for(e+1==t.length?(r=parseInt(t.substring(e,e+1),16),n+=_.charAt(r<<2)):e+2==t.length&&(r=parseInt(t.substring(e,e+2),16),n+=_.charAt(r>>2)+_.charAt((3&r)<<4)),\"=\";(3&n.length)>0;)n+=\"=\";return n}function b(t){var e,r,n,i=\"\",o=0;for(e=0;e>2),r=3&n,o=1):1==o?(i+=R(r<<2|n>>4),r=15&n,o=2):2==o?(i+=R(r),i+=R(n>>2),r=3&n,o=3):(i+=R(r<<2|n>>4),i+=R(15&n),o=0));return 1==o&&(i+=R(r<<2)),i}function w(t){var e,r=b(t),n=new Array;for(e=0;2*e>15;--o>=0;){var u=32767&this[t],c=this[t++]>>15,h=a*u+c*s;i=((u=s*u+((32767&h)<<15)+r[n]+(1073741823&i))>>>30)+(h>>>15)+a*c+(i>>>30),r[n++]=1073741823&u}return i},m=30):\"Netscape\"!=n.appName?(F.prototype.am=function A(t,e,r,n,i,o){for(;--o>=0;){var s=e*this[t++]+r[n]+i;i=Math.floor(s/67108864),r[n++]=67108863&s}return i},m=26):(F.prototype.am=function k(t,e,r,n,i,o){for(var s=16383&e,a=e>>14;--o>=0;){var u=16383&this[t],c=this[t++]>>14,h=a*u+c*s;i=((u=s*u+((16383&h)<<14)+r[n]+i)>>28)+(h>>14)+a*c,r[n++]=268435455&u}return i},m=28),F.prototype.DB=m,F.prototype.DM=(1<>>16)&&(t=e,r+=16),0!=(e=t>>8)&&(t=e,r+=8),0!=(e=t>>4)&&(t=e,r+=4),0!=(e=t>>2)&&(t=e,r+=2),0!=(e=t>>1)&&(t=e,r+=1),r}function N(t){this.m=t}function U(t){this.m=t,this.mp=t.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<>=16,e+=16),0==(255&t)&&(t>>=8,e+=8),0==(15&t)&&(t>>=4,e+=4),0==(3&t)&&(t>>=2,e+=2),0==(1&t)&&++e,e}function V(t){for(var e=0;0!=t;)t&=t-1,++e;return e}function K(){}function q(t){return t}function J(t){this.r2=E(),this.q3=E(),F.ONE.dlShiftTo(2*t.t,this.r2),this.mu=this.r2.divide(t),this.m=t}N.prototype.convert=function W(t){return t.s<0||t.compareTo(this.m)>=0?t.mod(this.m):t},N.prototype.revert=function z(t){return t},N.prototype.reduce=function Y(t){t.divRemTo(this.m,null,t)},N.prototype.mulTo=function G(t,e,r){t.multiplyTo(e,r),this.reduce(r)},N.prototype.sqrTo=function X(t,e){t.squareTo(e),this.reduce(e)},U.prototype.convert=function $(t){var e=E();return t.abs().dlShiftTo(this.m.t,e),e.divRemTo(this.m,null,e),t.s<0&&e.compareTo(F.ZERO)>0&&this.m.subTo(e,e),e},U.prototype.revert=function Q(t){var e=E();return t.copyTo(e),this.reduce(e),e},U.prototype.reduce=function Z(t){for(;t.t<=this.mt2;)t[t.t++]=0;for(var e=0;e>15)*this.mpl&this.um)<<15)&t.DM;for(t[r=e+this.m.t]+=this.m.am(0,n,t,e,0,this.m.t);t[r]>=t.DV;)t[r]-=t.DV,t[++r]++}t.clamp(),t.drShiftTo(this.m.t,t),t.compareTo(this.m)>=0&&t.subTo(this.m,t)},U.prototype.mulTo=function tt(t,e,r){t.multiplyTo(e,r),this.reduce(r)},U.prototype.sqrTo=function et(t,e){t.squareTo(e),this.reduce(e)},F.prototype.copyTo=function rt(t){for(var e=this.t-1;e>=0;--e)t[e]=this[e];t.t=this.t,t.s=this.s},F.prototype.fromInt=function nt(t){this.t=1,this.s=t<0?-1:0,t>0?this[0]=t:t<-1?this[0]=t+this.DV:this.t=0},F.prototype.fromString=function it(t,e){var r;if(16==e)r=4;else if(8==e)r=3;else if(256==e)r=8;else if(2==e)r=1;else if(32==e)r=5;else{if(4!=e)return void this.fromRadix(t,e);r=2}this.t=0,this.s=0;for(var n=t.length,i=!1,o=0;--n>=0;){var s=8==r?255&t[n]:I(t,n);s<0?\"-\"==t.charAt(n)&&(i=!0):(i=!1,0==o?this[this.t++]=s:o+r>this.DB?(this[this.t-1]|=(s&(1<>this.DB-o):this[this.t-1]|=s<=this.DB&&(o-=this.DB))}8==r&&0!=(128&t[0])&&(this.s=-1,o>0&&(this[this.t-1]|=(1<0&&this[this.t-1]==t;)--this.t},F.prototype.dlShiftTo=function st(t,e){var r;for(r=this.t-1;r>=0;--r)e[r+t]=this[r];for(r=t-1;r>=0;--r)e[r]=0;e.t=this.t+t,e.s=this.s},F.prototype.drShiftTo=function at(t,e){for(var r=t;r=0;--r)e[r+s+1]=this[r]>>i|a,a=(this[r]&o)<=0;--r)e[r]=0;e[s]=a,e.t=this.t+s+1,e.s=this.s,e.clamp()},F.prototype.rShiftTo=function ct(t,e){e.s=this.s;var r=Math.floor(t/this.DB);if(r>=this.t)e.t=0;else{var n=t%this.DB,i=this.DB-n,o=(1<>n;for(var s=r+1;s>n;n>0&&(e[this.t-r-1]|=(this.s&o)<>=this.DB;if(t.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n-=t.s}e.s=n<0?-1:0,n<-1?e[r++]=this.DV+n:n>0&&(e[r++]=n),e.t=r,e.clamp()},F.prototype.multiplyTo=function lt(t,e){var r=this.abs(),n=t.abs(),i=r.t;for(e.t=i+n.t;--i>=0;)e[i]=0;for(i=0;i=0;)t[r]=0;for(r=0;r=e.DV&&(t[r+e.t]-=e.DV,t[r+e.t+1]=1)}t.t>0&&(t[t.t-1]+=e.am(r,e[r],t,2*r,0,1)),t.s=0,t.clamp()},F.prototype.divRemTo=function gt(t,e,r){var n=t.abs();if(!(n.t<=0)){var i=this.abs();if(i.t0?(n.lShiftTo(u,o),i.lShiftTo(u,r)):(n.copyTo(o),i.copyTo(r));var c=o.t,h=o[c-1];if(0!=h){var l=h*(1<1?o[c-2]>>this.F2:0),f=this.FV/l,g=(1<=0&&(r[r.t++]=1,r.subTo(y,r)),F.ONE.dlShiftTo(c,y),y.subTo(o,o);o.t=0;){var m=r[--p]==h?this.DM:Math.floor(r[p]*f+(r[p-1]+d)*g);if((r[p]+=o.am(0,m,r,v,0,c))0&&r.rShiftTo(u,r),s<0&&F.ZERO.subTo(r,r)}}},F.prototype.invDigit=function dt(){if(this.t<1)return 0;var t=this[0];if(0==(1&t))return 0;var e=3&t;return(e=(e=(e=(e=e*(2-(15&t)*e)&15)*(2-(255&t)*e)&255)*(2-((65535&t)*e&65535))&65535)*(2-t*e%this.DV)%this.DV)>0?this.DV-e:-e},F.prototype.isEven=function pt(){return 0==(this.t>0?1&this[0]:this.s)},F.prototype.exp=function vt(t,e){if(t>4294967295||t<1)return F.ONE;var r=E(),n=E(),i=e.convert(this),o=L(t)-1;for(i.copyTo(r);--o>=0;)if(e.sqrTo(r,n),(t&1<0)e.mulTo(n,i,r);else{var s=r;r=n,n=s}return e.revert(r)},F.prototype.toString=function yt(t){if(this.s<0)return\"-\"+this.negate().toString(t);var e;if(16==t)e=4;else if(8==t)e=3;else if(2==t)e=1;else if(32==t)e=5;else{if(4!=t)return this.toRadix(t);e=2}var r,n=(1<0)for(a>a)>0&&(i=!0,o=R(r));s>=0;)a>(a+=this.DB-e)):(r=this[s]>>(a-=e)&n,a<=0&&(a+=this.DB,--s)),r>0&&(i=!0),i&&(o+=R(r));return i?o:\"0\"},F.prototype.negate=function mt(){var t=E();return F.ZERO.subTo(this,t),t},F.prototype.abs=function _t(){return this.s<0?this.negate():this},F.prototype.compareTo=function St(t){var e=this.s-t.s;if(0!=e)return e;var r=this.t;if(0!=(e=r-t.t))return this.s<0?-e:e;for(;--r>=0;)if(0!=(e=this[r]-t[r]))return e;return 0},F.prototype.bitLength=function bt(){return this.t<=0?0:this.DB*(this.t-1)+L(this[this.t-1]^this.s&this.DM)},F.prototype.mod=function wt(t){var e=E();return this.abs().divRemTo(t,null,e),this.s<0&&e.compareTo(F.ZERO)>0&&t.subTo(e,e),e},F.prototype.modPowInt=function Ft(t,e){var r;return r=t<256||e.isEven()?new N(e):new U(e),this.exp(t,r)},F.ZERO=D(0),F.ONE=D(1),K.prototype.convert=q,K.prototype.revert=q,K.prototype.mulTo=function Et(t,e,r){t.multiplyTo(e,r)},K.prototype.sqrTo=function xt(t,e){t.squareTo(e)},J.prototype.convert=function At(t){if(t.s<0||t.t>2*this.m.t)return t.mod(this.m);if(t.compareTo(this.m)<0)return t;var e=E();return t.copyTo(e),this.reduce(e),e},J.prototype.revert=function kt(t){return t},J.prototype.reduce=function Pt(t){for(t.drShiftTo(this.m.t-1,this.r2),t.t>this.m.t+1&&(t.t=this.m.t+1,t.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);t.compareTo(this.r2)<0;)t.dAddOffset(1,this.m.t+1);for(t.subTo(this.r2,t);t.compareTo(this.m)>=0;)t.subTo(this.m,t)},J.prototype.mulTo=function Ct(t,e,r){t.multiplyTo(e,r),this.reduce(r)},J.prototype.sqrTo=function Tt(t,e){t.squareTo(e),this.reduce(e)};var Rt=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],It=(1<<26)/Rt[Rt.length-1];\n/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\nfunction Dt(){this.i=0,this.j=0,this.S=new Array}F.prototype.chunkSize=function Lt(t){return Math.floor(Math.LN2*this.DB/Math.log(t))},F.prototype.toRadix=function Nt(t){if(null==t&&(t=10),0==this.signum()||t<2||t>36)return\"0\";var e=this.chunkSize(t),r=Math.pow(t,e),n=D(r),i=E(),o=E(),s=\"\";for(this.divRemTo(n,i,o);i.signum()>0;)s=(r+o.intValue()).toString(t).substr(1)+s,i.divRemTo(n,i,o);return o.intValue().toString(t)+s},F.prototype.fromRadix=function Ut(t,e){this.fromInt(0),null==e&&(e=10);for(var r=this.chunkSize(e),n=Math.pow(e,r),i=!1,o=0,s=0,a=0;a=r&&(this.dMultiply(n),this.dAddOffset(s,0),o=0,s=0))}o>0&&(this.dMultiply(Math.pow(e,o)),this.dAddOffset(s,0)),i&&F.ZERO.subTo(this,this)},F.prototype.fromNumber=function Bt(t,e,r){if(\"number\"==typeof e)if(t<2)this.fromInt(1);else for(this.fromNumber(t,r),this.testBit(t-1)||this.bitwiseTo(F.ONE.shiftLeft(t-1),O,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(e);)this.dAddOffset(2,0),this.bitLength()>t&&this.subTo(F.ONE.shiftLeft(t-1),this);else{var n=new Array,i=7&t;n.length=1+(t>>3),e.nextBytes(n),i>0?n[0]&=(1<>=this.DB;if(t.t>=this.DB;n+=this.s}else{for(n+=this.s;r>=this.DB;n+=t.s}e.s=n<0?-1:0,n>0?e[r++]=n:n<-1&&(e[r++]=this.DV+n),e.t=r,e.clamp()},F.prototype.dMultiply=function Ht(t){this[this.t]=this.am(0,t-1,this,0,0,this.t),++this.t,this.clamp()},F.prototype.dAddOffset=function Vt(t,e){if(0!=t){for(;this.t<=e;)this[this.t++]=0;for(this[e]+=t;this[e]>=this.DV;)this[e]-=this.DV,++e>=this.t&&(this[this.t++]=0),++this[e]}},F.prototype.multiplyLowerTo=function Kt(t,e,r){var n,i=Math.min(this.t+t.t,e);for(r.s=0,r.t=i;i>0;)r[--i]=0;for(n=r.t-this.t;i=0;)r[n]=0;for(n=Math.max(e-this.t,0);n0)if(0==e)r=this[0]%t;else for(var n=this.t-1;n>=0;--n)r=(e*r+this[n])%t;return r},F.prototype.millerRabin=function Wt(t){var e=this.subtract(F.ONE),r=e.getLowestSetBit();if(r<=0)return!1;var n=e.shiftRight(r);(t=t+1>>1)>Rt.length&&(t=Rt.length);for(var i=E(),o=0;o>24},F.prototype.shortValue=function Xt(){return 0==this.t?this.s:this[0]<<16>>16},F.prototype.signum=function $t(){return this.s<0?-1:this.t<=0||1==this.t&&this[0]<=0?0:1},F.prototype.toByteArray=function Qt(){var t=this.t,e=new Array;e[0]=this.s;var r,n=this.DB-t*this.DB%8,i=0;if(t-- >0)for(n>n)!=(this.s&this.DM)>>n&&(e[i++]=r|this.s<=0;)n<8?(r=(this[t]&(1<>(n+=this.DB-8)):(r=this[t]>>(n-=8)&255,n<=0&&(n+=this.DB,--t)),0!=(128&r)&&(r|=-256),0==i&&(128&this.s)!=(128&r)&&++i,(i>0||r!=this.s)&&(e[i++]=r);return e},F.prototype.equals=function Zt(t){return 0==this.compareTo(t)},F.prototype.min=function te(t){return this.compareTo(t)<0?this:t},F.prototype.max=function ee(t){return this.compareTo(t)>0?this:t},F.prototype.and=function re(t){var e=E();return this.bitwiseTo(t,B,e),e},F.prototype.or=function ne(t){var e=E();return this.bitwiseTo(t,O,e),e},F.prototype.xor=function ie(t){var e=E();return this.bitwiseTo(t,j,e),e},F.prototype.andNot=function oe(t){var e=E();return this.bitwiseTo(t,M,e),e},F.prototype.not=function se(){for(var t=E(),e=0;e=this.t?0!=this.s:0!=(this[e]&1<1){var h=E();for(n.sqrTo(s[1],h);a<=c;)s[a]=E(),n.mulTo(h,s[a-2],s[a]),a+=2}var l,f,g=t.t-1,d=!0,p=E();for(i=L(t[g])-1;g>=0;){for(i>=u?l=t[g]>>i-u&c:(l=(t[g]&(1<0&&(l|=t[g-1]>>this.DB+i-u)),a=r;0==(1&l);)l>>=1,--a;if((i-=a)<0&&(i+=this.DB,--g),d)s[l].copyTo(o),d=!1;else{for(;a>1;)n.sqrTo(o,p),n.sqrTo(p,o),a-=2;a>0?n.sqrTo(o,p):(f=o,o=p,p=f),n.mulTo(p,s[l],o)}for(;g>=0&&0==(t[g]&1<=0?(r.subTo(n,r),e&&i.subTo(s,i),o.subTo(a,o)):(n.subTo(r,n),e&&s.subTo(i,s),a.subTo(o,a))}return 0!=n.compareTo(F.ONE)?F.ZERO:a.compareTo(t)>=0?a.subtract(t):a.signum()<0?(a.addTo(t,a),a.signum()<0?a.add(t):a):a},F.prototype.pow=function Fe(t){return this.exp(t,new K)},F.prototype.gcd=function Ee(t){var e=this.s<0?this.negate():this.clone(),r=t.s<0?t.negate():t.clone();if(e.compareTo(r)<0){var n=e;e=r,r=n}var i=e.getLowestSetBit(),o=r.getLowestSetBit();if(o<0)return e;for(i0&&(e.rShiftTo(o,e),r.rShiftTo(o,r));e.signum()>0;)(i=e.getLowestSetBit())>0&&e.rShiftTo(i,e),(i=r.getLowestSetBit())>0&&r.rShiftTo(i,r),e.compareTo(r)>=0?(e.subTo(r,e),e.rShiftTo(1,e)):(r.subTo(e,r),r.rShiftTo(1,r));return o>0&&r.lShiftTo(o,r),r},F.prototype.isProbablePrime=function xe(t){var e,r=this.abs();if(1==r.t&&r[0]<=Rt[Rt.length-1]){for(e=0;e>8&255,Te[Re++]^=e>>16&255,Te[Re++]^=e>>24&255,Re>=256&&(Re-=256)}((new Date).getTime())}if(null==Te){var De;if(Te=new Array,Re=0,void 0!==i&&(void 0!==i.crypto||void 0!==i.msCrypto)){var Le=i.crypto||i.msCrypto;if(Le.getRandomValues){var Ne=new Uint8Array(32);for(Le.getRandomValues(Ne),De=0;De<32;++De)Te[Re++]=Ne[De]}else if(\"Netscape\"==n.appName&&n.appVersion<\"5\"){var Ue=i.crypto.random(32);for(De=0;De>>8,Te[Re++]=255&De;Re=0,Ie()}function Be(){if(null==Ce){for(Ie(),(Ce=function t(){return new Dt}()).init(Te),Re=0;Re>24,(16711680&i)>>16,(65280&i)>>8,255&i]))),i+=1;return n}function He(){this.n=null,this.e=0,this.d=null,this.p=null,this.q=null,this.dmp1=null,this.dmq1=null,this.coeff=null}\n/*! (c) Tom Wu | http://www-cs-students.stanford.edu/~tjw/jsbn/\n */\nfunction Ve(t,e){this.x=e,this.q=t}function Ke(t,e,r,n){this.curve=t,this.x=e,this.y=r,this.z=null==n?F.ONE:n,this.zinv=null}function qe(t,e,r){this.q=t,this.a=this.fromBigInteger(e),this.b=this.fromBigInteger(r),this.infinity=new Ke(this,null,null)}Oe.prototype.nextBytes=function Je(t){var e;for(e=0;e0&&e.length>0))throw\"Invalid RSA public key\";this.n=je(t,16),this.e=parseInt(e,16)}},He.prototype.encrypt=function Ye(t){var e=function r(t,e){if(e=0&&e>0;){var i=t.charCodeAt(n--);i<128?r[--e]=i:i>127&&i<2048?(r[--e]=63&i|128,r[--e]=i>>6|192):(r[--e]=63&i|128,r[--e]=i>>6&63|128,r[--e]=i>>12|224)}r[--e]=0;for(var o=new Oe,s=new Array;e>2;){for(s[0]=0;0==s[0];)o.nextBytes(s);r[--e]=s[0]}return r[--e]=2,r[--e]=0,new F(r)}(t,this.n.bitLength()+7>>3);if(null==e)return null;var n=this.doPublic(e);if(null==n)return null;var i=n.toString(16);return 0==(1&i.length)?i:\"0\"+i},He.prototype.encryptOAEP=function Ge(t,e,r){var n=function i(t,e,r,n){var i=br.crypto.MessageDigest,o=br.crypto.Util,s=null;if(r||(r=\"sha1\"),\"string\"==typeof r&&(s=i.getCanonicalAlgName(r),n=i.getHashLength(s),r=function t(e){return Nr(o.hashHex(Ur(e),s))}),t.length+2*n+2>e)throw\"Message too long for RSA\";var a,u=\"\";for(a=0;a>3,e,r);if(null==n)return null;var o=this.doPublic(n);if(null==o)return null;var s=o.toString(16);return 0==(1&s.length)?s:\"0\"+s},He.prototype.type=\"RSA\",Ve.prototype.equals=function Xe(t){return t==this||this.q.equals(t.q)&&this.x.equals(t.x)},Ve.prototype.toBigInteger=function $e(){return this.x},Ve.prototype.negate=function Qe(){return new Ve(this.q,this.x.negate().mod(this.q))},Ve.prototype.add=function Ze(t){return new Ve(this.q,this.x.add(t.toBigInteger()).mod(this.q))},Ve.prototype.subtract=function tr(t){return new Ve(this.q,this.x.subtract(t.toBigInteger()).mod(this.q))},Ve.prototype.multiply=function er(t){return new Ve(this.q,this.x.multiply(t.toBigInteger()).mod(this.q))},Ve.prototype.square=function rr(){return new Ve(this.q,this.x.square().mod(this.q))},Ve.prototype.divide=function nr(t){return new Ve(this.q,this.x.multiply(t.toBigInteger().modInverse(this.q)).mod(this.q))},Ke.prototype.getX=function ir(){return null==this.zinv&&(this.zinv=this.z.modInverse(this.curve.q)),this.curve.fromBigInteger(this.x.toBigInteger().multiply(this.zinv).mod(this.curve.q))},Ke.prototype.getY=function or(){return null==this.zinv&&(this.zinv=this.z.modInverse(this.curve.q)),this.curve.fromBigInteger(this.y.toBigInteger().multiply(this.zinv).mod(this.curve.q))},Ke.prototype.equals=function sr(t){return t==this||(this.isInfinity()?t.isInfinity():t.isInfinity()?this.isInfinity():!!t.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(t.z)).mod(this.curve.q).equals(F.ZERO)&&t.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(t.z)).mod(this.curve.q).equals(F.ZERO))},Ke.prototype.isInfinity=function ar(){return null==this.x&&null==this.y||this.z.equals(F.ZERO)&&!this.y.toBigInteger().equals(F.ZERO)},Ke.prototype.negate=function ur(){return new Ke(this.curve,this.x,this.y.negate(),this.z)},Ke.prototype.add=function cr(t){if(this.isInfinity())return t;if(t.isInfinity())return this;var e=t.y.toBigInteger().multiply(this.z).subtract(this.y.toBigInteger().multiply(t.z)).mod(this.curve.q),r=t.x.toBigInteger().multiply(this.z).subtract(this.x.toBigInteger().multiply(t.z)).mod(this.curve.q);if(F.ZERO.equals(r))return F.ZERO.equals(e)?this.twice():this.curve.getInfinity();var n=new F(\"3\"),i=this.x.toBigInteger(),o=this.y.toBigInteger(),s=(t.x.toBigInteger(),t.y.toBigInteger(),r.square()),a=s.multiply(r),u=i.multiply(s),c=e.square().multiply(this.z),h=c.subtract(u.shiftLeft(1)).multiply(t.z).subtract(a).multiply(r).mod(this.curve.q),l=u.multiply(n).multiply(e).subtract(o.multiply(a)).subtract(c.multiply(e)).multiply(t.z).add(e.multiply(a)).mod(this.curve.q),f=a.multiply(this.z).multiply(t.z).mod(this.curve.q);return new Ke(this.curve,this.curve.fromBigInteger(h),this.curve.fromBigInteger(l),f)},Ke.prototype.twice=function hr(){if(this.isInfinity())return this;if(0==this.y.toBigInteger().signum())return this.curve.getInfinity();var t=new F(\"3\"),e=this.x.toBigInteger(),r=this.y.toBigInteger(),n=r.multiply(this.z),i=n.multiply(r).mod(this.curve.q),o=this.curve.a.toBigInteger(),s=e.square().multiply(t);F.ZERO.equals(o)||(s=s.add(this.z.square().multiply(o)));var a=(s=s.mod(this.curve.q)).square().subtract(e.shiftLeft(3).multiply(i)).shiftLeft(1).multiply(n).mod(this.curve.q),u=s.multiply(t).multiply(e).subtract(i.shiftLeft(1)).shiftLeft(2).multiply(i).subtract(s.square().multiply(s)).mod(this.curve.q),c=n.square().multiply(n).shiftLeft(3).mod(this.curve.q);return new Ke(this.curve,this.curve.fromBigInteger(a),this.curve.fromBigInteger(u),c)},Ke.prototype.multiply=function lr(t){if(this.isInfinity())return this;if(0==t.signum())return this.curve.getInfinity();var e,r=t,n=r.multiply(new F(\"3\")),i=this.negate(),o=this,s=this.curve.q.subtract(t),a=s.multiply(new F(\"3\")),u=new Ke(this.curve,this.x,this.y),c=u.negate();for(e=n.bitLength()-2;e>0;--e){o=o.twice();var h=n.testBit(e);h!=r.testBit(e)&&(o=o.add(h?this:i))}for(e=a.bitLength()-2;e>0;--e){u=u.twice();var l=a.testBit(e);l!=s.testBit(e)&&(u=u.add(l?u:c))}return o},Ke.prototype.multiplyTwo=function fr(t,e,r){var n;n=t.bitLength()>r.bitLength()?t.bitLength()-1:r.bitLength()-1;for(var i=this.curve.getInfinity(),o=this.add(e);n>=0;)i=i.twice(),t.testBit(n)?i=r.testBit(n)?i.add(o):i.add(this):r.testBit(n)&&(i=i.add(e)),--n;return i},qe.prototype.getQ=function gr(){return this.q},qe.prototype.getA=function dr(){return this.a},qe.prototype.getB=function pr(){return this.b},qe.prototype.equals=function vr(t){return t==this||this.q.equals(t.q)&&this.a.equals(t.a)&&this.b.equals(t.b)},qe.prototype.getInfinity=function yr(){return this.infinity},qe.prototype.fromBigInteger=function mr(t){return new Ve(this.q,t)},qe.prototype.decodePointHex=function _r(t){switch(parseInt(t.substr(0,2),16)){case 0:return this.infinity;case 2:case 3:return null;case 4:case 6:case 7:var e=(t.length-2)/2,r=t.substr(2,e),n=t.substr(e+2,e);return new Ke(this,this.fromBigInteger(new F(r,16)),this.fromBigInteger(new F(n,16)));default:return null}},\n/*! (c) Stefan Thomas | https://github.com/bitcoinjs/bitcoinjs-lib\n */\nVe.prototype.getByteLength=function(){return Math.floor((this.toBigInteger().bitLength()+7)/8)},Ke.prototype.getEncoded=function(t){var e=function t(e,r){var n=e.toByteArrayUnsigned();if(rn.length;)n.unshift(0);return n},r=this.getX().toBigInteger(),n=this.getY().toBigInteger(),i=e(r,32);return t?n.isEven()?i.unshift(2):i.unshift(3):(i.unshift(4),i=i.concat(e(n,32))),i},Ke.decodeFrom=function(t,e){e[0];var r=e.length-1,n=e.slice(1,1+r/2),i=e.slice(1+r/2,1+r);n.unshift(0),i.unshift(0);var o=new F(n),s=new F(i);return new Ke(t,t.fromBigInteger(o),t.fromBigInteger(s))},Ke.decodeFromHex=function(t,e){e.substr(0,2);var r=e.length-2,n=e.substr(2,r/2),i=e.substr(2+r/2,r/2),o=new F(n,16),s=new F(i,16);return new Ke(t,t.fromBigInteger(o),t.fromBigInteger(s))},Ke.prototype.add2D=function(t){if(this.isInfinity())return t;if(t.isInfinity())return this;if(this.x.equals(t.x))return this.y.equals(t.y)?this.twice():this.curve.getInfinity();var e=t.x.subtract(this.x),r=t.y.subtract(this.y).divide(e),n=r.square().subtract(this.x).subtract(t.x),i=r.multiply(this.x.subtract(n)).subtract(this.y);return new Ke(this.curve,n,i)},Ke.prototype.twice2D=function(){if(this.isInfinity())return this;if(0==this.y.toBigInteger().signum())return this.curve.getInfinity();var t=this.curve.fromBigInteger(F.valueOf(2)),e=this.curve.fromBigInteger(F.valueOf(3)),r=this.x.square().multiply(e).add(this.curve.a).divide(this.y.multiply(t)),n=r.square().subtract(this.x.multiply(t)),i=r.multiply(this.x.subtract(n)).subtract(this.y);return new Ke(this.curve,n,i)},Ke.prototype.multiply2D=function(t){if(this.isInfinity())return this;if(0==t.signum())return this.curve.getInfinity();var e,r=t,n=r.multiply(new F(\"3\")),i=this.negate(),o=this;for(e=n.bitLength()-2;e>0;--e){o=o.twice();var s=n.testBit(e);s!=r.testBit(e)&&(o=o.add2D(s?this:i))}return o},Ke.prototype.isOnCurve=function(){var t=this.getX().toBigInteger(),e=this.getY().toBigInteger(),r=this.curve.getA().toBigInteger(),n=this.curve.getB().toBigInteger(),i=this.curve.getQ(),o=e.multiply(e).mod(i),s=t.multiply(t).multiply(t).add(r.multiply(t)).add(n).mod(i);return o.equals(s)},Ke.prototype.toString=function(){return\"(\"+this.getX().toBigInteger().toString()+\",\"+this.getY().toBigInteger().toString()+\")\"},Ke.prototype.validate=function(){var t=this.curve.getQ();if(this.isInfinity())throw new Error(\"Point is at infinity.\");var e=this.getX().toBigInteger(),r=this.getY().toBigInteger();if(e.compareTo(F.ONE)<0||e.compareTo(t.subtract(F.ONE))>0)throw new Error(\"x coordinate out of bounds\");if(r.compareTo(F.ONE)<0||r.compareTo(t.subtract(F.ONE))>0)throw new Error(\"y coordinate out of bounds\");if(!this.isOnCurve())throw new Error(\"Point is not on the curve.\");if(this.multiply(t).isInfinity())throw new Error(\"Point is not a scalar multiple of G.\");return!0};\n/*! Mike Samuel (c) 2009 | code.google.com/p/json-sans-eval\n */\nvar Sr=function(){var t=new RegExp('(?:false|true|null|[\\\\{\\\\}\\\\[\\\\]]|(?:-?\\\\b(?:0|[1-9][0-9]*)(?:\\\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?\\\\b)|(?:\"(?:[^\\\\0-\\\\x08\\\\x0a-\\\\x1f\"\\\\\\\\]|\\\\\\\\(?:[\"/\\\\\\\\bfnrt]|u[0-9A-Fa-f]{4}))*\"))',\"g\"),e=new RegExp(\"\\\\\\\\(?:([^u])|u(.{4}))\",\"g\"),n={'\"':'\"',\"/\":\"/\",\"\\\\\":\"\\\\\",b:\"\\b\",f:\"\\f\",n:\"\\n\",r:\"\\r\",t:\"\\t\"};function i(t,e,r){return e?n[e]:String.fromCharCode(parseInt(r,16))}var o=new String(\"\"),s=Object.hasOwnProperty;return function(n,a){var u,c,h=n.match(t),l=h[0],f=!1;\"{\"===l?u={}:\"[\"===l?u=[]:(u=[],f=!0);for(var g=[u],d=1-f,p=h.length;d=0;)delete i[o[h]]}return a.call(e,n,i)}({\"\":u},\"\")}return u}}();void 0!==br&&br||(e.KJUR=br={}),void 0!==br.asn1&&br.asn1||(br.asn1={}),br.asn1.ASN1Util=new function(){this.integerToByteHex=function(t){var e=t.toString(16);return e.length%2==1&&(e=\"0\"+e),e},this.bigIntToMinTwosComplementsHex=function(t){var e=t.toString(16);if(\"-\"!=e.substr(0,1))e.length%2==1?e=\"0\"+e:e.match(/^[0-7]/)||(e=\"00\"+e);else{var r=e.substr(1).length;r%2==1?r+=1:e.match(/^[0-7]/)||(r+=2);for(var n=\"\",i=0;i15)throw\"ASN.1 length too long to represent by 8x: n = \"+t.toString(16);return(128+r).toString(16)+e},this.getEncodedHex=function(){return(null==this.hTLV||this.isModified)&&(this.hV=this.getFreshValueHex(),this.hL=this.getLengthHexFromValue(),this.hTLV=this.hT+this.hL+this.hV,this.isModified=!1),this.hTLV},this.getValueHex=function(){return this.getEncodedHex(),this.hV},this.getFreshValueHex=function(){return\"\"},this.setByParam=function(t){this.params=t},null!=t&&null!=t.tlv&&(this.hTLV=t.tlv,this.isModified=!1)},br.asn1.DERAbstractString=function(t){br.asn1.DERAbstractString.superclass.constructor.call(this);this.getString=function(){return this.s},this.setString=function(t){this.hTLV=null,this.isModified=!0,this.s=t,this.hV=Dr(this.s).toLowerCase()},this.setStringHex=function(t){this.hTLV=null,this.isModified=!0,this.s=null,this.hV=t},this.getFreshValueHex=function(){return this.hV},void 0!==t&&(\"string\"==typeof t?this.setString(t):void 0!==t.str?this.setString(t.str):void 0!==t.hex&&this.setStringHex(t.hex))},o.lang.extend(br.asn1.DERAbstractString,br.asn1.ASN1Object),br.asn1.DERAbstractTime=function(t){br.asn1.DERAbstractTime.superclass.constructor.call(this);this.localDateToUTC=function(t){var e=t.getTime()+6e4*t.getTimezoneOffset();return new Date(e)},this.formatDate=function(t,e,r){var n=this.zeroPadding,i=this.localDateToUTC(t),o=String(i.getFullYear());\"utc\"==e&&(o=o.substr(2,2));var s=o+n(String(i.getMonth()+1),2)+n(String(i.getDate()),2)+n(String(i.getHours()),2)+n(String(i.getMinutes()),2)+n(String(i.getSeconds()),2);if(!0===r){var a=i.getMilliseconds();if(0!=a){var u=n(String(a),3);s=s+\".\"+(u=u.replace(/[0]+$/,\"\"))}}return s+\"Z\"},this.zeroPadding=function(t,e){return t.length>=e?t:new Array(e-t.length+1).join(\"0\")+t},this.getString=function(){return this.s},this.setString=function(t){this.hTLV=null,this.isModified=!0,this.s=t,this.hV=Pr(t)},this.setByDateValue=function(t,e,r,n,i,o){var s=new Date(Date.UTC(t,e-1,r,n,i,o,0));this.setByDate(s)},this.getFreshValueHex=function(){return this.hV}},o.lang.extend(br.asn1.DERAbstractTime,br.asn1.ASN1Object),br.asn1.DERAbstractStructured=function(t){br.asn1.DERAbstractString.superclass.constructor.call(this);this.setByASN1ObjectArray=function(t){this.hTLV=null,this.isModified=!0,this.asn1Array=t},this.appendASN1Object=function(t){this.hTLV=null,this.isModified=!0,this.asn1Array.push(t)},this.asn1Array=new Array,void 0!==t&&void 0!==t.array&&(this.asn1Array=t.array)},o.lang.extend(br.asn1.DERAbstractStructured,br.asn1.ASN1Object),br.asn1.DERBoolean=function(t){br.asn1.DERBoolean.superclass.constructor.call(this),this.hT=\"01\",this.hTLV=0==t?\"010100\":\"0101ff\"},o.lang.extend(br.asn1.DERBoolean,br.asn1.ASN1Object),br.asn1.DERInteger=function(t){br.asn1.DERInteger.superclass.constructor.call(this),this.hT=\"02\",this.setByBigInteger=function(t){this.hTLV=null,this.isModified=!0,this.hV=br.asn1.ASN1Util.bigIntToMinTwosComplementsHex(t)},this.setByInteger=function(t){var e=new F(String(t),10);this.setByBigInteger(e)},this.setValueHex=function(t){this.hV=t},this.getFreshValueHex=function(){return this.hV},void 0!==t&&(void 0!==t.bigint?this.setByBigInteger(t.bigint):void 0!==t.int?this.setByInteger(t.int):\"number\"==typeof t?this.setByInteger(t):void 0!==t.hex&&this.setValueHex(t.hex))},o.lang.extend(br.asn1.DERInteger,br.asn1.ASN1Object),br.asn1.DERBitString=function(t){if(void 0!==t&&void 0!==t.obj){var e=br.asn1.ASN1Util.newObject(t.obj);t.hex=\"00\"+e.getEncodedHex()}br.asn1.DERBitString.superclass.constructor.call(this),this.hT=\"03\",this.setHexValueIncludingUnusedBits=function(t){this.hTLV=null,this.isModified=!0,this.hV=t},this.setUnusedBitsAndHexValue=function(t,e){if(t<0||7i.length&&(i=n[r]);return(t=t.replace(i,\"::\")).slice(1,-1)}function Yr(t){var e=\"malformed hex value\";if(!t.match(/^([0-9A-Fa-f][0-9A-Fa-f]){1,}$/))throw e;if(8!=t.length)return 32==t.length?zr(t):t;try{return parseInt(t.substr(0,2),16)+\".\"+parseInt(t.substr(2,2),16)+\".\"+parseInt(t.substr(4,2),16)+\".\"+parseInt(t.substr(6,2),16)}catch(t){throw e}}function Gr(t){for(var e=encodeURIComponent(t),r=\"\",n=0;n\"7\"?\"00\"+t:t}Er.getLblen=function(t,e){if(\"8\"!=t.substr(e+2,1))return 1;var r=parseInt(t.substr(e+3,1));return 0==r?-1:0=n)break}return s},Er.getNthChildIdx=function(t,e,r){return Er.getChildIdx(t,e)[r]},Er.getIdxbyList=function(t,e,r,n){var i,o,s=Er;return 0==r.length?void 0!==n&&t.substr(e,2)!==n?-1:e:(i=r.shift())>=(o=s.getChildIdx(t,e)).length?-1:s.getIdxbyList(t,o[i],r,n)},Er.getIdxbyListEx=function(t,e,r,n){var i,o,s=Er;if(0==r.length)return void 0!==n&&t.substr(e,2)!==n?-1:e;i=r.shift(),o=s.getChildIdx(t,e);for(var a=0,u=0;u=t.length?null:i.getTLV(t,o)},Er.getTLVbyListEx=function(t,e,r,n){var i=Er,o=i.getIdxbyListEx(t,e,r,n);return-1==o?null:i.getTLV(t,o)},Er.getVbyList=function(t,e,r,n,i){var o,s,a=Er;return-1==(o=a.getIdxbyList(t,e,r,n))||o>=t.length?null:(s=a.getV(t,o),!0===i&&(s=s.substr(2)),s)},Er.getVbyListEx=function(t,e,r,n,i){var o,s,a=Er;return-1==(o=a.getIdxbyListEx(t,e,r,n))?null:(s=a.getV(t,o),\"03\"==t.substr(o,2)&&!1!==i&&(s=s.substr(2)),s)},Er.getInt=function(t,e,r){null==r&&(r=-1);try{var n=t.substr(e,2);if(\"02\"!=n&&\"03\"!=n)return r;var i=Er.getV(t,e);return\"02\"==n?parseInt(i,16):function o(t){try{var e=t.substr(0,2);if(\"00\"==e)return parseInt(t.substr(2),16);var r=parseInt(e,16),n=t.substr(2),i=parseInt(n,16).toString(2);return\"0\"==i&&(i=\"00000000\"),i=i.slice(0,0-r),parseInt(i,2)}catch(t){return-1}}(i)}catch(t){return r}},Er.getOID=function(t,e,r){null==r&&(r=null);try{return\"06\"!=t.substr(e,2)?r:function n(t){if(!Xr(t))return null;try{var e=[],r=t.substr(0,2),n=parseInt(r,16);e[0]=new String(Math.floor(n/40)),e[1]=new String(n%40);for(var i=t.substr(2),o=[],s=0;s0&&(c=c+\".\"+a.join(\".\")),c}catch(t){return null}}(Er.getV(t,e))}catch(t){return r}},Er.getOIDName=function(t,e,r){null==r&&(r=null);try{var n=Er.getOID(t,e,r);if(n==r)return r;var i=br.asn1.x509.OID.oid2name(n);return\"\"==i?n:i}catch(t){return r}},Er.getString=function(t,e,r){null==r&&(r=null);try{return Nr(Er.getV(t,e))}catch(t){return r}},Er.hextooidstr=function(t){var e=function t(e,r){return e.length>=r?e:new Array(r-e.length+1).join(\"0\")+e},r=[],n=t.substr(0,2),i=parseInt(n,16);r[0]=new String(Math.floor(i/40)),r[1]=new String(i%40);for(var o=t.substr(2),s=[],a=0;a0&&(h=h+\".\"+u.join(\".\")),h},Er.dump=function(t,e,r,n){var i=Er,o=i.getV,s=i.dump,a=i.getChildIdx,u=t;t instanceof br.asn1.ASN1Object&&(u=t.getEncodedHex());var c=function t(e,r){return e.length<=2*r?e:e.substr(0,r)+\"..(total \"+e.length/2+\"bytes)..\"+e.substr(e.length-r,r)};void 0===e&&(e={ommit_long_octet:32}),void 0===r&&(r=0),void 0===n&&(n=\"\");var h,l=e.ommit_long_octet;if(\"01\"==(h=u.substr(r,2)))return\"00\"==(f=o(u,r))?n+\"BOOLEAN FALSE\\n\":n+\"BOOLEAN TRUE\\n\";if(\"02\"==h)return n+\"INTEGER \"+c(f=o(u,r),l)+\"\\n\";if(\"03\"==h){var f=o(u,r);if(i.isASN1HEX(f.substr(2))){var g=n+\"BITSTRING, encapsulates\\n\";return g+=s(f.substr(2),e,0,n+\" \")}return n+\"BITSTRING \"+c(f,l)+\"\\n\"}if(\"04\"==h){f=o(u,r);if(i.isASN1HEX(f)){g=n+\"OCTETSTRING, encapsulates\\n\";return g+=s(f,e,0,n+\" \")}return n+\"OCTETSTRING \"+c(f,l)+\"\\n\"}if(\"05\"==h)return n+\"NULL\\n\";if(\"06\"==h){var d=o(u,r),p=br.asn1.ASN1Util.oidHexToInt(d),v=br.asn1.x509.OID.oid2name(p),y=p.replace(/\\./g,\" \");return\"\"!=v?n+\"ObjectIdentifier \"+v+\" (\"+y+\")\\n\":n+\"ObjectIdentifier (\"+y+\")\\n\"}if(\"0a\"==h)return n+\"ENUMERATED \"+parseInt(o(u,r))+\"\\n\";if(\"0c\"==h)return n+\"UTF8String '\"+Lr(o(u,r))+\"'\\n\";if(\"13\"==h)return n+\"PrintableString '\"+Lr(o(u,r))+\"'\\n\";if(\"14\"==h)return n+\"TeletexString '\"+Lr(o(u,r))+\"'\\n\";if(\"16\"==h)return n+\"IA5String '\"+Lr(o(u,r))+\"'\\n\";if(\"17\"==h)return n+\"UTCTime \"+Lr(o(u,r))+\"\\n\";if(\"18\"==h)return n+\"GeneralizedTime \"+Lr(o(u,r))+\"\\n\";if(\"1a\"==h)return n+\"VisualString '\"+Lr(o(u,r))+\"'\\n\";if(\"1e\"==h)return n+\"BMPString '\"+Lr(o(u,r))+\"'\\n\";if(\"30\"==h){if(\"3000\"==u.substr(r,4))return n+\"SEQUENCE {}\\n\";g=n+\"SEQUENCE\\n\";var m=e;if((2==(b=a(u,r)).length||3==b.length)&&\"06\"==u.substr(b[0],2)&&\"04\"==u.substr(b[b.length-1],2)){v=i.oidname(o(u,b[0]));var _=JSON.parse(JSON.stringify(e));_.x509ExtName=v,m=_}for(var S=0;S31)&&(128==(192&r)&&(31&r)==n))}catch(t){return!1}},Er.isASN1HEX=function(t){var e=Er;if(t.length%2==1)return!1;var r=e.getVblen(t,0),n=t.substr(0,2),i=e.getL(t,0);return t.length-n.length-i.length==2*r},Er.checkStrictDER=function(t,e,r,n,i){var o=Er;if(void 0===r){if(\"string\"!=typeof t)throw new Error(\"not hex string\");if(t=t.toLowerCase(),!br.lang.String.isHex(t))throw new Error(\"not hex string\");r=t.length,i=(n=t.length/2)<128?1:Math.ceil(n.toString(16))+1}if(o.getL(t,e).length>2*i)throw new Error(\"L of TLV too long: idx=\"+e);var s=o.getVblen(t,e);if(s>n)throw new Error(\"value of L too long than hex: idx=\"+e);var a=o.getTLV(t,e),u=a.length-2-o.getL(t,e).length;if(u!==2*s)throw new Error(\"V string length and L's value not the same:\"+u+\"/\"+2*s);if(0===e&&t.length!=a.length)throw new Error(\"total length and TLV length unmatch:\"+t.length+\"!=\"+a.length);var c=t.substr(e,2);if(\"02\"===c){var h=o.getVidx(t,e);if(\"00\"==t.substr(h,2)&&t.charCodeAt(h+2)<56)throw new Error(\"not least zeros for DER INTEGER\")}if(32&parseInt(c,16)){for(var l=o.getVblen(t,e),f=0,g=o.getChildIdx(t,e),d=0;d=r?e:new Array(r-e.length+1).join(n)+e};void 0!==br&&br||(e.KJUR=br={}),void 0!==br.crypto&&br.crypto||(br.crypto={}),br.crypto.Util=new function(){this.DIGESTINFOHEAD={sha1:\"3021300906052b0e03021a05000414\",sha224:\"302d300d06096086480165030402040500041c\",sha256:\"3031300d060960864801650304020105000420\",sha384:\"3041300d060960864801650304020205000430\",sha512:\"3051300d060960864801650304020305000440\",md2:\"3020300c06082a864886f70d020205000410\",md5:\"3020300c06082a864886f70d020505000410\",ripemd160:\"3021300906052b2403020105000414\"},this.DEFAULTPROVIDER={md5:\"cryptojs\",sha1:\"cryptojs\",sha224:\"cryptojs\",sha256:\"cryptojs\",sha384:\"cryptojs\",sha512:\"cryptojs\",ripemd160:\"cryptojs\",hmacmd5:\"cryptojs\",hmacsha1:\"cryptojs\",hmacsha224:\"cryptojs\",hmacsha256:\"cryptojs\",hmacsha384:\"cryptojs\",hmacsha512:\"cryptojs\",hmacripemd160:\"cryptojs\",MD5withRSA:\"cryptojs/jsrsa\",SHA1withRSA:\"cryptojs/jsrsa\",SHA224withRSA:\"cryptojs/jsrsa\",SHA256withRSA:\"cryptojs/jsrsa\",SHA384withRSA:\"cryptojs/jsrsa\",SHA512withRSA:\"cryptojs/jsrsa\",RIPEMD160withRSA:\"cryptojs/jsrsa\",MD5withECDSA:\"cryptojs/jsrsa\",SHA1withECDSA:\"cryptojs/jsrsa\",SHA224withECDSA:\"cryptojs/jsrsa\",SHA256withECDSA:\"cryptojs/jsrsa\",SHA384withECDSA:\"cryptojs/jsrsa\",SHA512withECDSA:\"cryptojs/jsrsa\",RIPEMD160withECDSA:\"cryptojs/jsrsa\",SHA1withDSA:\"cryptojs/jsrsa\",SHA224withDSA:\"cryptojs/jsrsa\",SHA256withDSA:\"cryptojs/jsrsa\",MD5withRSAandMGF1:\"cryptojs/jsrsa\",SHAwithRSAandMGF1:\"cryptojs/jsrsa\",SHA1withRSAandMGF1:\"cryptojs/jsrsa\",SHA224withRSAandMGF1:\"cryptojs/jsrsa\",SHA256withRSAandMGF1:\"cryptojs/jsrsa\",SHA384withRSAandMGF1:\"cryptojs/jsrsa\",SHA512withRSAandMGF1:\"cryptojs/jsrsa\",RIPEMD160withRSAandMGF1:\"cryptojs/jsrsa\"},this.CRYPTOJSMESSAGEDIGESTNAME={md5:y.algo.MD5,sha1:y.algo.SHA1,sha224:y.algo.SHA224,sha256:y.algo.SHA256,sha384:y.algo.SHA384,sha512:y.algo.SHA512,ripemd160:y.algo.RIPEMD160},this.getDigestInfoHex=function(t,e){if(void 0===this.DIGESTINFOHEAD[e])throw\"alg not supported in Util.DIGESTINFOHEAD: \"+e;return this.DIGESTINFOHEAD[e]+t},this.getPaddedDigestInfoHex=function(t,e,r){var n=this.getDigestInfoHex(t,e),i=r/4;if(n.length+22>i)throw\"key is too short for SigAlg: keylen=\"+r+\",\"+e;for(var o=\"0001\",s=\"00\"+n,a=\"\",u=i-o.length-s.length,c=0;c=0)return!1;if(r.compareTo(n.ONE)<0||r.compareTo(o)>=0)return!1;var a=r.modInverse(o),u=t.multiply(a).mod(o),c=e.multiply(a).mod(o);return s.multiply(u).add(i.multiply(c)).getX().toBigInteger().mod(o).equals(e)},this.serializeSig=function(t,e){var r=t.toByteArraySigned(),n=e.toByteArraySigned(),i=[];return i.push(2),i.push(r.length),(i=i.concat(r)).push(2),i.push(n.length),(i=i.concat(n)).unshift(i.length),i.unshift(48),i},this.parseSig=function(t){var e;if(48!=t[0])throw new Error(\"Signature not a valid DERSequence\");if(2!=t[e=2])throw new Error(\"First element in signature must be a DERInteger\");var r=t.slice(e+2,e+2+t[e+1]);if(2!=t[e+=2+t[e+1]])throw new Error(\"Second element in signature must be a DERInteger\");var i=t.slice(e+2,e+2+t[e+1]);return e+=2+t[e+1],{r:n.fromByteArrayUnsigned(r),s:n.fromByteArrayUnsigned(i)}},this.parseSigCompact=function(t){if(65!==t.length)throw\"Signature has the wrong length\";var e=t[0]-27;if(e<0||e>7)throw\"Invalid signature type\";var r=this.ecparams.n;return{r:n.fromByteArrayUnsigned(t.slice(1,33)).mod(r),s:n.fromByteArrayUnsigned(t.slice(33,65)).mod(r),i:e}},this.readPKCS5PrvKeyHex=function(t){if(!1===h(t))throw new Error(\"not ASN.1 hex string\");var e,r,n;try{e=c(t,0,[\"[0]\",0],\"06\"),r=c(t,0,[1],\"04\");try{n=c(t,0,[\"[1]\",0],\"03\")}catch(t){}}catch(t){throw new Error(\"malformed PKCS#1/5 plain ECC private key\")}if(this.curveName=a(e),void 0===this.curveName)throw\"unsupported curve name\";this.setNamedCurve(this.curveName),this.setPublicKeyHex(n),this.setPrivateKeyHex(r),this.isPublic=!1},this.readPKCS8PrvKeyHex=function(t){if(!1===h(t))throw new e(\"not ASN.1 hex string\");var r,n,i;try{c(t,0,[1,0],\"06\"),r=c(t,0,[1,1],\"06\"),n=c(t,0,[2,0,1],\"04\");try{i=c(t,0,[2,0,\"[1]\",0],\"03\")}catch(t){}}catch(t){throw new e(\"malformed PKCS#8 plain ECC private key\")}if(this.curveName=a(r),void 0===this.curveName)throw new e(\"unsupported curve name\");this.setNamedCurve(this.curveName),this.setPublicKeyHex(i),this.setPrivateKeyHex(n),this.isPublic=!1},this.readPKCS8PubKeyHex=function(t){if(!1===h(t))throw new e(\"not ASN.1 hex string\");var r,n;try{c(t,0,[0,0],\"06\"),r=c(t,0,[0,1],\"06\"),n=c(t,0,[1],\"03\")}catch(t){throw new e(\"malformed PKCS#8 ECC public key\")}if(this.curveName=a(r),null===this.curveName)throw new e(\"unsupported curve name\");this.setNamedCurve(this.curveName),this.setPublicKeyHex(n)},this.readCertPubKeyHex=function(t,r){if(!1===h(t))throw new e(\"not ASN.1 hex string\");var n,i;try{n=c(t,0,[0,5,0,1],\"06\"),i=c(t,0,[0,5,1],\"03\")}catch(t){throw new e(\"malformed X.509 certificate ECC public key\")}if(this.curveName=a(n),null===this.curveName)throw new e(\"unsupported curve name\");this.setNamedCurve(this.curveName),this.setPublicKeyHex(i)},void 0!==t&&void 0!==t.curve&&(this.curveName=t.curve),void 0===this.curveName&&(this.curveName=\"secp256r1\"),this.setNamedCurve(this.curveName),void 0!==t&&(void 0!==t.prv&&this.setPrivateKeyHex(t.prv),void 0!==t.pub&&this.setPublicKeyHex(t.pub))},br.crypto.ECDSA.parseSigHex=function(t){var e=br.crypto.ECDSA.parseSigHexInHexRS(t);return{r:new F(e.r,16),s:new F(e.s,16)}},br.crypto.ECDSA.parseSigHexInHexRS=function(t){var e=Er,r=e.getChildIdx,n=e.getV;if(e.checkStrictDER(t,0),\"30\"!=t.substr(0,2))throw new Error(\"signature is not a ASN.1 sequence\");var i=r(t,0);if(2!=i.length)throw new Error(\"signature shall have two elements\");var o=i[0],s=i[1];if(\"02\"!=t.substr(o,2))throw new Error(\"1st item not ASN.1 integer\");if(\"02\"!=t.substr(s,2))throw new Error(\"2nd item not ASN.1 integer\");return{r:n(t,o),s:n(t,s)}},br.crypto.ECDSA.asn1SigToConcatSig=function(t){var e=br.crypto.ECDSA.parseSigHexInHexRS(t),r=e.r,n=e.s;if(\"00\"==r.substr(0,2)&&r.length%32==2&&(r=r.substr(2)),\"00\"==n.substr(0,2)&&n.length%32==2&&(n=n.substr(2)),r.length%32==30&&(r=\"00\"+r),n.length%32==30&&(n=\"00\"+n),r.length%32!=0)throw\"unknown ECDSA sig r length error\";if(n.length%32!=0)throw\"unknown ECDSA sig s length error\";return r+n},br.crypto.ECDSA.concatSigToASN1Sig=function(t){if(t.length/2*8%128!=0)throw\"unknown ECDSA concatinated r-s sig length error\";var e=t.substr(0,t.length/2),r=t.substr(t.length/2);return br.crypto.ECDSA.hexRSSigToASN1Sig(e,r)},br.crypto.ECDSA.hexRSSigToASN1Sig=function(t,e){var r=new F(t,16),n=new F(e,16);return br.crypto.ECDSA.biRSSigToASN1Sig(r,n)},br.crypto.ECDSA.biRSSigToASN1Sig=function(t,e){var r=br.asn1,n=new r.DERInteger({bigint:t}),i=new r.DERInteger({bigint:e});return new r.DERSequence({array:[n,i]}).getEncodedHex()},br.crypto.ECDSA.getName=function(t){return\"2b8104001f\"===t?\"secp192k1\":\"2a8648ce3d030107\"===t?\"secp256r1\":\"2b8104000a\"===t?\"secp256k1\":\"2b81040021\"===t?\"secp224r1\":\"2b81040022\"===t?\"secp384r1\":-1!==\"|secp256r1|NIST P-256|P-256|prime256v1|\".indexOf(t)?\"secp256r1\":-1!==\"|secp256k1|\".indexOf(t)?\"secp256k1\":-1!==\"|secp224r1|NIST P-224|P-224|\".indexOf(t)?\"secp224r1\":-1!==\"|secp384r1|NIST P-384|P-384|\".indexOf(t)?\"secp384r1\":null},void 0!==br&&br||(e.KJUR=br={}),void 0!==br.crypto&&br.crypto||(br.crypto={}),br.crypto.ECParameterDB=new function(){var t={},e={};function r(t){return new F(t,16)}this.getByName=function(r){var n=r;if(void 0!==e[n]&&(n=e[r]),void 0!==t[n])return t[n];throw\"unregistered EC curve name: \"+n},this.regist=function(n,i,o,s,a,u,c,h,l,f,g,d){t[n]={};var p=r(o),v=r(s),y=r(a),m=r(u),_=r(c),S=new qe(p,v,y),b=S.decodePointHex(\"04\"+h+l);t[n].name=n,t[n].keylen=i,t[n].curve=S,t[n].G=b,t[n].n=m,t[n].h=_,t[n].oid=g,t[n].info=d;for(var w=0;w=2*u)break}var f={};return f.keyhex=c.substr(0,2*i[e].keylen),f.ivhex=c.substr(2*i[e].keylen,2*i[e].ivlen),f},a=function t(e,r,n,o){var s=y.enc.Base64.parse(e),a=y.enc.Hex.stringify(s);return(0,i[r].proc)(a,n,o)};return{version:\"1.0.0\",parsePKCS5PEM:function t(e){return o(e)},getKeyAndUnusedIvByPasscodeAndIvsalt:function t(e,r,n){return s(e,r,n)},decryptKeyB64:function t(e,r,n,i){return a(e,r,n,i)},getDecryptedKeyHex:function t(e,r){var n=o(e),i=(n.type,n.cipher),u=n.ivsalt,c=n.data,h=s(i,r,u).keyhex;return a(c,i,h,u)},getEncryptedPKCS5PEMFromPrvKeyHex:function t(e,r,n,o,a){var u=\"\";if(void 0!==o&&null!=o||(o=\"AES-256-CBC\"),void 0===i[o])throw\"KEYUTIL unsupported algorithm: \"+o;void 0!==a&&null!=a||(a=function t(e){var r=y.lib.WordArray.random(e);return y.enc.Hex.stringify(r)}(i[o].ivlen).toUpperCase());var c=function t(e,r,n,o){return(0,i[r].eproc)(e,n,o)}(r,o,s(o,n,a).keyhex,a);u=\"-----BEGIN \"+e+\" PRIVATE KEY-----\\r\\n\";return u+=\"Proc-Type: 4,ENCRYPTED\\r\\n\",u+=\"DEK-Info: \"+o+\",\"+a+\"\\r\\n\",u+=\"\\r\\n\",u+=c.replace(/(.{64})/g,\"$1\\r\\n\"),u+=\"\\r\\n-----END \"+e+\" PRIVATE KEY-----\\r\\n\"},parseHexOfEncryptedPKCS8:function t(e){var r=Er,n=r.getChildIdx,i=r.getV,o={},s=n(e,0);if(2!=s.length)throw\"malformed format: SEQUENCE(0).items != 2: \"+s.length;o.ciphertext=i(e,s[1]);var a=n(e,s[0]);if(2!=a.length)throw\"malformed format: SEQUENCE(0.0).items != 2: \"+a.length;if(\"2a864886f70d01050d\"!=i(e,a[0]))throw\"this only supports pkcs5PBES2\";var u=n(e,a[1]);if(2!=a.length)throw\"malformed format: SEQUENCE(0.0.1).items != 2: \"+u.length;var c=n(e,u[1]);if(2!=c.length)throw\"malformed format: SEQUENCE(0.0.1.1).items != 2: \"+c.length;if(\"2a864886f70d0307\"!=i(e,c[0]))throw\"this only supports TripleDES\";o.encryptionSchemeAlg=\"TripleDES\",o.encryptionSchemeIV=i(e,c[1]);var h=n(e,u[0]);if(2!=h.length)throw\"malformed format: SEQUENCE(0.0.1.0).items != 2: \"+h.length;if(\"2a864886f70d01050c\"!=i(e,h[0]))throw\"this only supports pkcs5PBKDF2\";var l=n(e,h[1]);if(l.length<2)throw\"malformed format: SEQUENCE(0.0.1.0.1).items < 2: \"+l.length;o.pbkdf2Salt=i(e,l[0]);var f=i(e,l[1]);try{o.pbkdf2Iter=parseInt(f,16)}catch(t){throw\"malformed format pbkdf2Iter: \"+f}return o},getPBKDF2KeyHexFromParam:function t(e,r){var n=y.enc.Hex.parse(e.pbkdf2Salt),i=e.pbkdf2Iter,o=y.PBKDF2(r,n,{keySize:6,iterations:i});return y.enc.Hex.stringify(o)},_getPlainPKCS8HexFromEncryptedPKCS8PEM:function t(e,r){var n=Hr(e,\"ENCRYPTED PRIVATE KEY\"),i=this.parseHexOfEncryptedPKCS8(n),o=Zr.getPBKDF2KeyHexFromParam(i,r),s={};s.ciphertext=y.enc.Hex.parse(i.ciphertext);var a=y.enc.Hex.parse(o),u=y.enc.Hex.parse(i.encryptionSchemeIV),c=y.TripleDES.decrypt(s,a,{iv:u});return y.enc.Hex.stringify(c)},getKeyFromEncryptedPKCS8PEM:function t(e,r){var n=this._getPlainPKCS8HexFromEncryptedPKCS8PEM(e,r);return this.getKeyFromPlainPrivatePKCS8Hex(n)},parsePlainPrivatePKCS8Hex:function t(e){var r=Er,n=r.getChildIdx,i=r.getV,o={algparam:null};if(\"30\"!=e.substr(0,2))throw\"malformed plain PKCS8 private key(code:001)\";var s=n(e,0);if(3!=s.length)throw\"malformed plain PKCS8 private key(code:002)\";if(\"30\"!=e.substr(s[1],2))throw\"malformed PKCS8 private key(code:003)\";var a=n(e,s[1]);if(2!=a.length)throw\"malformed PKCS8 private key(code:004)\";if(\"06\"!=e.substr(a[0],2))throw\"malformed PKCS8 private key(code:005)\";if(o.algoid=i(e,a[0]),\"06\"==e.substr(a[1],2)&&(o.algparam=i(e,a[1])),\"04\"!=e.substr(s[2],2))throw\"malformed PKCS8 private key(code:006)\";return o.keyidx=r.getVidx(e,s[2]),o},getKeyFromPlainPrivatePKCS8PEM:function t(e){var r=Hr(e,\"PRIVATE KEY\");return this.getKeyFromPlainPrivatePKCS8Hex(r)},getKeyFromPlainPrivatePKCS8Hex:function t(e){var r,n=this.parsePlainPrivatePKCS8Hex(e);if(\"2a864886f70d010101\"==n.algoid)r=new He;else if(\"2a8648ce380401\"==n.algoid)r=new br.crypto.DSA;else{if(\"2a8648ce3d0201\"!=n.algoid)throw\"unsupported private key algorithm\";r=new br.crypto.ECDSA}return r.readPKCS8PrvKeyHex(e),r},_getKeyFromPublicPKCS8Hex:function t(e){var r,n=Er.getVbyList(e,0,[0,0],\"06\");if(\"2a864886f70d010101\"===n)r=new He;else if(\"2a8648ce380401\"===n)r=new br.crypto.DSA;else{if(\"2a8648ce3d0201\"!==n)throw\"unsupported PKCS#8 public key hex\";r=new br.crypto.ECDSA}return r.readPKCS8PubKeyHex(e),r},parsePublicRawRSAKeyHex:function t(e){var r=Er,n=r.getChildIdx,i=r.getV,o={};if(\"30\"!=e.substr(0,2))throw\"malformed RSA key(code:001)\";var s=n(e,0);if(2!=s.length)throw\"malformed RSA key(code:002)\";if(\"02\"!=e.substr(s[0],2))throw\"malformed RSA key(code:003)\";if(o.n=i(e,s[0]),\"02\"!=e.substr(s[1],2))throw\"malformed RSA key(code:004)\";return o.e=i(e,s[1]),o},parsePublicPKCS8Hex:function t(e){var r=Er,n=r.getChildIdx,i=r.getV,o={algparam:null},s=n(e,0);if(2!=s.length)throw\"outer DERSequence shall have 2 elements: \"+s.length;var a=s[0];if(\"30\"!=e.substr(a,2))throw\"malformed PKCS8 public key(code:001)\";var u=n(e,a);if(2!=u.length)throw\"malformed PKCS8 public key(code:002)\";if(\"06\"!=e.substr(u[0],2))throw\"malformed PKCS8 public key(code:003)\";if(o.algoid=i(e,u[0]),\"06\"==e.substr(u[1],2)?o.algparam=i(e,u[1]):\"30\"==e.substr(u[1],2)&&(o.algparam={},o.algparam.p=r.getVbyList(e,u[1],[0],\"02\"),o.algparam.q=r.getVbyList(e,u[1],[1],\"02\"),o.algparam.g=r.getVbyList(e,u[1],[2],\"02\")),\"03\"!=e.substr(s[1],2))throw\"malformed PKCS8 public key(code:004)\";return o.key=i(e,s[1]).substr(2),o}}}();Zr.getKey=function(t,e,r){var n=(v=Er).getChildIdx,i=(v.getV,v.getVbyList),o=br.crypto,s=o.ECDSA,a=o.DSA,u=He,c=Hr,h=Zr;if(void 0!==u&&t instanceof u)return t;if(void 0!==s&&t instanceof s)return t;if(void 0!==a&&t instanceof a)return t;if(void 0!==t.curve&&void 0!==t.xy&&void 0===t.d)return new s({pub:t.xy,curve:t.curve});if(void 0!==t.curve&&void 0!==t.d)return new s({prv:t.d,curve:t.curve});if(void 0===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0===t.d)return(P=new u).setPublic(t.n,t.e),P;if(void 0===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d&&void 0!==t.p&&void 0!==t.q&&void 0!==t.dp&&void 0!==t.dq&&void 0!==t.co&&void 0===t.qi)return(P=new u).setPrivateEx(t.n,t.e,t.d,t.p,t.q,t.dp,t.dq,t.co),P;if(void 0===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d&&void 0===t.p)return(P=new u).setPrivate(t.n,t.e,t.d),P;if(void 0!==t.p&&void 0!==t.q&&void 0!==t.g&&void 0!==t.y&&void 0===t.x)return(P=new a).setPublic(t.p,t.q,t.g,t.y),P;if(void 0!==t.p&&void 0!==t.q&&void 0!==t.g&&void 0!==t.y&&void 0!==t.x)return(P=new a).setPrivate(t.p,t.q,t.g,t.y,t.x),P;if(\"RSA\"===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0===t.d)return(P=new u).setPublic(Ir(t.n),Ir(t.e)),P;if(\"RSA\"===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d&&void 0!==t.p&&void 0!==t.q&&void 0!==t.dp&&void 0!==t.dq&&void 0!==t.qi)return(P=new u).setPrivateEx(Ir(t.n),Ir(t.e),Ir(t.d),Ir(t.p),Ir(t.q),Ir(t.dp),Ir(t.dq),Ir(t.qi)),P;if(\"RSA\"===t.kty&&void 0!==t.n&&void 0!==t.e&&void 0!==t.d)return(P=new u).setPrivate(Ir(t.n),Ir(t.e),Ir(t.d)),P;if(\"EC\"===t.kty&&void 0!==t.crv&&void 0!==t.x&&void 0!==t.y&&void 0===t.d){var l=(k=new s({curve:t.crv})).ecparams.keylen/4,f=\"04\"+(\"0000000000\"+Ir(t.x)).slice(-l)+(\"0000000000\"+Ir(t.y)).slice(-l);return k.setPublicKeyHex(f),k}if(\"EC\"===t.kty&&void 0!==t.crv&&void 0!==t.x&&void 0!==t.y&&void 0!==t.d){l=(k=new s({curve:t.crv})).ecparams.keylen/4,f=\"04\"+(\"0000000000\"+Ir(t.x)).slice(-l)+(\"0000000000\"+Ir(t.y)).slice(-l);var g=(\"0000000000\"+Ir(t.d)).slice(-l);return k.setPublicKeyHex(f),k.setPrivateKeyHex(g),k}if(\"pkcs5prv\"===r){var d,p=t,v=Er;if(9===(d=n(p,0)).length)(P=new u).readPKCS5PrvKeyHex(p);else if(6===d.length)(P=new a).readPKCS5PrvKeyHex(p);else{if(!(d.length>2&&\"04\"===p.substr(d[1],2)))throw\"unsupported PKCS#1/5 hexadecimal key\";(P=new s).readPKCS5PrvKeyHex(p)}return P}if(\"pkcs8prv\"===r)return P=h.getKeyFromPlainPrivatePKCS8Hex(t);if(\"pkcs8pub\"===r)return h._getKeyFromPublicPKCS8Hex(t);if(\"x509pub\"===r)return on.getPublicKeyFromCertHex(t);if(-1!=t.indexOf(\"-END CERTIFICATE-\",0)||-1!=t.indexOf(\"-END X509 CERTIFICATE-\",0)||-1!=t.indexOf(\"-END TRUSTED CERTIFICATE-\",0))return on.getPublicKeyFromCertPEM(t);if(-1!=t.indexOf(\"-END PUBLIC KEY-\")){var y=Hr(t,\"PUBLIC KEY\");return h._getKeyFromPublicPKCS8Hex(y)}if(-1!=t.indexOf(\"-END RSA PRIVATE KEY-\")&&-1==t.indexOf(\"4,ENCRYPTED\")){var m=c(t,\"RSA PRIVATE KEY\");return h.getKey(m,null,\"pkcs5prv\")}if(-1!=t.indexOf(\"-END DSA PRIVATE KEY-\")&&-1==t.indexOf(\"4,ENCRYPTED\")){var _=i(R=c(t,\"DSA PRIVATE KEY\"),0,[1],\"02\"),S=i(R,0,[2],\"02\"),b=i(R,0,[3],\"02\"),w=i(R,0,[4],\"02\"),E=i(R,0,[5],\"02\");return(P=new a).setPrivate(new F(_,16),new F(S,16),new F(b,16),new F(w,16),new F(E,16)),P}if(-1!=t.indexOf(\"-END EC PRIVATE KEY-\")&&-1==t.indexOf(\"4,ENCRYPTED\")){m=c(t,\"EC PRIVATE KEY\");return h.getKey(m,null,\"pkcs5prv\")}if(-1!=t.indexOf(\"-END PRIVATE KEY-\"))return h.getKeyFromPlainPrivatePKCS8PEM(t);if(-1!=t.indexOf(\"-END RSA PRIVATE KEY-\")&&-1!=t.indexOf(\"4,ENCRYPTED\")){var x=h.getDecryptedKeyHex(t,e),A=new He;return A.readPKCS5PrvKeyHex(x),A}if(-1!=t.indexOf(\"-END EC PRIVATE KEY-\")&&-1!=t.indexOf(\"4,ENCRYPTED\")){var k,P=i(R=h.getDecryptedKeyHex(t,e),0,[1],\"04\"),C=i(R,0,[2,0],\"06\"),T=i(R,0,[3,0],\"03\").substr(2);if(void 0===br.crypto.OID.oidhex2name[C])throw\"undefined OID(hex) in KJUR.crypto.OID: \"+C;return(k=new s({curve:br.crypto.OID.oidhex2name[C]})).setPublicKeyHex(T),k.setPrivateKeyHex(P),k.isPublic=!1,k}if(-1!=t.indexOf(\"-END DSA PRIVATE KEY-\")&&-1!=t.indexOf(\"4,ENCRYPTED\")){var R;_=i(R=h.getDecryptedKeyHex(t,e),0,[1],\"02\"),S=i(R,0,[2],\"02\"),b=i(R,0,[3],\"02\"),w=i(R,0,[4],\"02\"),E=i(R,0,[5],\"02\");return(P=new a).setPrivate(new F(_,16),new F(S,16),new F(b,16),new F(w,16),new F(E,16)),P}if(-1!=t.indexOf(\"-END ENCRYPTED PRIVATE KEY-\"))return h.getKeyFromEncryptedPKCS8PEM(t,e);throw new Error(\"not supported argument\")},Zr.generateKeypair=function(t,e){if(\"RSA\"==t){var r=e;(s=new He).generate(r,\"10001\"),s.isPrivate=!0,s.isPublic=!0;var n=new He,i=s.n.toString(16),o=s.e.toString(16);return n.setPublic(i,o),n.isPrivate=!1,n.isPublic=!0,(a={}).prvKeyObj=s,a.pubKeyObj=n,a}if(\"EC\"==t){var s,a,u=e,c=new br.crypto.ECDSA({curve:u}).generateKeyPairHex();return(s=new br.crypto.ECDSA({curve:u})).setPublicKeyHex(c.ecpubhex),s.setPrivateKeyHex(c.ecprvhex),s.isPrivate=!0,s.isPublic=!1,(n=new br.crypto.ECDSA({curve:u})).setPublicKeyHex(c.ecpubhex),n.isPrivate=!1,n.isPublic=!0,(a={}).prvKeyObj=s,a.pubKeyObj=n,a}throw\"unknown algorithm: \"+t},Zr.getPEM=function(t,e,r,n,i,o){var s=br,a=s.asn1,u=a.DERObjectIdentifier,c=a.DERInteger,h=a.ASN1Util.newObject,l=a.x509.SubjectPublicKeyInfo,f=s.crypto,g=f.DSA,d=f.ECDSA,p=He;function v(t){return h({seq:[{int:0},{int:{bigint:t.n}},{int:t.e},{int:{bigint:t.d}},{int:{bigint:t.p}},{int:{bigint:t.q}},{int:{bigint:t.dmp1}},{int:{bigint:t.dmq1}},{int:{bigint:t.coeff}}]})}function m(t){return h({seq:[{int:1},{octstr:{hex:t.prvKeyHex}},{tag:[\"a0\",!0,{oid:{name:t.curveName}}]},{tag:[\"a1\",!0,{bitstr:{hex:\"00\"+t.pubKeyHex}}]}]})}function _(t){return h({seq:[{int:0},{int:{bigint:t.p}},{int:{bigint:t.q}},{int:{bigint:t.g}},{int:{bigint:t.y}},{int:{bigint:t.x}}]})}if((void 0!==p&&t instanceof p||void 0!==g&&t instanceof g||void 0!==d&&t instanceof d)&&1==t.isPublic&&(void 0===e||\"PKCS8PUB\"==e))return Mr(F=new l(t).getEncodedHex(),\"PUBLIC KEY\");if(\"PKCS1PRV\"==e&&void 0!==p&&t instanceof p&&(void 0===r||null==r)&&1==t.isPrivate)return Mr(F=v(t).getEncodedHex(),\"RSA PRIVATE KEY\");if(\"PKCS1PRV\"==e&&void 0!==d&&t instanceof d&&(void 0===r||null==r)&&1==t.isPrivate){var S=new u({name:t.curveName}).getEncodedHex(),b=m(t).getEncodedHex(),w=\"\";return w+=Mr(S,\"EC PARAMETERS\"),w+=Mr(b,\"EC PRIVATE KEY\")}if(\"PKCS1PRV\"==e&&void 0!==g&&t instanceof g&&(void 0===r||null==r)&&1==t.isPrivate)return Mr(F=_(t).getEncodedHex(),\"DSA PRIVATE KEY\");if(\"PKCS5PRV\"==e&&void 0!==p&&t instanceof p&&void 0!==r&&null!=r&&1==t.isPrivate){var F=v(t).getEncodedHex();return void 0===n&&(n=\"DES-EDE3-CBC\"),this.getEncryptedPKCS5PEMFromPrvKeyHex(\"RSA\",F,r,n,o)}if(\"PKCS5PRV\"==e&&void 0!==d&&t instanceof d&&void 0!==r&&null!=r&&1==t.isPrivate){F=m(t).getEncodedHex();return void 0===n&&(n=\"DES-EDE3-CBC\"),this.getEncryptedPKCS5PEMFromPrvKeyHex(\"EC\",F,r,n,o)}if(\"PKCS5PRV\"==e&&void 0!==g&&t instanceof g&&void 0!==r&&null!=r&&1==t.isPrivate){F=_(t).getEncodedHex();return void 0===n&&(n=\"DES-EDE3-CBC\"),this.getEncryptedPKCS5PEMFromPrvKeyHex(\"DSA\",F,r,n,o)}var E=function t(e,r){var n=x(e,r);return new h({seq:[{seq:[{oid:{name:\"pkcs5PBES2\"}},{seq:[{seq:[{oid:{name:\"pkcs5PBKDF2\"}},{seq:[{octstr:{hex:n.pbkdf2Salt}},{int:n.pbkdf2Iter}]}]},{seq:[{oid:{name:\"des-EDE3-CBC\"}},{octstr:{hex:n.encryptionSchemeIV}}]}]}]},{octstr:{hex:n.ciphertext}}]}).getEncodedHex()},x=function t(e,r){var n=y.lib.WordArray.random(8),i=y.lib.WordArray.random(8),o=y.PBKDF2(r,n,{keySize:6,iterations:100}),s=y.enc.Hex.parse(e),a=y.TripleDES.encrypt(s,o,{iv:i})+\"\",u={};return u.ciphertext=a,u.pbkdf2Salt=y.enc.Hex.stringify(n),u.pbkdf2Iter=100,u.encryptionSchemeAlg=\"DES-EDE3-CBC\",u.encryptionSchemeIV=y.enc.Hex.stringify(i),u};if(\"PKCS8PRV\"==e&&null!=p&&t instanceof p&&1==t.isPrivate){var A=v(t).getEncodedHex();F=h({seq:[{int:0},{seq:[{oid:{name:\"rsaEncryption\"}},{null:!0}]},{octstr:{hex:A}}]}).getEncodedHex();return void 0===r||null==r?Mr(F,\"PRIVATE KEY\"):Mr(b=E(F,r),\"ENCRYPTED PRIVATE KEY\")}if(\"PKCS8PRV\"==e&&void 0!==d&&t instanceof d&&1==t.isPrivate){A=new h({seq:[{int:1},{octstr:{hex:t.prvKeyHex}},{tag:[\"a1\",!0,{bitstr:{hex:\"00\"+t.pubKeyHex}}]}]}).getEncodedHex(),F=h({seq:[{int:0},{seq:[{oid:{name:\"ecPublicKey\"}},{oid:{name:t.curveName}}]},{octstr:{hex:A}}]}).getEncodedHex();return void 0===r||null==r?Mr(F,\"PRIVATE KEY\"):Mr(b=E(F,r),\"ENCRYPTED PRIVATE KEY\")}if(\"PKCS8PRV\"==e&&void 0!==g&&t instanceof g&&1==t.isPrivate){A=new c({bigint:t.x}).getEncodedHex(),F=h({seq:[{int:0},{seq:[{oid:{name:\"dsa\"}},{seq:[{int:{bigint:t.p}},{int:{bigint:t.q}},{int:{bigint:t.g}}]}]},{octstr:{hex:A}}]}).getEncodedHex();return void 0===r||null==r?Mr(F,\"PRIVATE KEY\"):Mr(b=E(F,r),\"ENCRYPTED PRIVATE KEY\")}throw new Error(\"unsupported object nor format\")},Zr.getKeyFromCSRPEM=function(t){var e=Hr(t,\"CERTIFICATE REQUEST\");return Zr.getKeyFromCSRHex(e)},Zr.getKeyFromCSRHex=function(t){var e=Zr.parseCSRHex(t);return Zr.getKey(e.p8pubkeyhex,null,\"pkcs8pub\")},Zr.parseCSRHex=function(t){var e=Er,r=e.getChildIdx,n=e.getTLV,i={},o=t;if(\"30\"!=o.substr(0,2))throw\"malformed CSR(code:001)\";var s=r(o,0);if(s.length<1)throw\"malformed CSR(code:002)\";if(\"30\"!=o.substr(s[0],2))throw\"malformed CSR(code:003)\";var a=r(o,s[0]);if(a.length<3)throw\"malformed CSR(code:004)\";return i.p8pubkeyhex=n(o,a[2]),i},Zr.getKeyID=function(t){var e=Zr,r=Er;\"string\"==typeof t&&-1!=t.indexOf(\"BEGIN \")&&(t=e.getKey(t));var n=Hr(e.getPEM(t)),i=r.getIdxbyList(n,0,[1]),o=r.getV(n,i).substring(2);return br.crypto.Util.hashHex(o,\"sha1\")},Zr.getJWKFromKey=function(t){var e={};if(t instanceof He&&t.isPrivate)return e.kty=\"RSA\",e.n=Rr(t.n.toString(16)),e.e=Rr(t.e.toString(16)),e.d=Rr(t.d.toString(16)),e.p=Rr(t.p.toString(16)),e.q=Rr(t.q.toString(16)),e.dp=Rr(t.dmp1.toString(16)),e.dq=Rr(t.dmq1.toString(16)),e.qi=Rr(t.coeff.toString(16)),e;if(t instanceof He&&t.isPublic)return e.kty=\"RSA\",e.n=Rr(t.n.toString(16)),e.e=Rr(t.e.toString(16)),e;if(t instanceof br.crypto.ECDSA&&t.isPrivate){if(\"P-256\"!==(n=t.getShortNISTPCurveName())&&\"P-384\"!==n)throw\"unsupported curve name for JWT: \"+n;var r=t.getPublicKeyXYHex();return e.kty=\"EC\",e.crv=n,e.x=Rr(r.x),e.y=Rr(r.y),e.d=Rr(t.prvKeyHex),e}if(t instanceof br.crypto.ECDSA&&t.isPublic){var n;if(\"P-256\"!==(n=t.getShortNISTPCurveName())&&\"P-384\"!==n)throw\"unsupported curve name for JWT: \"+n;r=t.getPublicKeyXYHex();return e.kty=\"EC\",e.crv=n,e.x=Rr(r.x),e.y=Rr(r.y),e}throw\"not supported key object\"},He.getPosArrayOfChildrenFromHex=function(t){return Er.getChildIdx(t,0)},He.getHexValueArrayOfChildrenFromHex=function(t){var e,r=Er.getV,n=r(t,(e=He.getPosArrayOfChildrenFromHex(t))[0]),i=r(t,e[1]),o=r(t,e[2]),s=r(t,e[3]),a=r(t,e[4]),u=r(t,e[5]),c=r(t,e[6]),h=r(t,e[7]),l=r(t,e[8]);return(e=new Array).push(n,i,o,s,a,u,c,h,l),e},He.prototype.readPrivateKeyFromPEMString=function(t){var e=Hr(t),r=He.getHexValueArrayOfChildrenFromHex(e);this.setPrivateEx(r[1],r[2],r[3],r[4],r[5],r[6],r[7],r[8])},He.prototype.readPKCS5PrvKeyHex=function(t){var e=He.getHexValueArrayOfChildrenFromHex(t);this.setPrivateEx(e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},He.prototype.readPKCS8PrvKeyHex=function(t){var e,r,n,i,o,s,a,u,c=Er,h=c.getVbyListEx;if(!1===c.isASN1HEX(t))throw new Error(\"not ASN.1 hex string\");try{e=h(t,0,[2,0,1],\"02\"),r=h(t,0,[2,0,2],\"02\"),n=h(t,0,[2,0,3],\"02\"),i=h(t,0,[2,0,4],\"02\"),o=h(t,0,[2,0,5],\"02\"),s=h(t,0,[2,0,6],\"02\"),a=h(t,0,[2,0,7],\"02\"),u=h(t,0,[2,0,8],\"02\")}catch(t){throw new Error(\"malformed PKCS#8 plain RSA private key\")}this.setPrivateEx(e,r,n,i,o,s,a,u)},He.prototype.readPKCS5PubKeyHex=function(t){var e=Er,r=e.getV;if(!1===e.isASN1HEX(t))throw new Error(\"keyHex is not ASN.1 hex string\");var n=e.getChildIdx(t,0);if(2!==n.length||\"02\"!==t.substr(n[0],2)||\"02\"!==t.substr(n[1],2))throw new Error(\"wrong hex for PKCS#5 public key\");var i=r(t,n[0]),o=r(t,n[1]);this.setPublic(i,o)},He.prototype.readPKCS8PubKeyHex=function(t){var e=Er;if(!1===e.isASN1HEX(t))throw new Error(\"not ASN.1 hex string\");if(\"06092a864886f70d010101\"!==e.getTLVbyListEx(t,0,[0,0]))throw new Error(\"not PKCS8 RSA public key\");var r=e.getTLVbyListEx(t,0,[1,0]);this.readPKCS5PubKeyHex(r)},He.prototype.readCertPubKeyHex=function(t,e){var r,n;(r=new on).readCertHex(t),n=r.getPublicKeyHex(),this.readPKCS8PubKeyHex(n)};var tn=new RegExp(\"[^0-9a-f]\",\"gi\");function en(t,e){for(var r=\"\",n=e/4-t.length,i=0;i>24,(16711680&i)>>16,(65280&i)>>8,255&i])))),i+=1;return n}function nn(t){for(var e in br.crypto.Util.DIGESTINFOHEAD){var r=br.crypto.Util.DIGESTINFOHEAD[e],n=r.length;if(t.substring(0,n)==r)return[e,t.substring(n)]}return[]}function on(t){var e,r=Er,n=r.getChildIdx,i=r.getV,o=r.getTLV,s=r.getVbyList,a=r.getVbyListEx,u=r.getTLVbyList,c=r.getTLVbyListEx,h=r.getIdxbyList,l=r.getIdxbyListEx,f=r.getVidx,g=r.oidname,d=r.hextooidstr,p=on,v=Hr;try{e=br.asn1.x509.AlgorithmIdentifier.PSSNAME2ASN1TLV}catch(t){}this.HEX2STAG={\"0c\":\"utf8\",13:\"prn\",16:\"ia5\",\"1a\":\"vis\",\"1e\":\"bmp\"},this.hex=null,this.version=0,this.foffset=0,this.aExtInfo=null,this.getVersion=function(){return null===this.hex||0!==this.version?this.version:\"a003020102\"!==u(this.hex,0,[0,0])?(this.version=1,this.foffset=-1,1):(this.version=3,3)},this.getSerialNumberHex=function(){return a(this.hex,0,[0,0],\"02\")},this.getSignatureAlgorithmField=function(){var t=c(this.hex,0,[0,1]);return this.getAlgorithmIdentifierName(t)},this.getAlgorithmIdentifierName=function(t){for(var r in e)if(t===e[r])return r;return g(a(t,0,[0],\"06\"))},this.getIssuer=function(){return this.getX500Name(this.getIssuerHex())},this.getIssuerHex=function(){return u(this.hex,0,[0,3+this.foffset],\"30\")},this.getIssuerString=function(){return p.hex2dn(this.getIssuerHex())},this.getSubject=function(){return this.getX500Name(this.getSubjectHex())},this.getSubjectHex=function(){return u(this.hex,0,[0,5+this.foffset],\"30\")},this.getSubjectString=function(){return p.hex2dn(this.getSubjectHex())},this.getNotBefore=function(){var t=s(this.hex,0,[0,4+this.foffset,0]);return t=t.replace(/(..)/g,\"%$1\"),t=decodeURIComponent(t)},this.getNotAfter=function(){var t=s(this.hex,0,[0,4+this.foffset,1]);return t=t.replace(/(..)/g,\"%$1\"),t=decodeURIComponent(t)},this.getPublicKeyHex=function(){return r.getTLVbyList(this.hex,0,[0,6+this.foffset],\"30\")},this.getPublicKeyIdx=function(){return h(this.hex,0,[0,6+this.foffset],\"30\")},this.getPublicKeyContentIdx=function(){var t=this.getPublicKeyIdx();return h(this.hex,t,[1,0],\"30\")},this.getPublicKey=function(){return Zr.getKey(this.getPublicKeyHex(),null,\"pkcs8pub\")},this.getSignatureAlgorithmName=function(){var t=u(this.hex,0,[1],\"30\");return this.getAlgorithmIdentifierName(t)},this.getSignatureValueHex=function(){return s(this.hex,0,[2],\"03\",!0)},this.verifySignature=function(t){var e=this.getSignatureAlgorithmField(),r=this.getSignatureValueHex(),n=u(this.hex,0,[0],\"30\"),i=new br.crypto.Signature({alg:e});return i.init(t),i.updateHex(n),i.verify(r)},this.parseExt=function(t){var e,o,a;if(void 0===t){if(a=this.hex,3!==this.version)return-1;e=h(a,0,[0,7,0],\"30\"),o=n(a,e)}else{a=Hr(t);var u=h(a,0,[0,3,0,0],\"06\");if(\"2a864886f70d01090e\"!=i(a,u))return void(this.aExtInfo=new Array);e=h(a,0,[0,3,0,1,0],\"30\"),o=n(a,e),this.hex=a}this.aExtInfo=new Array;for(var c=0;c1){var a=o(t,s[1]),u=this.getGeneralName(a);null!=u.uri&&(i.uri=u.uri)}if(s.length>2){var c=o(t,s[2]);\"0101ff\"==c&&(i.reqauth=!0),\"010100\"==c&&(i.reqauth=!1)}return i},this.getX500NameRule=function(t){for(var e=null,r=[],n=0;n0&&(t.ext=this.getExtParamArray()),t.sighex=this.getSignatureValueHex(),t},this.getExtParamArray=function(t){null==t&&(-1!=l(this.hex,0,[0,\"[3]\"])&&(t=c(this.hex,0,[0,\"[3]\",0],\"30\")));for(var e=[],r=n(t,0),i=0;i0&&(c=new Array(r),(new Oe).nextBytes(c),c=String.fromCharCode.apply(String,c));var h=Nr(u(Ur(\"\\0\\0\\0\\0\\0\\0\\0\\0\"+i+c))),l=[];for(n=0;n>8*a-s&255;for(d[0]&=~p,n=0;nthis.n.bitLength())return 0;var n=nn(this.doPublic(r).toString(16).replace(/^1f+00/,\"\"));if(0==n.length)return!1;var i=n[0];return n[1]==function t(e){return br.crypto.Util.hashString(e,i)}(t)},He.prototype.verifyWithMessageHash=function(t,e){if(e.length!=Math.ceil(this.n.bitLength()/4))return!1;var r=je(e,16);if(r.bitLength()>this.n.bitLength())return 0;var n=nn(this.doPublic(r).toString(16).replace(/^1f+00/,\"\"));if(0==n.length)return!1;n[0];return n[1]==t},He.prototype.verifyPSS=function(t,e,r,n){var i=function t(e){return br.crypto.Util.hashHex(e,r)}(Ur(t));return void 0===n&&(n=-1),this.verifyWithMessageHashPSS(i,e,r,n)},He.prototype.verifyWithMessageHashPSS=function(t,e,r,n){if(e.length!=Math.ceil(this.n.bitLength()/4))return!1;var i,o=new F(e,16),s=function t(e){return br.crypto.Util.hashHex(e,r)},a=Nr(t),u=a.length,c=this.n.bitLength()-1,h=Math.ceil(c/8);if(-1===n||void 0===n)n=u;else if(-2===n)n=h-u-2;else if(n<-2)throw new Error(\"invalid salt length\");if(h>8*h-c&255;if(0!=(f.charCodeAt(0)&d))throw new Error(\"bits beyond keysize not zero\");var p=rn(g,f.length,s),v=[];for(i=0;i0)&&-1==(\":\"+n.join(\":\")+\":\").indexOf(\":\"+v+\":\"))throw\"algorithm '\"+v+\"' not accepted in the list\";if(\"none\"!=v&&null===e)throw\"key shall be specified to verify.\";if(\"string\"==typeof e&&-1!=e.indexOf(\"-----BEGIN \")&&(e=Zr.getKey(e)),!(\"RS\"!=y&&\"PS\"!=y||e instanceof i))throw\"key shall be a RSAKey obj for RS* and PS* algs\";if(\"ES\"==y&&!(e instanceof c))throw\"key shall be a ECDSA obj for ES* algs\";var m=null;if(void 0===s.jwsalg2sigalg[p.alg])throw\"unsupported alg name: \"+v;if(\"none\"==(m=s.jwsalg2sigalg[v]))throw\"not supported\";if(\"Hmac\"==m.substr(0,4)){if(void 0===e)throw\"hexadecimal key shall be specified for HMAC\";var _=new h({alg:m,pass:e});return _.updateString(g),d==_.doFinal()}if(-1!=m.indexOf(\"withECDSA\")){var S,b=null;try{b=c.concatSigToASN1Sig(d)}catch(t){return!1}return(S=new l({alg:m})).init(e),S.updateString(g),S.verify(b)}return(S=new l({alg:m})).init(e),S.updateString(g),S.verify(d)},br.jws.JWS.parse=function(t){var e,r,n,i=t.split(\".\"),o={};if(2!=i.length&&3!=i.length)throw\"malformed sJWS: wrong number of '.' splitted elements\";return e=i[0],r=i[1],3==i.length&&(n=i[2]),o.headerObj=br.jws.JWS.readSafeJSONString(Fr(e)),o.payloadObj=br.jws.JWS.readSafeJSONString(Fr(r)),o.headerPP=JSON.stringify(o.headerObj,null,\" \"),null==o.payloadObj?o.payloadPP=Fr(r):o.payloadPP=JSON.stringify(o.payloadObj,null,\" \"),void 0!==n&&(o.sigHex=Ir(n)),o},br.jws.JWS.verifyJWT=function(t,e,n){var i=br.jws,o=i.JWS,s=o.readSafeJSONString,a=o.inArray,u=o.includedArray,c=t.split(\".\"),h=c[0],l=c[1],f=(Ir(c[2]),s(Fr(h))),g=s(Fr(l));if(void 0===f.alg)return!1;if(void 0===n.alg)throw\"acceptField.alg shall be specified\";if(!a(f.alg,n.alg))return!1;if(void 0!==g.iss&&\"object\"===r(n.iss)&&!a(g.iss,n.iss))return!1;if(void 0!==g.sub&&\"object\"===r(n.sub)&&!a(g.sub,n.sub))return!1;if(void 0!==g.aud&&\"object\"===r(n.aud))if(\"string\"==typeof g.aud){if(!a(g.aud,n.aud))return!1}else if(\"object\"==r(g.aud)&&!u(g.aud,n.aud))return!1;var d=i.IntDate.getNow();return void 0!==n.verifyAt&&\"number\"==typeof n.verifyAt&&(d=n.verifyAt),void 0!==n.gracePeriod&&\"number\"==typeof n.gracePeriod||(n.gracePeriod=0),!(void 0!==g.exp&&\"number\"==typeof g.exp&&g.exp+n.gracePeriodr.length&&(n=r.length);for(var i=0;i\n * @license MIT\n */\nvar n=r(30),i=r(31),o=r(32);function s(){return u.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function a(t,e){if(s()=s())throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\"+s().toString(16)+\" bytes\");return 0|t}function d(t,e){if(u.isBuffer(t))return t.length;if(\"undefined\"!=typeof ArrayBuffer&&\"function\"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;\"string\"!=typeof t&&(t=\"\"+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case\"ascii\":case\"latin1\":case\"binary\":return r;case\"utf8\":case\"utf-8\":case void 0:return K(t).length;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return 2*r;case\"hex\":return r>>>1;case\"base64\":return q(t).length;default:if(n)return K(t).length;e=(\"\"+e).toLowerCase(),n=!0}}function p(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return\"\";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return\"\";if((r>>>=0)<=(e>>>=0))return\"\";for(t||(t=\"utf8\");;)switch(t){case\"hex\":return I(this,e,r);case\"utf8\":case\"utf-8\":return A(this,e,r);case\"ascii\":return T(this,e,r);case\"latin1\":case\"binary\":return R(this,e,r);case\"base64\":return x(this,e,r);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return D(this,e,r);default:if(n)throw new TypeError(\"Unknown encoding: \"+t);t=(t+\"\").toLowerCase(),n=!0}}function v(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function y(t,e,r,n,i){if(0===t.length)return-1;if(\"string\"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}if(\"string\"==typeof e&&(e=u.from(e,n)),u.isBuffer(e))return 0===e.length?-1:m(t,e,r,n,i);if(\"number\"==typeof e)return e&=255,u.TYPED_ARRAY_SUPPORT&&\"function\"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):m(t,[e],r,n,i);throw new TypeError(\"val must be string, number or Buffer\")}function m(t,e,r,n,i){var o,s=1,a=t.length,u=e.length;if(void 0!==n&&(\"ucs2\"===(n=String(n).toLowerCase())||\"ucs-2\"===n||\"utf16le\"===n||\"utf-16le\"===n)){if(t.length<2||e.length<2)return-1;s=2,a/=2,u/=2,r/=2}function c(t,e){return 1===s?t[e]:t.readUInt16BE(e*s)}if(i){var h=-1;for(o=r;oa&&(r=a-u),o=r;o>=0;o--){for(var l=!0,f=0;fi&&(n=i):n=i;var o=e.length;if(o%2!=0)throw new TypeError(\"Invalid hex string\");n>o/2&&(n=o/2);for(var s=0;s>8,i=r%256,o.push(i),o.push(n);return o}(e,t.length-r),t,r,n)}function x(t,e,r){return 0===e&&r===t.length?n.fromByteArray(t):n.fromByteArray(t.slice(e,r))}function A(t,e,r){r=Math.min(t.length,r);for(var n=[],i=e;i239?4:c>223?3:c>191?2:1;if(i+l<=r)switch(l){case 1:c<128&&(h=c);break;case 2:128==(192&(o=t[i+1]))&&(u=(31&c)<<6|63&o)>127&&(h=u);break;case 3:o=t[i+1],s=t[i+2],128==(192&o)&&128==(192&s)&&(u=(15&c)<<12|(63&o)<<6|63&s)>2047&&(u<55296||u>57343)&&(h=u);break;case 4:o=t[i+1],s=t[i+2],a=t[i+3],128==(192&o)&&128==(192&s)&&128==(192&a)&&(u=(15&c)<<18|(63&o)<<12|(63&s)<<6|63&a)>65535&&u<1114112&&(h=u)}null===h?(h=65533,l=1):h>65535&&(h-=65536,n.push(h>>>10&1023|55296),h=56320|1023&h),n.push(h),i+=l}return function f(t){var e=t.length;if(e<=C)return String.fromCharCode.apply(String,t);var r=\"\",n=0;for(;n0&&(r=this.toString(\"hex\",0,n).match(/.{2}/g).join(\" \"),this.length>n&&(r+=\" ... \")),\"\"},u.prototype.compare=function t(e,r,n,i,o){if(!u.isBuffer(e))throw new TypeError(\"Argument must be a Buffer\");if(void 0===r&&(r=0),void 0===n&&(n=e?e.length:0),void 0===i&&(i=0),void 0===o&&(o=this.length),r<0||n>e.length||i<0||o>this.length)throw new RangeError(\"out of range index\");if(i>=o&&r>=n)return 0;if(i>=o)return-1;if(r>=n)return 1;if(this===e)return 0;for(var s=(o>>>=0)-(i>>>=0),a=(n>>>=0)-(r>>>=0),c=Math.min(s,a),h=this.slice(i,o),l=e.slice(r,n),f=0;fo)&&(n=o),e.length>0&&(n<0||r<0)||r>this.length)throw new RangeError(\"Attempt to write outside buffer bounds\");i||(i=\"utf8\");for(var s=!1;;)switch(i){case\"hex\":return _(this,e,r,n);case\"utf8\":case\"utf-8\":return S(this,e,r,n);case\"ascii\":return b(this,e,r,n);case\"latin1\":case\"binary\":return w(this,e,r,n);case\"base64\":return F(this,e,r,n);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return E(this,e,r,n);default:if(s)throw new TypeError(\"Unknown encoding: \"+i);i=(\"\"+i).toLowerCase(),s=!0}},u.prototype.toJSON=function t(){return{type:\"Buffer\",data:Array.prototype.slice.call(this._arr||this,0)}};var C=4096;function T(t,e,r){var n=\"\";r=Math.min(t.length,r);for(var i=e;in)&&(r=n);for(var i=\"\",o=e;or)throw new RangeError(\"Trying to access beyond buffer length\")}function N(t,e,r,n,i,o){if(!u.isBuffer(t))throw new TypeError('\"buffer\" argument must be a Buffer instance');if(e>i||et.length)throw new RangeError(\"Index out of range\")}function U(t,e,r,n){e<0&&(e=65535+e+1);for(var i=0,o=Math.min(t.length-r,2);i>>8*(n?i:1-i)}function B(t,e,r,n){e<0&&(e=4294967295+e+1);for(var i=0,o=Math.min(t.length-r,4);i>>8*(n?i:3-i)&255}function O(t,e,r,n,i,o){if(r+n>t.length)throw new RangeError(\"Index out of range\");if(r<0)throw new RangeError(\"Index out of range\")}function j(t,e,r,n,o){return o||O(t,0,r,4),i.write(t,e,r,n,23,4),r+4}function M(t,e,r,n,o){return o||O(t,0,r,8),i.write(t,e,r,n,52,8),r+8}u.prototype.slice=function t(e,r){var n,i=this.length;if((e=~~e)<0?(e+=i)<0&&(e=0):e>i&&(e=i),(r=void 0===r?i:~~r)<0?(r+=i)<0&&(r=0):r>i&&(r=i),r0&&(o*=256);)i+=this[e+--r]*o;return i},u.prototype.readUInt8=function t(e,r){return r||L(e,1,this.length),this[e]},u.prototype.readUInt16LE=function t(e,r){return r||L(e,2,this.length),this[e]|this[e+1]<<8},u.prototype.readUInt16BE=function t(e,r){return r||L(e,2,this.length),this[e]<<8|this[e+1]},u.prototype.readUInt32LE=function t(e,r){return r||L(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},u.prototype.readUInt32BE=function t(e,r){return r||L(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},u.prototype.readIntLE=function t(e,r,n){e|=0,r|=0,n||L(e,r,this.length);for(var i=this[e],o=1,s=0;++s=(o*=128)&&(i-=Math.pow(2,8*r)),i},u.prototype.readIntBE=function t(e,r,n){e|=0,r|=0,n||L(e,r,this.length);for(var i=r,o=1,s=this[e+--i];i>0&&(o*=256);)s+=this[e+--i]*o;return s>=(o*=128)&&(s-=Math.pow(2,8*r)),s},u.prototype.readInt8=function t(e,r){return r||L(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},u.prototype.readInt16LE=function t(e,r){r||L(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt16BE=function t(e,r){r||L(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},u.prototype.readInt32LE=function t(e,r){return r||L(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},u.prototype.readInt32BE=function t(e,r){return r||L(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},u.prototype.readFloatLE=function t(e,r){return r||L(e,4,this.length),i.read(this,e,!0,23,4)},u.prototype.readFloatBE=function t(e,r){return r||L(e,4,this.length),i.read(this,e,!1,23,4)},u.prototype.readDoubleLE=function t(e,r){return r||L(e,8,this.length),i.read(this,e,!0,52,8)},u.prototype.readDoubleBE=function t(e,r){return r||L(e,8,this.length),i.read(this,e,!1,52,8)},u.prototype.writeUIntLE=function t(e,r,n,i){(e=+e,r|=0,n|=0,i)||N(this,e,r,n,Math.pow(2,8*n)-1,0);var o=1,s=0;for(this[r]=255&e;++s=0&&(s*=256);)this[r+o]=e/s&255;return r+n},u.prototype.writeUInt8=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,1,255,0),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[r]=255&e,r+1},u.prototype.writeUInt16LE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[r]=255&e,this[r+1]=e>>>8):U(this,e,r,!0),r+2},u.prototype.writeUInt16BE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,2,65535,0),u.TYPED_ARRAY_SUPPORT?(this[r]=e>>>8,this[r+1]=255&e):U(this,e,r,!1),r+2},u.prototype.writeUInt32LE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[r+3]=e>>>24,this[r+2]=e>>>16,this[r+1]=e>>>8,this[r]=255&e):B(this,e,r,!0),r+4},u.prototype.writeUInt32BE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,4,4294967295,0),u.TYPED_ARRAY_SUPPORT?(this[r]=e>>>24,this[r+1]=e>>>16,this[r+2]=e>>>8,this[r+3]=255&e):B(this,e,r,!1),r+4},u.prototype.writeIntLE=function t(e,r,n,i){if(e=+e,r|=0,!i){var o=Math.pow(2,8*n-1);N(this,e,r,n,o-1,-o)}var s=0,a=1,u=0;for(this[r]=255&e;++s>0)-u&255;return r+n},u.prototype.writeIntBE=function t(e,r,n,i){if(e=+e,r|=0,!i){var o=Math.pow(2,8*n-1);N(this,e,r,n,o-1,-o)}var s=n-1,a=1,u=0;for(this[r+s]=255&e;--s>=0&&(a*=256);)e<0&&0===u&&0!==this[r+s+1]&&(u=1),this[r+s]=(e/a>>0)-u&255;return r+n},u.prototype.writeInt8=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,1,127,-128),u.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[r]=255&e,r+1},u.prototype.writeInt16LE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[r]=255&e,this[r+1]=e>>>8):U(this,e,r,!0),r+2},u.prototype.writeInt16BE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,2,32767,-32768),u.TYPED_ARRAY_SUPPORT?(this[r]=e>>>8,this[r+1]=255&e):U(this,e,r,!1),r+2},u.prototype.writeInt32LE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,4,2147483647,-2147483648),u.TYPED_ARRAY_SUPPORT?(this[r]=255&e,this[r+1]=e>>>8,this[r+2]=e>>>16,this[r+3]=e>>>24):B(this,e,r,!0),r+4},u.prototype.writeInt32BE=function t(e,r,n){return e=+e,r|=0,n||N(this,e,r,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),u.TYPED_ARRAY_SUPPORT?(this[r]=e>>>24,this[r+1]=e>>>16,this[r+2]=e>>>8,this[r+3]=255&e):B(this,e,r,!1),r+4},u.prototype.writeFloatLE=function t(e,r,n){return j(this,e,r,!0,n)},u.prototype.writeFloatBE=function t(e,r,n){return j(this,e,r,!1,n)},u.prototype.writeDoubleLE=function t(e,r,n){return M(this,e,r,!0,n)},u.prototype.writeDoubleBE=function t(e,r,n){return M(this,e,r,!1,n)},u.prototype.copy=function t(e,r,n,i){if(n||(n=0),i||0===i||(i=this.length),r>=e.length&&(r=e.length),r||(r=0),i>0&&i=this.length)throw new RangeError(\"sourceStart out of bounds\");if(i<0)throw new RangeError(\"sourceEnd out of bounds\");i>this.length&&(i=this.length),e.length-r=0;--o)e[o+r]=this[o+n];else if(s<1e3||!u.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),\"number\"==typeof e)for(s=r;s55295&&r<57344){if(!i){if(r>56319){(e-=3)>-1&&o.push(239,191,189);continue}if(s+1===n){(e-=3)>-1&&o.push(239,191,189);continue}i=r;continue}if(r<56320){(e-=3)>-1&&o.push(239,191,189),i=r;continue}r=65536+(i-55296<<10|r-56320)}else i&&(e-=3)>-1&&o.push(239,191,189);if(i=null,r<128){if((e-=1)<0)break;o.push(r)}else if(r<2048){if((e-=2)<0)break;o.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;o.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error(\"Invalid code point\");if((e-=4)<0)break;o.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return o}function q(t){return n.toByteArray(function e(t){if((t=function e(t){return t.trim?t.trim():t.replace(/^\\s+|\\s+$/g,\"\")}(t).replace(H,\"\")).length<2)return\"\";for(;t.length%4!=0;)t+=\"=\";return t}(t))}function J(t,e,r,n){for(var i=0;i=e.length||i>=t.length);++i)e[i+r]=t[i];return i}}).call(this,r(29))},function(t,e){var r;r=function(){return this}();try{r=r||new Function(\"return this\")()}catch(t){\"object\"==typeof window&&(r=window)}t.exports=r},function(t,e,r){\"use strict\";e.byteLength=function n(t){var e=f(t),r=e[0],n=e[1];return 3*(r+n)/4-n},e.toByteArray=function i(t){var e,r,n=f(t),i=n[0],o=n[1],s=new u(function c(t,e,r){return 3*(e+r)/4-r}(0,i,o)),h=0,l=o>0?i-4:i;for(r=0;r>16&255,s[h++]=e>>8&255,s[h++]=255&e;2===o&&(e=a[t.charCodeAt(r)]<<2|a[t.charCodeAt(r+1)]>>4,s[h++]=255&e);1===o&&(e=a[t.charCodeAt(r)]<<10|a[t.charCodeAt(r+1)]<<4|a[t.charCodeAt(r+2)]>>2,s[h++]=e>>8&255,s[h++]=255&e);return s},e.fromByteArray=function o(t){for(var e,r=t.length,n=r%3,i=[],o=16383,a=0,u=r-n;au?u:a+o));1===n?(e=t[r-1],i.push(s[e>>2]+s[e<<4&63]+\"==\")):2===n&&(e=(t[r-2]<<8)+t[r-1],i.push(s[e>>10]+s[e>>4&63]+s[e<<2&63]+\"=\"));return i.join(\"\")};for(var s=[],a=[],u=\"undefined\"!=typeof Uint8Array?Uint8Array:Array,c=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",h=0,l=c.length;h0)throw new Error(\"Invalid string. Length must be a multiple of 4\");var r=t.indexOf(\"=\");return-1===r&&(r=e),[r,r===e?0:4-r%4]}function g(t,e,r){for(var n,i,o=[],a=e;a>18&63]+s[i>>12&63]+s[i>>6&63]+s[63&i]);return o.join(\"\")}a[\"-\".charCodeAt(0)]=62,a[\"_\".charCodeAt(0)]=63},function(t,e){\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\ne.read=function(t,e,r,n,i){var o,s,a=8*i-n-1,u=(1<>1,h=-7,l=r?i-1:0,f=r?-1:1,g=t[e+l];for(l+=f,o=g&(1<<-h)-1,g>>=-h,h+=a;h>0;o=256*o+t[e+l],l+=f,h-=8);for(s=o&(1<<-h)-1,o>>=-h,h+=n;h>0;s=256*s+t[e+l],l+=f,h-=8);if(0===o)o=1-c;else{if(o===u)return s?NaN:1/0*(g?-1:1);s+=Math.pow(2,n),o-=c}return(g?-1:1)*s*Math.pow(2,o-n)},e.write=function(t,e,r,n,i,o){var s,a,u,c=8*o-i-1,h=(1<>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,g=n?0:o-1,d=n?1:-1,p=e<0||0===e&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,s=h):(s=Math.floor(Math.log(e)/Math.LN2),e*(u=Math.pow(2,-s))<1&&(s--,u*=2),(e+=s+l>=1?f/u:f*Math.pow(2,1-l))*u>=2&&(s++,u/=2),s+l>=h?(a=0,s=h):s+l>=1?(a=(e*u-1)*Math.pow(2,i),s+=l):(a=e*Math.pow(2,l-1)*Math.pow(2,i),s=0));i>=8;t[r+g]=255&a,g+=d,a/=256,i-=8);for(s=s<0;t[r+g]=255&s,g+=d,s/=256,c-=8);t[r+g-d]|=128*p}},function(t,e){var r={}.toString;t.exports=Array.isArray||function(t){return\"[object Array]\"==r.call(t)}},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.default=function n(t){var e=t.jws,r=t.KeyUtil,n=t.X509,o=t.crypto,s=t.hextob64u,a=t.b64tohex,u=t.AllowedSigningAlgs;return function(){function t(){!function e(t,r){if(!(t instanceof r))throw new TypeError(\"Cannot call a class as a function\")}(this,t)}return t.parseJwt=function t(r){i.Log.debug(\"JoseUtil.parseJwt\");try{var n=e.JWS.parse(r);return{header:n.headerObj,payload:n.payloadObj}}catch(t){i.Log.error(t)}},t.validateJwt=function e(o,s,u,c,h,l,f){i.Log.debug(\"JoseUtil.validateJwt\");try{if(\"RSA\"===s.kty)if(s.e&&s.n)s=r.getKey(s);else{if(!s.x5c||!s.x5c.length)return i.Log.error(\"JoseUtil.validateJwt: RSA key missing key material\",s),Promise.reject(new Error(\"RSA key missing key material\"));var g=a(s.x5c[0]);s=n.getPublicKeyFromCertHex(g)}else{if(\"EC\"!==s.kty)return i.Log.error(\"JoseUtil.validateJwt: Unsupported key type\",s&&s.kty),Promise.reject(new Error(s.kty));if(!(s.crv&&s.x&&s.y))return i.Log.error(\"JoseUtil.validateJwt: EC key missing key material\",s),Promise.reject(new Error(\"EC key missing key material\"));s=r.getKey(s)}return t._validateJwt(o,s,u,c,h,l,f)}catch(t){return i.Log.error(t&&t.message||t),Promise.reject(\"JWT validation failed\")}},t.validateJwtAttributes=function e(r,n,o,s,a,u){s||(s=0),a||(a=parseInt(Date.now()/1e3));var c=t.parseJwt(r).payload;if(!c.iss)return i.Log.error(\"JoseUtil._validateJwt: issuer was not provided\"),Promise.reject(new Error(\"issuer was not provided\"));if(c.iss!==n)return i.Log.error(\"JoseUtil._validateJwt: Invalid issuer in token\",c.iss),Promise.reject(new Error(\"Invalid issuer in token: \"+c.iss));if(!c.aud)return i.Log.error(\"JoseUtil._validateJwt: aud was not provided\"),Promise.reject(new Error(\"aud was not provided\"));if(!(c.aud===o||Array.isArray(c.aud)&&c.aud.indexOf(o)>=0))return i.Log.error(\"JoseUtil._validateJwt: Invalid audience in token\",c.aud),Promise.reject(new Error(\"Invalid audience in token: \"+c.aud));if(c.azp&&c.azp!==o)return i.Log.error(\"JoseUtil._validateJwt: Invalid azp in token\",c.azp),Promise.reject(new Error(\"Invalid azp in token: \"+c.azp));if(!u){var h=a+s,l=a-s;if(!c.iat)return i.Log.error(\"JoseUtil._validateJwt: iat was not provided\"),Promise.reject(new Error(\"iat was not provided\"));if(h1&&void 0!==arguments[1]?arguments[1]:\"#\";o(this,t);var n=i.UrlUtility.parseUrlFragment(e,r);this.error=n.error,this.error_description=n.error_description,this.error_uri=n.error_uri,this.code=n.code,this.state=n.state,this.id_token=n.id_token,this.session_state=n.session_state,this.access_token=n.access_token,this.token_type=n.token_type,this.scope=n.scope,this.profile=void 0,this.expires_in=n.expires_in}return n(t,[{key:\"expires_in\",get:function t(){if(this.expires_at){var e=parseInt(Date.now()/1e3);return this.expires_at-e}},set:function t(e){var r=parseInt(e);if(\"number\"==typeof r&&r>0){var n=parseInt(Date.now()/1e3);this.expires_at=n+r}}},{key:\"expired\",get:function t(){var e=this.expires_in;if(void 0!==e)return e<=0}},{key:\"scopes\",get:function t(){return(this.scope||\"\").split(\" \")}},{key:\"isOpenIdConnect\",get:function t(){return this.scopes.indexOf(\"openid\")>=0||!!this.id_token}}]),t}()},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.SignoutRequest=void 0;var n=r(0),i=r(3),o=r(9);e.SignoutRequest=function t(e){var r=e.url,s=e.id_token_hint,a=e.post_logout_redirect_uri,u=e.data,c=e.extraQueryParams,h=e.request_type;if(function l(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t),!r)throw n.Log.error(\"SignoutRequest.ctor: No url passed\"),new Error(\"url\");for(var f in s&&(r=i.UrlUtility.addQueryParam(r,\"id_token_hint\",s)),a&&(r=i.UrlUtility.addQueryParam(r,\"post_logout_redirect_uri\",a),u&&(this.state=new o.State({data:u,request_type:h}),r=i.UrlUtility.addQueryParam(r,\"state\",this.state.id))),c)r=i.UrlUtility.addQueryParam(r,f,c[f]);this.url=r}},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.SignoutResponse=void 0;var n=r(3);e.SignoutResponse=function t(e){!function r(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}(this,t);var i=n.UrlUtility.parseUrlFragment(e,\"?\");this.error=i.error,this.error_description=i.error_description,this.error_uri=i.error_uri,this.state=i.state}},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.InMemoryWebStorage=void 0;var n=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c.SilentRenewService,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:h.SessionMonitor,a=arguments.length>3&&void 0!==arguments[3]?arguments[3]:f.TokenRevocationClient,l=arguments.length>4&&void 0!==arguments[4]?arguments[4]:g.TokenClient,y=arguments.length>5&&void 0!==arguments[5]?arguments[5]:d.JoseUtil;p(this,e),r instanceof s.UserManagerSettings||(r=new s.UserManagerSettings(r));var m=v(this,t.call(this,r));return m._events=new u.UserManagerEvents(r),m._silentRenewService=new n(m),m.settings.automaticSilentRenew&&(i.Log.debug(\"UserManager.ctor: automaticSilentRenew is configured, setting up silent renew\"),m.startSilentRenew()),m.settings.monitorSession&&(i.Log.debug(\"UserManager.ctor: monitorSession is configured, setting up session monitor\"),m._sessionMonitor=new o(m)),m._tokenRevocationClient=new a(m._settings),m._tokenClient=new l(m._settings),m._joseUtil=y,m}return function r(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.getUser=function t(){var e=this;return this._loadUser().then((function(t){return t?(i.Log.info(\"UserManager.getUser: user loaded\"),e._events.load(t,!1),t):(i.Log.info(\"UserManager.getUser: user not found in storage\"),null)}))},e.prototype.removeUser=function t(){var e=this;return this.storeUser(null).then((function(){i.Log.info(\"UserManager.removeUser: user removed from storage\"),e._events.unload()}))},e.prototype.signinRedirect=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type=\"si:r\";var r={useReplaceToNavigate:e.useReplaceToNavigate};return this._signinStart(e,this._redirectNavigator,r).then((function(){i.Log.info(\"UserManager.signinRedirect: successful\")}))},e.prototype.signinRedirectCallback=function t(e){return this._signinEnd(e||this._redirectNavigator.url).then((function(t){return t.profile&&t.profile.sub?i.Log.info(\"UserManager.signinRedirectCallback: successful, signed in sub: \",t.profile.sub):i.Log.info(\"UserManager.signinRedirectCallback: no sub\"),t}))},e.prototype.signinPopup=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type=\"si:p\";var r=e.redirect_uri||this.settings.popup_redirect_uri||this.settings.redirect_uri;return r?(e.redirect_uri=r,e.display=\"popup\",this._signin(e,this._popupNavigator,{startUrl:r,popupWindowFeatures:e.popupWindowFeatures||this.settings.popupWindowFeatures,popupWindowTarget:e.popupWindowTarget||this.settings.popupWindowTarget}).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info(\"UserManager.signinPopup: signinPopup successful, signed in sub: \",t.profile.sub):i.Log.info(\"UserManager.signinPopup: no sub\")),t}))):(i.Log.error(\"UserManager.signinPopup: No popup_redirect_uri or redirect_uri configured\"),Promise.reject(new Error(\"No popup_redirect_uri or redirect_uri configured\")))},e.prototype.signinPopupCallback=function t(e){return this._signinCallback(e,this._popupNavigator).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info(\"UserManager.signinPopupCallback: successful, signed in sub: \",t.profile.sub):i.Log.info(\"UserManager.signinPopupCallback: no sub\")),t})).catch((function(t){i.Log.error(t.message)}))},e.prototype.signinSilent=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return r=Object.assign({},r),this._loadUser().then((function(t){return t&&t.refresh_token?(r.refresh_token=t.refresh_token,e._useRefreshToken(r)):(r.request_type=\"si:s\",r.id_token_hint=r.id_token_hint||e.settings.includeIdTokenInSilentRenew&&t&&t.id_token,t&&e._settings.validateSubOnSilentRenew&&(i.Log.debug(\"UserManager.signinSilent, subject prior to silent renew: \",t.profile.sub),r.current_sub=t.profile.sub),e._signinSilentIframe(r))}))},e.prototype._useRefreshToken=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._tokenClient.exchangeRefreshToken(r).then((function(t){return t?t.access_token?e._loadUser().then((function(r){if(r){var n=Promise.resolve();return t.id_token&&(n=e._validateIdTokenFromTokenRefreshToken(r.profile,t.id_token)),n.then((function(){return i.Log.debug(\"UserManager._useRefreshToken: refresh token response success\"),r.id_token=t.id_token||r.id_token,r.access_token=t.access_token,r.refresh_token=t.refresh_token||r.refresh_token,r.expires_in=t.expires_in,e.storeUser(r).then((function(){return e._events.load(r),r}))}))}return null})):(i.Log.error(\"UserManager._useRefreshToken: No access token returned from token endpoint\"),Promise.reject(\"No access token returned from token endpoint\")):(i.Log.error(\"UserManager._useRefreshToken: No response returned from token endpoint\"),Promise.reject(\"No response returned from token endpoint\"))}))},e.prototype._validateIdTokenFromTokenRefreshToken=function t(e,r){var n=this;return this._metadataService.getIssuer().then((function(t){return n.settings.getEpochTime().then((function(o){return n._joseUtil.validateJwtAttributes(r,t,n._settings.client_id,n._settings.clockSkew,o).then((function(t){return t?t.sub!==e.sub?(i.Log.error(\"UserManager._validateIdTokenFromTokenRefreshToken: sub in id_token does not match current sub\"),Promise.reject(new Error(\"sub in id_token does not match current sub\"))):t.auth_time&&t.auth_time!==e.auth_time?(i.Log.error(\"UserManager._validateIdTokenFromTokenRefreshToken: auth_time in id_token does not match original auth_time\"),Promise.reject(new Error(\"auth_time in id_token does not match original auth_time\"))):t.azp&&t.azp!==e.azp?(i.Log.error(\"UserManager._validateIdTokenFromTokenRefreshToken: azp in id_token does not match original azp\"),Promise.reject(new Error(\"azp in id_token does not match original azp\"))):!t.azp&&e.azp?(i.Log.error(\"UserManager._validateIdTokenFromTokenRefreshToken: azp not in id_token, but present in original id_token\"),Promise.reject(new Error(\"azp not in id_token, but present in original id_token\"))):void 0:(i.Log.error(\"UserManager._validateIdTokenFromTokenRefreshToken: Failed to validate id_token\"),Promise.reject(new Error(\"Failed to validate id_token\")))}))}))}))},e.prototype._signinSilentIframe=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=e.redirect_uri||this.settings.silent_redirect_uri||this.settings.redirect_uri;return r?(e.redirect_uri=r,e.prompt=e.prompt||\"none\",this._signin(e,this._iframeNavigator,{startUrl:r,silentRequestTimeout:e.silentRequestTimeout||this.settings.silentRequestTimeout}).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info(\"UserManager.signinSilent: successful, signed in sub: \",t.profile.sub):i.Log.info(\"UserManager.signinSilent: no sub\")),t}))):(i.Log.error(\"UserManager.signinSilent: No silent_redirect_uri configured\"),Promise.reject(new Error(\"No silent_redirect_uri configured\")))},e.prototype.signinSilentCallback=function t(e){return this._signinCallback(e,this._iframeNavigator).then((function(t){return t&&(t.profile&&t.profile.sub?i.Log.info(\"UserManager.signinSilentCallback: successful, signed in sub: \",t.profile.sub):i.Log.info(\"UserManager.signinSilentCallback: no sub\")),t}))},e.prototype.signinCallback=function t(e){var r=this;return this.readSigninResponseState(e).then((function(t){var n=t.state;t.response;return\"si:r\"===n.request_type?r.signinRedirectCallback(e):\"si:p\"===n.request_type?r.signinPopupCallback(e):\"si:s\"===n.request_type?r.signinSilentCallback(e):Promise.reject(new Error(\"invalid response_type in state\"))}))},e.prototype.signoutCallback=function t(e,r){var n=this;return this.readSignoutResponseState(e).then((function(t){var i=t.state,o=t.response;return i?\"so:r\"===i.request_type?n.signoutRedirectCallback(e):\"so:p\"===i.request_type?n.signoutPopupCallback(e,r):Promise.reject(new Error(\"invalid response_type in state\")):o}))},e.prototype.querySessionStatus=function t(){var e=this,r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(r=Object.assign({},r)).request_type=\"si:s\";var n=r.redirect_uri||this.settings.silent_redirect_uri||this.settings.redirect_uri;return n?(r.redirect_uri=n,r.prompt=\"none\",r.response_type=r.response_type||this.settings.query_status_response_type,r.scope=r.scope||\"openid\",r.skipUserInfo=!0,this._signinStart(r,this._iframeNavigator,{startUrl:n,silentRequestTimeout:r.silentRequestTimeout||this.settings.silentRequestTimeout}).then((function(t){return e.processSigninResponse(t.url).then((function(t){if(i.Log.debug(\"UserManager.querySessionStatus: got signin response\"),t.session_state&&t.profile.sub)return i.Log.info(\"UserManager.querySessionStatus: querySessionStatus success for sub: \",t.profile.sub),{session_state:t.session_state,sub:t.profile.sub,sid:t.profile.sid};i.Log.info(\"querySessionStatus successful, user not authenticated\")})).catch((function(t){if(t.session_state&&e.settings.monitorAnonymousSession&&(\"login_required\"==t.message||\"consent_required\"==t.message||\"interaction_required\"==t.message||\"account_selection_required\"==t.message))return i.Log.info(\"UserManager.querySessionStatus: querySessionStatus success for anonymous user\"),{session_state:t.session_state};throw t}))}))):(i.Log.error(\"UserManager.querySessionStatus: No silent_redirect_uri configured\"),Promise.reject(new Error(\"No silent_redirect_uri configured\")))},e.prototype._signin=function t(e,r){var n=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._signinStart(e,r,i).then((function(t){return n._signinEnd(t.url,e)}))},e.prototype._signinStart=function t(e,r){var n=this,o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return r.prepare(o).then((function(t){return i.Log.debug(\"UserManager._signinStart: got navigator window handle\"),n.createSigninRequest(e).then((function(e){return i.Log.debug(\"UserManager._signinStart: got signin request\"),o.url=e.url,o.id=e.state.id,t.navigate(o)})).catch((function(e){throw t.close&&(i.Log.debug(\"UserManager._signinStart: Error after preparing navigator, closing navigator window\"),t.close()),e}))}))},e.prototype._signinEnd=function t(e){var r=this,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return this.processSigninResponse(e).then((function(t){i.Log.debug(\"UserManager._signinEnd: got signin response\");var e=new a.User(t);if(n.current_sub){if(n.current_sub!==e.profile.sub)return i.Log.debug(\"UserManager._signinEnd: current user does not match user returned from signin. sub from signin: \",e.profile.sub),Promise.reject(new Error(\"login_required\"));i.Log.debug(\"UserManager._signinEnd: current user matches user returned from signin\")}return r.storeUser(e).then((function(){return i.Log.debug(\"UserManager._signinEnd: user stored\"),r._events.load(e),e}))}))},e.prototype._signinCallback=function t(e,r){i.Log.debug(\"UserManager._signinCallback\");var n=\"query\"===this._settings.response_mode||!this._settings.response_mode&&l.SigninRequest.isCode(this._settings.response_type)?\"?\":\"#\";return r.callback(e,void 0,n)},e.prototype.signoutRedirect=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type=\"so:r\";var r=e.post_logout_redirect_uri||this.settings.post_logout_redirect_uri;r&&(e.post_logout_redirect_uri=r);var n={useReplaceToNavigate:e.useReplaceToNavigate};return this._signoutStart(e,this._redirectNavigator,n).then((function(){i.Log.info(\"UserManager.signoutRedirect: successful\")}))},e.prototype.signoutRedirectCallback=function t(e){return this._signoutEnd(e||this._redirectNavigator.url).then((function(t){return i.Log.info(\"UserManager.signoutRedirectCallback: successful\"),t}))},e.prototype.signoutPopup=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};(e=Object.assign({},e)).request_type=\"so:p\";var r=e.post_logout_redirect_uri||this.settings.popup_post_logout_redirect_uri||this.settings.post_logout_redirect_uri;return e.post_logout_redirect_uri=r,e.display=\"popup\",e.post_logout_redirect_uri&&(e.state=e.state||{}),this._signout(e,this._popupNavigator,{startUrl:r,popupWindowFeatures:e.popupWindowFeatures||this.settings.popupWindowFeatures,popupWindowTarget:e.popupWindowTarget||this.settings.popupWindowTarget}).then((function(){i.Log.info(\"UserManager.signoutPopup: successful\")}))},e.prototype.signoutPopupCallback=function t(e,r){void 0===r&&\"boolean\"==typeof e&&(r=e,e=null);return this._popupNavigator.callback(e,r,\"?\").then((function(){i.Log.info(\"UserManager.signoutPopupCallback: successful\")}))},e.prototype._signout=function t(e,r){var n=this,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return this._signoutStart(e,r,i).then((function(t){return n._signoutEnd(t.url)}))},e.prototype._signoutStart=function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},r=this,n=arguments[1],o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return n.prepare(o).then((function(t){return i.Log.debug(\"UserManager._signoutStart: got navigator window handle\"),r._loadUser().then((function(n){return i.Log.debug(\"UserManager._signoutStart: loaded current user from storage\"),(r._settings.revokeAccessTokenOnSignout?r._revokeInternal(n):Promise.resolve()).then((function(){var s=e.id_token_hint||n&&n.id_token;return s&&(i.Log.debug(\"UserManager._signoutStart: Setting id_token into signout request\"),e.id_token_hint=s),r.removeUser().then((function(){return i.Log.debug(\"UserManager._signoutStart: user removed, creating signout request\"),r.createSignoutRequest(e).then((function(e){return i.Log.debug(\"UserManager._signoutStart: got signout request\"),o.url=e.url,e.state&&(o.id=e.state.id),t.navigate(o)}))}))}))})).catch((function(e){throw t.close&&(i.Log.debug(\"UserManager._signoutStart: Error after preparing navigator, closing navigator window\"),t.close()),e}))}))},e.prototype._signoutEnd=function t(e){return this.processSignoutResponse(e).then((function(t){return i.Log.debug(\"UserManager._signoutEnd: got signout response\"),t}))},e.prototype.revokeAccessToken=function t(){var e=this;return this._loadUser().then((function(t){return e._revokeInternal(t,!0).then((function(r){if(r)return i.Log.debug(\"UserManager.revokeAccessToken: removing token properties from user and re-storing\"),t.access_token=null,t.refresh_token=null,t.expires_at=null,t.token_type=null,e.storeUser(t).then((function(){i.Log.debug(\"UserManager.revokeAccessToken: user stored\"),e._events.load(t)}))}))})).then((function(){i.Log.info(\"UserManager.revokeAccessToken: access token revoked successfully\")}))},e.prototype._revokeInternal=function t(e,r){var n=this;if(e){var o=e.access_token,s=e.refresh_token;return this._revokeAccessTokenInternal(o,r).then((function(t){return n._revokeRefreshTokenInternal(s,r).then((function(e){return t||e||i.Log.debug(\"UserManager.revokeAccessToken: no need to revoke due to no token(s), or JWT format\"),t||e}))}))}return Promise.resolve(!1)},e.prototype._revokeAccessTokenInternal=function t(e,r){return!e||e.indexOf(\".\")>=0?Promise.resolve(!1):this._tokenRevocationClient.revoke(e,r).then((function(){return!0}))},e.prototype._revokeRefreshTokenInternal=function t(e,r){return e?this._tokenRevocationClient.revoke(e,r,\"refresh_token\").then((function(){return!0})):Promise.resolve(!1)},e.prototype.startSilentRenew=function t(){this._silentRenewService.start()},e.prototype.stopSilentRenew=function t(){this._silentRenewService.stop()},e.prototype._loadUser=function t(){return this._userStore.get(this._userStoreKey).then((function(t){return t?(i.Log.debug(\"UserManager._loadUser: user storageString loaded\"),a.User.fromStorageString(t)):(i.Log.debug(\"UserManager._loadUser: no user storageString\"),null)}))},e.prototype.storeUser=function t(e){if(e){i.Log.debug(\"UserManager.storeUser: storing user\");var r=e.toStorageString();return this._userStore.set(this._userStoreKey,r)}return i.Log.debug(\"storeUser.storeUser: removing user\"),this._userStore.remove(this._userStoreKey)},n(e,[{key:\"_redirectNavigator\",get:function t(){return this.settings.redirectNavigator}},{key:\"_popupNavigator\",get:function t(){return this.settings.popupNavigator}},{key:\"_iframeNavigator\",get:function t(){return this.settings.iframeNavigator}},{key:\"_userStore\",get:function t(){return this.settings.userStore}},{key:\"events\",get:function t(){return this._events}},{key:\"_userStoreKey\",get:function t(){return\"user:\"+this.settings.authority+\":\"+this.settings.client_id}}]),e}(o.OidcClient)},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.UserManagerSettings=void 0;var n=function(){function t(t,e){for(var r=0;r0&&void 0!==arguments[0]?arguments[0]:{},n=r.popup_redirect_uri,i=r.popup_post_logout_redirect_uri,g=r.popupWindowFeatures,d=r.popupWindowTarget,p=r.silent_redirect_uri,v=r.silentRequestTimeout,y=r.automaticSilentRenew,m=void 0!==y&&y,_=r.validateSubOnSilentRenew,S=void 0!==_&&_,b=r.includeIdTokenInSilentRenew,w=void 0===b||b,F=r.monitorSession,E=void 0===F||F,x=r.monitorAnonymousSession,A=void 0!==x&&x,k=r.checkSessionInterval,P=void 0===k?2e3:k,C=r.stopCheckSessionOnError,T=void 0===C||C,R=r.query_status_response_type,I=r.revokeAccessTokenOnSignout,D=void 0!==I&&I,L=r.accessTokenExpiringNotificationTime,N=void 0===L?60:L,U=r.redirectNavigator,B=void 0===U?new o.RedirectNavigator:U,O=r.popupNavigator,j=void 0===O?new s.PopupNavigator:O,M=r.iframeNavigator,H=void 0===M?new a.IFrameNavigator:M,V=r.userStore,K=void 0===V?new u.WebStorageStateStore({store:c.Global.sessionStorage}):V;l(this,e);var q=f(this,t.call(this,arguments[0]));return q._popup_redirect_uri=n,q._popup_post_logout_redirect_uri=i,q._popupWindowFeatures=g,q._popupWindowTarget=d,q._silent_redirect_uri=p,q._silentRequestTimeout=v,q._automaticSilentRenew=m,q._validateSubOnSilentRenew=S,q._includeIdTokenInSilentRenew=w,q._accessTokenExpiringNotificationTime=N,q._monitorSession=E,q._monitorAnonymousSession=A,q._checkSessionInterval=P,q._stopCheckSessionOnError=T,R?q._query_status_response_type=R:arguments[0]&&arguments[0].response_type?q._query_status_response_type=h.SigninRequest.isOidc(arguments[0].response_type)?\"id_token\":\"code\":q._query_status_response_type=\"id_token\",q._revokeAccessTokenOnSignout=D,q._redirectNavigator=B,q._popupNavigator=j,q._iframeNavigator=H,q._userStore=K,q}return function r(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),n(e,[{key:\"popup_redirect_uri\",get:function t(){return this._popup_redirect_uri}},{key:\"popup_post_logout_redirect_uri\",get:function t(){return this._popup_post_logout_redirect_uri}},{key:\"popupWindowFeatures\",get:function t(){return this._popupWindowFeatures}},{key:\"popupWindowTarget\",get:function t(){return this._popupWindowTarget}},{key:\"silent_redirect_uri\",get:function t(){return this._silent_redirect_uri}},{key:\"silentRequestTimeout\",get:function t(){return this._silentRequestTimeout}},{key:\"automaticSilentRenew\",get:function t(){return this._automaticSilentRenew}},{key:\"validateSubOnSilentRenew\",get:function t(){return this._validateSubOnSilentRenew}},{key:\"includeIdTokenInSilentRenew\",get:function t(){return this._includeIdTokenInSilentRenew}},{key:\"accessTokenExpiringNotificationTime\",get:function t(){return this._accessTokenExpiringNotificationTime}},{key:\"monitorSession\",get:function t(){return this._monitorSession}},{key:\"monitorAnonymousSession\",get:function t(){return this._monitorAnonymousSession}},{key:\"checkSessionInterval\",get:function t(){return this._checkSessionInterval}},{key:\"stopCheckSessionOnError\",get:function t(){return this._stopCheckSessionOnError}},{key:\"query_status_response_type\",get:function t(){return this._query_status_response_type}},{key:\"revokeAccessTokenOnSignout\",get:function t(){return this._revokeAccessTokenOnSignout}},{key:\"redirectNavigator\",get:function t(){return this._redirectNavigator}},{key:\"popupNavigator\",get:function t(){return this._popupNavigator}},{key:\"iframeNavigator\",get:function t(){return this._iframeNavigator}},{key:\"userStore\",get:function t(){return this._userStore}}]),e}(i.OidcClientSettings)},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.RedirectNavigator=void 0;var n=function(){function t(t,e){for(var r=0;r1&&void 0!==arguments[1])||arguments[1];n.Log.debug(\"UserManagerEvents.load\"),t.prototype.load.call(this,r),i&&this._userLoaded.raise(r)},e.prototype.unload=function e(){n.Log.debug(\"UserManagerEvents.unload\"),t.prototype.unload.call(this),this._userUnloaded.raise()},e.prototype.addUserLoaded=function t(e){this._userLoaded.addHandler(e)},e.prototype.removeUserLoaded=function t(e){this._userLoaded.removeHandler(e)},e.prototype.addUserUnloaded=function t(e){this._userUnloaded.addHandler(e)},e.prototype.removeUserUnloaded=function t(e){this._userUnloaded.removeHandler(e)},e.prototype.addSilentRenewError=function t(e){this._silentRenewError.addHandler(e)},e.prototype.removeSilentRenewError=function t(e){this._silentRenewError.removeHandler(e)},e.prototype._raiseSilentRenewError=function t(e){n.Log.debug(\"UserManagerEvents._raiseSilentRenewError\",e.message),this._silentRenewError.raise(e)},e.prototype.addUserSignedIn=function t(e){this._userSignedIn.addHandler(e)},e.prototype.removeUserSignedIn=function t(e){this._userSignedIn.removeHandler(e)},e.prototype._raiseUserSignedIn=function t(){n.Log.debug(\"UserManagerEvents._raiseUserSignedIn\"),this._userSignedIn.raise()},e.prototype.addUserSignedOut=function t(e){this._userSignedOut.addHandler(e)},e.prototype.removeUserSignedOut=function t(e){this._userSignedOut.removeHandler(e)},e.prototype._raiseUserSignedOut=function t(){n.Log.debug(\"UserManagerEvents._raiseUserSignedOut\"),this._userSignedOut.raise()},e.prototype.addUserSessionChanged=function t(e){this._userSessionChanged.addHandler(e)},e.prototype.removeUserSessionChanged=function t(e){this._userSessionChanged.removeHandler(e)},e.prototype._raiseUserSessionChanged=function t(){n.Log.debug(\"UserManagerEvents._raiseUserSessionChanged\"),this._userSessionChanged.raise()},e}(i.AccessTokenEvents)},function(t,e,r){\"use strict\";Object.defineProperty(e,\"__esModule\",{value:!0}),e.Timer=void 0;var n=function(){function t(t,e){for(var r=0;r1&&void 0!==arguments[1]?arguments[1]:o.Global.timer,i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0;a(this,e);var s=u(this,t.call(this,r));return s._timer=n,s._nowFunc=i||function(){return Date.now()/1e3},s}return function r(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function, not \"+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}(e,t),e.prototype.init=function t(e){e<=0&&(e=1),e=parseInt(e);var r=this.now+e;if(this.expiration===r&&this._timerHandle)i.Log.debug(\"Timer.init timer \"+this._name+\" skipping initialization since already initialized for expiration:\",this.expiration);else{this.cancel(),i.Log.debug(\"Timer.init timer \"+this._name+\" for duration:\",e),this._expiration=r;var n=5;e { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"v1\": () => (/* reexport safe */ _v1_js__WEBPACK_IMPORTED_MODULE_0__.default),\n/* harmony export */ \"v3\": () => (/* reexport safe */ _v3_js__WEBPACK_IMPORTED_MODULE_1__.default),\n/* harmony export */ \"v4\": () => (/* reexport safe */ _v4_js__WEBPACK_IMPORTED_MODULE_2__.default),\n/* harmony export */ \"v5\": () => (/* reexport safe */ _v5_js__WEBPACK_IMPORTED_MODULE_3__.default),\n/* harmony export */ \"NIL\": () => (/* reexport safe */ _nil_js__WEBPACK_IMPORTED_MODULE_4__.default),\n/* harmony export */ \"version\": () => (/* reexport safe */ _version_js__WEBPACK_IMPORTED_MODULE_5__.default),\n/* harmony export */ \"validate\": () => (/* reexport safe */ _validate_js__WEBPACK_IMPORTED_MODULE_6__.default),\n/* harmony export */ \"stringify\": () => (/* reexport safe */ _stringify_js__WEBPACK_IMPORTED_MODULE_7__.default),\n/* harmony export */ \"parse\": () => (/* reexport safe */ _parse_js__WEBPACK_IMPORTED_MODULE_8__.default)\n/* harmony export */ });\n/* harmony import */ var _v1_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./v1.js */ \"./node_modules/uuid/dist/esm-browser/v1.js\");\n/* harmony import */ var _v3_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./v3.js */ \"./node_modules/uuid/dist/esm-browser/v3.js\");\n/* harmony import */ var _v4_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./v4.js */ \"./node_modules/uuid/dist/esm-browser/v4.js\");\n/* harmony import */ var _v5_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./v5.js */ \"./node_modules/uuid/dist/esm-browser/v5.js\");\n/* harmony import */ var _nil_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./nil.js */ \"./node_modules/uuid/dist/esm-browser/nil.js\");\n/* harmony import */ var _version_js__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./version.js */ \"./node_modules/uuid/dist/esm-browser/version.js\");\n/* harmony import */ var _validate_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./validate.js */ \"./node_modules/uuid/dist/esm-browser/validate.js\");\n/* harmony import */ var _stringify_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./stringify.js */ \"./node_modules/uuid/dist/esm-browser/stringify.js\");\n/* harmony import */ var _parse_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./parse.js */ \"./node_modules/uuid/dist/esm-browser/parse.js\");\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/uuid/dist/esm-browser/index.js?"); + +/***/ }), + +/***/ "./node_modules/uuid/dist/esm-browser/md5.js": +/*!***************************************************!*\ + !*** ./node_modules/uuid/dist/esm-browser/md5.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/*\n * Browser-compatible JavaScript MD5\n *\n * Modification of JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\nfunction md5(bytes) {\n if (typeof bytes === 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Uint8Array(msg.length);\n\n for (var i = 0; i < msg.length; ++i) {\n bytes[i] = msg.charCodeAt(i);\n }\n }\n\n return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));\n}\n/*\n * Convert an array of little-endian words to an array of bytes\n */\n\n\nfunction md5ToHexEncodedArray(input) {\n var output = [];\n var length32 = input.length * 32;\n var hexTab = '0123456789abcdef';\n\n for (var i = 0; i < length32; i += 8) {\n var x = input[i >> 5] >>> i % 32 & 0xff;\n var hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);\n output.push(hex);\n }\n\n return output;\n}\n/**\n * Calculate output length with padding and bit length\n */\n\n\nfunction getOutputLength(inputLength8) {\n return (inputLength8 + 64 >>> 9 << 4) + 14 + 1;\n}\n/*\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n */\n\n\nfunction wordsToMd5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << len % 32;\n x[getOutputLength(len) - 1] = len;\n var a = 1732584193;\n var b = -271733879;\n var c = -1732584194;\n var d = 271733878;\n\n for (var i = 0; i < x.length; i += 16) {\n var olda = a;\n var oldb = b;\n var oldc = c;\n var oldd = d;\n a = md5ff(a, b, c, d, x[i], 7, -680876936);\n d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);\n c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);\n b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);\n a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);\n d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);\n c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);\n b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);\n a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);\n d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);\n c = md5ff(c, d, a, b, x[i + 10], 17, -42063);\n b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);\n a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);\n d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);\n c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);\n b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);\n a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);\n d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);\n c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);\n b = md5gg(b, c, d, a, x[i], 20, -373897302);\n a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);\n d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);\n c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);\n b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);\n a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);\n d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);\n c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);\n b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);\n a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);\n d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);\n c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);\n b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);\n a = md5hh(a, b, c, d, x[i + 5], 4, -378558);\n d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);\n c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);\n b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);\n a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);\n d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);\n c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);\n b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);\n a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);\n d = md5hh(d, a, b, c, x[i], 11, -358537222);\n c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);\n b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);\n a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);\n d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);\n c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);\n b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);\n a = md5ii(a, b, c, d, x[i], 6, -198630844);\n d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);\n c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);\n b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);\n a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);\n d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);\n c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);\n b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);\n a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);\n d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);\n c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);\n b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);\n a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);\n d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);\n c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);\n b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);\n a = safeAdd(a, olda);\n b = safeAdd(b, oldb);\n c = safeAdd(c, oldc);\n d = safeAdd(d, oldd);\n }\n\n return [a, b, c, d];\n}\n/*\n * Convert an array bytes to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n */\n\n\nfunction bytesToWords(input) {\n if (input.length === 0) {\n return [];\n }\n\n var length8 = input.length * 8;\n var output = new Uint32Array(getOutputLength(length8));\n\n for (var i = 0; i < length8; i += 8) {\n output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;\n }\n\n return output;\n}\n/*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\n\n\nfunction safeAdd(x, y) {\n var lsw = (x & 0xffff) + (y & 0xffff);\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return msw << 16 | lsw & 0xffff;\n}\n/*\n * Bitwise rotate a 32-bit number to the left.\n */\n\n\nfunction bitRotateLeft(num, cnt) {\n return num << cnt | num >>> 32 - cnt;\n}\n/*\n * These functions implement the four basic operations the algorithm uses.\n */\n\n\nfunction md5cmn(q, a, b, x, s, t) {\n return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);\n}\n\nfunction md5ff(a, b, c, d, x, s, t) {\n return md5cmn(b & c | ~b & d, a, b, x, s, t);\n}\n\nfunction md5gg(a, b, c, d, x, s, t) {\n return md5cmn(b & d | c & ~d, a, b, x, s, t);\n}\n\nfunction md5hh(a, b, c, d, x, s, t) {\n return md5cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction md5ii(a, b, c, d, x, s, t) {\n return md5cmn(c ^ (b | ~d), a, b, x, s, t);\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (md5);\n\n//# sourceURL=webpack://my-demo-app/./node_modules/uuid/dist/esm-browser/md5.js?"); + +/***/ }), + +/***/ "./node_modules/uuid/dist/esm-browser/nil.js": +/*!***************************************************!*\ + !*** ./node_modules/uuid/dist/esm-browser/nil.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ('00000000-0000-0000-0000-000000000000');\n\n//# sourceURL=webpack://my-demo-app/./node_modules/uuid/dist/esm-browser/nil.js?"); + +/***/ }), + +/***/ "./node_modules/uuid/dist/esm-browser/parse.js": +/*!*****************************************************!*\ + !*** ./node_modules/uuid/dist/esm-browser/parse.js ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _validate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validate.js */ \"./node_modules/uuid/dist/esm-browser/validate.js\");\n\n\nfunction parse(uuid) {\n if (!(0,_validate_js__WEBPACK_IMPORTED_MODULE_0__.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n var v;\n var arr = new Uint8Array(16); // Parse ########-....-....-....-............\n\n arr[0] = (v = parseInt(uuid.slice(0, 8), 16)) >>> 24;\n arr[1] = v >>> 16 & 0xff;\n arr[2] = v >>> 8 & 0xff;\n arr[3] = v & 0xff; // Parse ........-####-....-....-............\n\n arr[4] = (v = parseInt(uuid.slice(9, 13), 16)) >>> 8;\n arr[5] = v & 0xff; // Parse ........-....-####-....-............\n\n arr[6] = (v = parseInt(uuid.slice(14, 18), 16)) >>> 8;\n arr[7] = v & 0xff; // Parse ........-....-....-####-............\n\n arr[8] = (v = parseInt(uuid.slice(19, 23), 16)) >>> 8;\n arr[9] = v & 0xff; // Parse ........-....-....-....-############\n // (Use \"/\" to avoid 32-bit truncation when bit-shifting high-order bytes)\n\n arr[10] = (v = parseInt(uuid.slice(24, 36), 16)) / 0x10000000000 & 0xff;\n arr[11] = v / 0x100000000 & 0xff;\n arr[12] = v >>> 24 & 0xff;\n arr[13] = v >>> 16 & 0xff;\n arr[14] = v >>> 8 & 0xff;\n arr[15] = v & 0xff;\n return arr;\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (parse);\n\n//# sourceURL=webpack://my-demo-app/./node_modules/uuid/dist/esm-browser/parse.js?"); + +/***/ }), + +/***/ "./node_modules/uuid/dist/esm-browser/regex.js": +/*!*****************************************************!*\ + !*** ./node_modules/uuid/dist/esm-browser/regex.js ***! + \*****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i);\n\n//# sourceURL=webpack://my-demo-app/./node_modules/uuid/dist/esm-browser/regex.js?"); + +/***/ }), + +/***/ "./node_modules/uuid/dist/esm-browser/rng.js": +/*!***************************************************!*\ + !*** ./node_modules/uuid/dist/esm-browser/rng.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ rng)\n/* harmony export */ });\n// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nfunction rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}\n\n//# sourceURL=webpack://my-demo-app/./node_modules/uuid/dist/esm-browser/rng.js?"); + +/***/ }), + +/***/ "./node_modules/uuid/dist/esm-browser/sha1.js": +/*!****************************************************!*\ + !*** ./node_modules/uuid/dist/esm-browser/sha1.js ***! + \****************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes === 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = [];\n\n for (var i = 0; i < msg.length; ++i) {\n bytes.push(msg.charCodeAt(i));\n }\n } else if (!Array.isArray(bytes)) {\n // Convert Array-like to Array\n bytes = Array.prototype.slice.call(bytes);\n }\n\n bytes.push(0x80);\n var l = bytes.length / 4 + 2;\n var N = Math.ceil(l / 16);\n var M = new Array(N);\n\n for (var _i = 0; _i < N; ++_i) {\n var arr = new Uint32Array(16);\n\n for (var j = 0; j < 16; ++j) {\n arr[j] = bytes[_i * 64 + j * 4] << 24 | bytes[_i * 64 + j * 4 + 1] << 16 | bytes[_i * 64 + j * 4 + 2] << 8 | bytes[_i * 64 + j * 4 + 3];\n }\n\n M[_i] = arr;\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (var _i2 = 0; _i2 < N; ++_i2) {\n var W = new Uint32Array(80);\n\n for (var t = 0; t < 16; ++t) {\n W[t] = M[_i2][t];\n }\n\n for (var _t = 16; _t < 80; ++_t) {\n W[_t] = ROTL(W[_t - 3] ^ W[_t - 8] ^ W[_t - 14] ^ W[_t - 16], 1);\n }\n\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n\n for (var _t2 = 0; _t2 < 80; ++_t2) {\n var s = Math.floor(_t2 / 20);\n var T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[_t2] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (sha1);\n\n//# sourceURL=webpack://my-demo-app/./node_modules/uuid/dist/esm-browser/sha1.js?"); + +/***/ }), + +/***/ "./node_modules/uuid/dist/esm-browser/stringify.js": +/*!*********************************************************!*\ + !*** ./node_modules/uuid/dist/esm-browser/stringify.js ***! + \*********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _validate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validate.js */ \"./node_modules/uuid/dist/esm-browser/validate.js\");\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!(0,_validate_js__WEBPACK_IMPORTED_MODULE_0__.default)(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (stringify);\n\n//# sourceURL=webpack://my-demo-app/./node_modules/uuid/dist/esm-browser/stringify.js?"); + +/***/ }), + +/***/ "./node_modules/uuid/dist/esm-browser/v1.js": +/*!**************************************************!*\ + !*** ./node_modules/uuid/dist/esm-browser/v1.js ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _rng_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./rng.js */ \"./node_modules/uuid/dist/esm-browser/rng.js\");\n/* harmony import */ var _stringify_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./stringify.js */ \"./node_modules/uuid/dist/esm-browser/stringify.js\");\n\n // **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\n\nvar _clockseq; // Previous uuid creation time\n\n\nvar _lastMSecs = 0;\nvar _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || new Array(16);\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n var seedBytes = options.random || (options.rng || _rng_js__WEBPACK_IMPORTED_MODULE_0__.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n var msecs = options.msecs !== undefined ? options.msecs : Date.now(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n var tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf || (0,_stringify_js__WEBPACK_IMPORTED_MODULE_1__.default)(b);\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (v1);\n\n//# sourceURL=webpack://my-demo-app/./node_modules/uuid/dist/esm-browser/v1.js?"); + +/***/ }), + +/***/ "./node_modules/uuid/dist/esm-browser/v3.js": +/*!**************************************************!*\ + !*** ./node_modules/uuid/dist/esm-browser/v3.js ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _v35_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./v35.js */ \"./node_modules/uuid/dist/esm-browser/v35.js\");\n/* harmony import */ var _md5_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./md5.js */ \"./node_modules/uuid/dist/esm-browser/md5.js\");\n\n\nvar v3 = (0,_v35_js__WEBPACK_IMPORTED_MODULE_0__.default)('v3', 0x30, _md5_js__WEBPACK_IMPORTED_MODULE_1__.default);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (v3);\n\n//# sourceURL=webpack://my-demo-app/./node_modules/uuid/dist/esm-browser/v3.js?"); + +/***/ }), + +/***/ "./node_modules/uuid/dist/esm-browser/v35.js": +/*!***************************************************!*\ + !*** ./node_modules/uuid/dist/esm-browser/v35.js ***! + \***************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"DNS\": () => (/* binding */ DNS),\n/* harmony export */ \"URL\": () => (/* binding */ URL),\n/* harmony export */ \"default\": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _stringify_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./stringify.js */ \"./node_modules/uuid/dist/esm-browser/stringify.js\");\n/* harmony import */ var _parse_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./parse.js */ \"./node_modules/uuid/dist/esm-browser/parse.js\");\n\n\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n var bytes = [];\n\n for (var i = 0; i < str.length; ++i) {\n bytes.push(str.charCodeAt(i));\n }\n\n return bytes;\n}\n\nvar DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nvar URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\n/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__(name, version, hashfunc) {\n function generateUUID(value, namespace, buf, offset) {\n if (typeof value === 'string') {\n value = stringToBytes(value);\n }\n\n if (typeof namespace === 'string') {\n namespace = (0,_parse_js__WEBPACK_IMPORTED_MODULE_0__.default)(namespace);\n }\n\n if (namespace.length !== 16) {\n throw TypeError('Namespace must be array-like (16 iterable integer values, 0-255)');\n } // Compute hash of namespace and value, Per 4.3\n // Future: Use spread syntax when supported on all platforms, e.g. `bytes =\n // hashfunc([...namespace, ... value])`\n\n\n var bytes = new Uint8Array(16 + value.length);\n bytes.set(namespace);\n bytes.set(value, namespace.length);\n bytes = hashfunc(bytes);\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = bytes[i];\n }\n\n return buf;\n }\n\n return (0,_stringify_js__WEBPACK_IMPORTED_MODULE_1__.default)(bytes);\n } // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name; // eslint-disable-next-line no-empty\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}\n\n//# sourceURL=webpack://my-demo-app/./node_modules/uuid/dist/esm-browser/v35.js?"); + +/***/ }), + +/***/ "./node_modules/uuid/dist/esm-browser/v4.js": +/*!**************************************************!*\ + !*** ./node_modules/uuid/dist/esm-browser/v4.js ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _rng_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./rng.js */ \"./node_modules/uuid/dist/esm-browser/rng.js\");\n/* harmony import */ var _stringify_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./stringify.js */ \"./node_modules/uuid/dist/esm-browser/stringify.js\");\n\n\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || _rng_js__WEBPACK_IMPORTED_MODULE_0__.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return (0,_stringify_js__WEBPACK_IMPORTED_MODULE_1__.default)(rnds);\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (v4);\n\n//# sourceURL=webpack://my-demo-app/./node_modules/uuid/dist/esm-browser/v4.js?"); + +/***/ }), + +/***/ "./node_modules/uuid/dist/esm-browser/v5.js": +/*!**************************************************!*\ + !*** ./node_modules/uuid/dist/esm-browser/v5.js ***! + \**************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _v35_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./v35.js */ \"./node_modules/uuid/dist/esm-browser/v35.js\");\n/* harmony import */ var _sha1_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./sha1.js */ \"./node_modules/uuid/dist/esm-browser/sha1.js\");\n\n\nvar v5 = (0,_v35_js__WEBPACK_IMPORTED_MODULE_0__.default)('v5', 0x50, _sha1_js__WEBPACK_IMPORTED_MODULE_1__.default);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (v5);\n\n//# sourceURL=webpack://my-demo-app/./node_modules/uuid/dist/esm-browser/v5.js?"); + +/***/ }), + +/***/ "./node_modules/uuid/dist/esm-browser/validate.js": +/*!********************************************************!*\ + !*** ./node_modules/uuid/dist/esm-browser/validate.js ***! + \********************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _regex_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./regex.js */ \"./node_modules/uuid/dist/esm-browser/regex.js\");\n\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && _regex_js__WEBPACK_IMPORTED_MODULE_0__.default.test(uuid);\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (validate);\n\n//# sourceURL=webpack://my-demo-app/./node_modules/uuid/dist/esm-browser/validate.js?"); + +/***/ }), + +/***/ "./node_modules/uuid/dist/esm-browser/version.js": +/*!*******************************************************!*\ + !*** ./node_modules/uuid/dist/esm-browser/version.js ***! + \*******************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var _validate_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./validate.js */ \"./node_modules/uuid/dist/esm-browser/validate.js\");\n\n\nfunction version(uuid) {\n if (!(0,_validate_js__WEBPACK_IMPORTED_MODULE_0__.default)(uuid)) {\n throw TypeError('Invalid UUID');\n }\n\n return parseInt(uuid.substr(14, 1), 16);\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (version);\n\n//# sourceURL=webpack://my-demo-app/./node_modules/uuid/dist/esm-browser/version.js?"); + +/***/ }), + +/***/ "./src/index.js": +/*!**********************!*\ + !*** ./src/index.js ***! + \**********************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _inrupt_solid_client_authn_browser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @inrupt/solid-client-authn-browser */ \"./node_modules/@inrupt/solid-client-authn-browser/dist/index.js\");\n/* harmony import */ var _inrupt_solid_client_authn_browser__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_inrupt_solid_client_authn_browser__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _inrupt_solid_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @inrupt/solid-client */ \"./node_modules/@inrupt/solid-client/dist/resource/solidDataset.mjs\");\n/* harmony import */ var _inrupt_solid_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @inrupt/solid-client */ \"./node_modules/@inrupt/solid-client/dist/thing/thing.mjs\");\n/* harmony import */ var _inrupt_solid_client__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @inrupt/solid-client */ \"./node_modules/@inrupt/solid-client/dist/thing/get.mjs\");\n/* harmony import */ var _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @inrupt/vocab-common-rdf */ \"./node_modules/@inrupt/vocab-common-rdf/dist/index.es.js\");\n// Import from \"@inrupt/solid-client-authn-browser\"\n\n\n// Import from \"@inrupt/solid-client\"\n\n\n\n\nconst buttonLogin = document.querySelector(\"#btnLogin\");\nconst buttonRead = document.querySelector(\"#btnRead\");\n\n// 1a. Start Login Process. Call login() function.\nfunction loginToInruptDotCom() {\n return (0,_inrupt_solid_client_authn_browser__WEBPACK_IMPORTED_MODULE_0__.login)({\n\n oidcIssuer: \"https://broker.pod.inrupt.com\",\n\n redirectUrl: window.location.href,\n clientName: \"Getting started app\"\n });\n}\n\n// 1b. Login Redirect. Call handleIncomingRedirect() function.\n// When redirected after login, finish the process by retrieving session information.\nasync function handleRedirectAfterLogin() {\n await (0,_inrupt_solid_client_authn_browser__WEBPACK_IMPORTED_MODULE_0__.handleIncomingRedirect)();\n\n const session = (0,_inrupt_solid_client_authn_browser__WEBPACK_IMPORTED_MODULE_0__.getDefaultSession)();\n if (session.info.isLoggedIn) {\n // Update the page with the status.\n document.getElementById(\"labelStatus\").textContent = \"Your session is logged in.\";\n document.getElementById(\"labelStatus\").setAttribute(\"role\", \"alert\");\n }\n}\n\n// The example has the login redirect back to the index.html.\n// This calls the function to process login information.\n// If the function is called when not part of the login redirect, the function is a no-op.\nhandleRedirectAfterLogin();\n\n// 2. Read profile\nasync function readProfile() {\n const webID = document.getElementById(\"webID\").value;\n\n // The example assumes the WebID has the URI # where\n // is the URI of the SolidDataset\n // that contains profile data.\n \n // Parse ProfileDocument URI from the `webID` value.\n const profileDocumentURI = webID.split('#')[0];\n document.getElementById(\"labelProfile\").textContent = profileDocumentURI;\n\n\n // Use `getSolidDataset` to get the Profile document.\n // Profile document is public and can be read w/o authentication; i.e.: \n // - You can either omit `fetch` or \n // - You can pass in `fetch` with or without logging in first. \n // If logged in, the `fetch` is authenticated.\n // For illustrative purposes, the `fetch` is passed in.\n const myDataset = await (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_1__.getSolidDataset)(profileDocumentURI, { fetch: _inrupt_solid_client_authn_browser__WEBPACK_IMPORTED_MODULE_0__.fetch });\n\n // Get the Profile data from the retrieved SolidDataset\n const profile = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_2__.getThing)(myDataset, webID);\n\n // Get the formatted name using `VCARD.fn` convenience object.\n // `VCARD.fn` includes the identifier string \"http://www.w3.org/2006/vcard/ns#fn\".\n // As an alternative, you can pass in the \"http://www.w3.org/2006/vcard/ns#fn\" string instead of `VCARD.fn`.\n \n const fn = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_3__.getStringNoLocale)(profile, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.VCARD.fn);\n\n // Get the role using `VCARD.role` convenience object.\n // `VCARD.role` includes the identifier string \"http://www.w3.org/2006/vcard/ns#role\"\n // As an alternative, you can pass in the \"http://www.w3.org/2006/vcard/ns#role\" string instead of `VCARD.role`.\n\n const role = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_3__.getStringNoLocale)(profile, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.VCARD.role);\n\n // Update the page with the retrieved values.\n document.getElementById(\"labelFN\").textContent = fn;\n document.getElementById(\"labelRole\").textContent = role;\n}\n\n\n\nconst MY_POD_URL = \"https://example.com/mypod/\";\n\n// Upload selected files to Pod\nfunction handleFiles() {\n const fileList = document.getElementById('fileinput').files;\n\n fileList.forEach(file => {\n writeFileToPod(file, `${MY_POD_URL}uploadedFiles/${file.name}`, _inrupt_solid_client_authn_browser__WEBPACK_IMPORTED_MODULE_0__.fetch);\n });\n}\n\n// Upload File to the targetFileURL.\n// If the targetFileURL exists, overwrite the file.\n// If the targetFileURL does not exist, create the file at the location.\nasync function writeFileToPod(file, targetFileURL, fetch ) {\n try {\n const savedFile = await overwriteFile( \n targetFileURL, // URL for the file.\n file, // File\n { contentType: file.type, fetch: fetch } // mimetype if known, fetch from the authenticated session\n );\n console.log(`File saved at ${getSourceUrl(savedFile)}`);\n\n } catch (error) {\n console.error(error);\n }\n}\n\nlet dropArea = document.querySelector(\"#file-drop-zone\");\ndropArea.addEventListener('drop', handleFileDrop, false);\n\nfunction handleDropFiles(files)\n{\n console.log(\"file(s) to upload:\");\n for (let file of files)\n {\n console.log(file.name);\n let reader = new FileReader();\n reader.onload = function(e) \n {\n let rawData = reader.result;\n console.log(rawData);\n };\n reader.readAsText(file);\n }\n}\n\n\nfunction handleFileDrop(e)\n{\n // e.preventDefault();\n if(e.dataTransfer && e.dataTransfer.files.length != 0)\n {\n let files = e.dataTransfer.files; //Array of filenames\n console.log(\"file(s) to upload:\");\n for (let file of files)\n {\n console.log(file.name);\n // let reader = new FileReader();\n // reader.onload = function(e) \n // {\n // let rawData = reader.result;\n // console.log(rawData);\n // };\n // reader.readAsText(file);\n \n }\n }\n else\n {\n console.error(\"drag and drop not supported\");\n }\n\n console.log(e);\n // return false;\n}\n\n['dragenter', 'dragover', 'dragleave'].forEach(eventName => {\n dropArea.addEventListener(eventName, preventDefaults, false)\n});\n\n['dragenter', 'dragover'].forEach(eventName => {\n dropArea.addEventListener(eventName, highlight, false);\n});\n\n['dragleave', 'drop'].forEach(eventName => {\n dropArea.addEventListener(eventName, unhighlight, false);\n});\n\nfunction highlight()\n{\n dropArea.classList.add('drop-zone-hover');\n}\n\nfunction unhighlight()\n{\n dropArea.classList.remove('drop-zone-hover');\n}\n\nfunction preventDefaults (e) {\n e.preventDefault()\n e.stopPropagation()\n}\n\n\nbuttonLogin.onclick = function() { \n loginToInruptDotCom();\n};\n\nbuttonRead.onclick = function() { \n readProfile();\n};\n\n//# sourceURL=webpack://my-demo-app/./src/index.js?"); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = __webpack_modules__; +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat get default export */ +/******/ (() => { +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = (module) => { +/******/ var getter = module && module.__esModule ? +/******/ () => (module['default']) : +/******/ () => (module); +/******/ __webpack_require__.d(getter, { a: getter }); +/******/ return getter; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/create fake namespace object */ +/******/ (() => { +/******/ var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__); +/******/ var leafPrototypes; +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 16: return value when it's Promise-like +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = this(value); +/******/ if(mode & 8) return value; +/******/ if(typeof value === 'object' && value) { +/******/ if((mode & 4) && value.__esModule) return value; +/******/ if((mode & 16) && typeof value.then === 'function') return value; +/******/ } +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ var def = {}; +/******/ leafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)]; +/******/ for(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) { +/******/ Object.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key]))); +/******/ } +/******/ def['default'] = () => (value); +/******/ __webpack_require__.d(ns, def); +/******/ return ns; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/define property getters */ +/******/ (() => { +/******/ // define getter functions for harmony exports +/******/ __webpack_require__.d = (exports, definition) => { +/******/ for(var key in definition) { +/******/ if(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) { +/******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] }); +/******/ } +/******/ } +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/ensure chunk */ +/******/ (() => { +/******/ __webpack_require__.f = {}; +/******/ // This file contains only the entry chunk. +/******/ // The chunk loading function for additional chunks +/******/ __webpack_require__.e = (chunkId) => { +/******/ return Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => { +/******/ __webpack_require__.f[key](chunkId, promises); +/******/ return promises; +/******/ }, [])); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/get javascript chunk filename */ +/******/ (() => { +/******/ // This function allow to reference async chunks +/******/ __webpack_require__.u = (chunkId) => { +/******/ // return url for filenames based on template +/******/ return "" + chunkId + ".index.js"; +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/global */ +/******/ (() => { +/******/ __webpack_require__.g = (function() { +/******/ if (typeof globalThis === 'object') return globalThis; +/******/ try { +/******/ return this || new Function('return this')(); +/******/ } catch (e) { +/******/ if (typeof window === 'object') return window; +/******/ } +/******/ })(); +/******/ })(); +/******/ +/******/ /* webpack/runtime/hasOwnProperty shorthand */ +/******/ (() => { +/******/ __webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop)) +/******/ })(); +/******/ +/******/ /* webpack/runtime/load script */ +/******/ (() => { +/******/ var inProgress = {}; +/******/ var dataWebpackPrefix = "my-demo-app:"; +/******/ // loadScript function to load a script via script tag +/******/ __webpack_require__.l = (url, done, key, chunkId) => { +/******/ if(inProgress[url]) { inProgress[url].push(done); return; } +/******/ var script, needAttach; +/******/ if(key !== undefined) { +/******/ var scripts = document.getElementsByTagName("script"); +/******/ for(var i = 0; i < scripts.length; i++) { +/******/ var s = scripts[i]; +/******/ if(s.getAttribute("src") == url || s.getAttribute("data-webpack") == dataWebpackPrefix + key) { script = s; break; } +/******/ } +/******/ } +/******/ if(!script) { +/******/ needAttach = true; +/******/ script = document.createElement('script'); +/******/ +/******/ script.charset = 'utf-8'; +/******/ script.timeout = 120; +/******/ if (__webpack_require__.nc) { +/******/ script.setAttribute("nonce", __webpack_require__.nc); +/******/ } +/******/ script.setAttribute("data-webpack", dataWebpackPrefix + key); +/******/ script.src = url; +/******/ } +/******/ inProgress[url] = [done]; +/******/ var onScriptComplete = (prev, event) => { +/******/ // avoid mem leaks in IE. +/******/ script.onerror = script.onload = null; +/******/ clearTimeout(timeout); +/******/ var doneFns = inProgress[url]; +/******/ delete inProgress[url]; +/******/ script.parentNode && script.parentNode.removeChild(script); +/******/ doneFns && doneFns.forEach((fn) => (fn(event))); +/******/ if(prev) return prev(event); +/******/ } +/******/ ; +/******/ var timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000); +/******/ script.onerror = onScriptComplete.bind(null, script.onerror); +/******/ script.onload = onScriptComplete.bind(null, script.onload); +/******/ needAttach && document.head.appendChild(script); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/make namespace object */ +/******/ (() => { +/******/ // define __esModule on exports +/******/ __webpack_require__.r = (exports) => { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ })(); +/******/ +/******/ /* webpack/runtime/publicPath */ +/******/ (() => { +/******/ var scriptUrl; +/******/ if (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + ""; +/******/ var document = __webpack_require__.g.document; +/******/ if (!scriptUrl && document) { +/******/ if (document.currentScript) +/******/ scriptUrl = document.currentScript.src +/******/ if (!scriptUrl) { +/******/ var scripts = document.getElementsByTagName("script"); +/******/ if(scripts.length) scriptUrl = scripts[scripts.length - 1].src +/******/ } +/******/ } +/******/ // When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration +/******/ // or pass an empty string ("") and set the __webpack_public_path__ variable from your code to use your own logic. +/******/ if (!scriptUrl) throw new Error("Automatic publicPath is not supported in this browser"); +/******/ scriptUrl = scriptUrl.replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/"); +/******/ __webpack_require__.p = scriptUrl; +/******/ })(); +/******/ +/******/ /* webpack/runtime/jsonp chunk loading */ +/******/ (() => { +/******/ // no baseURI +/******/ +/******/ // object to store loaded and loading chunks +/******/ // undefined = chunk not loaded, null = chunk preloaded/prefetched +/******/ // [resolve, reject, Promise] = chunk loading, 0 = chunk loaded +/******/ var installedChunks = { +/******/ "main": 0 +/******/ }; +/******/ +/******/ __webpack_require__.f.j = (chunkId, promises) => { +/******/ // JSONP chunk loading for javascript +/******/ var installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined; +/******/ if(installedChunkData !== 0) { // 0 means "already installed". +/******/ +/******/ // a Promise means "currently loading". +/******/ if(installedChunkData) { +/******/ promises.push(installedChunkData[2]); +/******/ } else { +/******/ if(true) { // all chunks have JS +/******/ // setup Promise in chunk cache +/******/ var promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject])); +/******/ promises.push(installedChunkData[2] = promise); +/******/ +/******/ // start chunk loading +/******/ var url = __webpack_require__.p + __webpack_require__.u(chunkId); +/******/ // create error before stack unwound to get useful stacktrace later +/******/ var error = new Error(); +/******/ var loadingEnded = (event) => { +/******/ if(__webpack_require__.o(installedChunks, chunkId)) { +/******/ installedChunkData = installedChunks[chunkId]; +/******/ if(installedChunkData !== 0) installedChunks[chunkId] = undefined; +/******/ if(installedChunkData) { +/******/ var errorType = event && (event.type === 'load' ? 'missing' : event.type); +/******/ var realSrc = event && event.target && event.target.src; +/******/ error.message = 'Loading chunk ' + chunkId + ' failed.\n(' + errorType + ': ' + realSrc + ')'; +/******/ error.name = 'ChunkLoadError'; +/******/ error.type = errorType; +/******/ error.request = realSrc; +/******/ installedChunkData[1](error); +/******/ } +/******/ } +/******/ }; +/******/ __webpack_require__.l(url, loadingEnded, "chunk-" + chunkId, chunkId); +/******/ } else installedChunks[chunkId] = 0; +/******/ } +/******/ } +/******/ }; +/******/ +/******/ // no prefetching +/******/ +/******/ // no preloaded +/******/ +/******/ // no HMR +/******/ +/******/ // no HMR manifest +/******/ +/******/ // no on chunks loaded +/******/ +/******/ // install a JSONP callback for chunk loading +/******/ var webpackJsonpCallback = (parentChunkLoadingFunction, data) => { +/******/ var [chunkIds, moreModules, runtime] = data; +/******/ // add "moreModules" to the modules object, +/******/ // then flag all "chunkIds" as loaded and fire callback +/******/ var moduleId, chunkId, i = 0; +/******/ for(moduleId in moreModules) { +/******/ if(__webpack_require__.o(moreModules, moduleId)) { +/******/ __webpack_require__.m[moduleId] = moreModules[moduleId]; +/******/ } +/******/ } +/******/ if(runtime) var result = runtime(__webpack_require__); +/******/ if(parentChunkLoadingFunction) parentChunkLoadingFunction(data); +/******/ for(;i < chunkIds.length; i++) { +/******/ chunkId = chunkIds[i]; +/******/ if(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) { +/******/ installedChunks[chunkId][0](); +/******/ } +/******/ installedChunks[chunkIds[i]] = 0; +/******/ } +/******/ +/******/ } +/******/ +/******/ var chunkLoadingGlobal = self["webpackChunkmy_demo_app"] = self["webpackChunkmy_demo_app"] || []; +/******/ chunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0)); +/******/ chunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal)); +/******/ })(); +/******/ +/************************************************************************/ +/******/ +/******/ // startup +/******/ // Load entry module and return exports +/******/ // This entry module can't be inlined because the eval devtool is used. +/******/ var __webpack_exports__ = __webpack_require__("./src/index.js"); +/******/ +/******/ })() +; \ No newline at end of file diff --git a/my-demo-app/public/vendors-node_modules_n3_src_index_js.index.js b/my-demo-app/public/vendors-node_modules_n3_src_index_js.index.js new file mode 100644 index 0000000..2735e2b --- /dev/null +++ b/my-demo-app/public/vendors-node_modules_n3_src_index_js.index.js @@ -0,0 +1,366 @@ +/* + * ATTENTION: The "eval" devtool has been used (maybe by default in mode: "development"). + * This devtool is neither made for production nor for readable output files. + * It uses "eval()" calls to create a separate source file in the browser devtools. + * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) + * or disable the default devtool with "devtool: false". + * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). + */ +(self["webpackChunkmy_demo_app"] = self["webpackChunkmy_demo_app"] || []).push([["vendors-node_modules_n3_src_index_js"],{ + +/***/ "./node_modules/base64-js/index.js": +/*!*****************************************!*\ + !*** ./node_modules/base64-js/index.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +eval("\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/base64-js/index.js?"); + +/***/ }), + +/***/ "./node_modules/buffer/index.js": +/*!**************************************!*\ + !*** ./node_modules/buffer/index.js ***! + \**************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n\n\nconst base64 = __webpack_require__(/*! base64-js */ \"./node_modules/base64-js/index.js\")\nconst ieee754 = __webpack_require__(/*! ieee754 */ \"./node_modules/ieee754/index.js\")\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/buffer/index.js?"); + +/***/ }), + +/***/ "./node_modules/ieee754/index.js": +/*!***************************************!*\ + !*** ./node_modules/ieee754/index.js ***! + \***************************************/ +/***/ ((__unused_webpack_module, exports) => { + +eval("/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/ieee754/index.js?"); + +/***/ }), + +/***/ "./node_modules/inherits/inherits_browser.js": +/*!***************************************************!*\ + !*** ./node_modules/inherits/inherits_browser.js ***! + \***************************************************/ +/***/ ((module) => { + +eval("if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/inherits/inherits_browser.js?"); + +/***/ }), + +/***/ "./node_modules/n3/src/IRIs.js": +/*!*************************************!*\ + !*** ./node_modules/n3/src/IRIs.js ***! + \*************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\nconst RDF = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#',\n XSD = 'http://www.w3.org/2001/XMLSchema#',\n SWAP = 'http://www.w3.org/2000/10/swap/';\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n xsd: {\n decimal: `${XSD}decimal`,\n boolean: `${XSD}boolean`,\n double: `${XSD}double`,\n integer: `${XSD}integer`,\n string: `${XSD}string`,\n },\n rdf: {\n type: `${RDF}type`,\n nil: `${RDF}nil`,\n first: `${RDF}first`,\n rest: `${RDF}rest`,\n langString: `${RDF}langString`,\n },\n owl: {\n sameAs: 'http://www.w3.org/2002/07/owl#sameAs',\n },\n r: {\n forSome: `${SWAP}reify#forSome`,\n forAll: `${SWAP}reify#forAll`,\n },\n log: {\n implies: `${SWAP}log#implies`,\n },\n});\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/n3/src/IRIs.js?"); + +/***/ }), + +/***/ "./node_modules/n3/src/N3DataFactory.js": +/*!**********************************************!*\ + !*** ./node_modules/n3/src/N3DataFactory.js ***! + \**********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ \"Term\": () => (/* binding */ Term),\n/* harmony export */ \"NamedNode\": () => (/* binding */ NamedNode),\n/* harmony export */ \"Literal\": () => (/* binding */ Literal),\n/* harmony export */ \"BlankNode\": () => (/* binding */ BlankNode),\n/* harmony export */ \"Variable\": () => (/* binding */ Variable),\n/* harmony export */ \"DefaultGraph\": () => (/* binding */ DefaultGraph),\n/* harmony export */ \"termFromId\": () => (/* binding */ termFromId),\n/* harmony export */ \"termToId\": () => (/* binding */ termToId),\n/* harmony export */ \"Quad\": () => (/* binding */ Quad),\n/* harmony export */ \"Triple\": () => (/* binding */ Quad),\n/* harmony export */ \"escapeQuotes\": () => (/* binding */ escapeQuotes),\n/* harmony export */ \"unescapeQuotes\": () => (/* binding */ unescapeQuotes)\n/* harmony export */ });\n/* harmony import */ var _IRIs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./IRIs */ \"./node_modules/n3/src/IRIs.js\");\n/* harmony import */ var _N3Util__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./N3Util */ \"./node_modules/n3/src/N3Util.js\");\n// N3.js implementations of the RDF/JS core data types\n// See https://github.com/rdfjs/representation-task-force/blob/master/interface-spec.md\n\n\n\nconst { rdf, xsd } = _IRIs__WEBPACK_IMPORTED_MODULE_0__.default;\n\n// eslint-disable-next-line prefer-const\nlet DEFAULTGRAPH;\nlet _blankNodeCounter = 0;\n\nconst escapedLiteral = /^\"(.*\".*)(?=\"[^\"]*$)/;\nconst quadId = /^<<(\"(?:\"\"|[^\"])*\"[^ ]*|[^ ]+) (\"(?:\"\"|[^\"])*\"[^ ]*|[^ ]+) (\"(?:\"\"|[^\"])*\"[^ ]*|[^ ]+) ?(\"(?:\"\"|[^\"])*\"[^ ]*|[^ ]+)?>>$/;\n\n// ## DataFactory singleton\nconst DataFactory = {\n namedNode,\n blankNode,\n variable,\n literal,\n defaultGraph,\n quad,\n triple: quad,\n};\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (DataFactory);\n\n// ## Term constructor\nclass Term {\n constructor(id) {\n this.id = id;\n }\n\n // ### The value of this term\n get value() {\n return this.id;\n }\n\n // ### Returns whether this object represents the same term as the other\n equals(other) {\n // If both terms were created by this library,\n // equality can be computed through ids\n if (other instanceof Term)\n return this.id === other.id;\n // Otherwise, compare term type and value\n return !!other && this.termType === other.termType &&\n this.value === other.value;\n }\n\n // ### Returns a plain object representation of this term\n toJSON() {\n return {\n termType: this.termType,\n value: this.value,\n };\n }\n}\n\n\n// ## NamedNode constructor\nclass NamedNode extends Term {\n // ### The term type of this term\n get termType() {\n return 'NamedNode';\n }\n}\n\n// ## Literal constructor\nclass Literal extends Term {\n // ### The term type of this term\n get termType() {\n return 'Literal';\n }\n\n // ### The text value of this literal\n get value() {\n return this.id.substring(1, this.id.lastIndexOf('\"'));\n }\n\n // ### The language of this literal\n get language() {\n // Find the last quotation mark (e.g., '\"abc\"@en-us')\n const id = this.id;\n let atPos = id.lastIndexOf('\"') + 1;\n // If \"@\" it follows, return the remaining substring; empty otherwise\n return atPos < id.length && id[atPos++] === '@' ? id.substr(atPos).toLowerCase() : '';\n }\n\n // ### The datatype IRI of this literal\n get datatype() {\n return new NamedNode(this.datatypeString);\n }\n\n // ### The datatype string of this literal\n get datatypeString() {\n // Find the last quotation mark (e.g., '\"abc\"^^http://ex.org/types#t')\n const id = this.id, dtPos = id.lastIndexOf('\"') + 1;\n const char = dtPos < id.length ? id[dtPos] : '';\n // If \"^\" it follows, return the remaining substring\n return char === '^' ? id.substr(dtPos + 2) :\n // If \"@\" follows, return rdf:langString; xsd:string otherwise\n (char !== '@' ? xsd.string : rdf.langString);\n }\n\n // ### Returns whether this object represents the same term as the other\n equals(other) {\n // If both literals were created by this library,\n // equality can be computed through ids\n if (other instanceof Literal)\n return this.id === other.id;\n // Otherwise, compare term type, value, language, and datatype\n return !!other && !!other.datatype &&\n this.termType === other.termType &&\n this.value === other.value &&\n this.language === other.language &&\n this.datatype.value === other.datatype.value;\n }\n\n toJSON() {\n return {\n termType: this.termType,\n value: this.value,\n language: this.language,\n datatype: { termType: 'NamedNode', value: this.datatypeString },\n };\n }\n}\n\n// ## BlankNode constructor\nclass BlankNode extends Term {\n constructor(name) {\n super(`_:${name}`);\n }\n\n // ### The term type of this term\n get termType() {\n return 'BlankNode';\n }\n\n // ### The name of this blank node\n get value() {\n return this.id.substr(2);\n }\n}\n\nclass Variable extends Term {\n constructor(name) {\n super(`?${name}`);\n }\n\n // ### The term type of this term\n get termType() {\n return 'Variable';\n }\n\n // ### The name of this variable\n get value() {\n return this.id.substr(1);\n }\n}\n\n// ## DefaultGraph constructor\nclass DefaultGraph extends Term {\n constructor() {\n super('');\n return DEFAULTGRAPH || this;\n }\n\n // ### The term type of this term\n get termType() {\n return 'DefaultGraph';\n }\n\n // ### Returns whether this object represents the same term as the other\n equals(other) {\n // If both terms were created by this library,\n // equality can be computed through strict equality;\n // otherwise, compare term types.\n return (this === other) || (!!other && (this.termType === other.termType));\n }\n}\n\n// ## DefaultGraph singleton\nDEFAULTGRAPH = new DefaultGraph();\n\n\n// ### Constructs a term from the given internal string ID\nfunction termFromId(id, factory) {\n factory = factory || DataFactory;\n\n // Falsy value or empty string indicate the default graph\n if (!id)\n return factory.defaultGraph();\n\n // Identify the term type based on the first character\n switch (id[0]) {\n case '?':\n return factory.variable(id.substr(1));\n case '_':\n return factory.blankNode(id.substr(2));\n case '\"':\n // Shortcut for internal literals\n if (factory === DataFactory)\n return new Literal(id);\n // Literal without datatype or language\n if (id[id.length - 1] === '\"')\n return factory.literal(id.substr(1, id.length - 2));\n // Literal with datatype or language\n const endPos = id.lastIndexOf('\"', id.length - 1);\n return factory.literal(id.substr(1, endPos - 1),\n id[endPos + 1] === '@' ? id.substr(endPos + 2)\n : factory.namedNode(id.substr(endPos + 3)));\n case '<':\n const components = quadId.exec(id);\n return factory.quad(\n termFromId(unescapeQuotes(components[1]), factory),\n termFromId(unescapeQuotes(components[2]), factory),\n termFromId(unescapeQuotes(components[3]), factory),\n components[4] && termFromId(unescapeQuotes(components[4]), factory)\n );\n default:\n return factory.namedNode(id);\n }\n}\n\n// ### Constructs an internal string ID from the given term or ID string\nfunction termToId(term) {\n if (typeof term === 'string')\n return term;\n if (term instanceof Term && term.termType !== 'Quad')\n return term.id;\n if (!term)\n return DEFAULTGRAPH.id;\n\n // Term instantiated with another library\n switch (term.termType) {\n case 'NamedNode': return term.value;\n case 'BlankNode': return `_:${term.value}`;\n case 'Variable': return `?${term.value}`;\n case 'DefaultGraph': return '';\n case 'Literal': return `\"${term.value}\"${\n term.language ? `@${term.language}` :\n (term.datatype && term.datatype.value !== xsd.string ? `^^${term.datatype.value}` : '')}`;\n case 'Quad':\n // To identify RDF* quad components, we escape quotes by doubling them.\n // This avoids the overhead of backslash parsing of Turtle-like syntaxes.\n return `<<${\n escapeQuotes(termToId(term.subject))\n } ${\n escapeQuotes(termToId(term.predicate))\n } ${\n escapeQuotes(termToId(term.object))\n }${\n ((0,_N3Util__WEBPACK_IMPORTED_MODULE_1__.isDefaultGraph)(term.graph)) ? '' : ` ${termToId(term.graph)}`\n }>>`;\n default: throw new Error(`Unexpected termType: ${term.termType}`);\n }\n}\n\n\n// ## Quad constructor\nclass Quad extends Term {\n constructor(subject, predicate, object, graph) {\n super('');\n this._subject = subject;\n this._predicate = predicate;\n this._object = object;\n this._graph = graph || DEFAULTGRAPH;\n }\n\n // ### The term type of this term\n get termType() {\n return 'Quad';\n }\n\n get subject() {\n return this._subject;\n }\n\n get predicate() {\n return this._predicate;\n }\n\n get object() {\n return this._object;\n }\n\n get graph() {\n return this._graph;\n }\n\n // ### Returns a plain object representation of this quad\n toJSON() {\n return {\n termType: this.termType,\n subject: this._subject.toJSON(),\n predicate: this._predicate.toJSON(),\n object: this._object.toJSON(),\n graph: this._graph.toJSON(),\n };\n }\n\n // ### Returns whether this object represents the same quad as the other\n equals(other) {\n return !!other && this._subject.equals(other.subject) &&\n this._predicate.equals(other.predicate) &&\n this._object.equals(other.object) &&\n this._graph.equals(other.graph);\n }\n}\n\n\n// ### Escapes the quotes within the given literal\nfunction escapeQuotes(id) {\n return id.replace(escapedLiteral, (_, quoted) => `\"${quoted.replace(/\"/g, '\"\"')}`);\n}\n\n// ### Unescapes the quotes within the given literal\nfunction unescapeQuotes(id) {\n return id.replace(escapedLiteral, (_, quoted) => `\"${quoted.replace(/\"\"/g, '\"')}`);\n}\n\n// ### Creates an IRI\nfunction namedNode(iri) {\n return new NamedNode(iri);\n}\n\n// ### Creates a blank node\nfunction blankNode(name) {\n return new BlankNode(name || `n3-${_blankNodeCounter++}`);\n}\n\n// ### Creates a literal\nfunction literal(value, languageOrDataType) {\n // Create a language-tagged string\n if (typeof languageOrDataType === 'string')\n return new Literal(`\"${value}\"@${languageOrDataType.toLowerCase()}`);\n\n // Automatically determine datatype for booleans and numbers\n let datatype = languageOrDataType ? languageOrDataType.value : '';\n if (datatype === '') {\n // Convert a boolean\n if (typeof value === 'boolean')\n datatype = xsd.boolean;\n // Convert an integer or double\n else if (typeof value === 'number') {\n if (Number.isFinite(value))\n datatype = Number.isInteger(value) ? xsd.integer : xsd.double;\n else {\n datatype = xsd.double;\n if (!Number.isNaN(value))\n value = value > 0 ? 'INF' : '-INF';\n }\n }\n }\n\n // Create a datatyped literal\n return (datatype === '' || datatype === xsd.string) ?\n new Literal(`\"${value}\"`) :\n new Literal(`\"${value}\"^^${datatype}`);\n}\n\n// ### Creates a variable\nfunction variable(name) {\n return new Variable(name);\n}\n\n// ### Returns the default graph\nfunction defaultGraph() {\n return DEFAULTGRAPH;\n}\n\n// ### Creates a quad\nfunction quad(subject, predicate, object, graph) {\n return new Quad(subject, predicate, object, graph);\n}\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/n3/src/N3DataFactory.js?"); + +/***/ }), + +/***/ "./node_modules/n3/src/N3Lexer.js": +/*!****************************************!*\ + !*** ./node_modules/n3/src/N3Lexer.js ***! + \****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ N3Lexer)\n/* harmony export */ });\n/* harmony import */ var _IRIs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./IRIs */ \"./node_modules/n3/src/IRIs.js\");\n/* harmony import */ var queue_microtask__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! queue-microtask */ \"./node_modules/queue-microtask/index.js\");\n/* harmony import */ var queue_microtask__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(queue_microtask__WEBPACK_IMPORTED_MODULE_0__);\n// **N3Lexer** tokenizes N3 documents.\n\n\n\nconst { xsd } = _IRIs__WEBPACK_IMPORTED_MODULE_1__.default;\n\n// Regular expression and replacement string to escape N3 strings\nconst escapeSequence = /\\\\u([a-fA-F0-9]{4})|\\\\U([a-fA-F0-9]{8})|\\\\([^])/g;\nconst escapeReplacements = {\n '\\\\': '\\\\', \"'\": \"'\", '\"': '\"',\n 'n': '\\n', 'r': '\\r', 't': '\\t', 'f': '\\f', 'b': '\\b',\n '_': '_', '~': '~', '.': '.', '-': '-', '!': '!', '$': '$', '&': '&',\n '(': '(', ')': ')', '*': '*', '+': '+', ',': ',', ';': ';', '=': '=',\n '/': '/', '?': '?', '#': '#', '@': '@', '%': '%',\n};\nconst illegalIriChars = /[\\x00-\\x20<>\\\\\"\\{\\}\\|\\^\\`]/;\n\nconst lineModeRegExps = {\n _iri: true,\n _unescapedIri: true,\n _simpleQuotedString: true,\n _langcode: true,\n _blank: true,\n _newline: true,\n _comment: true,\n _whitespace: true,\n _endOfFile: true,\n};\nconst invalidRegExp = /$0^/;\n\n// ## Constructor\nclass N3Lexer {\n constructor(options) {\n // ## Regular expressions\n // It's slightly faster to have these as properties than as in-scope variables\n this._iri = /^<((?:[^ <>{}\\\\]|\\\\[uU])+)>[ \\t]*/; // IRI with escape sequences; needs sanity check after unescaping\n this._unescapedIri = /^<([^\\x00-\\x20<>\\\\\"\\{\\}\\|\\^\\`]*)>[ \\t]*/; // IRI without escape sequences; no unescaping\n this._simpleQuotedString = /^\"([^\"\\\\\\r\\n]*)\"(?=[^\"])/; // string without escape sequences\n this._simpleApostropheString = /^'([^'\\\\\\r\\n]*)'(?=[^'])/;\n this._langcode = /^@([a-z]+(?:-[a-z0-9]+)*)(?=[^a-z0-9\\-])/i;\n this._prefix = /^((?:[A-Za-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])(?:\\.?[\\-0-9A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])*)?:(?=[#\\s<])/;\n this._prefixed = /^((?:[A-Za-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])(?:\\.?[\\-0-9A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])*)?:((?:(?:[0-:A-Z_a-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff]|%[0-9a-fA-F]{2}|\\\\[!#-\\/;=?\\-@_~])(?:(?:[\\.\\-0-:A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff]|%[0-9a-fA-F]{2}|\\\\[!#-\\/;=?\\-@_~])*(?:[\\-0-:A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff]|%[0-9a-fA-F]{2}|\\\\[!#-\\/;=?\\-@_~]))?)?)(?:[ \\t]+|(?=\\.?[,;!\\^\\s#()\\[\\]\\{\\}\"'<>]))/;\n this._variable = /^\\?(?:(?:[A-Z_a-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])(?:[\\-0-:A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])*)(?=[.,;!\\^\\s#()\\[\\]\\{\\}\"'<>])/;\n this._blank = /^_:((?:[0-9A-Z_a-z\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u02ff\\u0370-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])(?:\\.?[\\-0-9A-Z_a-z\\xb7\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\u037d\\u037f-\\u1fff\\u200c\\u200d\\u203f\\u2040\\u2070-\\u218f\\u2c00-\\u2fef\\u3001-\\ud7ff\\uf900-\\ufdcf\\ufdf0-\\ufffd]|[\\ud800-\\udb7f][\\udc00-\\udfff])*)(?:[ \\t]+|(?=\\.?[,;:\\s#()\\[\\]\\{\\}\"'<>]))/;\n this._number = /^[\\-+]?(?:(\\d+\\.\\d*|\\.?\\d+)[eE][\\-+]?|\\d*(\\.)?)\\d+(?=\\.?[,;:\\s#()\\[\\]\\{\\}\"'<>])/;\n this._boolean = /^(?:true|false)(?=[.,;\\s#()\\[\\]\\{\\}\"'<>])/;\n this._keyword = /^@[a-z]+(?=[\\s#<:])/i;\n this._sparqlKeyword = /^(?:PREFIX|BASE|GRAPH)(?=[\\s#<])/i;\n this._shortPredicates = /^a(?=[\\s#()\\[\\]\\{\\}\"'<>])/;\n this._newline = /^[ \\t]*(?:#[^\\n\\r]*)?(?:\\r\\n|\\n|\\r)[ \\t]*/;\n this._comment = /#([^\\n\\r]*)/;\n this._whitespace = /^[ \\t]+/;\n this._endOfFile = /^(?:#[^\\n\\r]*)?$/;\n options = options || {};\n\n // In line mode (N-Triples or N-Quads), only simple features may be parsed\n if (this._lineMode = !!options.lineMode) {\n this._n3Mode = false;\n // Don't tokenize special literals\n for (const key in this) {\n if (!(key in lineModeRegExps) && this[key] instanceof RegExp)\n this[key] = invalidRegExp;\n }\n }\n // When not in line mode, enable N3 functionality by default\n else {\n this._n3Mode = options.n3 !== false;\n }\n // Don't output comment tokens by default\n this._comments = !!options.comments;\n // Cache the last tested closing position of long literals\n this._literalClosingPos = 0;\n }\n\n // ## Private methods\n\n // ### `_tokenizeToEnd` tokenizes as for as possible, emitting tokens through the callback\n _tokenizeToEnd(callback, inputFinished) {\n // Continue parsing as far as possible; the loop will return eventually\n let input = this._input;\n const outputComments = this._comments;\n while (true) {\n // Count and skip whitespace lines\n let whiteSpaceMatch, comment;\n while (whiteSpaceMatch = this._newline.exec(input)) {\n // Try to find a comment\n if (outputComments && (comment = this._comment.exec(whiteSpaceMatch[0])))\n callback(null, { line: this._line, type: 'comment', value: comment[1], prefix: '' });\n // Advance the input\n input = input.substr(whiteSpaceMatch[0].length, input.length);\n this._line++;\n }\n // Skip whitespace on current line\n if (!whiteSpaceMatch && (whiteSpaceMatch = this._whitespace.exec(input)))\n input = input.substr(whiteSpaceMatch[0].length, input.length);\n\n // Stop for now if we're at the end\n if (this._endOfFile.test(input)) {\n // If the input is finished, emit EOF\n if (inputFinished) {\n // Try to find a final comment\n if (outputComments && (comment = this._comment.exec(input)))\n callback(null, { line: this._line, type: 'comment', value: comment[1], prefix: '' });\n callback(input = null, { line: this._line, type: 'eof', value: '', prefix: '' });\n }\n return this._input = input;\n }\n\n // Look for specific token types based on the first character\n const line = this._line, firstChar = input[0];\n let type = '', value = '', prefix = '',\n match = null, matchLength = 0, inconclusive = false;\n switch (firstChar) {\n case '^':\n // We need at least 3 tokens lookahead to distinguish ^^ and ^^pre:fixed\n if (input.length < 3)\n break;\n // Try to match a type\n else if (input[1] === '^') {\n this._previousMarker = '^^';\n // Move to type IRI or prefixed name\n input = input.substr(2);\n if (input[0] !== '<') {\n inconclusive = true;\n break;\n }\n }\n // If no type, it must be a path expression\n else {\n if (this._n3Mode) {\n matchLength = 1;\n type = '^';\n }\n break;\n }\n // Fall through in case the type is an IRI\n case '<':\n // Try to find a full IRI without escape sequences\n if (match = this._unescapedIri.exec(input))\n type = 'IRI', value = match[1];\n // Try to find a full IRI with escape sequences\n else if (match = this._iri.exec(input)) {\n value = this._unescape(match[1]);\n if (value === null || illegalIriChars.test(value))\n return reportSyntaxError(this);\n type = 'IRI';\n }\n // Try to find a nested triple\n else if (input.length > 1 && input[1] === '<')\n type = '<<', matchLength = 2;\n // Try to find a backwards implication arrow\n else if (this._n3Mode && input.length > 1 && input[1] === '=')\n type = 'inverse', matchLength = 2, value = '>';\n break;\n\n case '>':\n if (input.length > 1 && input[1] === '>')\n type = '>>', matchLength = 2;\n break;\n\n case '_':\n // Try to find a blank node. Since it can contain (but not end with) a dot,\n // we always need a non-dot character before deciding it is a blank node.\n // Therefore, try inserting a space if we're at the end of the input.\n if ((match = this._blank.exec(input)) ||\n inputFinished && (match = this._blank.exec(`${input} `)))\n type = 'blank', prefix = '_', value = match[1];\n break;\n\n case '\"':\n // Try to find a literal without escape sequences\n if (match = this._simpleQuotedString.exec(input))\n value = match[1];\n // Try to find a literal wrapped in three pairs of quotes\n else {\n ({ value, matchLength } = this._parseLiteral(input));\n if (value === null)\n return reportSyntaxError(this);\n }\n if (match !== null || matchLength !== 0) {\n type = 'literal';\n this._literalClosingPos = 0;\n }\n break;\n\n case \"'\":\n if (!this._lineMode) {\n // Try to find a literal without escape sequences\n if (match = this._simpleApostropheString.exec(input))\n value = match[1];\n // Try to find a literal wrapped in three pairs of quotes\n else {\n ({ value, matchLength } = this._parseLiteral(input));\n if (value === null)\n return reportSyntaxError(this);\n }\n if (match !== null || matchLength !== 0) {\n type = 'literal';\n this._literalClosingPos = 0;\n }\n }\n break;\n\n case '?':\n // Try to find a variable\n if (this._n3Mode && (match = this._variable.exec(input)))\n type = 'var', value = match[0];\n break;\n\n case '@':\n // Try to find a language code\n if (this._previousMarker === 'literal' && (match = this._langcode.exec(input)))\n type = 'langcode', value = match[1];\n // Try to find a keyword\n else if (match = this._keyword.exec(input))\n type = match[0];\n break;\n\n case '.':\n // Try to find a dot as punctuation\n if (input.length === 1 ? inputFinished : (input[1] < '0' || input[1] > '9')) {\n type = '.';\n matchLength = 1;\n break;\n }\n // Fall through to numerical case (could be a decimal dot)\n\n case '0':\n case '1':\n case '2':\n case '3':\n case '4':\n case '5':\n case '6':\n case '7':\n case '8':\n case '9':\n case '+':\n case '-':\n // Try to find a number. Since it can contain (but not end with) a dot,\n // we always need a non-dot character before deciding it is a number.\n // Therefore, try inserting a space if we're at the end of the input.\n if (match = this._number.exec(input) ||\n inputFinished && (match = this._number.exec(`${input} `))) {\n type = 'literal', value = match[0];\n prefix = (typeof match[1] === 'string' ? xsd.double :\n (typeof match[2] === 'string' ? xsd.decimal : xsd.integer));\n }\n break;\n\n case 'B':\n case 'b':\n case 'p':\n case 'P':\n case 'G':\n case 'g':\n // Try to find a SPARQL-style keyword\n if (match = this._sparqlKeyword.exec(input))\n type = match[0].toUpperCase();\n else\n inconclusive = true;\n break;\n\n case 'f':\n case 't':\n // Try to match a boolean\n if (match = this._boolean.exec(input))\n type = 'literal', value = match[0], prefix = xsd.boolean;\n else\n inconclusive = true;\n break;\n\n case 'a':\n // Try to find an abbreviated predicate\n if (match = this._shortPredicates.exec(input))\n type = 'abbreviation', value = 'a';\n else\n inconclusive = true;\n break;\n\n case '=':\n // Try to find an implication arrow or equals sign\n if (this._n3Mode && input.length > 1) {\n type = 'abbreviation';\n if (input[1] !== '>')\n matchLength = 1, value = '=';\n else\n matchLength = 2, value = '>';\n }\n break;\n\n case '!':\n if (!this._n3Mode)\n break;\n case ',':\n case ';':\n case '[':\n case ']':\n case '(':\n case ')':\n case '{':\n case '}':\n if (!this._lineMode) {\n matchLength = 1;\n type = firstChar;\n }\n break;\n\n default:\n inconclusive = true;\n }\n\n // Some first characters do not allow an immediate decision, so inspect more\n if (inconclusive) {\n // Try to find a prefix\n if ((this._previousMarker === '@prefix' || this._previousMarker === 'PREFIX') &&\n (match = this._prefix.exec(input)))\n type = 'prefix', value = match[1] || '';\n // Try to find a prefixed name. Since it can contain (but not end with) a dot,\n // we always need a non-dot character before deciding it is a prefixed name.\n // Therefore, try inserting a space if we're at the end of the input.\n else if ((match = this._prefixed.exec(input)) ||\n inputFinished && (match = this._prefixed.exec(`${input} `)))\n type = 'prefixed', prefix = match[1] || '', value = this._unescape(match[2]);\n }\n\n // A type token is special: it can only be emitted after an IRI or prefixed name is read\n if (this._previousMarker === '^^') {\n switch (type) {\n case 'prefixed': type = 'type'; break;\n case 'IRI': type = 'typeIRI'; break;\n default: type = '';\n }\n }\n\n // What if nothing of the above was found?\n if (!type) {\n // We could be in streaming mode, and then we just wait for more input to arrive.\n // Otherwise, a syntax error has occurred in the input.\n // One exception: error on an unaccounted linebreak (= not inside a triple-quoted literal).\n if (inputFinished || (!/^'''|^\"\"\"/.test(input) && /\\n|\\r/.test(input)))\n return reportSyntaxError(this);\n else\n return this._input = input;\n }\n\n // Emit the parsed token\n const token = { line: line, type: type, value: value, prefix: prefix };\n callback(null, token);\n this.previousToken = token;\n this._previousMarker = type;\n // Advance to next part to tokenize\n input = input.substr(matchLength || match[0].length, input.length);\n }\n\n // Signals the syntax error through the callback\n function reportSyntaxError(self) { callback(self._syntaxError(/^\\S*/.exec(input)[0])); }\n }\n\n // ### `_unescape` replaces N3 escape codes by their corresponding characters\n _unescape(item) {\n let invalid = false;\n const replaced = item.replace(escapeSequence, (sequence, unicode4, unicode8, escapedChar) => {\n // 4-digit unicode character\n if (typeof unicode4 === 'string')\n return String.fromCharCode(Number.parseInt(unicode4, 16));\n // 8-digit unicode character\n if (typeof unicode8 === 'string') {\n let charCode = Number.parseInt(unicode8, 16);\n return charCode <= 0xFFFF ? String.fromCharCode(Number.parseInt(unicode8, 16)) :\n String.fromCharCode(0xD800 + ((charCode -= 0x10000) >> 10), 0xDC00 + (charCode & 0x3FF));\n }\n // fixed escape sequence\n if (escapedChar in escapeReplacements)\n return escapeReplacements[escapedChar];\n // invalid escape sequence\n invalid = true;\n return '';\n });\n return invalid ? null : replaced;\n }\n\n // ### `_parseLiteral` parses a literal into an unescaped value\n _parseLiteral(input) {\n // Ensure we have enough lookahead to identify triple-quoted strings\n if (input.length >= 3) {\n // Identify the opening quote(s)\n const opening = input.match(/^(?:\"\"\"|\"|'''|'|)/)[0];\n const openingLength = opening.length;\n\n // Find the next candidate closing quotes\n let closingPos = Math.max(this._literalClosingPos, openingLength);\n while ((closingPos = input.indexOf(opening, closingPos)) > 0) {\n // Count backslashes right before the closing quotes\n let backslashCount = 0;\n while (input[closingPos - backslashCount - 1] === '\\\\')\n backslashCount++;\n\n // An even number of backslashes (in particular 0)\n // means these are actual, non-escaped closing quotes\n if (backslashCount % 2 === 0) {\n // Extract and unescape the value\n const raw = input.substring(openingLength, closingPos);\n const lines = raw.split(/\\r\\n|\\r|\\n/).length - 1;\n const matchLength = closingPos + openingLength;\n // Only triple-quoted strings can be multi-line\n if (openingLength === 1 && lines !== 0 ||\n openingLength === 3 && this._lineMode)\n break;\n this._line += lines;\n return { value: this._unescape(raw), matchLength };\n }\n closingPos++;\n }\n this._literalClosingPos = input.length - openingLength + 1;\n }\n return { value: '', matchLength: 0 };\n }\n\n // ### `_syntaxError` creates a syntax error for the given issue\n _syntaxError(issue) {\n this._input = null;\n const err = new Error(`Unexpected \"${issue}\" on line ${this._line}.`);\n err.context = {\n token: undefined,\n line: this._line,\n previousToken: this.previousToken,\n };\n return err;\n }\n\n // ## Public methods\n\n // ### `tokenize` starts the transformation of an N3 document into an array of tokens.\n // The input can be a string or a stream.\n tokenize(input, callback) {\n this._line = 1;\n\n // If the input is a string, continuously emit tokens through the callback until the end\n if (typeof input === 'string') {\n this._input = input;\n // If a callback was passed, asynchronously call it\n if (typeof callback === 'function')\n queue_microtask__WEBPACK_IMPORTED_MODULE_0___default()(() => this._tokenizeToEnd(callback, true));\n // If no callback was passed, tokenize synchronously and return\n else {\n const tokens = [];\n let error;\n this._tokenizeToEnd((e, t) => e ? (error = e) : tokens.push(t), true);\n if (error) throw error;\n return tokens;\n }\n }\n // Otherwise, the input must be a stream\n else {\n this._input = '';\n this._pendingBuffer = null;\n if (typeof input.setEncoding === 'function')\n input.setEncoding('utf8');\n // Adds the data chunk to the buffer and parses as far as possible\n input.on('data', data => {\n if (this._input !== null && data.length !== 0) {\n // Prepend any previous pending writes\n if (this._pendingBuffer) {\n data = Buffer.concat([this._pendingBuffer, data]);\n this._pendingBuffer = null;\n }\n // Hold if the buffer ends in an incomplete unicode sequence\n if (data[data.length - 1] & 0x80) {\n this._pendingBuffer = data;\n }\n // Otherwise, tokenize as far as possible\n else {\n this._input += data;\n this._tokenizeToEnd(callback, false);\n }\n }\n });\n // Parses until the end\n input.on('end', () => {\n if (this._input !== null)\n this._tokenizeToEnd(callback, true);\n });\n input.on('error', callback);\n }\n }\n}\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/n3/src/N3Lexer.js?"); + +/***/ }), + +/***/ "./node_modules/n3/src/N3Parser.js": +/*!*****************************************!*\ + !*** ./node_modules/n3/src/N3Parser.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ N3Parser)\n/* harmony export */ });\n/* harmony import */ var _N3Lexer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./N3Lexer */ \"./node_modules/n3/src/N3Lexer.js\");\n/* harmony import */ var _N3DataFactory__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./N3DataFactory */ \"./node_modules/n3/src/N3DataFactory.js\");\n/* harmony import */ var _IRIs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./IRIs */ \"./node_modules/n3/src/IRIs.js\");\n// **N3Parser** parses N3 documents.\n\n\n\n\nlet blankNodePrefix = 0;\n\n// ## Constructor\nclass N3Parser {\n constructor(options) {\n this._contextStack = [];\n this._graph = null;\n\n // Set the document IRI\n options = options || {};\n this._setBase(options.baseIRI);\n options.factory && initDataFactory(this, options.factory);\n\n // Set supported features depending on the format\n const format = (typeof options.format === 'string') ?\n options.format.match(/\\w*$/)[0].toLowerCase() : '',\n isTurtle = /turtle/.test(format), isTriG = /trig/.test(format),\n isNTriples = /triple/.test(format), isNQuads = /quad/.test(format),\n isN3 = this._n3Mode = /n3/.test(format),\n isLineMode = isNTriples || isNQuads;\n if (!(this._supportsNamedGraphs = !(isTurtle || isN3)))\n this._readPredicateOrNamedGraph = this._readPredicate;\n // Support triples in other graphs\n this._supportsQuads = !(isTurtle || isTriG || isNTriples || isN3);\n // Support nesting of triples\n this._supportsRDFStar = format === '' || /star|\\*$/.test(format);\n // Disable relative IRIs in N-Triples or N-Quads mode\n if (isLineMode)\n this._resolveRelativeIRI = iri => { return null; };\n this._blankNodePrefix = typeof options.blankNodePrefix !== 'string' ? '' :\n options.blankNodePrefix.replace(/^(?!_:)/, '_:');\n this._lexer = options.lexer || new _N3Lexer__WEBPACK_IMPORTED_MODULE_0__.default({ lineMode: isLineMode, n3: isN3 });\n // Disable explicit quantifiers by default\n this._explicitQuantifiers = !!options.explicitQuantifiers;\n }\n\n // ## Static class methods\n\n // ### `_resetBlankNodePrefix` restarts blank node prefix identification\n static _resetBlankNodePrefix() {\n blankNodePrefix = 0;\n }\n\n // ## Private methods\n\n // ### `_setBase` sets the base IRI to resolve relative IRIs\n _setBase(baseIRI) {\n if (!baseIRI) {\n this._base = '';\n this._basePath = '';\n }\n else {\n // Remove fragment if present\n const fragmentPos = baseIRI.indexOf('#');\n if (fragmentPos >= 0)\n baseIRI = baseIRI.substr(0, fragmentPos);\n // Set base IRI and its components\n this._base = baseIRI;\n this._basePath = baseIRI.indexOf('/') < 0 ? baseIRI :\n baseIRI.replace(/[^\\/?]*(?:\\?.*)?$/, '');\n baseIRI = baseIRI.match(/^(?:([a-z][a-z0-9+.-]*:))?(?:\\/\\/[^\\/]*)?/i);\n this._baseRoot = baseIRI[0];\n this._baseScheme = baseIRI[1];\n }\n }\n\n // ### `_saveContext` stores the current parsing context\n // when entering a new scope (list, blank node, formula)\n _saveContext(type, graph, subject, predicate, object) {\n const n3Mode = this._n3Mode;\n this._contextStack.push({\n subject: subject, predicate: predicate, object: object,\n graph: graph, type: type,\n inverse: n3Mode ? this._inversePredicate : false,\n blankPrefix: n3Mode ? this._prefixes._ : '',\n quantified: n3Mode ? this._quantified : null,\n });\n // The settings below only apply to N3 streams\n if (n3Mode) {\n // Every new scope resets the predicate direction\n this._inversePredicate = false;\n // In N3, blank nodes are scoped to a formula\n // (using a dot as separator, as a blank node label cannot start with it)\n this._prefixes._ = (this._graph ? `${this._graph.id.substr(2)}.` : '.');\n // Quantifiers are scoped to a formula\n this._quantified = Object.create(this._quantified);\n }\n }\n\n // ### `_restoreContext` restores the parent context\n // when leaving a scope (list, blank node, formula)\n _restoreContext() {\n const context = this._contextStack.pop(), n3Mode = this._n3Mode;\n this._subject = context.subject;\n this._predicate = context.predicate;\n this._object = context.object;\n this._graph = context.graph;\n // The settings below only apply to N3 streams\n if (n3Mode) {\n this._inversePredicate = context.inverse;\n this._prefixes._ = context.blankPrefix;\n this._quantified = context.quantified;\n }\n }\n\n // ### `_readInTopContext` reads a token when in the top context\n _readInTopContext(token) {\n switch (token.type) {\n // If an EOF token arrives in the top context, signal that we're done\n case 'eof':\n if (this._graph !== null)\n return this._error('Unclosed graph', token);\n delete this._prefixes._;\n return this._callback(null, null, this._prefixes);\n // It could be a prefix declaration\n case 'PREFIX':\n this._sparqlStyle = true;\n case '@prefix':\n return this._readPrefix;\n // It could be a base declaration\n case 'BASE':\n this._sparqlStyle = true;\n case '@base':\n return this._readBaseIRI;\n // It could be a graph\n case '{':\n if (this._supportsNamedGraphs) {\n this._graph = '';\n this._subject = null;\n return this._readSubject;\n }\n case 'GRAPH':\n if (this._supportsNamedGraphs)\n return this._readNamedGraphLabel;\n // Otherwise, the next token must be a subject\n default:\n return this._readSubject(token);\n }\n }\n\n // ### `_readEntity` reads an IRI, prefixed name, blank node, or variable\n _readEntity(token, quantifier) {\n let value;\n switch (token.type) {\n // Read a relative or absolute IRI\n case 'IRI':\n case 'typeIRI':\n const iri = this._resolveIRI(token.value);\n if (iri === null)\n return this._error('Invalid IRI', token);\n value = this._namedNode(iri);\n break;\n // Read a prefixed name\n case 'type':\n case 'prefixed':\n const prefix = this._prefixes[token.prefix];\n if (prefix === undefined)\n return this._error(`Undefined prefix \"${token.prefix}:\"`, token);\n value = this._namedNode(prefix + token.value);\n break;\n // Read a blank node\n case 'blank':\n value = this._blankNode(this._prefixes[token.prefix] + token.value);\n break;\n // Read a variable\n case 'var':\n value = this._variable(token.value.substr(1));\n break;\n // Everything else is not an entity\n default:\n return this._error(`Expected entity but got ${token.type}`, token);\n }\n // In N3 mode, replace the entity if it is quantified\n if (!quantifier && this._n3Mode && (value.id in this._quantified))\n value = this._quantified[value.id];\n return value;\n }\n\n // ### `_readSubject` reads a quad's subject\n _readSubject(token) {\n this._predicate = null;\n switch (token.type) {\n case '[':\n // Start a new quad with a new blank node as subject\n this._saveContext('blank', this._graph,\n this._subject = this._blankNode(), null, null);\n return this._readBlankNodeHead;\n case '(':\n // Start a new list\n this._saveContext('list', this._graph, this.RDF_NIL, null, null);\n this._subject = null;\n return this._readListItem;\n case '{':\n // Start a new formula\n if (!this._n3Mode)\n return this._error('Unexpected graph', token);\n this._saveContext('formula', this._graph,\n this._graph = this._blankNode(), null, null);\n return this._readSubject;\n case '}':\n // No subject; the graph in which we are reading is closed instead\n return this._readPunctuation(token);\n case '@forSome':\n if (!this._n3Mode)\n return this._error('Unexpected \"@forSome\"', token);\n this._subject = null;\n this._predicate = this.N3_FORSOME;\n this._quantifier = this._blankNode;\n return this._readQuantifierList;\n case '@forAll':\n if (!this._n3Mode)\n return this._error('Unexpected \"@forAll\"', token);\n this._subject = null;\n this._predicate = this.N3_FORALL;\n this._quantifier = this._variable;\n return this._readQuantifierList;\n case 'literal':\n if (!this._n3Mode)\n return this._error('Unexpected literal', token);\n\n if (token.prefix.length === 0) {\n this._literalValue = token.value;\n return this._completeSubjectLiteral;\n }\n else\n this._subject = this._literal(token.value, this._namedNode(token.prefix));\n\n break;\n case '<<':\n if (!this._supportsRDFStar)\n return this._error('Unexpected RDF* syntax', token);\n this._saveContext('<<', this._graph, null, null, null);\n this._graph = null;\n return this._readSubject;\n default:\n // Read the subject entity\n if ((this._subject = this._readEntity(token)) === undefined)\n return;\n // In N3 mode, the subject might be a path\n if (this._n3Mode)\n return this._getPathReader(this._readPredicateOrNamedGraph);\n }\n\n // The next token must be a predicate,\n // or, if the subject was actually a graph IRI, a named graph\n return this._readPredicateOrNamedGraph;\n }\n\n // ### `_readPredicate` reads a quad's predicate\n _readPredicate(token) {\n const type = token.type;\n switch (type) {\n case 'inverse':\n this._inversePredicate = true;\n case 'abbreviation':\n this._predicate = this.ABBREVIATIONS[token.value];\n break;\n case '.':\n case ']':\n case '}':\n // Expected predicate didn't come, must have been trailing semicolon\n if (this._predicate === null)\n return this._error(`Unexpected ${type}`, token);\n this._subject = null;\n return type === ']' ? this._readBlankNodeTail(token) : this._readPunctuation(token);\n case ';':\n // Additional semicolons can be safely ignored\n return this._predicate !== null ? this._readPredicate :\n this._error('Expected predicate but got ;', token);\n case 'blank':\n if (!this._n3Mode)\n return this._error('Disallowed blank node as predicate', token);\n default:\n if ((this._predicate = this._readEntity(token)) === undefined)\n return;\n }\n // The next token must be an object\n return this._readObject;\n }\n\n // ### `_readObject` reads a quad's object\n _readObject(token) {\n switch (token.type) {\n case 'literal':\n // Regular literal, can still get a datatype or language\n if (token.prefix.length === 0) {\n this._literalValue = token.value;\n return this._readDataTypeOrLang;\n }\n // Pre-datatyped string literal (prefix stores the datatype)\n else\n this._object = this._literal(token.value, this._namedNode(token.prefix));\n break;\n case '[':\n // Start a new quad with a new blank node as subject\n this._saveContext('blank', this._graph, this._subject, this._predicate,\n this._subject = this._blankNode());\n return this._readBlankNodeHead;\n case '(':\n // Start a new list\n this._saveContext('list', this._graph, this._subject, this._predicate, this.RDF_NIL);\n this._subject = null;\n return this._readListItem;\n case '{':\n // Start a new formula\n if (!this._n3Mode)\n return this._error('Unexpected graph', token);\n this._saveContext('formula', this._graph, this._subject, this._predicate,\n this._graph = this._blankNode());\n return this._readSubject;\n case '<<':\n if (!this._supportsRDFStar)\n return this._error('Unexpected RDF* syntax', token);\n this._saveContext('<<', this._graph, this._subject, this._predicate, null);\n this._graph = null;\n return this._readSubject;\n default:\n // Read the object entity\n if ((this._object = this._readEntity(token)) === undefined)\n return;\n // In N3 mode, the object might be a path\n if (this._n3Mode)\n return this._getPathReader(this._getContextEndReader());\n }\n return this._getContextEndReader();\n }\n\n // ### `_readPredicateOrNamedGraph` reads a quad's predicate, or a named graph\n _readPredicateOrNamedGraph(token) {\n return token.type === '{' ? this._readGraph(token) : this._readPredicate(token);\n }\n\n // ### `_readGraph` reads a graph\n _readGraph(token) {\n if (token.type !== '{')\n return this._error(`Expected graph but got ${token.type}`, token);\n // The \"subject\" we read is actually the GRAPH's label\n this._graph = this._subject, this._subject = null;\n return this._readSubject;\n }\n\n // ### `_readBlankNodeHead` reads the head of a blank node\n _readBlankNodeHead(token) {\n if (token.type === ']') {\n this._subject = null;\n return this._readBlankNodeTail(token);\n }\n else {\n this._predicate = null;\n return this._readPredicate(token);\n }\n }\n\n // ### `_readBlankNodeTail` reads the end of a blank node\n _readBlankNodeTail(token) {\n if (token.type !== ']')\n return this._readBlankNodePunctuation(token);\n\n // Store blank node quad\n if (this._subject !== null)\n this._emit(this._subject, this._predicate, this._object, this._graph);\n\n // Restore the parent context containing this blank node\n const empty = this._predicate === null;\n this._restoreContext();\n // If the blank node was the subject, continue reading the predicate\n if (this._object === null)\n // If the blank node was empty, it could be a named graph label\n return empty ? this._readPredicateOrNamedGraph : this._readPredicateAfterBlank;\n // If the blank node was the object, restore previous context and read punctuation\n else\n return this._getContextEndReader();\n }\n\n // ### `_readPredicateAfterBlank` reads a predicate after an anonymous blank node\n _readPredicateAfterBlank(token) {\n switch (token.type) {\n case '.':\n case '}':\n // No predicate is coming if the triple is terminated here\n this._subject = null;\n return this._readPunctuation(token);\n default:\n return this._readPredicate(token);\n }\n }\n\n // ### `_readListItem` reads items from a list\n _readListItem(token) {\n let item = null, // The item of the list\n list = null, // The list itself\n next = this._readListItem; // The next function to execute\n const previousList = this._subject, // The previous list that contains this list\n stack = this._contextStack, // The stack of parent contexts\n parent = stack[stack.length - 1]; // The parent containing the current list\n\n switch (token.type) {\n case '[':\n // Stack the current list quad and start a new quad with a blank node as subject\n this._saveContext('blank', this._graph,\n list = this._blankNode(), this.RDF_FIRST,\n this._subject = item = this._blankNode());\n next = this._readBlankNodeHead;\n break;\n case '(':\n // Stack the current list quad and start a new list\n this._saveContext('list', this._graph,\n list = this._blankNode(), this.RDF_FIRST, this.RDF_NIL);\n this._subject = null;\n break;\n case ')':\n // Closing the list; restore the parent context\n this._restoreContext();\n // If this list is contained within a parent list, return the membership quad here.\n // This will be ` rdf:first .`.\n if (stack.length !== 0 && stack[stack.length - 1].type === 'list')\n this._emit(this._subject, this._predicate, this._object, this._graph);\n // Was this list the parent's subject?\n if (this._predicate === null) {\n // The next token is the predicate\n next = this._readPredicate;\n // No list tail if this was an empty list\n if (this._subject === this.RDF_NIL)\n return next;\n }\n // The list was in the parent context's object\n else {\n next = this._getContextEndReader();\n // No list tail if this was an empty list\n if (this._object === this.RDF_NIL)\n return next;\n }\n // Close the list by making the head nil\n list = this.RDF_NIL;\n break;\n case 'literal':\n // Regular literal, can still get a datatype or language\n if (token.prefix.length === 0) {\n this._literalValue = token.value;\n next = this._readListItemDataTypeOrLang;\n }\n // Pre-datatyped string literal (prefix stores the datatype)\n else {\n item = this._literal(token.value, this._namedNode(token.prefix));\n next = this._getContextEndReader();\n }\n break;\n case '{':\n // Start a new formula\n if (!this._n3Mode)\n return this._error('Unexpected graph', token);\n this._saveContext('formula', this._graph, this._subject, this._predicate,\n this._graph = this._blankNode());\n return this._readSubject;\n default:\n if ((item = this._readEntity(token)) === undefined)\n return;\n }\n\n // Create a new blank node if no item head was assigned yet\n if (list === null)\n this._subject = list = this._blankNode();\n\n // Is this the first element of the list?\n if (previousList === null) {\n // This list is either the subject or the object of its parent\n if (parent.predicate === null)\n parent.subject = list;\n else\n parent.object = list;\n }\n else {\n // Continue the previous list with the current list\n this._emit(previousList, this.RDF_REST, list, this._graph);\n }\n // If an item was read, add it to the list\n if (item !== null) {\n // In N3 mode, the item might be a path\n if (this._n3Mode && (token.type === 'IRI' || token.type === 'prefixed')) {\n // Create a new context to add the item's path\n this._saveContext('item', this._graph, list, this.RDF_FIRST, item);\n this._subject = item, this._predicate = null;\n // _readPath will restore the context and output the item\n return this._getPathReader(this._readListItem);\n }\n // Output the item\n this._emit(list, this.RDF_FIRST, item, this._graph);\n }\n return next;\n }\n\n // ### `_readDataTypeOrLang` reads an _optional_ datatype or language\n _readDataTypeOrLang(token) {\n return this._completeObjectLiteral(token, false);\n }\n\n\n // ### `_readListItemDataTypeOrLang` reads an _optional_ datatype or language in a list\n _readListItemDataTypeOrLang(token) {\n return this._completeObjectLiteral(token, true);\n }\n\n // ### `_completeLiteral` completes a literal with an optional datatype or language\n _completeLiteral(token) {\n // Create a simple string literal by default\n let literal = this._literal(this._literalValue);\n\n switch (token.type) {\n // Create a datatyped literal\n case 'type':\n case 'typeIRI':\n const datatype = this._readEntity(token);\n if (datatype === undefined) return; // No datatype means an error occurred\n literal = this._literal(this._literalValue, datatype);\n token = null;\n break;\n // Create a language-tagged string\n case 'langcode':\n literal = this._literal(this._literalValue, token.value);\n token = null;\n break;\n }\n\n return { token, literal };\n }\n\n // Completes a literal in subject position\n _completeSubjectLiteral(token) {\n this._subject = this._completeLiteral(token).literal;\n return this._readPredicateOrNamedGraph;\n }\n\n // Completes a literal in object position\n _completeObjectLiteral(token, listItem) {\n const completed = this._completeLiteral(token);\n if (!completed)\n return;\n this._object = completed.literal;\n\n // If this literal was part of a list, write the item\n // (we could also check the context stack, but passing in a flag is faster)\n if (listItem)\n this._emit(this._subject, this.RDF_FIRST, this._object, this._graph);\n // If the token was consumed, continue with the rest of the input\n if (completed.token === null)\n return this._getContextEndReader();\n // Otherwise, consume the token now\n else {\n this._readCallback = this._getContextEndReader();\n return this._readCallback(completed.token);\n }\n }\n\n // ### `_readFormulaTail` reads the end of a formula\n _readFormulaTail(token) {\n if (token.type !== '}')\n return this._readPunctuation(token);\n\n // Store the last quad of the formula\n if (this._subject !== null)\n this._emit(this._subject, this._predicate, this._object, this._graph);\n\n // Restore the parent context containing this formula\n this._restoreContext();\n // If the formula was the subject, continue reading the predicate.\n // If the formula was the object, read punctuation.\n return this._object === null ? this._readPredicate : this._getContextEndReader();\n }\n\n // ### `_readPunctuation` reads punctuation between quads or quad parts\n _readPunctuation(token) {\n let next, graph = this._graph;\n const subject = this._subject, inversePredicate = this._inversePredicate;\n switch (token.type) {\n // A closing brace ends a graph\n case '}':\n if (this._graph === null)\n return this._error('Unexpected graph closing', token);\n if (this._n3Mode)\n return this._readFormulaTail(token);\n this._graph = null;\n // A dot just ends the statement, without sharing anything with the next\n case '.':\n this._subject = null;\n next = this._contextStack.length ? this._readSubject : this._readInTopContext;\n if (inversePredicate) this._inversePredicate = false;\n break;\n // Semicolon means the subject is shared; predicate and object are different\n case ';':\n next = this._readPredicate;\n break;\n // Comma means both the subject and predicate are shared; the object is different\n case ',':\n next = this._readObject;\n break;\n default:\n // An entity means this is a quad (only allowed if not already inside a graph)\n if (this._supportsQuads && this._graph === null && (graph = this._readEntity(token)) !== undefined) {\n next = this._readQuadPunctuation;\n break;\n }\n return this._error(`Expected punctuation to follow \"${this._object.id}\"`, token);\n }\n // A quad has been completed now, so return it\n if (subject !== null) {\n const predicate = this._predicate, object = this._object;\n if (!inversePredicate)\n this._emit(subject, predicate, object, graph);\n else\n this._emit(object, predicate, subject, graph);\n }\n return next;\n }\n\n // ### `_readBlankNodePunctuation` reads punctuation in a blank node\n _readBlankNodePunctuation(token) {\n let next;\n switch (token.type) {\n // Semicolon means the subject is shared; predicate and object are different\n case ';':\n next = this._readPredicate;\n break;\n // Comma means both the subject and predicate are shared; the object is different\n case ',':\n next = this._readObject;\n break;\n default:\n return this._error(`Expected punctuation to follow \"${this._object.id}\"`, token);\n }\n // A quad has been completed now, so return it\n this._emit(this._subject, this._predicate, this._object, this._graph);\n return next;\n }\n\n // ### `_readQuadPunctuation` reads punctuation after a quad\n _readQuadPunctuation(token) {\n if (token.type !== '.')\n return this._error('Expected dot to follow quad', token);\n return this._readInTopContext;\n }\n\n // ### `_readPrefix` reads the prefix of a prefix declaration\n _readPrefix(token) {\n if (token.type !== 'prefix')\n return this._error('Expected prefix to follow @prefix', token);\n this._prefix = token.value;\n return this._readPrefixIRI;\n }\n\n // ### `_readPrefixIRI` reads the IRI of a prefix declaration\n _readPrefixIRI(token) {\n if (token.type !== 'IRI')\n return this._error(`Expected IRI to follow prefix \"${this._prefix}:\"`, token);\n const prefixNode = this._readEntity(token);\n this._prefixes[this._prefix] = prefixNode.value;\n this._prefixCallback(this._prefix, prefixNode);\n return this._readDeclarationPunctuation;\n }\n\n // ### `_readBaseIRI` reads the IRI of a base declaration\n _readBaseIRI(token) {\n const iri = token.type === 'IRI' && this._resolveIRI(token.value);\n if (!iri)\n return this._error('Expected valid IRI to follow base declaration', token);\n this._setBase(iri);\n return this._readDeclarationPunctuation;\n }\n\n // ### `_readNamedGraphLabel` reads the label of a named graph\n _readNamedGraphLabel(token) {\n switch (token.type) {\n case 'IRI':\n case 'blank':\n case 'prefixed':\n return this._readSubject(token), this._readGraph;\n case '[':\n return this._readNamedGraphBlankLabel;\n default:\n return this._error('Invalid graph label', token);\n }\n }\n\n // ### `_readNamedGraphLabel` reads a blank node label of a named graph\n _readNamedGraphBlankLabel(token) {\n if (token.type !== ']')\n return this._error('Invalid graph label', token);\n this._subject = this._blankNode();\n return this._readGraph;\n }\n\n // ### `_readDeclarationPunctuation` reads the punctuation of a declaration\n _readDeclarationPunctuation(token) {\n // SPARQL-style declarations don't have punctuation\n if (this._sparqlStyle) {\n this._sparqlStyle = false;\n return this._readInTopContext(token);\n }\n\n if (token.type !== '.')\n return this._error('Expected declaration to end with a dot', token);\n return this._readInTopContext;\n }\n\n // Reads a list of quantified symbols from a @forSome or @forAll statement\n _readQuantifierList(token) {\n let entity;\n switch (token.type) {\n case 'IRI':\n case 'prefixed':\n if ((entity = this._readEntity(token, true)) !== undefined)\n break;\n default:\n return this._error(`Unexpected ${token.type}`, token);\n }\n // Without explicit quantifiers, map entities to a quantified entity\n if (!this._explicitQuantifiers)\n this._quantified[entity.id] = this._quantifier(this._blankNode().value);\n // With explicit quantifiers, output the reified quantifier\n else {\n // If this is the first item, start a new quantifier list\n if (this._subject === null)\n this._emit(this._graph || this.DEFAULTGRAPH, this._predicate,\n this._subject = this._blankNode(), this.QUANTIFIERS_GRAPH);\n // Otherwise, continue the previous list\n else\n this._emit(this._subject, this.RDF_REST,\n this._subject = this._blankNode(), this.QUANTIFIERS_GRAPH);\n // Output the list item\n this._emit(this._subject, this.RDF_FIRST, entity, this.QUANTIFIERS_GRAPH);\n }\n return this._readQuantifierPunctuation;\n }\n\n // Reads punctuation from a @forSome or @forAll statement\n _readQuantifierPunctuation(token) {\n // Read more quantifiers\n if (token.type === ',')\n return this._readQuantifierList;\n // End of the quantifier list\n else {\n // With explicit quantifiers, close the quantifier list\n if (this._explicitQuantifiers) {\n this._emit(this._subject, this.RDF_REST, this.RDF_NIL, this.QUANTIFIERS_GRAPH);\n this._subject = null;\n }\n // Read a dot\n this._readCallback = this._getContextEndReader();\n return this._readCallback(token);\n }\n }\n\n // ### `_getPathReader` reads a potential path and then resumes with the given function\n _getPathReader(afterPath) {\n this._afterPath = afterPath;\n return this._readPath;\n }\n\n // ### `_readPath` reads a potential path\n _readPath(token) {\n switch (token.type) {\n // Forward path\n case '!': return this._readForwardPath;\n // Backward path\n case '^': return this._readBackwardPath;\n // Not a path; resume reading where we left off\n default:\n const stack = this._contextStack, parent = stack.length && stack[stack.length - 1];\n // If we were reading a list item, we still need to output it\n if (parent && parent.type === 'item') {\n // The list item is the remaining subejct after reading the path\n const item = this._subject;\n // Switch back to the context of the list\n this._restoreContext();\n // Output the list item\n this._emit(this._subject, this.RDF_FIRST, item, this._graph);\n }\n return this._afterPath(token);\n }\n }\n\n // ### `_readForwardPath` reads a '!' path\n _readForwardPath(token) {\n let subject, predicate;\n const object = this._blankNode();\n // The next token is the predicate\n if ((predicate = this._readEntity(token)) === undefined)\n return;\n // If we were reading a subject, replace the subject by the path's object\n if (this._predicate === null)\n subject = this._subject, this._subject = object;\n // If we were reading an object, replace the subject by the path's object\n else\n subject = this._object, this._object = object;\n // Emit the path's current quad and read its next section\n this._emit(subject, predicate, object, this._graph);\n return this._readPath;\n }\n\n // ### `_readBackwardPath` reads a '^' path\n _readBackwardPath(token) {\n const subject = this._blankNode();\n let predicate, object;\n // The next token is the predicate\n if ((predicate = this._readEntity(token)) === undefined)\n return;\n // If we were reading a subject, replace the subject by the path's subject\n if (this._predicate === null)\n object = this._subject, this._subject = subject;\n // If we were reading an object, replace the subject by the path's subject\n else\n object = this._object, this._object = subject;\n // Emit the path's current quad and read its next section\n this._emit(subject, predicate, object, this._graph);\n return this._readPath;\n }\n\n // ### `_readRDFStarTailOrGraph` reads the graph of a nested RDF* quad or the end of a nested RDF* triple\n _readRDFStarTailOrGraph(token) {\n if (token.type !== '>>') {\n // An entity means this is a quad (only allowed if not already inside a graph)\n if (this._supportsQuads && this._graph === null && (this._graph = this._readEntity(token)) !== undefined)\n return this._readRDFStarTail;\n return this._error(`Expected >> to follow \"${this._object.id}\"`, token);\n }\n return this._readRDFStarTail(token);\n }\n\n // ### `_readRDFStarTail` reads the end of a nested RDF* triple\n _readRDFStarTail(token) {\n if (token.type !== '>>')\n return this._error(`Expected >> but got ${token.type}`, token);\n // Read the quad and restore the previous context\n const quad = this._quad(this._subject, this._predicate, this._object,\n this._graph || this.DEFAULTGRAPH);\n this._restoreContext();\n // If the triple was the subject, continue by reading the predicate.\n if (this._subject === null) {\n this._subject = quad;\n return this._readPredicate;\n }\n // If the triple was the object, read context end.\n else {\n this._object = quad;\n return this._getContextEndReader();\n }\n }\n\n // ### `_getContextEndReader` gets the next reader function at the end of a context\n _getContextEndReader() {\n const contextStack = this._contextStack;\n if (!contextStack.length)\n return this._readPunctuation;\n\n switch (contextStack[contextStack.length - 1].type) {\n case 'blank':\n return this._readBlankNodeTail;\n case 'list':\n return this._readListItem;\n case 'formula':\n return this._readFormulaTail;\n case '<<':\n return this._readRDFStarTailOrGraph;\n }\n }\n\n // ### `_emit` sends a quad through the callback\n _emit(subject, predicate, object, graph) {\n this._callback(null, this._quad(subject, predicate, object, graph || this.DEFAULTGRAPH));\n }\n\n // ### `_error` emits an error message through the callback\n _error(message, token) {\n const err = new Error(`${message} on line ${token.line}.`);\n err.context = {\n token: token,\n line: token.line,\n previousToken: this._lexer.previousToken,\n };\n this._callback(err);\n this._callback = noop;\n }\n\n // ### `_resolveIRI` resolves an IRI against the base path\n _resolveIRI(iri) {\n return /^[a-z][a-z0-9+.-]*:/i.test(iri) ? iri : this._resolveRelativeIRI(iri);\n }\n\n // ### `_resolveRelativeIRI` resolves an IRI against the base path,\n // assuming that a base path has been set and that the IRI is indeed relative\n _resolveRelativeIRI(iri) {\n // An empty relative IRI indicates the base IRI\n if (!iri.length)\n return this._base;\n // Decide resolving strategy based in the first character\n switch (iri[0]) {\n // Resolve relative fragment IRIs against the base IRI\n case '#': return this._base + iri;\n // Resolve relative query string IRIs by replacing the query string\n case '?': return this._base.replace(/(?:\\?.*)?$/, iri);\n // Resolve root-relative IRIs at the root of the base IRI\n case '/':\n // Resolve scheme-relative IRIs to the scheme\n return (iri[1] === '/' ? this._baseScheme : this._baseRoot) + this._removeDotSegments(iri);\n // Resolve all other IRIs at the base IRI's path\n default:\n // Relative IRIs cannot contain a colon in the first path segment\n return (/^[^/:]*:/.test(iri)) ? null : this._removeDotSegments(this._basePath + iri);\n }\n }\n\n // ### `_removeDotSegments` resolves './' and '../' path segments in an IRI as per RFC3986\n _removeDotSegments(iri) {\n // Don't modify the IRI if it does not contain any dot segments\n if (!/(^|\\/)\\.\\.?($|[/#?])/.test(iri))\n return iri;\n\n // Start with an imaginary slash before the IRI in order to resolve trailing './' and '../'\n const length = iri.length;\n let result = '', i = -1, pathStart = -1, segmentStart = 0, next = '/';\n\n while (i < length) {\n switch (next) {\n // The path starts with the first slash after the authority\n case ':':\n if (pathStart < 0) {\n // Skip two slashes before the authority\n if (iri[++i] === '/' && iri[++i] === '/')\n // Skip to slash after the authority\n while ((pathStart = i + 1) < length && iri[pathStart] !== '/')\n i = pathStart;\n }\n break;\n // Don't modify a query string or fragment\n case '?':\n case '#':\n i = length;\n break;\n // Handle '/.' or '/..' path segments\n case '/':\n if (iri[i + 1] === '.') {\n next = iri[++i + 1];\n switch (next) {\n // Remove a '/.' segment\n case '/':\n result += iri.substring(segmentStart, i - 1);\n segmentStart = i + 1;\n break;\n // Remove a trailing '/.' segment\n case undefined:\n case '?':\n case '#':\n return result + iri.substring(segmentStart, i) + iri.substr(i + 1);\n // Remove a '/..' segment\n case '.':\n next = iri[++i + 1];\n if (next === undefined || next === '/' || next === '?' || next === '#') {\n result += iri.substring(segmentStart, i - 2);\n // Try to remove the parent path from result\n if ((segmentStart = result.lastIndexOf('/')) >= pathStart)\n result = result.substr(0, segmentStart);\n // Remove a trailing '/..' segment\n if (next !== '/')\n return `${result}/${iri.substr(i + 1)}`;\n segmentStart = i + 1;\n }\n }\n }\n }\n next = iri[++i];\n }\n return result + iri.substring(segmentStart);\n }\n\n // ## Public methods\n\n // ### `parse` parses the N3 input and emits each parsed quad through the callback\n parse(input, quadCallback, prefixCallback) {\n // The read callback is the next function to be executed when a token arrives.\n // We start reading in the top context.\n this._readCallback = this._readInTopContext;\n this._sparqlStyle = false;\n this._prefixes = Object.create(null);\n this._prefixes._ = this._blankNodePrefix ? this._blankNodePrefix.substr(2)\n : `b${blankNodePrefix++}_`;\n this._prefixCallback = prefixCallback || noop;\n this._inversePredicate = false;\n this._quantified = Object.create(null);\n\n // Parse synchronously if no quad callback is given\n if (!quadCallback) {\n const quads = [];\n let error;\n this._callback = (e, t) => { e ? (error = e) : t && quads.push(t); };\n this._lexer.tokenize(input).every(token => {\n return this._readCallback = this._readCallback(token);\n });\n if (error) throw error;\n return quads;\n }\n\n // Parse asynchronously otherwise, executing the read callback when a token arrives\n this._callback = quadCallback;\n this._lexer.tokenize(input, (error, token) => {\n if (error !== null)\n this._callback(error), this._callback = noop;\n else if (this._readCallback)\n this._readCallback = this._readCallback(token);\n });\n }\n}\n\n// The empty function\nfunction noop() {}\n\n// Initializes the parser with the given data factory\nfunction initDataFactory(parser, factory) {\n // Set factory methods\n const namedNode = factory.namedNode;\n parser._namedNode = namedNode;\n parser._blankNode = factory.blankNode;\n parser._literal = factory.literal;\n parser._variable = factory.variable;\n parser._quad = factory.quad;\n parser.DEFAULTGRAPH = factory.defaultGraph();\n\n // Set common named nodes\n parser.RDF_FIRST = namedNode(_IRIs__WEBPACK_IMPORTED_MODULE_1__.default.rdf.first);\n parser.RDF_REST = namedNode(_IRIs__WEBPACK_IMPORTED_MODULE_1__.default.rdf.rest);\n parser.RDF_NIL = namedNode(_IRIs__WEBPACK_IMPORTED_MODULE_1__.default.rdf.nil);\n parser.N3_FORALL = namedNode(_IRIs__WEBPACK_IMPORTED_MODULE_1__.default.r.forAll);\n parser.N3_FORSOME = namedNode(_IRIs__WEBPACK_IMPORTED_MODULE_1__.default.r.forSome);\n parser.ABBREVIATIONS = {\n 'a': namedNode(_IRIs__WEBPACK_IMPORTED_MODULE_1__.default.rdf.type),\n '=': namedNode(_IRIs__WEBPACK_IMPORTED_MODULE_1__.default.owl.sameAs),\n '>': namedNode(_IRIs__WEBPACK_IMPORTED_MODULE_1__.default.log.implies),\n };\n parser.QUANTIFIERS_GRAPH = namedNode('urn:n3:quantifiers');\n}\ninitDataFactory(N3Parser.prototype, _N3DataFactory__WEBPACK_IMPORTED_MODULE_2__.default);\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/n3/src/N3Parser.js?"); + +/***/ }), + +/***/ "./node_modules/n3/src/N3Store.js": +/*!****************************************!*\ + !*** ./node_modules/n3/src/N3Store.js ***! + \****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ N3Store)\n/* harmony export */ });\n/* harmony import */ var _N3DataFactory__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./N3DataFactory */ \"./node_modules/n3/src/N3DataFactory.js\");\n/* harmony import */ var readable_stream__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! readable-stream */ \"./node_modules/readable-stream/readable-browser.js\");\n/* harmony import */ var readable_stream__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(readable_stream__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _IRIs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./IRIs */ \"./node_modules/n3/src/IRIs.js\");\n// **N3Store** objects store N3 quads by graph in memory.\n\n\n\n\n// ## Constructor\nclass N3Store {\n constructor(quads, options) {\n // The number of quads is initially zero\n this._size = 0;\n // `_graphs` contains subject, predicate, and object indexes per graph\n this._graphs = Object.create(null);\n // `_ids` maps entities such as `http://xmlns.com/foaf/0.1/name` to numbers,\n // saving memory by using only numbers as keys in `_graphs`\n this._id = 0;\n this._ids = Object.create(null);\n this._ids['><'] = 0; // dummy entry, so the first actual key is non-zero\n this._entities = Object.create(null); // inverse of `_ids`\n // `_blankNodeIndex` is the index of the last automatically named blank node\n this._blankNodeIndex = 0;\n\n // Shift parameters if `quads` is not given\n if (!options && quads && !quads[0])\n options = quads, quads = null;\n options = options || {};\n this._factory = options.factory || _N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.default;\n\n // Add quads if passed\n if (quads)\n this.addQuads(quads);\n }\n\n // ## Public properties\n\n // ### `size` returns the number of quads in the store\n get size() {\n // Return the quad count if if was cached\n let size = this._size;\n if (size !== null)\n return size;\n\n // Calculate the number of quads by counting to the deepest level\n size = 0;\n const graphs = this._graphs;\n let subjects, subject;\n for (const graphKey in graphs)\n for (const subjectKey in (subjects = graphs[graphKey].subjects))\n for (const predicateKey in (subject = subjects[subjectKey]))\n size += Object.keys(subject[predicateKey]).length;\n return this._size = size;\n }\n\n // ## Private methods\n\n // ### `_addToIndex` adds a quad to a three-layered index.\n // Returns if the index has changed, if the entry did not already exist.\n _addToIndex(index0, key0, key1, key2) {\n // Create layers as necessary\n const index1 = index0[key0] || (index0[key0] = {});\n const index2 = index1[key1] || (index1[key1] = {});\n // Setting the key to _any_ value signals the presence of the quad\n const existed = key2 in index2;\n if (!existed)\n index2[key2] = null;\n return !existed;\n }\n\n // ### `_removeFromIndex` removes a quad from a three-layered index\n _removeFromIndex(index0, key0, key1, key2) {\n // Remove the quad from the index\n const index1 = index0[key0], index2 = index1[key1];\n delete index2[key2];\n\n // Remove intermediary index layers if they are empty\n for (const key in index2) return;\n delete index1[key1];\n for (const key in index1) return;\n delete index0[key0];\n }\n\n // ### `_findInIndex` finds a set of quads in a three-layered index.\n // The index base is `index0` and the keys at each level are `key0`, `key1`, and `key2`.\n // Any of these keys can be undefined, which is interpreted as a wildcard.\n // `name0`, `name1`, and `name2` are the names of the keys at each level,\n // used when reconstructing the resulting quad\n // (for instance: _subject_, _predicate_, and _object_).\n // Finally, `graph` will be the graph of the created quads.\n // If `callback` is given, each result is passed through it\n // and iteration halts when it returns truthy for any quad.\n // If instead `array` is given, each result is added to the array.\n _findInIndex(index0, key0, key1, key2, name0, name1, name2, graph, callback, array) {\n let tmp, index1, index2;\n // Depending on the number of variables, keys or reverse index are faster\n const varCount = !key0 + !key1 + !key2,\n entityKeys = varCount > 1 ? Object.keys(this._ids) : this._entities;\n\n // If a key is specified, use only that part of index 0.\n if (key0) (tmp = index0, index0 = {})[key0] = tmp[key0];\n for (const value0 in index0) {\n const entity0 = entityKeys[value0];\n\n if (index1 = index0[value0]) {\n // If a key is specified, use only that part of index 1.\n if (key1) (tmp = index1, index1 = {})[key1] = tmp[key1];\n for (const value1 in index1) {\n const entity1 = entityKeys[value1];\n\n if (index2 = index1[value1]) {\n // If a key is specified, use only that part of index 2, if it exists.\n const values = key2 ? (key2 in index2 ? [key2] : []) : Object.keys(index2);\n // Create quads for all items found in index 2.\n for (let l = 0; l < values.length; l++) {\n const parts = { subject: null, predicate: null, object: null };\n parts[name0] = (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termFromId)(entity0, this._factory);\n parts[name1] = (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termFromId)(entity1, this._factory);\n parts[name2] = (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termFromId)(entityKeys[values[l]], this._factory);\n const quad = this._factory.quad(\n parts.subject, parts.predicate, parts.object, (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termFromId)(graph, this._factory));\n if (array)\n array.push(quad);\n else if (callback(quad))\n return true;\n }\n }\n }\n }\n }\n return array;\n }\n\n // ### `_loop` executes the callback on all keys of index 0\n _loop(index0, callback) {\n for (const key0 in index0)\n callback(key0);\n }\n\n // ### `_loopByKey0` executes the callback on all keys of a certain entry in index 0\n _loopByKey0(index0, key0, callback) {\n let index1, key1;\n if (index1 = index0[key0]) {\n for (key1 in index1)\n callback(key1);\n }\n }\n\n // ### `_loopByKey1` executes the callback on given keys of all entries in index 0\n _loopByKey1(index0, key1, callback) {\n let key0, index1;\n for (key0 in index0) {\n index1 = index0[key0];\n if (index1[key1])\n callback(key0);\n }\n }\n\n // ### `_loopBy2Keys` executes the callback on given keys of certain entries in index 2\n _loopBy2Keys(index0, key0, key1, callback) {\n let index1, index2, key2;\n if ((index1 = index0[key0]) && (index2 = index1[key1])) {\n for (key2 in index2)\n callback(key2);\n }\n }\n\n // ### `_countInIndex` counts matching quads in a three-layered index.\n // The index base is `index0` and the keys at each level are `key0`, `key1`, and `key2`.\n // Any of these keys can be undefined, which is interpreted as a wildcard.\n _countInIndex(index0, key0, key1, key2) {\n let count = 0, tmp, index1, index2;\n\n // If a key is specified, count only that part of index 0\n if (key0) (tmp = index0, index0 = {})[key0] = tmp[key0];\n for (const value0 in index0) {\n if (index1 = index0[value0]) {\n // If a key is specified, count only that part of index 1\n if (key1) (tmp = index1, index1 = {})[key1] = tmp[key1];\n for (const value1 in index1) {\n if (index2 = index1[value1]) {\n // If a key is specified, count the quad if it exists\n if (key2) (key2 in index2) && count++;\n // Otherwise, count all quads\n else count += Object.keys(index2).length;\n }\n }\n }\n }\n return count;\n }\n\n // ### `_getGraphs` returns an array with the given graph,\n // or all graphs if the argument is null or undefined.\n _getGraphs(graph) {\n if (!isString(graph))\n return this._graphs;\n const graphs = {};\n graphs[graph] = this._graphs[graph];\n return graphs;\n }\n\n // ### `_uniqueEntities` returns a function that accepts an entity ID\n // and passes the corresponding entity to callback if it hasn't occurred before.\n _uniqueEntities(callback) {\n const uniqueIds = Object.create(null);\n return id => {\n if (!(id in uniqueIds)) {\n uniqueIds[id] = true;\n callback((0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termFromId)(this._entities[id], this._factory));\n }\n };\n }\n\n // ## Public methods\n\n // ### `add` adds the specified quad to the dataset.\n // Returns the dataset instance it was called on.\n // Existing quads, as defined in Quad.equals, will be ignored.\n add(quad) {\n this.addQuad(quad);\n return this;\n }\n\n // ### `addQuad` adds a new quad to the store.\n // Returns if the quad index has changed, if the quad did not already exist.\n addQuad(subject, predicate, object, graph) {\n // Shift arguments if a quad object is given instead of components\n if (!predicate)\n graph = subject.graph, object = subject.object,\n predicate = subject.predicate, subject = subject.subject;\n\n // Convert terms to internal string representation\n subject = (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termToId)(subject);\n predicate = (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termToId)(predicate);\n object = (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termToId)(object);\n graph = (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termToId)(graph);\n\n // Find the graph that will contain the triple\n let graphItem = this._graphs[graph];\n // Create the graph if it doesn't exist yet\n if (!graphItem) {\n graphItem = this._graphs[graph] = { subjects: {}, predicates: {}, objects: {} };\n // Freezing a graph helps subsequent `add` performance,\n // and properties will never be modified anyway\n Object.freeze(graphItem);\n }\n\n // Since entities can often be long IRIs, we avoid storing them in every index.\n // Instead, we have a separate index that maps entities to numbers,\n // which are then used as keys in the other indexes.\n const ids = this._ids;\n const entities = this._entities;\n subject = ids[subject] || (ids[entities[++this._id] = subject] = this._id);\n predicate = ids[predicate] || (ids[entities[++this._id] = predicate] = this._id);\n object = ids[object] || (ids[entities[++this._id] = object] = this._id);\n\n const changed = this._addToIndex(graphItem.subjects, subject, predicate, object);\n this._addToIndex(graphItem.predicates, predicate, object, subject);\n this._addToIndex(graphItem.objects, object, subject, predicate);\n\n // The cached quad count is now invalid\n this._size = null;\n return changed;\n }\n\n // ### `addQuads` adds multiple quads to the store\n addQuads(quads) {\n for (let i = 0; i < quads.length; i++)\n this.addQuad(quads[i]);\n }\n\n // ### `delete` removes the specified quad from the dataset.\n // Returns the dataset instance it was called on.\n delete(quad) {\n this.removeQuad(quad);\n return this;\n }\n\n // ### `has` determines whether a dataset includes a certain quad.\n // Returns true or false as appropriate.\n has(quad) {\n const quads = this.getQuads(quad.subject, quad.predicate, quad.object, quad.graph);\n return quads.length !== 0;\n }\n\n // ### `import` adds a stream of quads to the store\n import(stream) {\n stream.on('data', quad => { this.addQuad(quad); });\n return stream;\n }\n\n // ### `removeQuad` removes a quad from the store if it exists\n removeQuad(subject, predicate, object, graph) {\n // Shift arguments if a quad object is given instead of components\n if (!predicate)\n graph = subject.graph, object = subject.object,\n predicate = subject.predicate, subject = subject.subject;\n\n // Convert terms to internal string representation\n subject = (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termToId)(subject);\n predicate = (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termToId)(predicate);\n object = (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termToId)(object);\n graph = (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termToId)(graph);\n\n // Find internal identifiers for all components\n // and verify the quad exists.\n const ids = this._ids, graphs = this._graphs;\n let graphItem, subjects, predicates;\n if (!(subject = ids[subject]) || !(predicate = ids[predicate]) ||\n !(object = ids[object]) || !(graphItem = graphs[graph]) ||\n !(subjects = graphItem.subjects[subject]) ||\n !(predicates = subjects[predicate]) ||\n !(object in predicates))\n return false;\n\n // Remove it from all indexes\n this._removeFromIndex(graphItem.subjects, subject, predicate, object);\n this._removeFromIndex(graphItem.predicates, predicate, object, subject);\n this._removeFromIndex(graphItem.objects, object, subject, predicate);\n if (this._size !== null) this._size--;\n\n // Remove the graph if it is empty\n for (subject in graphItem.subjects) return true;\n delete graphs[graph];\n return true;\n }\n\n // ### `removeQuads` removes multiple quads from the store\n removeQuads(quads) {\n for (let i = 0; i < quads.length; i++)\n this.removeQuad(quads[i]);\n }\n\n // ### `remove` removes a stream of quads from the store\n remove(stream) {\n stream.on('data', quad => { this.removeQuad(quad); });\n return stream;\n }\n\n // ### `removeMatches` removes all matching quads from the store\n // Setting any field to `undefined` or `null` indicates a wildcard.\n removeMatches(subject, predicate, object, graph) {\n const stream = new readable_stream__WEBPACK_IMPORTED_MODULE_0__.Readable({ objectMode: true });\n\n stream._read = () => {\n for (const quad of this.getQuads(subject, predicate, object, graph))\n stream.push(quad);\n stream.push(null);\n };\n\n return this.remove(stream);\n }\n\n // ### `deleteGraph` removes all triples with the given graph from the store\n deleteGraph(graph) {\n return this.removeMatches(null, null, null, graph);\n }\n\n // ### `getQuads` returns an array of quads matching a pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n getQuads(subject, predicate, object, graph) {\n // Convert terms to internal string representation\n subject = subject && (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termToId)(subject);\n predicate = predicate && (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termToId)(predicate);\n object = object && (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termToId)(object);\n graph = graph && (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termToId)(graph);\n\n const quads = [], graphs = this._getGraphs(graph), ids = this._ids;\n let content, subjectId, predicateId, objectId;\n\n // Translate IRIs to internal index keys.\n if (isString(subject) && !(subjectId = ids[subject]) ||\n isString(predicate) && !(predicateId = ids[predicate]) ||\n isString(object) && !(objectId = ids[object]))\n return quads;\n\n for (const graphId in graphs) {\n // Only if the specified graph contains triples, there can be results\n if (content = graphs[graphId]) {\n // Choose the optimal index, based on what fields are present\n if (subjectId) {\n if (objectId)\n // If subject and object are given, the object index will be the fastest\n this._findInIndex(content.objects, objectId, subjectId, predicateId,\n 'object', 'subject', 'predicate', graphId, null, quads);\n else\n // If only subject and possibly predicate are given, the subject index will be the fastest\n this._findInIndex(content.subjects, subjectId, predicateId, null,\n 'subject', 'predicate', 'object', graphId, null, quads);\n }\n else if (predicateId)\n // If only predicate and possibly object are given, the predicate index will be the fastest\n this._findInIndex(content.predicates, predicateId, objectId, null,\n 'predicate', 'object', 'subject', graphId, null, quads);\n else if (objectId)\n // If only object is given, the object index will be the fastest\n this._findInIndex(content.objects, objectId, null, null,\n 'object', 'subject', 'predicate', graphId, null, quads);\n else\n // If nothing is given, iterate subjects and predicates first\n this._findInIndex(content.subjects, null, null, null,\n 'subject', 'predicate', 'object', graphId, null, quads);\n }\n }\n return quads;\n }\n\n // ### `match` returns a new dataset that is comprised of all quads in the current instance matching the given arguments.\n // The logic described in Quad Matching is applied for each quad in this dataset to check if it should be included in the output dataset.\n // Note: This method always returns a new DatasetCore, even if that dataset contains no quads.\n // Note: Since a DatasetCore is an unordered set, the order of the quads within the returned sequence is arbitrary.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n // For backwards compatibility, the object return also implements the Readable stream interface.\n match(subject, predicate, object, graph) {\n return new DatasetCoreAndReadableStream(this, subject, predicate, object, graph);\n }\n\n // ### `countQuads` returns the number of quads matching a pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n countQuads(subject, predicate, object, graph) {\n // Convert terms to internal string representation\n subject = subject && (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termToId)(subject);\n predicate = predicate && (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termToId)(predicate);\n object = object && (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termToId)(object);\n graph = graph && (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termToId)(graph);\n\n const graphs = this._getGraphs(graph), ids = this._ids;\n let count = 0, content, subjectId, predicateId, objectId;\n\n // Translate IRIs to internal index keys.\n if (isString(subject) && !(subjectId = ids[subject]) ||\n isString(predicate) && !(predicateId = ids[predicate]) ||\n isString(object) && !(objectId = ids[object]))\n return 0;\n\n for (const graphId in graphs) {\n // Only if the specified graph contains triples, there can be results\n if (content = graphs[graphId]) {\n // Choose the optimal index, based on what fields are present\n if (subject) {\n if (object)\n // If subject and object are given, the object index will be the fastest\n count += this._countInIndex(content.objects, objectId, subjectId, predicateId);\n else\n // If only subject and possibly predicate are given, the subject index will be the fastest\n count += this._countInIndex(content.subjects, subjectId, predicateId, objectId);\n }\n else if (predicate) {\n // If only predicate and possibly object are given, the predicate index will be the fastest\n count += this._countInIndex(content.predicates, predicateId, objectId, subjectId);\n }\n else {\n // If only object is possibly given, the object index will be the fastest\n count += this._countInIndex(content.objects, objectId, subjectId, predicateId);\n }\n }\n }\n return count;\n }\n\n // ### `forEach` executes the callback on all quads.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n forEach(callback, subject, predicate, object, graph) {\n this.some(quad => {\n callback(quad);\n return false;\n }, subject, predicate, object, graph);\n }\n\n // ### `every` executes the callback on all quads,\n // and returns `true` if it returns truthy for all them.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n every(callback, subject, predicate, object, graph) {\n let some = false;\n const every = !this.some(quad => {\n some = true;\n return !callback(quad);\n }, subject, predicate, object, graph);\n return some && every;\n }\n\n // ### `some` executes the callback on all quads,\n // and returns `true` if it returns truthy for any of them.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n some(callback, subject, predicate, object, graph) {\n // Convert terms to internal string representation\n subject = subject && (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termToId)(subject);\n predicate = predicate && (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termToId)(predicate);\n object = object && (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termToId)(object);\n graph = graph && (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termToId)(graph);\n\n const graphs = this._getGraphs(graph), ids = this._ids;\n let content, subjectId, predicateId, objectId;\n\n // Translate IRIs to internal index keys.\n if (isString(subject) && !(subjectId = ids[subject]) ||\n isString(predicate) && !(predicateId = ids[predicate]) ||\n isString(object) && !(objectId = ids[object]))\n return false;\n\n for (const graphId in graphs) {\n // Only if the specified graph contains triples, there can be results\n if (content = graphs[graphId]) {\n // Choose the optimal index, based on what fields are present\n if (subjectId) {\n if (objectId) {\n // If subject and object are given, the object index will be the fastest\n if (this._findInIndex(content.objects, objectId, subjectId, predicateId,\n 'object', 'subject', 'predicate', graphId, callback, null))\n return true;\n }\n else\n // If only subject and possibly predicate are given, the subject index will be the fastest\n if (this._findInIndex(content.subjects, subjectId, predicateId, null,\n 'subject', 'predicate', 'object', graphId, callback, null))\n return true;\n }\n else if (predicateId) {\n // If only predicate and possibly object are given, the predicate index will be the fastest\n if (this._findInIndex(content.predicates, predicateId, objectId, null,\n 'predicate', 'object', 'subject', graphId, callback, null)) {\n return true;\n }\n }\n else if (objectId) {\n // If only object is given, the object index will be the fastest\n if (this._findInIndex(content.objects, objectId, null, null,\n 'object', 'subject', 'predicate', graphId, callback, null)) {\n return true;\n }\n }\n else\n // If nothing is given, iterate subjects and predicates first\n if (this._findInIndex(content.subjects, null, null, null,\n 'subject', 'predicate', 'object', graphId, callback, null)) {\n return true;\n }\n }\n }\n return false;\n }\n\n // ### `getSubjects` returns all subjects that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n getSubjects(predicate, object, graph) {\n const results = [];\n this.forSubjects(s => { results.push(s); }, predicate, object, graph);\n return results;\n }\n\n // ### `forSubjects` executes the callback on all subjects that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n forSubjects(callback, predicate, object, graph) {\n // Convert terms to internal string representation\n predicate = predicate && (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termToId)(predicate);\n object = object && (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termToId)(object);\n graph = graph && (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termToId)(graph);\n\n const ids = this._ids, graphs = this._getGraphs(graph);\n let content, predicateId, objectId;\n callback = this._uniqueEntities(callback);\n\n // Translate IRIs to internal index keys.\n if (isString(predicate) && !(predicateId = ids[predicate]) ||\n isString(object) && !(objectId = ids[object]))\n return;\n\n for (graph in graphs) {\n // Only if the specified graph contains triples, there can be results\n if (content = graphs[graph]) {\n // Choose optimal index based on which fields are wildcards\n if (predicateId) {\n if (objectId)\n // If predicate and object are given, the POS index is best.\n this._loopBy2Keys(content.predicates, predicateId, objectId, callback);\n else\n // If only predicate is given, the SPO index is best.\n this._loopByKey1(content.subjects, predicateId, callback);\n }\n else if (objectId)\n // If only object is given, the OSP index is best.\n this._loopByKey0(content.objects, objectId, callback);\n else\n // If no params given, iterate all the subjects\n this._loop(content.subjects, callback);\n }\n }\n }\n\n // ### `getPredicates` returns all predicates that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n getPredicates(subject, object, graph) {\n const results = [];\n this.forPredicates(p => { results.push(p); }, subject, object, graph);\n return results;\n }\n\n // ### `forPredicates` executes the callback on all predicates that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n forPredicates(callback, subject, object, graph) {\n // Convert terms to internal string representation\n subject = subject && (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termToId)(subject);\n object = object && (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termToId)(object);\n graph = graph && (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termToId)(graph);\n\n const ids = this._ids, graphs = this._getGraphs(graph);\n let content, subjectId, objectId;\n callback = this._uniqueEntities(callback);\n\n // Translate IRIs to internal index keys.\n if (isString(subject) && !(subjectId = ids[subject]) ||\n isString(object) && !(objectId = ids[object]))\n return;\n\n for (graph in graphs) {\n // Only if the specified graph contains triples, there can be results\n if (content = graphs[graph]) {\n // Choose optimal index based on which fields are wildcards\n if (subjectId) {\n if (objectId)\n // If subject and object are given, the OSP index is best.\n this._loopBy2Keys(content.objects, objectId, subjectId, callback);\n else\n // If only subject is given, the SPO index is best.\n this._loopByKey0(content.subjects, subjectId, callback);\n }\n else if (objectId)\n // If only object is given, the POS index is best.\n this._loopByKey1(content.predicates, objectId, callback);\n else\n // If no params given, iterate all the predicates.\n this._loop(content.predicates, callback);\n }\n }\n }\n\n // ### `getObjects` returns all objects that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n getObjects(subject, predicate, graph) {\n const results = [];\n this.forObjects(o => { results.push(o); }, subject, predicate, graph);\n return results;\n }\n\n // ### `forObjects` executes the callback on all objects that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n forObjects(callback, subject, predicate, graph) {\n // Convert terms to internal string representation\n subject = subject && (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termToId)(subject);\n predicate = predicate && (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termToId)(predicate);\n graph = graph && (0,_N3DataFactory__WEBPACK_IMPORTED_MODULE_1__.termToId)(graph);\n\n const ids = this._ids, graphs = this._getGraphs(graph);\n let content, subjectId, predicateId;\n callback = this._uniqueEntities(callback);\n\n // Translate IRIs to internal index keys.\n if (isString(subject) && !(subjectId = ids[subject]) ||\n isString(predicate) && !(predicateId = ids[predicate]))\n return;\n\n for (graph in graphs) {\n // Only if the specified graph contains triples, there can be results\n if (content = graphs[graph]) {\n // Choose optimal index based on which fields are wildcards\n if (subjectId) {\n if (predicateId)\n // If subject and predicate are given, the SPO index is best.\n this._loopBy2Keys(content.subjects, subjectId, predicateId, callback);\n else\n // If only subject is given, the OSP index is best.\n this._loopByKey1(content.objects, subjectId, callback);\n }\n else if (predicateId)\n // If only predicate is given, the POS index is best.\n this._loopByKey0(content.predicates, predicateId, callback);\n else\n // If no params given, iterate all the objects.\n this._loop(content.objects, callback);\n }\n }\n }\n\n // ### `getGraphs` returns all graphs that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n getGraphs(subject, predicate, object) {\n const results = [];\n this.forGraphs(g => { results.push(g); }, subject, predicate, object);\n return results;\n }\n\n // ### `forGraphs` executes the callback on all graphs that match the pattern.\n // Setting any field to `undefined` or `null` indicates a wildcard.\n forGraphs(callback, subject, predicate, object) {\n for (const graph in this._graphs) {\n this.some(quad => {\n callback(quad.graph);\n return true; // Halt iteration of some()\n }, subject, predicate, object, graph);\n }\n }\n\n // ### `createBlankNode` creates a new blank node, returning its name\n createBlankNode(suggestedName) {\n let name, index;\n // Generate a name based on the suggested name\n if (suggestedName) {\n name = suggestedName = `_:${suggestedName}`, index = 1;\n while (this._ids[name])\n name = suggestedName + index++;\n }\n // Generate a generic blank node name\n else {\n do { name = `_:b${this._blankNodeIndex++}`; }\n while (this._ids[name]);\n }\n // Add the blank node to the entities, avoiding the generation of duplicates\n this._ids[name] = ++this._id;\n this._entities[this._id] = name;\n return this._factory.blankNode(name.substr(2));\n }\n\n // ### `extractLists` finds and removes all list triples\n // and returns the items per list.\n extractLists({ remove = false, ignoreErrors = false } = {}) {\n const lists = {}; // has scalar keys so could be a simple Object\n const onError = ignoreErrors ? (() => true) :\n ((node, message) => { throw new Error(`${node.value} ${message}`); });\n\n // Traverse each list from its tail\n const tails = this.getQuads(null, _IRIs__WEBPACK_IMPORTED_MODULE_2__.default.rdf.rest, _IRIs__WEBPACK_IMPORTED_MODULE_2__.default.rdf.nil, null);\n const toRemove = remove ? [...tails] : [];\n tails.forEach(tailQuad => {\n const items = []; // the members found as objects of rdf:first quads\n let malformed = false; // signals whether the current list is malformed\n let head; // the head of the list (_:b1 in above example)\n let headPos; // set to subject or object when head is set\n const graph = tailQuad.graph; // make sure list is in exactly one graph\n\n // Traverse the list from tail to end\n let current = tailQuad.subject;\n while (current && !malformed) {\n const objectQuads = this.getQuads(null, null, current, null);\n const subjectQuads = this.getQuads(current, null, null, null);\n let quad, first = null, rest = null, parent = null;\n\n // Find the first and rest of this list node\n for (let i = 0; i < subjectQuads.length && !malformed; i++) {\n quad = subjectQuads[i];\n if (!quad.graph.equals(graph))\n malformed = onError(current, 'not confined to single graph');\n else if (head)\n malformed = onError(current, 'has non-list arcs out');\n\n // one rdf:first\n else if (quad.predicate.value === _IRIs__WEBPACK_IMPORTED_MODULE_2__.default.rdf.first) {\n if (first)\n malformed = onError(current, 'has multiple rdf:first arcs');\n else\n toRemove.push(first = quad);\n }\n\n // one rdf:rest\n else if (quad.predicate.value === _IRIs__WEBPACK_IMPORTED_MODULE_2__.default.rdf.rest) {\n if (rest)\n malformed = onError(current, 'has multiple rdf:rest arcs');\n else\n toRemove.push(rest = quad);\n }\n\n // alien triple\n else if (objectQuads.length)\n malformed = onError(current, 'can\\'t be subject and object');\n else {\n head = quad; // e.g. { (1 2 3) :p :o }\n headPos = 'subject';\n }\n }\n\n // { :s :p (1 2) } arrives here with no head\n // { (1 2) :p :o } arrives here with head set to the list.\n for (let i = 0; i < objectQuads.length && !malformed; ++i) {\n quad = objectQuads[i];\n if (head)\n malformed = onError(current, 'can\\'t have coreferences');\n // one rdf:rest\n else if (quad.predicate.value === _IRIs__WEBPACK_IMPORTED_MODULE_2__.default.rdf.rest) {\n if (parent)\n malformed = onError(current, 'has incoming rdf:rest arcs');\n else\n parent = quad;\n }\n else {\n head = quad; // e.g. { :s :p (1 2) }\n headPos = 'object';\n }\n }\n\n // Store the list item and continue with parent\n if (!first)\n malformed = onError(current, 'has no list head');\n else\n items.unshift(first.object);\n current = parent && parent.subject;\n }\n\n // Don't remove any quads if the list is malformed\n if (malformed)\n remove = false;\n // Store the list under the value of its head\n else if (head)\n lists[head[headPos].value] = items;\n });\n\n // Remove list quads if requested\n if (remove)\n this.removeQuads(toRemove);\n return lists;\n }\n\n // ### Store is an iterable.\n // Can be used where iterables are expected: for...of loops, array spread operator,\n // `yield*`, and destructuring assignment (order is not guaranteed).\n *[Symbol.iterator]() {\n yield* this.getQuads();\n }\n}\n\n// Determines whether the argument is a string\nfunction isString(s) {\n return typeof s === 'string' || s instanceof String;\n}\n\n/**\n * A class that implements both DatasetCore and Readable.\n */\nclass DatasetCoreAndReadableStream extends readable_stream__WEBPACK_IMPORTED_MODULE_0__.Readable {\n constructor(n3Store, subject, predicate, object, graph) {\n super({ objectMode: true });\n Object.assign(this, { n3Store, subject, predicate, object, graph });\n }\n\n get filtered() {\n if (!this._filtered) {\n const { n3Store, graph, object, predicate, subject } = this;\n const quads = n3Store.getQuads(subject, predicate, object, graph);\n this._filtered = new N3Store(quads, { factory: n3Store._factory });\n }\n return this._filtered;\n }\n get size() {\n return this.filtered.size;\n }\n\n _read() {\n for (const quad of this.filtered.getQuads())\n this.push(quad);\n this.push(null);\n }\n\n add(quad) {\n return this.filtered.add(quad);\n }\n\n delete(quad) {\n return this.filtered.delete(quad);\n }\n\n has(quad) {\n return this.filtered.has(quad);\n }\n\n match(subject, predicate, object, graph) {\n return new DatasetCoreAndReadableStream(this.filtered, subject, predicate, object, graph);\n }\n\n *[Symbol.iterator]() {\n yield* this.filtered.getQuads();\n }\n}\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/n3/src/N3Store.js?"); + +/***/ }), + +/***/ "./node_modules/n3/src/N3StreamParser.js": +/*!***********************************************!*\ + !*** ./node_modules/n3/src/N3StreamParser.js ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ N3StreamParser)\n/* harmony export */ });\n/* harmony import */ var _N3Parser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./N3Parser */ \"./node_modules/n3/src/N3Parser.js\");\n/* harmony import */ var readable_stream__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! readable-stream */ \"./node_modules/readable-stream/readable-browser.js\");\n/* harmony import */ var readable_stream__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(readable_stream__WEBPACK_IMPORTED_MODULE_0__);\n// **N3StreamParser** parses a text stream into a quad stream.\n\n\n\n// ## Constructor\nclass N3StreamParser extends readable_stream__WEBPACK_IMPORTED_MODULE_0__.Transform {\n constructor(options) {\n super({ decodeStrings: true });\n this._readableState.objectMode = true;\n\n // Set up parser with dummy stream to obtain `data` and `end` callbacks\n const parser = new _N3Parser__WEBPACK_IMPORTED_MODULE_1__.default(options);\n let onData, onEnd;\n parser.parse({\n on: (event, callback) => {\n switch (event) {\n case 'data': onData = callback; break;\n case 'end': onEnd = callback; break;\n }\n },\n },\n // Handle quads by pushing them down the pipeline\n (error, quad) => { error && this.emit('error', error) || quad && this.push(quad); },\n // Emit prefixes through the `prefix` event\n (prefix, uri) => { this.emit('prefix', prefix, uri); }\n );\n\n // Implement Transform methods through parser callbacks\n this._transform = (chunk, encoding, done) => { onData(chunk); done(); };\n this._flush = done => { onEnd(); done(); };\n }\n\n // ### Parses a stream of strings\n import(stream) {\n stream.on('data', chunk => { this.write(chunk); });\n stream.on('end', () => { this.end(); });\n stream.on('error', error => { this.emit('error', error); });\n return this;\n }\n}\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/n3/src/N3StreamParser.js?"); + +/***/ }), + +/***/ "./node_modules/n3/src/N3StreamWriter.js": +/*!***********************************************!*\ + !*** ./node_modules/n3/src/N3StreamWriter.js ***! + \***********************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ N3StreamWriter)\n/* harmony export */ });\n/* harmony import */ var readable_stream__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! readable-stream */ \"./node_modules/readable-stream/readable-browser.js\");\n/* harmony import */ var readable_stream__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(readable_stream__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _N3Writer__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./N3Writer */ \"./node_modules/n3/src/N3Writer.js\");\n// **N3StreamWriter** serializes a quad stream into a text stream.\n\n\n\n// ## Constructor\nclass N3StreamWriter extends readable_stream__WEBPACK_IMPORTED_MODULE_0__.Transform {\n constructor(options) {\n super({ encoding: 'utf8', writableObjectMode: true });\n\n // Set up writer with a dummy stream object\n const writer = this._writer = new _N3Writer__WEBPACK_IMPORTED_MODULE_1__.default({\n write: (quad, encoding, callback) => { this.push(quad); callback && callback(); },\n end: callback => { this.push(null); callback && callback(); },\n }, options);\n\n // Implement Transform methods on top of writer\n this._transform = (quad, encoding, done) => { writer.addQuad(quad, done); };\n this._flush = done => { writer.end(done); };\n }\n\n// ### Serializes a stream of quads\n import(stream) {\n stream.on('data', quad => { this.write(quad); });\n stream.on('end', () => { this.end(); });\n stream.on('error', error => { this.emit('error', error); });\n stream.on('prefix', (prefix, iri) => { this._writer.addPrefix(prefix, iri); });\n return this;\n }\n}\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/n3/src/N3StreamWriter.js?"); + +/***/ }), + +/***/ "./node_modules/n3/src/N3Util.js": +/*!***************************************!*\ + !*** ./node_modules/n3/src/N3Util.js ***! + \***************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"isNamedNode\": () => (/* binding */ isNamedNode),\n/* harmony export */ \"isBlankNode\": () => (/* binding */ isBlankNode),\n/* harmony export */ \"isLiteral\": () => (/* binding */ isLiteral),\n/* harmony export */ \"isVariable\": () => (/* binding */ isVariable),\n/* harmony export */ \"isDefaultGraph\": () => (/* binding */ isDefaultGraph),\n/* harmony export */ \"inDefaultGraph\": () => (/* binding */ inDefaultGraph),\n/* harmony export */ \"prefix\": () => (/* binding */ prefix),\n/* harmony export */ \"prefixes\": () => (/* binding */ prefixes)\n/* harmony export */ });\n/* harmony import */ var _N3DataFactory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./N3DataFactory */ \"./node_modules/n3/src/N3DataFactory.js\");\n// **N3Util** provides N3 utility functions.\n\n\n\n// Tests whether the given term represents an IRI\nfunction isNamedNode(term) {\n return !!term && term.termType === 'NamedNode';\n}\n\n// Tests whether the given term represents a blank node\nfunction isBlankNode(term) {\n return !!term && term.termType === 'BlankNode';\n}\n\n// Tests whether the given term represents a literal\nfunction isLiteral(term) {\n return !!term && term.termType === 'Literal';\n}\n\n// Tests whether the given term represents a variable\nfunction isVariable(term) {\n return !!term && term.termType === 'Variable';\n}\n\n// Tests whether the given term represents the default graph\nfunction isDefaultGraph(term) {\n return !!term && term.termType === 'DefaultGraph';\n}\n\n// Tests whether the given quad is in the default graph\nfunction inDefaultGraph(quad) {\n return isDefaultGraph(quad.graph);\n}\n\n// Creates a function that prepends the given IRI to a local name\nfunction prefix(iri, factory) {\n return prefixes({ '': iri }, factory)('');\n}\n\n// Creates a function that allows registering and expanding prefixes\nfunction prefixes(defaultPrefixes, factory) {\n // Add all of the default prefixes\n const prefixes = Object.create(null);\n for (const prefix in defaultPrefixes)\n processPrefix(prefix, defaultPrefixes[prefix]);\n // Set the default factory if none was specified\n factory = factory || _N3DataFactory__WEBPACK_IMPORTED_MODULE_0__.default;\n\n // Registers a new prefix (if an IRI was specified)\n // or retrieves a function that expands an existing prefix (if no IRI was specified)\n function processPrefix(prefix, iri) {\n // Create a new prefix if an IRI is specified or the prefix doesn't exist\n if (typeof iri === 'string') {\n // Create a function that expands the prefix\n const cache = Object.create(null);\n prefixes[prefix] = local => {\n return cache[local] || (cache[local] = factory.namedNode(iri + local));\n };\n }\n else if (!(prefix in prefixes)) {\n throw new Error(`Unknown prefix: ${prefix}`);\n }\n return prefixes[prefix];\n }\n return processPrefix;\n}\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/n3/src/N3Util.js?"); + +/***/ }), + +/***/ "./node_modules/n3/src/N3Writer.js": +/*!*****************************************!*\ + !*** ./node_modules/n3/src/N3Writer.js ***! + \*****************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ N3Writer)\n/* harmony export */ });\n/* harmony import */ var _IRIs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./IRIs */ \"./node_modules/n3/src/IRIs.js\");\n/* harmony import */ var _N3DataFactory__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./N3DataFactory */ \"./node_modules/n3/src/N3DataFactory.js\");\n/* harmony import */ var _N3Util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./N3Util */ \"./node_modules/n3/src/N3Util.js\");\n// **N3Writer** writes N3 documents.\n\n\n\n\nconst DEFAULTGRAPH = _N3DataFactory__WEBPACK_IMPORTED_MODULE_0__.default.defaultGraph();\n\nconst { rdf, xsd } = _IRIs__WEBPACK_IMPORTED_MODULE_1__.default;\n\n// Characters in literals that require escaping\nconst escape = /[\"\\\\\\t\\n\\r\\b\\f\\u0000-\\u0019\\ud800-\\udbff]/,\n escapeAll = /[\"\\\\\\t\\n\\r\\b\\f\\u0000-\\u0019]|[\\ud800-\\udbff][\\udc00-\\udfff]/g,\n escapedCharacters = {\n '\\\\': '\\\\\\\\', '\"': '\\\\\"', '\\t': '\\\\t',\n '\\n': '\\\\n', '\\r': '\\\\r', '\\b': '\\\\b', '\\f': '\\\\f',\n };\n\n// ## Placeholder class to represent already pretty-printed terms\nclass SerializedTerm extends _N3DataFactory__WEBPACK_IMPORTED_MODULE_0__.Term {\n // Pretty-printed nodes are not equal to any other node\n // (e.g., [] does not equal [])\n equals() {\n return false;\n }\n}\n\n// ## Constructor\nclass N3Writer {\n constructor(outputStream, options) {\n // ### `_prefixRegex` matches a prefixed name or IRI that begins with one of the added prefixes\n this._prefixRegex = /$0^/;\n\n // Shift arguments if the first argument is not a stream\n if (outputStream && typeof outputStream.write !== 'function')\n options = outputStream, outputStream = null;\n options = options || {};\n this._lists = options.lists;\n\n // If no output stream given, send the output as string through the end callback\n if (!outputStream) {\n let output = '';\n this._outputStream = {\n write(chunk, encoding, done) { output += chunk; done && done(); },\n end: done => { done && done(null, output); },\n };\n this._endStream = true;\n }\n else {\n this._outputStream = outputStream;\n this._endStream = options.end === undefined ? true : !!options.end;\n }\n\n // Initialize writer, depending on the format\n this._subject = null;\n if (!(/triple|quad/i).test(options.format)) {\n this._lineMode = false;\n this._graph = DEFAULTGRAPH;\n this._baseIRI = options.baseIRI;\n this._prefixIRIs = Object.create(null);\n options.prefixes && this.addPrefixes(options.prefixes);\n }\n else {\n this._lineMode = true;\n this._writeQuad = this._writeQuadLine;\n }\n }\n\n // ## Private methods\n\n // ### Whether the current graph is the default graph\n get _inDefaultGraph() {\n return DEFAULTGRAPH.equals(this._graph);\n }\n\n // ### `_write` writes the argument to the output stream\n _write(string, callback) {\n this._outputStream.write(string, 'utf8', callback);\n }\n\n // ### `_writeQuad` writes the quad to the output stream\n _writeQuad(subject, predicate, object, graph, done) {\n try {\n // Write the graph's label if it has changed\n if (!graph.equals(this._graph)) {\n // Close the previous graph and start the new one\n this._write((this._subject === null ? '' : (this._inDefaultGraph ? '.\\n' : '\\n}\\n')) +\n (DEFAULTGRAPH.equals(graph) ? '' : `${this._encodeIriOrBlank(graph)} {\\n`));\n this._graph = graph;\n this._subject = null;\n }\n // Don't repeat the subject if it's the same\n if (subject.equals(this._subject)) {\n // Don't repeat the predicate if it's the same\n if (predicate.equals(this._predicate))\n this._write(`, ${this._encodeObject(object)}`, done);\n // Same subject, different predicate\n else\n this._write(`;\\n ${\n this._encodePredicate(this._predicate = predicate)} ${\n this._encodeObject(object)}`, done);\n }\n // Different subject; write the whole quad\n else\n this._write(`${(this._subject === null ? '' : '.\\n') +\n this._encodeSubject(this._subject = subject)} ${\n this._encodePredicate(this._predicate = predicate)} ${\n this._encodeObject(object)}`, done);\n }\n catch (error) { done && done(error); }\n }\n\n // ### `_writeQuadLine` writes the quad to the output stream as a single line\n _writeQuadLine(subject, predicate, object, graph, done) {\n // Write the quad without prefixes\n delete this._prefixMatch;\n this._write(this.quadToString(subject, predicate, object, graph), done);\n }\n\n // ### `quadToString` serializes a quad as a string\n quadToString(subject, predicate, object, graph) {\n return `${this._encodeSubject(subject)} ${\n this._encodeIriOrBlank(predicate)} ${\n this._encodeObject(object)\n }${graph && graph.value ? ` ${this._encodeIriOrBlank(graph)} .\\n` : ' .\\n'}`;\n }\n\n // ### `quadsToString` serializes an array of quads as a string\n quadsToString(quads) {\n return quads.map(t => {\n return this.quadToString(t.subject, t.predicate, t.object, t.graph);\n }).join('');\n }\n\n // ### `_encodeSubject` represents a subject\n _encodeSubject(entity) {\n return entity.termType === 'Quad' ?\n this._encodeQuad(entity) : this._encodeIriOrBlank(entity);\n }\n\n // ### `_encodeIriOrBlank` represents an IRI or blank node\n _encodeIriOrBlank(entity) {\n // A blank node or list is represented as-is\n if (entity.termType !== 'NamedNode') {\n // If it is a list head, pretty-print it\n if (this._lists && (entity.value in this._lists))\n entity = this.list(this._lists[entity.value]);\n return 'id' in entity ? entity.id : `_:${entity.value}`;\n }\n let iri = entity.value;\n // Use relative IRIs if requested and possible\n if (this._baseIRI && iri.startsWith(this._baseIRI))\n iri = iri.substr(this._baseIRI.length);\n // Escape special characters\n if (escape.test(iri))\n iri = iri.replace(escapeAll, characterReplacer);\n // Try to represent the IRI as prefixed name\n const prefixMatch = this._prefixRegex.exec(iri);\n return !prefixMatch ? `<${iri}>` :\n (!prefixMatch[1] ? iri : this._prefixIRIs[prefixMatch[1]] + prefixMatch[2]);\n }\n\n // ### `_encodeLiteral` represents a literal\n _encodeLiteral(literal) {\n // Escape special characters\n let value = literal.value;\n if (escape.test(value))\n value = value.replace(escapeAll, characterReplacer);\n\n // Write a language-tagged literal\n if (literal.language)\n return `\"${value}\"@${literal.language}`;\n\n // Write dedicated literals per data type\n if (this._lineMode) {\n // Only abbreviate strings in N-Triples or N-Quads\n if (literal.datatype.value === xsd.string)\n return `\"${value}\"`;\n }\n else {\n // Use common datatype abbreviations in Turtle or TriG\n switch (literal.datatype.value) {\n case xsd.string:\n return `\"${value}\"`;\n case xsd.boolean:\n if (value === 'true' || value === 'false')\n return value;\n break;\n case xsd.integer:\n if (/^[+-]?\\d+$/.test(value))\n return value;\n break;\n case xsd.decimal:\n if (/^[+-]?\\d*\\.\\d+$/.test(value))\n return value;\n break;\n case xsd.double:\n if (/^[+-]?(?:\\d+\\.\\d*|\\.?\\d+)[eE][+-]?\\d+$/.test(value))\n return value;\n break;\n }\n }\n\n // Write a regular datatyped literal\n return `\"${value}\"^^${this._encodeIriOrBlank(literal.datatype)}`;\n }\n\n // ### `_encodePredicate` represents a predicate\n _encodePredicate(predicate) {\n return predicate.value === rdf.type ? 'a' : this._encodeIriOrBlank(predicate);\n }\n\n // ### `_encodeObject` represents an object\n _encodeObject(object) {\n switch (object.termType) {\n case 'Quad':\n return this._encodeQuad(object);\n case 'Literal':\n return this._encodeLiteral(object);\n default:\n return this._encodeIriOrBlank(object);\n }\n }\n\n // ### `_encodeQuad` encodes an RDF* quad\n _encodeQuad({ subject, predicate, object, graph }) {\n return `<<${\n this._encodeSubject(subject)} ${\n this._encodePredicate(predicate)} ${\n this._encodeObject(object)}${\n (0,_N3Util__WEBPACK_IMPORTED_MODULE_2__.isDefaultGraph)(graph) ? '' : ` ${this._encodeIriOrBlank(graph)}`}>>`;\n }\n\n // ### `_blockedWrite` replaces `_write` after the writer has been closed\n _blockedWrite() {\n throw new Error('Cannot write because the writer has been closed.');\n }\n\n // ### `addQuad` adds the quad to the output stream\n addQuad(subject, predicate, object, graph, done) {\n // The quad was given as an object, so shift parameters\n if (object === undefined)\n this._writeQuad(subject.subject, subject.predicate, subject.object, subject.graph, predicate);\n // The optional `graph` parameter was not provided\n else if (typeof graph === 'function')\n this._writeQuad(subject, predicate, object, DEFAULTGRAPH, graph);\n // The `graph` parameter was provided\n else\n this._writeQuad(subject, predicate, object, graph || DEFAULTGRAPH, done);\n }\n\n // ### `addQuads` adds the quads to the output stream\n addQuads(quads) {\n for (let i = 0; i < quads.length; i++)\n this.addQuad(quads[i]);\n }\n\n // ### `addPrefix` adds the prefix to the output stream\n addPrefix(prefix, iri, done) {\n const prefixes = {};\n prefixes[prefix] = iri;\n this.addPrefixes(prefixes, done);\n }\n\n // ### `addPrefixes` adds the prefixes to the output stream\n addPrefixes(prefixes, done) {\n // Ignore prefixes if not supported by the serialization\n if (!this._prefixIRIs)\n return done && done();\n\n // Write all new prefixes\n let hasPrefixes = false;\n for (let prefix in prefixes) {\n let iri = prefixes[prefix];\n if (typeof iri !== 'string')\n iri = iri.value;\n hasPrefixes = true;\n // Finish a possible pending quad\n if (this._subject !== null) {\n this._write(this._inDefaultGraph ? '.\\n' : '\\n}\\n');\n this._subject = null, this._graph = '';\n }\n // Store and write the prefix\n this._prefixIRIs[iri] = (prefix += ':');\n this._write(`@prefix ${prefix} <${iri}>.\\n`);\n }\n // Recreate the prefix matcher\n if (hasPrefixes) {\n let IRIlist = '', prefixList = '';\n for (const prefixIRI in this._prefixIRIs) {\n IRIlist += IRIlist ? `|${prefixIRI}` : prefixIRI;\n prefixList += (prefixList ? '|' : '') + this._prefixIRIs[prefixIRI];\n }\n IRIlist = IRIlist.replace(/[\\]\\/\\(\\)\\*\\+\\?\\.\\\\\\$]/g, '\\\\$&');\n this._prefixRegex = new RegExp(`^(?:${prefixList})[^\\/]*$|` +\n `^(${IRIlist})([a-zA-Z][\\\\-_a-zA-Z0-9]*)$`);\n }\n // End a prefix block with a newline\n this._write(hasPrefixes ? '\\n' : '', done);\n }\n\n // ### `blank` creates a blank node with the given content\n blank(predicate, object) {\n let children = predicate, child, length;\n // Empty blank node\n if (predicate === undefined)\n children = [];\n // Blank node passed as blank(Term(\"predicate\"), Term(\"object\"))\n else if (predicate.termType)\n children = [{ predicate: predicate, object: object }];\n // Blank node passed as blank({ predicate: predicate, object: object })\n else if (!('length' in predicate))\n children = [predicate];\n\n switch (length = children.length) {\n // Generate an empty blank node\n case 0:\n return new SerializedTerm('[]');\n // Generate a non-nested one-triple blank node\n case 1:\n child = children[0];\n if (!(child.object instanceof SerializedTerm))\n return new SerializedTerm(`[ ${this._encodePredicate(child.predicate)} ${\n this._encodeObject(child.object)} ]`);\n // Generate a multi-triple or nested blank node\n default:\n let contents = '[';\n // Write all triples in order\n for (let i = 0; i < length; i++) {\n child = children[i];\n // Write only the object is the predicate is the same as the previous\n if (child.predicate.equals(predicate))\n contents += `, ${this._encodeObject(child.object)}`;\n // Otherwise, write the predicate and the object\n else {\n contents += `${(i ? ';\\n ' : '\\n ') +\n this._encodePredicate(child.predicate)} ${\n this._encodeObject(child.object)}`;\n predicate = child.predicate;\n }\n }\n return new SerializedTerm(`${contents}\\n]`);\n }\n }\n\n // ### `list` creates a list node with the given content\n list(elements) {\n const length = elements && elements.length || 0, contents = new Array(length);\n for (let i = 0; i < length; i++)\n contents[i] = this._encodeObject(elements[i]);\n return new SerializedTerm(`(${contents.join(' ')})`);\n }\n\n // ### `end` signals the end of the output stream\n end(done) {\n // Finish a possible pending quad\n if (this._subject !== null) {\n this._write(this._inDefaultGraph ? '.\\n' : '\\n}\\n');\n this._subject = null;\n }\n // Disallow further writing\n this._write = this._blockedWrite;\n\n // Try to end the underlying stream, ensuring done is called exactly one time\n let singleDone = done && ((error, result) => { singleDone = null, done(error, result); });\n if (this._endStream) {\n try { return this._outputStream.end(singleDone); }\n catch (error) { /* error closing stream */ }\n }\n singleDone && singleDone();\n }\n}\n\n// Replaces a character by its escaped version\nfunction characterReplacer(character) {\n // Replace a single character by its escaped version\n let result = escapedCharacters[character];\n if (result === undefined) {\n // Replace a single character with its 4-bit unicode escape sequence\n if (character.length === 1) {\n result = character.charCodeAt(0).toString(16);\n result = '\\\\u0000'.substr(0, 6 - result.length) + result;\n }\n // Replace a surrogate pair with its 8-bit unicode escape sequence\n else {\n result = ((character.charCodeAt(0) - 0xD800) * 0x400 +\n character.charCodeAt(1) + 0x2400).toString(16);\n result = '\\\\U00000000'.substr(0, 10 - result.length) + result;\n }\n }\n return result;\n}\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/n3/src/N3Writer.js?"); + +/***/ }), + +/***/ "./node_modules/n3/src/index.js": +/*!**************************************!*\ + !*** ./node_modules/n3/src/index.js ***! + \**************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"Lexer\": () => (/* reexport safe */ _N3Lexer__WEBPACK_IMPORTED_MODULE_0__.default),\n/* harmony export */ \"Parser\": () => (/* reexport safe */ _N3Parser__WEBPACK_IMPORTED_MODULE_1__.default),\n/* harmony export */ \"Writer\": () => (/* reexport safe */ _N3Writer__WEBPACK_IMPORTED_MODULE_2__.default),\n/* harmony export */ \"Store\": () => (/* reexport safe */ _N3Store__WEBPACK_IMPORTED_MODULE_3__.default),\n/* harmony export */ \"StreamParser\": () => (/* reexport safe */ _N3StreamParser__WEBPACK_IMPORTED_MODULE_4__.default),\n/* harmony export */ \"StreamWriter\": () => (/* reexport safe */ _N3StreamWriter__WEBPACK_IMPORTED_MODULE_5__.default),\n/* harmony export */ \"Util\": () => (/* reexport module object */ _N3Util__WEBPACK_IMPORTED_MODULE_6__),\n/* harmony export */ \"DataFactory\": () => (/* reexport safe */ _N3DataFactory__WEBPACK_IMPORTED_MODULE_7__.default),\n/* harmony export */ \"Term\": () => (/* reexport safe */ _N3DataFactory__WEBPACK_IMPORTED_MODULE_7__.Term),\n/* harmony export */ \"NamedNode\": () => (/* reexport safe */ _N3DataFactory__WEBPACK_IMPORTED_MODULE_7__.NamedNode),\n/* harmony export */ \"Literal\": () => (/* reexport safe */ _N3DataFactory__WEBPACK_IMPORTED_MODULE_7__.Literal),\n/* harmony export */ \"BlankNode\": () => (/* reexport safe */ _N3DataFactory__WEBPACK_IMPORTED_MODULE_7__.BlankNode),\n/* harmony export */ \"Variable\": () => (/* reexport safe */ _N3DataFactory__WEBPACK_IMPORTED_MODULE_7__.Variable),\n/* harmony export */ \"DefaultGraph\": () => (/* reexport safe */ _N3DataFactory__WEBPACK_IMPORTED_MODULE_7__.DefaultGraph),\n/* harmony export */ \"Quad\": () => (/* reexport safe */ _N3DataFactory__WEBPACK_IMPORTED_MODULE_7__.Quad),\n/* harmony export */ \"Triple\": () => (/* reexport safe */ _N3DataFactory__WEBPACK_IMPORTED_MODULE_7__.Triple),\n/* harmony export */ \"termFromId\": () => (/* reexport safe */ _N3DataFactory__WEBPACK_IMPORTED_MODULE_7__.termFromId),\n/* harmony export */ \"termToId\": () => (/* reexport safe */ _N3DataFactory__WEBPACK_IMPORTED_MODULE_7__.termToId)\n/* harmony export */ });\n/* harmony import */ var _N3Lexer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./N3Lexer */ \"./node_modules/n3/src/N3Lexer.js\");\n/* harmony import */ var _N3Parser__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./N3Parser */ \"./node_modules/n3/src/N3Parser.js\");\n/* harmony import */ var _N3Writer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./N3Writer */ \"./node_modules/n3/src/N3Writer.js\");\n/* harmony import */ var _N3Store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./N3Store */ \"./node_modules/n3/src/N3Store.js\");\n/* harmony import */ var _N3StreamParser__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./N3StreamParser */ \"./node_modules/n3/src/N3StreamParser.js\");\n/* harmony import */ var _N3StreamWriter__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./N3StreamWriter */ \"./node_modules/n3/src/N3StreamWriter.js\");\n/* harmony import */ var _N3Util__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./N3Util */ \"./node_modules/n3/src/N3Util.js\");\n/* harmony import */ var _N3DataFactory__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./N3DataFactory */ \"./node_modules/n3/src/N3DataFactory.js\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/n3/src/index.js?"); + +/***/ }), + +/***/ "./node_modules/queue-microtask/index.js": +/*!***********************************************!*\ + !*** ./node_modules/queue-microtask/index.js ***! + \***********************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +eval("/*! queue-microtask. MIT License. Feross Aboukhadijeh */\nlet promise\n\nmodule.exports = typeof queueMicrotask === 'function'\n ? queueMicrotask.bind(typeof window !== 'undefined' ? window : __webpack_require__.g)\n // reuse resolved promise, and allocate it lazily\n : cb => (promise || (promise = Promise.resolve()))\n .then(cb)\n .catch(err => setTimeout(() => { throw err }, 0))\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/queue-microtask/index.js?"); + +/***/ }), + +/***/ "./node_modules/readable-stream/errors-browser.js": +/*!********************************************************!*\ + !*** ./node_modules/readable-stream/errors-browser.js ***! + \********************************************************/ +/***/ ((module) => { + +"use strict"; +eval("\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/readable-stream/errors-browser.js?"); + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/_stream_duplex.js": +/*!************************************************************!*\ + !*** ./node_modules/readable-stream/lib/_stream_duplex.js ***! + \************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = __webpack_require__(/*! ./_stream_readable */ \"./node_modules/readable-stream/lib/_stream_readable.js\");\n\nvar Writable = __webpack_require__(/*! ./_stream_writable */ \"./node_modules/readable-stream/lib/_stream_writable.js\");\n\n__webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\n//# sourceURL=webpack://my-demo-app/./node_modules/readable-stream/lib/_stream_duplex.js?"); + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/_stream_passthrough.js": +/*!*****************************************************************!*\ + !*** ./node_modules/readable-stream/lib/_stream_passthrough.js ***! + \*****************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n\nmodule.exports = PassThrough;\n\nvar Transform = __webpack_require__(/*! ./_stream_transform */ \"./node_modules/readable-stream/lib/_stream_transform.js\");\n\n__webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};\n\n//# sourceURL=webpack://my-demo-app/./node_modules/readable-stream/lib/_stream_passthrough.js?"); + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/_stream_readable.js": +/*!**************************************************************!*\ + !*** ./node_modules/readable-stream/lib/_stream_readable.js ***! + \**************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = __webpack_require__(/*! events */ \"./node_modules/events/events.js\").EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = __webpack_require__(/*! ./internal/streams/stream */ \"./node_modules/readable-stream/lib/internal/streams/stream-browser.js\");\n/**/\n\n\nvar Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\").Buffer;\n\nvar OurUint8Array = __webpack_require__.g.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = __webpack_require__(/*! util */ \"?d17e\");\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = __webpack_require__(/*! ./internal/streams/buffer_list */ \"./node_modules/readable-stream/lib/internal/streams/buffer_list.js\");\n\nvar destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ \"./node_modules/readable-stream/lib/internal/streams/destroy.js\");\n\nvar _require = __webpack_require__(/*! ./internal/streams/state */ \"./node_modules/readable-stream/lib/internal/streams/state.js\"),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = __webpack_require__(/*! ../errors */ \"./node_modules/readable-stream/errors-browser.js\").codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\n__webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/readable-stream/lib/_stream_duplex.js\");\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ \"./node_modules/string_decoder/lib/string_decoder.js\").StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/readable-stream/lib/_stream_duplex.js\");\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = __webpack_require__(/*! string_decoder/ */ \"./node_modules/string_decoder/lib/string_decoder.js\").StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = __webpack_require__(/*! ./internal/streams/async_iterator */ \"./node_modules/readable-stream/lib/internal/streams/async_iterator.js\");\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = __webpack_require__(/*! ./internal/streams/from */ \"./node_modules/readable-stream/lib/internal/streams/from-browser.js\");\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}\n\n//# sourceURL=webpack://my-demo-app/./node_modules/readable-stream/lib/_stream_readable.js?"); + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/_stream_transform.js": +/*!***************************************************************!*\ + !*** ./node_modules/readable-stream/lib/_stream_transform.js ***! + \***************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n\nmodule.exports = Transform;\n\nvar _require$codes = __webpack_require__(/*! ../errors */ \"./node_modules/readable-stream/errors-browser.js\").codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/readable-stream/lib/_stream_duplex.js\");\n\n__webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}\n\n//# sourceURL=webpack://my-demo-app/./node_modules/readable-stream/lib/_stream_transform.js?"); + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/_stream_writable.js": +/*!**************************************************************!*\ + !*** ./node_modules/readable-stream/lib/_stream_writable.js ***! + \**************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: __webpack_require__(/*! util-deprecate */ \"./node_modules/util-deprecate/browser.js\")\n};\n/**/\n\n/**/\n\nvar Stream = __webpack_require__(/*! ./internal/streams/stream */ \"./node_modules/readable-stream/lib/internal/streams/stream-browser.js\");\n/**/\n\n\nvar Buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\").Buffer;\n\nvar OurUint8Array = __webpack_require__.g.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = __webpack_require__(/*! ./internal/streams/destroy */ \"./node_modules/readable-stream/lib/internal/streams/destroy.js\");\n\nvar _require = __webpack_require__(/*! ./internal/streams/state */ \"./node_modules/readable-stream/lib/internal/streams/state.js\"),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = __webpack_require__(/*! ../errors */ \"./node_modules/readable-stream/errors-browser.js\").codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\n__webpack_require__(/*! inherits */ \"./node_modules/inherits/inherits_browser.js\")(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/readable-stream/lib/_stream_duplex.js\");\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || __webpack_require__(/*! ./_stream_duplex */ \"./node_modules/readable-stream/lib/_stream_duplex.js\"); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};\n\n//# sourceURL=webpack://my-demo-app/./node_modules/readable-stream/lib/_stream_writable.js?"); + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/internal/streams/async_iterator.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/readable-stream/lib/internal/streams/async_iterator.js ***! + \*****************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +eval("\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = __webpack_require__(/*! ./end-of-stream */ \"./node_modules/readable-stream/lib/internal/streams/end-of-stream.js\");\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;\n\n//# sourceURL=webpack://my-demo-app/./node_modules/readable-stream/lib/internal/streams/async_iterator.js?"); + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/internal/streams/buffer_list.js": +/*!**************************************************************************!*\ + !*** ./node_modules/readable-stream/lib/internal/streams/buffer_list.js ***! + \**************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +eval("\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\"),\n Buffer = _require.Buffer;\n\nvar _require2 = __webpack_require__(/*! util */ \"?ed1b\"),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();\n\n//# sourceURL=webpack://my-demo-app/./node_modules/readable-stream/lib/internal/streams/buffer_list.js?"); + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/internal/streams/destroy.js": +/*!**********************************************************************!*\ + !*** ./node_modules/readable-stream/lib/internal/streams/destroy.js ***! + \**********************************************************************/ +/***/ ((module) => { + +"use strict"; +eval(" // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};\n\n//# sourceURL=webpack://my-demo-app/./node_modules/readable-stream/lib/internal/streams/destroy.js?"); + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/internal/streams/end-of-stream.js": +/*!****************************************************************************!*\ + !*** ./node_modules/readable-stream/lib/internal/streams/end-of-stream.js ***! + \****************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +eval("// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n\nvar ERR_STREAM_PREMATURE_CLOSE = __webpack_require__(/*! ../../../errors */ \"./node_modules/readable-stream/errors-browser.js\").codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;\n\n//# sourceURL=webpack://my-demo-app/./node_modules/readable-stream/lib/internal/streams/end-of-stream.js?"); + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/internal/streams/from-browser.js": +/*!***************************************************************************!*\ + !*** ./node_modules/readable-stream/lib/internal/streams/from-browser.js ***! + \***************************************************************************/ +/***/ ((module) => { + +eval("module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/readable-stream/lib/internal/streams/from-browser.js?"); + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/internal/streams/pipeline.js": +/*!***********************************************************************!*\ + !*** ./node_modules/readable-stream/lib/internal/streams/pipeline.js ***! + \***********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +eval("// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = __webpack_require__(/*! ../../../errors */ \"./node_modules/readable-stream/errors-browser.js\").codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = __webpack_require__(/*! ./end-of-stream */ \"./node_modules/readable-stream/lib/internal/streams/end-of-stream.js\");\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;\n\n//# sourceURL=webpack://my-demo-app/./node_modules/readable-stream/lib/internal/streams/pipeline.js?"); + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/internal/streams/state.js": +/*!********************************************************************!*\ + !*** ./node_modules/readable-stream/lib/internal/streams/state.js ***! + \********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +eval("\n\nvar ERR_INVALID_OPT_VALUE = __webpack_require__(/*! ../../../errors */ \"./node_modules/readable-stream/errors-browser.js\").codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};\n\n//# sourceURL=webpack://my-demo-app/./node_modules/readable-stream/lib/internal/streams/state.js?"); + +/***/ }), + +/***/ "./node_modules/readable-stream/lib/internal/streams/stream-browser.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/readable-stream/lib/internal/streams/stream-browser.js ***! + \*****************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +eval("module.exports = __webpack_require__(/*! events */ \"./node_modules/events/events.js\").EventEmitter;\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/readable-stream/lib/internal/streams/stream-browser.js?"); + +/***/ }), + +/***/ "./node_modules/readable-stream/readable-browser.js": +/*!**********************************************************!*\ + !*** ./node_modules/readable-stream/readable-browser.js ***! + \**********************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +eval("exports = module.exports = __webpack_require__(/*! ./lib/_stream_readable.js */ \"./node_modules/readable-stream/lib/_stream_readable.js\");\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = __webpack_require__(/*! ./lib/_stream_writable.js */ \"./node_modules/readable-stream/lib/_stream_writable.js\");\nexports.Duplex = __webpack_require__(/*! ./lib/_stream_duplex.js */ \"./node_modules/readable-stream/lib/_stream_duplex.js\");\nexports.Transform = __webpack_require__(/*! ./lib/_stream_transform.js */ \"./node_modules/readable-stream/lib/_stream_transform.js\");\nexports.PassThrough = __webpack_require__(/*! ./lib/_stream_passthrough.js */ \"./node_modules/readable-stream/lib/_stream_passthrough.js\");\nexports.finished = __webpack_require__(/*! ./lib/internal/streams/end-of-stream.js */ \"./node_modules/readable-stream/lib/internal/streams/end-of-stream.js\");\nexports.pipeline = __webpack_require__(/*! ./lib/internal/streams/pipeline.js */ \"./node_modules/readable-stream/lib/internal/streams/pipeline.js\");\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/readable-stream/readable-browser.js?"); + +/***/ }), + +/***/ "./node_modules/safe-buffer/index.js": +/*!*******************************************!*\ + !*** ./node_modules/safe-buffer/index.js ***! + \*******************************************/ +/***/ ((module, exports, __webpack_require__) => { + +eval("/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/safe-buffer/index.js?"); + +/***/ }), + +/***/ "./node_modules/string_decoder/lib/string_decoder.js": +/*!***********************************************************!*\ + !*** ./node_modules/string_decoder/lib/string_decoder.js ***! + \***********************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +eval("// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n\n/**/\n\nvar Buffer = __webpack_require__(/*! safe-buffer */ \"./node_modules/safe-buffer/index.js\").Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}\n\n//# sourceURL=webpack://my-demo-app/./node_modules/string_decoder/lib/string_decoder.js?"); + +/***/ }), + +/***/ "./node_modules/util-deprecate/browser.js": +/*!************************************************!*\ + !*** ./node_modules/util-deprecate/browser.js ***! + \************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +eval("\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!__webpack_require__.g.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = __webpack_require__.g.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/util-deprecate/browser.js?"); + +/***/ }) + +}]); \ No newline at end of file diff --git a/my-demo-app/src/index.js b/my-demo-app/src/index.js new file mode 100644 index 0000000..e2de2b0 --- /dev/null +++ b/my-demo-app/src/index.js @@ -0,0 +1,212 @@ +// Import from "@inrupt/solid-client-authn-browser" +import { + login, + handleIncomingRedirect, + getDefaultSession, + fetch +} from '@inrupt/solid-client-authn-browser'; + +// Import from "@inrupt/solid-client" +import { + getSolidDataset, + getThing, + getStringNoLocale +} from '@inrupt/solid-client'; + +import { VCARD } from '@inrupt/vocab-common-rdf'; + + + +let droppedFiles = []; + + +const buttonLogin = document.querySelector("#btnLogin"); +const buttonRead = document.querySelector("#btnRead"); + +// 1a. Start Login Process. Call login() function. +function loginToInruptDotCom() { + return login({ + + oidcIssuer: "https://broker.pod.inrupt.com", + + redirectUrl: window.location.href, + clientName: "Getting started app" + }); +} + +// 1b. Login Redirect. Call handleIncomingRedirect() function. +// When redirected after login, finish the process by retrieving session information. +async function handleRedirectAfterLogin() { + await handleIncomingRedirect(); + + const session = getDefaultSession(); + if (session.info.isLoggedIn) { + // Update the page with the status. + document.getElementById("labelStatus").textContent = "Your session is logged in."; + document.getElementById("labelStatus").setAttribute("role", "alert"); + } +} + +// The example has the login redirect back to the index.html. +// This calls the function to process login information. +// If the function is called when not part of the login redirect, the function is a no-op. +handleRedirectAfterLogin(); + +// 2. Read profile +async function readProfile() { + const webID = document.getElementById("webID").value; + + // The example assumes the WebID has the URI # where + // is the URI of the SolidDataset + // that contains profile data. + + // Parse ProfileDocument URI from the `webID` value. + const profileDocumentURI = webID.split('#')[0]; + document.getElementById("labelProfile").textContent = profileDocumentURI; + + + // Use `getSolidDataset` to get the Profile document. + // Profile document is public and can be read w/o authentication; i.e.: + // - You can either omit `fetch` or + // - You can pass in `fetch` with or without logging in first. + // If logged in, the `fetch` is authenticated. + // For illustrative purposes, the `fetch` is passed in. + const myDataset = await getSolidDataset(profileDocumentURI, { fetch: fetch }); + + // Get the Profile data from the retrieved SolidDataset + const profile = getThing(myDataset, webID); + + // Get the formatted name using `VCARD.fn` convenience object. + // `VCARD.fn` includes the identifier string "http://www.w3.org/2006/vcard/ns#fn". + // As an alternative, you can pass in the "http://www.w3.org/2006/vcard/ns#fn" string instead of `VCARD.fn`. + + const fn = getStringNoLocale(profile, VCARD.fn); + + // Get the role using `VCARD.role` convenience object. + // `VCARD.role` includes the identifier string "http://www.w3.org/2006/vcard/ns#role" + // As an alternative, you can pass in the "http://www.w3.org/2006/vcard/ns#role" string instead of `VCARD.role`. + + const role = getStringNoLocale(profile, VCARD.role); + + // Update the page with the retrieved values. + document.getElementById("labelFN").textContent = fn; + document.getElementById("labelRole").textContent = role; +} + + + +let uploadBtn = document.querySelector("#upload-file-btn"); +uploadBtn.onclick = function(){ + uploadFiles(); +} + +const MY_POD_URL = "https://pod.inrupt.com/wepodrom/"; + + +// function getPODUrl(provider, pseudo) +// { +// // TODO: create enums for provider types and urls +// if (provider == "https://pod.inrupt.com") +// { +// return provider + "/" + pseudo + "/"; +// } + +// return null; +// } + + +// Upload selected files to Pod +function uploadFiles() +{ + console.log("uploading files ..."); + // const fileList = document.getElementById('file-drop-zone').files; + for (let file of droppedFiles) + { + writeFileToPod(file, `${MY_POD_URL}/${file.name}`, fetch); + } +} + +// Upload File to the targetFileURL. +// If the targetFileURL exists, overwrite the file. +// If the targetFileURL does not exist, create the file at the location. +async function writeFileToPod(file, targetFileURL, fetch ) +{ + console.log("writing", file.name, "to the POD ..."); + try + { + const savedFile = await overwriteFile( + targetFileURL, // URL for the file. + file, // File + { contentType: file.type, fetch: fetch } // mimetype if known, fetch from the authenticated session + ); + console.log(`File saved at ${getSourceUrl(savedFile)}`); + } + catch (error) + { + console.error(error); + } +} + +let dropArea = document.querySelector("#file-drop-zone"); +dropArea.addEventListener('drop', handleFileDrop, false); + + +function handleFileDrop(e) +{ + // e.preventDefault(); + if(e.dataTransfer && e.dataTransfer.files.length != 0) + { + droppedFiles = e.dataTransfer.files; //Array of filenames + console.log("dropped file(s):"); + for (let file of droppedFiles) + { + console.log(file.name); + } + } + else + { + console.error("drag and drop not supported"); + } + + console.log(e); + // return false; +} + +['dragenter', 'dragover', 'dragleave'].forEach(eventName => { + dropArea.addEventListener(eventName, preventDefaults, false) +}); + +['dragenter', 'dragover'].forEach(eventName => { + dropArea.addEventListener(eventName, highlight, false); +}); + +['dragleave', 'drop'].forEach(eventName => { + dropArea.addEventListener(eventName, unhighlight, false); +}); + +function highlight() +{ + dropArea.classList.add('drop-zone-hover'); +} + +function unhighlight() +{ + dropArea.classList.remove('drop-zone-hover'); +} + +function preventDefaults (e) { + e.preventDefault() + e.stopPropagation() +} + + +buttonLogin.onclick = function() { + loginToInruptDotCom(); +}; + +buttonRead.onclick = function() { + readProfile(); +}; + +// const uploadBtn = document.querySelector("#upload-file-btn"); + diff --git a/my-demo-app/webpack.config.js b/my-demo-app/webpack.config.js new file mode 100644 index 0000000..ddd251f --- /dev/null +++ b/my-demo-app/webpack.config.js @@ -0,0 +1,22 @@ +const path = require("path"); + + +module.exports = { + mode: "development", + entry: "./src/index.js", + output: { + path: path.resolve(__dirname, "public"), + filename: "index.js" + }, + module: { + rules: [ + { + test: /\.css$/, + use: [ { loader: "style-loader" }, { loader: "css-loader" } ], + }, + ] + }, + devServer: { + contentBase: "./dist" + } +}; \ No newline at end of file From 6a7670e0c61be6a977a36b3f760302a0aa3919c6 Mon Sep 17 00:00:00 2001 From: Lndh <17167523+LndH@users.noreply.github.com> Date: Wed, 7 Jul 2021 13:57:30 +0200 Subject: [PATCH 2/4] drag & drop + upload file to pod --- my-demo-app/public/index.js | 13 +++++++- my-demo-app/src/index.js | 62 ++++++++++++++++++++++++++++--------- 2 files changed, 60 insertions(+), 15 deletions(-) diff --git a/my-demo-app/public/index.js b/my-demo-app/public/index.js index 0954912..437d898 100644 --- a/my-demo-app/public/index.js +++ b/my-demo-app/public/index.js @@ -504,6 +504,17 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ }), +/***/ "./node_modules/@inrupt/solid-client/dist/resource/file.mjs": +/*!******************************************************************!*\ + !*** ./node_modules/@inrupt/solid-client/dist/resource/file.mjs ***! + \******************************************************************/ +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"deleteFile\": () => (/* binding */ deleteFile),\n/* harmony export */ \"flattenHeaders\": () => (/* binding */ flattenHeaders),\n/* harmony export */ \"getFile\": () => (/* binding */ getFile),\n/* harmony export */ \"overwriteFile\": () => (/* binding */ overwriteFile),\n/* harmony export */ \"saveFileInContainer\": () => (/* binding */ saveFileInContainer)\n/* harmony export */ });\n/* harmony import */ var _fetcher_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../fetcher.mjs */ \"./node_modules/@inrupt/solid-client/dist/fetcher.mjs\");\n/* harmony import */ var _interfaces_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../interfaces.mjs */ \"./node_modules/@inrupt/solid-client/dist/interfaces.mjs\");\n/* harmony import */ var _interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../interfaces.internal.mjs */ \"./node_modules/@inrupt/solid-client/dist/interfaces.internal.mjs\");\n/* harmony import */ var _resource_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./resource.mjs */ \"./node_modules/@inrupt/solid-client/dist/resource/resource.mjs\");\n/* harmony import */ var _resource_internal_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./resource.internal.mjs */ \"./node_modules/@inrupt/solid-client/dist/resource/resource.internal.mjs\");\n\n\n\n\n\n\n/**\r\n * Copyright 2021 Inrupt Inc.\r\n *\r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"Software\"), to deal in\r\n * the Software without restriction, including without limitation the rights to use,\r\n * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\r\n * Software, and to permit persons to whom the Software is furnished to do so,\r\n * subject to the following conditions:\r\n *\r\n * The above copyright notice and this permission notice shall be included in\r\n * all copies or substantial portions of the Software.\r\n *\r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\r\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\r\n * PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r\n * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\r\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\r\n * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r\n */\r\nconst defaultGetFileOptions = {\r\n fetch: _fetcher_mjs__WEBPACK_IMPORTED_MODULE_0__.fetch,\r\n};\r\nconst RESERVED_HEADERS = [\"Slug\", \"If-None-Match\", \"Content-Type\"];\r\n/**\r\n * Some of the headers must be set by the library, rather than directly.\r\n */\r\nfunction containsReserved(header) {\r\n return RESERVED_HEADERS.some((reserved) => header[reserved] !== undefined);\r\n}\r\n/**\r\n * ```{note} This function is still experimental and subject to change, even in a non-major release.\r\n * ```\r\n *\r\n * Retrieves a file from a URL and returns the file as a blob.\r\n *\r\n * For example:\r\n *\r\n * ```\r\n * const fileBlob = await getFile(\"https://pod.example.com/some/file\", { fetch: fetch });\r\n * ```\r\n *\r\n * For additional examples, see\r\n * [Read/Write Files](https://docs.inrupt.com/developer-tools/javascript/client-libraries/tutorial/read-write-files/#retrieve-a-file).\r\n *\r\n * @param url The URL of the file to return\r\n * @param options Fetching options: a custom fetcher and/or headers.\r\n * @returns The file as a blob.\r\n */\r\nasync function getFile(input, options = defaultGetFileOptions) {\r\n const config = Object.assign(Object.assign({}, defaultGetFileOptions), options);\r\n const url = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_toIriString)(input);\r\n const response = await config.fetch(url, config.init);\r\n if ((0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_isUnsuccessfulResponse)(response)) {\r\n throw new _resource_mjs__WEBPACK_IMPORTED_MODULE_3__.FetchError(`Fetching the File failed: [${response.status}] [${response.statusText}].`, response);\r\n }\r\n const resourceInfo = (0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_parseResourceInfo)(response);\r\n const data = await response.blob();\r\n const fileWithResourceInfo = Object.assign(data, {\r\n internal_resourceInfo: resourceInfo,\r\n });\r\n return fileWithResourceInfo;\r\n}\r\n/**\r\n * ```{note} This function is still experimental and subject to change, even in a non-major release.\r\n * ```\r\n * Deletes a file at a given URL.\r\n *\r\n * For example:\r\n *\r\n * ```\r\n * await deleteFile( \"https://pod.example.com/some/file\", { fetch: fetch });\r\n * ```\r\n *\r\n * For additional examples, see\r\n * [Read/Write Files](https://docs.inrupt.com/developer-tools/javascript/client-libraries/tutorial/read-write-files/#delete-a-file).\r\n *\r\n * @param file The URL of the file to delete\r\n */\r\nasync function deleteFile(file, options = defaultGetFileOptions) {\r\n const config = Object.assign(Object.assign({}, defaultGetFileOptions), options);\r\n const url = (0,_interfaces_mjs__WEBPACK_IMPORTED_MODULE_4__.hasResourceInfo)(file)\r\n ? (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_toIriString)((0,_resource_mjs__WEBPACK_IMPORTED_MODULE_3__.getSourceIri)(file))\r\n : (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_toIriString)(file);\r\n const response = await config.fetch(url, Object.assign(Object.assign({}, config.init), { method: \"DELETE\" }));\r\n if ((0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_isUnsuccessfulResponse)(response)) {\r\n throw new _resource_mjs__WEBPACK_IMPORTED_MODULE_3__.FetchError(`Deleting the file at [${url}] failed: [${response.status}] [${response.statusText}].`, response);\r\n }\r\n}\r\n/**\r\n * ```{note} This function is still experimental and subject to change, even in a non-major release.\r\n * ```\r\n *\r\n * Saves a file in an existing folder/Container associated with the given URL.\r\n *\r\n * For example:\r\n *\r\n * ```\r\n * const savedFile = await saveFileInContainer(\r\n * \"https://pod.example.com/some/existing/container/\",\r\n * new Blob([\"This is a plain piece of text\"], { type: \"plain/text\" }),\r\n * { slug: \"suggestedFileName.txt\", contentType: \"text/plain\", fetch: fetch }\r\n * );\r\n * ```\r\n *\r\n * For additional example, see\r\n * [Read/Write Files](https://docs.inrupt.com/developer-tools/javascript/client-libraries/tutorial/read-write-files/#save-a-file-into-an-existing-container).\r\n *\r\n * In the `options` parameter,\r\n *\r\n * - You can suggest a file name in the `slug` field. However, the Solid\r\n * Server may or may not use the suggested `slug` as the file name.\r\n *\r\n * - *Recommended:* You can specify the [media type](https://developer.mozilla.org/en-US/docs/Glossary/MIME_type)\r\n * of the file in the `contentType`. If unspecified, the function uses the default type of\r\n * `application/octet-stream`, indicating a binary data file.\r\n *\r\n * The function saves a file into an *existing* Container. If the\r\n * Container does not exist, either:\r\n * - Create the Container first using [[createContainerAt]], and then\r\n * use the function, or\r\n * - Use [[overwriteFile]] to save the file. [[overwriteFile]] creates\r\n * the Containers in the saved file path as needed.\r\n *\r\n * Users who only have `Append` but not `Write` access to a Container\r\n * can use [[saveFileInContainer]] to save new files to the Container.\r\n * That is, [[saveFileInContainer]] is useful in situations where users\r\n * can add new files to a Container but not change existing files in\r\n * the Container, such as users given access to send notifications to\r\n * another's Pod but not to view or delete existing notifications in that Pod.\r\n *\r\n * Users with `Write` access to the given folder/Container may prefer to\r\n * use [[overwriteFile]].\r\n *\r\n * @param folderUrl The URL of an existing folder where the new file is saved.\r\n * @param file The file to be written.\r\n * @param options Additional parameters for file creation (e.g. a slug).\r\n * @returns A Promise that resolves to the saved file, if available, or `null` if the current user does not have Read access to the newly-saved file. It rejects if saving fails.\r\n */\r\nasync function saveFileInContainer(folderUrl, file, options = defaultGetFileOptions) {\r\n const folderUrlString = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_toIriString)(folderUrl);\r\n const response = await writeFile(folderUrlString, file, \"POST\", options);\r\n if ((0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_isUnsuccessfulResponse)(response)) {\r\n throw new _resource_mjs__WEBPACK_IMPORTED_MODULE_3__.FetchError(`Saving the file in [${folderUrl}] failed: [${response.status}] [${response.statusText}].`, response);\r\n }\r\n const locationHeader = response.headers.get(\"Location\");\r\n if (locationHeader === null) {\r\n throw new Error(\"Could not determine the location of the newly saved file.\");\r\n }\r\n const fileIri = new URL(locationHeader, new URL(folderUrlString).origin).href;\r\n const blobClone = (0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_cloneResource)(file);\r\n const resourceInfo = {\r\n internal_resourceInfo: {\r\n isRawData: true,\r\n sourceIri: fileIri,\r\n contentType: getContentType(file, options.contentType),\r\n },\r\n };\r\n return Object.assign(blobClone, resourceInfo);\r\n}\r\n/**\r\n * ```{note} This function is still experimental and subject to change, even in a non-major release.\r\n * ```\r\n *\r\n * Saves a file at a given URL. If a file already exists at the URL,\r\n * the function overwrites the existing file.\r\n *\r\n * For example:\r\n *\r\n * ```\r\n * const savedFile = await overwriteFile(\r\n * \"https://pod.example.com/some/container/myFile.txt\",\r\n * new Blob([\"This is a plain piece of text\"], { type: \"plain/text\" }),\r\n * { contentType: \"text/plain\", fetch: fetch }\r\n * );\r\n * ```\r\n *\r\n * For additional example, see\r\n * [Read/Write Files](https://docs.inrupt.com/developer-tools/javascript/client-libraries/tutorial/read-write-files/#write-a-file-to-a-specific-url).\r\n *\r\n * *Recommended:* In the `options` parameter, you can specify the\r\n * [media type](https://developer.mozilla.org/en-US/docs/Glossary/MIME_type)\r\n * of the file in the `contentType`. If unspecified, the function uses the default type of\r\n * `application/octet-stream`, indicating a binary data file.\r\n *\r\n * When saving a file with [[overwriteFile]], the Solid server creates any\r\n * intermediary Containers as needed; i.e., the Containers do not\r\n * need to be created in advance. For example, when saving a file to the target URL of\r\n * https://example.pod/container/resource, if https://example.pod/container/ does not exist,\r\n * the container is created as part of the save.\r\n *\r\n * @param fileUrl The URL where the file is saved.\r\n * @param file The file to be written.\r\n * @param options Additional parameters for file creation (e.g., media type).\r\n */\r\nasync function overwriteFile(fileUrl, file, options = defaultGetFileOptions) {\r\n const fileUrlString = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_toIriString)(fileUrl);\r\n const response = await writeFile(fileUrlString, file, \"PUT\", options);\r\n if ((0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_isUnsuccessfulResponse)(response)) {\r\n throw new _resource_mjs__WEBPACK_IMPORTED_MODULE_3__.FetchError(`Overwriting the file at [${fileUrlString}] failed: [${response.status}] [${response.statusText}].`, response);\r\n }\r\n const blobClone = (0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_cloneResource)(file);\r\n const resourceInfo = (0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_parseResourceInfo)(response);\r\n resourceInfo.sourceIri = fileUrlString;\r\n resourceInfo.isRawData = true;\r\n return Object.assign(blobClone, { internal_resourceInfo: resourceInfo });\r\n}\r\nfunction isHeadersArray(headers) {\r\n return Array.isArray(headers);\r\n}\r\n/**\r\n * The return type of this function is misleading: it should ONLY be used to check\r\n * whether an object has a forEach method that returns pairs.\r\n *\r\n * @param headers A headers object that might have a forEach\r\n */\r\nfunction hasHeadersObjectForEach(headers) {\r\n return typeof headers.forEach === \"function\";\r\n}\r\n/**\r\n * @hidden\r\n * This function feels unnecessarily complicated, but is required in order to\r\n * have Headers according to type definitions in both Node and browser environments.\r\n * This might require a fix upstream to be cleaned up.\r\n *\r\n * @param headersToFlatten A structure containing headers potentially in several formats\r\n */\r\nfunction flattenHeaders(headersToFlatten) {\r\n if (typeof headersToFlatten === \"undefined\") {\r\n return {};\r\n }\r\n let flatHeaders = {};\r\n if (isHeadersArray(headersToFlatten)) {\r\n headersToFlatten.forEach(([key, value]) => {\r\n flatHeaders[key] = value;\r\n });\r\n // Note that the following line must be a elsif, because string[][] has a forEach,\r\n // but it returns string[] instead of \r\n }\r\n else if (hasHeadersObjectForEach(headersToFlatten)) {\r\n headersToFlatten.forEach((value, key) => {\r\n flatHeaders[key] = value;\r\n });\r\n }\r\n else {\r\n // If the headers are already a Record,\r\n // they can directly be returned.\r\n flatHeaders = headersToFlatten;\r\n }\r\n return flatHeaders;\r\n}\r\n/**\r\n * Internal function that performs the actual write HTTP query, either POST\r\n * or PUT depending on the use case.\r\n *\r\n * @param fileUrl The URL where the file is saved\r\n * @param file The file to be written\r\n * @param method The HTTP method\r\n * @param options Additional parameters for file creation (e.g. a slug, or media type)\r\n */\r\nasync function writeFile(targetUrl, file, method, options) {\r\n var _a, _b;\r\n const config = Object.assign(Object.assign({}, defaultGetFileOptions), options);\r\n const headers = flattenHeaders((_b = (_a = config.init) === null || _a === void 0 ? void 0 : _a.headers) !== null && _b !== void 0 ? _b : {});\r\n if (containsReserved(headers)) {\r\n throw new Error(`No reserved header (${RESERVED_HEADERS.join(\", \")}) should be set in the optional RequestInit.`);\r\n }\r\n // If a slug is in the parameters, set the request headers accordingly\r\n if (config.slug !== undefined) {\r\n headers[\"Slug\"] = config.slug;\r\n }\r\n headers[\"Content-Type\"] = getContentType(file, options.contentType);\r\n const targetUrlString = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_toIriString)(targetUrl);\r\n return await config.fetch(targetUrlString, Object.assign(Object.assign({}, config.init), { headers,\r\n method, body: file }));\r\n}\r\nfunction getContentType(file, contentTypeOverride) {\r\n if (typeof contentTypeOverride === \"string\") {\r\n return contentTypeOverride;\r\n }\r\n const fileType = typeof file === \"object\" &&\r\n file !== null &&\r\n typeof file.type === \"string\" &&\r\n file.type.length > 0\r\n ? file.type\r\n : undefined;\r\n return fileType !== null && fileType !== void 0 ? fileType : \"application/octet-stream\";\r\n}\n\n\n\n\n//# sourceURL=webpack://my-demo-app/./node_modules/@inrupt/solid-client/dist/resource/file.mjs?"); + +/***/ }), + /***/ "./node_modules/@inrupt/solid-client/dist/resource/iri.internal.mjs": /*!**************************************************************************!*\ !*** ./node_modules/@inrupt/solid-client/dist/resource/iri.internal.mjs ***! @@ -927,7 +938,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpac /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _inrupt_solid_client_authn_browser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @inrupt/solid-client-authn-browser */ \"./node_modules/@inrupt/solid-client-authn-browser/dist/index.js\");\n/* harmony import */ var _inrupt_solid_client_authn_browser__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_inrupt_solid_client_authn_browser__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _inrupt_solid_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @inrupt/solid-client */ \"./node_modules/@inrupt/solid-client/dist/resource/solidDataset.mjs\");\n/* harmony import */ var _inrupt_solid_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @inrupt/solid-client */ \"./node_modules/@inrupt/solid-client/dist/thing/thing.mjs\");\n/* harmony import */ var _inrupt_solid_client__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @inrupt/solid-client */ \"./node_modules/@inrupt/solid-client/dist/thing/get.mjs\");\n/* harmony import */ var _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @inrupt/vocab-common-rdf */ \"./node_modules/@inrupt/vocab-common-rdf/dist/index.es.js\");\n// Import from \"@inrupt/solid-client-authn-browser\"\n\n\n// Import from \"@inrupt/solid-client\"\n\n\n\n\nconst buttonLogin = document.querySelector(\"#btnLogin\");\nconst buttonRead = document.querySelector(\"#btnRead\");\n\n// 1a. Start Login Process. Call login() function.\nfunction loginToInruptDotCom() {\n return (0,_inrupt_solid_client_authn_browser__WEBPACK_IMPORTED_MODULE_0__.login)({\n\n oidcIssuer: \"https://broker.pod.inrupt.com\",\n\n redirectUrl: window.location.href,\n clientName: \"Getting started app\"\n });\n}\n\n// 1b. Login Redirect. Call handleIncomingRedirect() function.\n// When redirected after login, finish the process by retrieving session information.\nasync function handleRedirectAfterLogin() {\n await (0,_inrupt_solid_client_authn_browser__WEBPACK_IMPORTED_MODULE_0__.handleIncomingRedirect)();\n\n const session = (0,_inrupt_solid_client_authn_browser__WEBPACK_IMPORTED_MODULE_0__.getDefaultSession)();\n if (session.info.isLoggedIn) {\n // Update the page with the status.\n document.getElementById(\"labelStatus\").textContent = \"Your session is logged in.\";\n document.getElementById(\"labelStatus\").setAttribute(\"role\", \"alert\");\n }\n}\n\n// The example has the login redirect back to the index.html.\n// This calls the function to process login information.\n// If the function is called when not part of the login redirect, the function is a no-op.\nhandleRedirectAfterLogin();\n\n// 2. Read profile\nasync function readProfile() {\n const webID = document.getElementById(\"webID\").value;\n\n // The example assumes the WebID has the URI # where\n // is the URI of the SolidDataset\n // that contains profile data.\n \n // Parse ProfileDocument URI from the `webID` value.\n const profileDocumentURI = webID.split('#')[0];\n document.getElementById(\"labelProfile\").textContent = profileDocumentURI;\n\n\n // Use `getSolidDataset` to get the Profile document.\n // Profile document is public and can be read w/o authentication; i.e.: \n // - You can either omit `fetch` or \n // - You can pass in `fetch` with or without logging in first. \n // If logged in, the `fetch` is authenticated.\n // For illustrative purposes, the `fetch` is passed in.\n const myDataset = await (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_1__.getSolidDataset)(profileDocumentURI, { fetch: _inrupt_solid_client_authn_browser__WEBPACK_IMPORTED_MODULE_0__.fetch });\n\n // Get the Profile data from the retrieved SolidDataset\n const profile = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_2__.getThing)(myDataset, webID);\n\n // Get the formatted name using `VCARD.fn` convenience object.\n // `VCARD.fn` includes the identifier string \"http://www.w3.org/2006/vcard/ns#fn\".\n // As an alternative, you can pass in the \"http://www.w3.org/2006/vcard/ns#fn\" string instead of `VCARD.fn`.\n \n const fn = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_3__.getStringNoLocale)(profile, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.VCARD.fn);\n\n // Get the role using `VCARD.role` convenience object.\n // `VCARD.role` includes the identifier string \"http://www.w3.org/2006/vcard/ns#role\"\n // As an alternative, you can pass in the \"http://www.w3.org/2006/vcard/ns#role\" string instead of `VCARD.role`.\n\n const role = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_3__.getStringNoLocale)(profile, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.VCARD.role);\n\n // Update the page with the retrieved values.\n document.getElementById(\"labelFN\").textContent = fn;\n document.getElementById(\"labelRole\").textContent = role;\n}\n\n\n\nconst MY_POD_URL = \"https://example.com/mypod/\";\n\n// Upload selected files to Pod\nfunction handleFiles() {\n const fileList = document.getElementById('fileinput').files;\n\n fileList.forEach(file => {\n writeFileToPod(file, `${MY_POD_URL}uploadedFiles/${file.name}`, _inrupt_solid_client_authn_browser__WEBPACK_IMPORTED_MODULE_0__.fetch);\n });\n}\n\n// Upload File to the targetFileURL.\n// If the targetFileURL exists, overwrite the file.\n// If the targetFileURL does not exist, create the file at the location.\nasync function writeFileToPod(file, targetFileURL, fetch ) {\n try {\n const savedFile = await overwriteFile( \n targetFileURL, // URL for the file.\n file, // File\n { contentType: file.type, fetch: fetch } // mimetype if known, fetch from the authenticated session\n );\n console.log(`File saved at ${getSourceUrl(savedFile)}`);\n\n } catch (error) {\n console.error(error);\n }\n}\n\nlet dropArea = document.querySelector(\"#file-drop-zone\");\ndropArea.addEventListener('drop', handleFileDrop, false);\n\nfunction handleDropFiles(files)\n{\n console.log(\"file(s) to upload:\");\n for (let file of files)\n {\n console.log(file.name);\n let reader = new FileReader();\n reader.onload = function(e) \n {\n let rawData = reader.result;\n console.log(rawData);\n };\n reader.readAsText(file);\n }\n}\n\n\nfunction handleFileDrop(e)\n{\n // e.preventDefault();\n if(e.dataTransfer && e.dataTransfer.files.length != 0)\n {\n let files = e.dataTransfer.files; //Array of filenames\n console.log(\"file(s) to upload:\");\n for (let file of files)\n {\n console.log(file.name);\n // let reader = new FileReader();\n // reader.onload = function(e) \n // {\n // let rawData = reader.result;\n // console.log(rawData);\n // };\n // reader.readAsText(file);\n \n }\n }\n else\n {\n console.error(\"drag and drop not supported\");\n }\n\n console.log(e);\n // return false;\n}\n\n['dragenter', 'dragover', 'dragleave'].forEach(eventName => {\n dropArea.addEventListener(eventName, preventDefaults, false)\n});\n\n['dragenter', 'dragover'].forEach(eventName => {\n dropArea.addEventListener(eventName, highlight, false);\n});\n\n['dragleave', 'drop'].forEach(eventName => {\n dropArea.addEventListener(eventName, unhighlight, false);\n});\n\nfunction highlight()\n{\n dropArea.classList.add('drop-zone-hover');\n}\n\nfunction unhighlight()\n{\n dropArea.classList.remove('drop-zone-hover');\n}\n\nfunction preventDefaults (e) {\n e.preventDefault()\n e.stopPropagation()\n}\n\n\nbuttonLogin.onclick = function() { \n loginToInruptDotCom();\n};\n\nbuttonRead.onclick = function() { \n readProfile();\n};\n\n//# sourceURL=webpack://my-demo-app/./src/index.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _inrupt_solid_client_authn_browser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @inrupt/solid-client-authn-browser */ \"./node_modules/@inrupt/solid-client-authn-browser/dist/index.js\");\n/* harmony import */ var _inrupt_solid_client_authn_browser__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_inrupt_solid_client_authn_browser__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _inrupt_solid_client__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @inrupt/solid-client */ \"./node_modules/@inrupt/solid-client/dist/resource/solidDataset.mjs\");\n/* harmony import */ var _inrupt_solid_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @inrupt/solid-client */ \"./node_modules/@inrupt/solid-client/dist/thing/thing.mjs\");\n/* harmony import */ var _inrupt_solid_client__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @inrupt/solid-client */ \"./node_modules/@inrupt/solid-client/dist/thing/get.mjs\");\n/* harmony import */ var _inrupt_solid_client__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @inrupt/solid-client */ \"./node_modules/@inrupt/solid-client/dist/resource/resource.mjs\");\n/* harmony import */ var _inrupt_solid_client__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @inrupt/solid-client */ \"./node_modules/@inrupt/solid-client/dist/resource/file.mjs\");\n/* harmony import */ var _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @inrupt/vocab-common-rdf */ \"./node_modules/@inrupt/vocab-common-rdf/dist/index.es.js\");\n// Import from \"@inrupt/solid-client-authn-browser\"\n\n\n// Import from \"@inrupt/solid-client\"\n\n\n\n\n\n\nlet droppedFiles = [];\nlet MY_POD_URL = null;\n\n\nconst buttonLogin = document.querySelector(\"#btnLogin\");\nconst buttonRead = document.querySelector(\"#btnRead\");\n\n// 1a. Start Login Process. Call login() function.\nfunction loginToInruptDotCom() {\n return (0,_inrupt_solid_client_authn_browser__WEBPACK_IMPORTED_MODULE_0__.login)({\n\n //oidcIssuer: \"https://broker.pod.inrupt.com\",\n oidcIssuer: \"https://solidweb.org/\",\n\n redirectUrl: window.location.href,\n clientName: \"Getting started app\"\n });\n}\n\n// 1b. Login Redirect. Call handleIncomingRedirect() function.\n// When redirected after login, finish the process by retrieving session information.\nasync function handleRedirectAfterLogin() {\n await (0,_inrupt_solid_client_authn_browser__WEBPACK_IMPORTED_MODULE_0__.handleIncomingRedirect)();\n\n const session = (0,_inrupt_solid_client_authn_browser__WEBPACK_IMPORTED_MODULE_0__.getDefaultSession)();\n if (session.info.isLoggedIn) {\n // Update the page with the status.\n document.getElementById(\"labelStatus\").textContent = \"Your session is logged in.\";\n document.getElementById(\"labelStatus\").setAttribute(\"role\", \"alert\");\n }\n}\n\n// The example has the login redirect back to the index.html.\n// This calls the function to process login information.\n// If the function is called when not part of the login redirect, the function is a no-op.\nhandleRedirectAfterLogin();\n\n// 2. Read profile\nasync function readProfile() {\n const webID = document.getElementById(\"webID\").value;\n MY_POD_URL = getPODUrl(webID);\n\n // The example assumes the WebID has the URI # where\n // is the URI of the SolidDataset\n // that contains profile data.\n \n // Parse ProfileDocument URI from the `webID` value.\n const profileDocumentURI = webID.split('#')[0];\n document.getElementById(\"labelProfile\").textContent = profileDocumentURI;\n\n\n // Use `getSolidDataset` to get the Profile document.\n // Profile document is public and can be read w/o authentication; i.e.: \n // - You can either omit `fetch` or \n // - You can pass in `fetch` with or without logging in first. \n // If logged in, the `fetch` is authenticated.\n // For illustrative purposes, the `fetch` is passed in.\n const myDataset = await (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_1__.getSolidDataset)(profileDocumentURI, { fetch: _inrupt_solid_client_authn_browser__WEBPACK_IMPORTED_MODULE_0__.fetch });\n\n // Get the Profile data from the retrieved SolidDataset\n const profile = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_2__.getThing)(myDataset, webID);\n\n // Get the formatted name using `VCARD.fn` convenience object.\n // `VCARD.fn` includes the identifier string \"http://www.w3.org/2006/vcard/ns#fn\".\n // As an alternative, you can pass in the \"http://www.w3.org/2006/vcard/ns#fn\" string instead of `VCARD.fn`.\n \n const fn = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_3__.getStringNoLocale)(profile, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.VCARD.fn);\n\n // Get the role using `VCARD.role` convenience object.\n // `VCARD.role` includes the identifier string \"http://www.w3.org/2006/vcard/ns#role\"\n // As an alternative, you can pass in the \"http://www.w3.org/2006/vcard/ns#role\" string instead of `VCARD.role`.\n\n const role = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_3__.getStringNoLocale)(profile, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.VCARD.role);\n\n // Update the page with the retrieved values.\n document.getElementById(\"labelFN\").textContent = fn;\n document.getElementById(\"labelRole\").textContent = role;\n}\n\n\n\nlet uploadBtn = document.querySelector(\"#upload-file-btn\");\nuploadBtn.onclick = function(){\n uploadFiles();\n}\n\n\n\nconst solidwebPattern = \"https:\\/\\/(\\w+\\.)solidweb.org\\/\";\nconst podInruptPattern = \"https:\\/\\/pod\\.inrupt\\.com\\/\\w+\\/\";\n\nconst tempPodPattern = /https:\\/\\/(\\w+\\.)solidweb.org\\/|https:\\/\\/pod\\.inrupt\\.com\\/\\w+\\//;\n\n function getPODUrl(provider)\n{\n\n const podURL = provider.match(tempPodPattern)[0];\n return podURL;\n // TODO: create enums for provider types and urls\n /*\n if (provider == \"https://pod.inrupt.com\")\n {\n return provider + \"/\" + pseudo + \"/\";\n }\n */\n\n}\n\n\n// Upload selected files to Pod\nfunction uploadFiles() \n{\n console.log(\"uploading files ...\");\n // const fileList = document.getElementById('file-drop-zone').files;\n for (let file of droppedFiles)\n {\n placeFileInContainer(file, `${MY_POD_URL}`);\n //writeFileToPod(file, `${MY_POD_URL}/${file.name}`, fetch);\n }\n}\n\n// Upload File to the targetFileURL.\n// If the targetFileURL exists, overwrite the file.\n// If the targetFileURL does not exist, create the file at the location.\nasync function writeFileToPod(file, targetFileURL, fetch ) \n{\n console.log(\"writing\", file.name, \"to the POD ...\");\n try \n {\n const savedFile = await overwriteFile( \n targetFileURL, // URL for the file.\n file, // File\n { contentType: file.type, fetch: fetch } // mimetype if known, fetch from the authenticated session\n );\n console.log(`File saved at ${(0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_5__.getSourceUrl)(savedFile)}`);\n } \n catch (error) \n {\n console.error(error);\n }\n}\n\n// Upload file into the targetContainer.\nasync function placeFileInContainer(file, targetContainerURL) {\n try {\n const savedFile = await (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_6__.saveFileInContainer)(\n targetContainerURL, // Container URL\n file, // File \n { slug: file.name.split('.')[0], \n contentType: file.type, fetch: _inrupt_solid_client_authn_browser__WEBPACK_IMPORTED_MODULE_0__.fetch }\n );\n console.log(`File saved at ${(0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_5__.getSourceUrl)(savedFile)}`);\n } catch (error) {\n console.error(error);\n }\n}\n\nlet dropArea = document.querySelector(\"#file-drop-zone\");\ndropArea.addEventListener('drop', handleFileDrop, false);\n\n\nfunction handleFileDrop(e)\n{\n // e.preventDefault();\n if(e.dataTransfer && e.dataTransfer.files.length != 0)\n {\n droppedFiles = e.dataTransfer.files; //Array of filenames\n console.log(\"dropped file(s):\");\n for (let file of droppedFiles)\n {\n console.log(file.name);\n }\n }\n else\n {\n console.error(\"drag and drop not supported\");\n }\n\n console.log(e);\n // return false;\n}\n\n['dragenter', 'dragover', 'dragleave'].forEach(eventName => {\n dropArea.addEventListener(eventName, preventDefaults, false)\n});\n\n['dragenter', 'dragover'].forEach(eventName => {\n dropArea.addEventListener(eventName, highlight, false);\n});\n\n['dragleave', 'drop'].forEach(eventName => {\n dropArea.addEventListener(eventName, unhighlight, false);\n});\n\nfunction highlight()\n{\n dropArea.classList.add('drop-zone-hover');\n}\n\nfunction unhighlight()\n{\n dropArea.classList.remove('drop-zone-hover');\n}\n\nfunction preventDefaults (e) {\n e.preventDefault()\n e.stopPropagation()\n}\n\n\nbuttonLogin.onclick = function() { \n loginToInruptDotCom();\n};\n\nbuttonRead.onclick = function() { \n readProfile();\n};\n\n// const uploadBtn = document.querySelector(\"#upload-file-btn\");\n\n\n\n//# sourceURL=webpack://my-demo-app/./src/index.js?"); /***/ }) diff --git a/my-demo-app/src/index.js b/my-demo-app/src/index.js index e2de2b0..bba14e7 100644 --- a/my-demo-app/src/index.js +++ b/my-demo-app/src/index.js @@ -10,14 +10,22 @@ import { import { getSolidDataset, getThing, - getStringNoLocale + getStringNoLocale, + // write data + setThing, + saveSolidDatasetAt, + // added to upload image to pod + saveFileInContainer, + getSourceUrl, + setStringNoLocale } from '@inrupt/solid-client'; -import { VCARD } from '@inrupt/vocab-common-rdf'; +import {FOAF, VCARD } from '@inrupt/vocab-common-rdf'; let droppedFiles = []; +let MY_POD_URL = null; const buttonLogin = document.querySelector("#btnLogin"); @@ -27,7 +35,8 @@ const buttonRead = document.querySelector("#btnRead"); function loginToInruptDotCom() { return login({ - oidcIssuer: "https://broker.pod.inrupt.com", + //oidcIssuer: "https://broker.pod.inrupt.com", + oidcIssuer: "https://solidweb.org/", redirectUrl: window.location.href, clientName: "Getting started app" @@ -55,6 +64,7 @@ handleRedirectAfterLogin(); // 2. Read profile async function readProfile() { const webID = document.getElementById("webID").value; + MY_POD_URL = getPODUrl(webID); // The example assumes the WebID has the URI # where // is the URI of the SolidDataset @@ -100,19 +110,27 @@ uploadBtn.onclick = function(){ uploadFiles(); } -const MY_POD_URL = "https://pod.inrupt.com/wepodrom/"; -// function getPODUrl(provider, pseudo) -// { -// // TODO: create enums for provider types and urls -// if (provider == "https://pod.inrupt.com") -// { -// return provider + "/" + pseudo + "/"; -// } +const solidwebPattern = "https:\/\/(\w+\.)solidweb.org\/"; +const podInruptPattern = "https:\/\/pod\.inrupt\.com\/\w+\/"; -// return null; -// } +const tempPodPattern = /https:\/\/(\w+\.)solidweb.org\/|https:\/\/pod\.inrupt\.com\/\w+\//; + + function getPODUrl(provider) +{ + + const podURL = provider.match(tempPodPattern)[0]; + return podURL; + // TODO: create enums for provider types and urls + /* + if (provider == "https://pod.inrupt.com") + { + return provider + "/" + pseudo + "/"; + } + */ + +} // Upload selected files to Pod @@ -122,7 +140,8 @@ function uploadFiles() // const fileList = document.getElementById('file-drop-zone').files; for (let file of droppedFiles) { - writeFileToPod(file, `${MY_POD_URL}/${file.name}`, fetch); + placeFileInContainer(file, `${MY_POD_URL}`); + //writeFileToPod(file, `${MY_POD_URL}/${file.name}`, fetch); } } @@ -147,6 +166,21 @@ async function writeFileToPod(file, targetFileURL, fetch ) } } +// Upload file into the targetContainer. +async function placeFileInContainer(file, targetContainerURL) { + try { + const savedFile = await saveFileInContainer( + targetContainerURL, // Container URL + file, // File + { slug: file.name.split('.')[0], + contentType: file.type, fetch: fetch } + ); + console.log(`File saved at ${getSourceUrl(savedFile)}`); + } catch (error) { + console.error(error); + } +} + let dropArea = document.querySelector("#file-drop-zone"); dropArea.addEventListener('drop', handleFileDrop, false); From 3632c6882a2bf8f6e5fe630508ad55dca23e28ab Mon Sep 17 00:00:00 2001 From: Lndh <17167523+LndH@users.noreply.github.com> Date: Wed, 7 Jul 2021 16:19:31 +0200 Subject: [PATCH 3/4] added multiple file thumbnail preview --- my-demo-app/dist/index.html | 11 +++++++---- my-demo-app/dist/my-demo.css | 8 ++++++++ my-demo-app/src/index.js | 10 ++++++++++ 3 files changed, 25 insertions(+), 4 deletions(-) diff --git a/my-demo-app/dist/index.html b/my-demo-app/dist/index.html index 9b17d54..7246f5d 100644 --- a/my-demo-app/dist/index.html +++ b/my-demo-app/dist/index.html @@ -37,12 +37,15 @@

with Inrupt JavaScript Client Libraries

-

Drop a file

- + + +
+
+ + +
\ No newline at end of file diff --git a/my-demo-app/dist/my-demo.css b/my-demo-app/dist/my-demo.css index 4c72079..acfa695 100644 --- a/my-demo-app/dist/my-demo.css +++ b/my-demo-app/dist/my-demo.css @@ -57,9 +57,17 @@ dd { { outline-style: dashed; outline-color: transparent; + background-color: #ddd; + width: 400px; + height: 200px; } .drop-zone-hover { outline-color: grey; +} + +.img-thumbnail{ + width: 200px; + height: auto; } \ No newline at end of file diff --git a/my-demo-app/src/index.js b/my-demo-app/src/index.js index bba14e7..a7c1178 100644 --- a/my-demo-app/src/index.js +++ b/my-demo-app/src/index.js @@ -183,6 +183,7 @@ async function placeFileInContainer(file, targetContainerURL) { let dropArea = document.querySelector("#file-drop-zone"); dropArea.addEventListener('drop', handleFileDrop, false); +let previewArea = document.getElementById("preview-zone"); function handleFileDrop(e) @@ -195,6 +196,13 @@ function handleFileDrop(e) for (let file of droppedFiles) { console.log(file.name); + //img_preview.src = URL.createObjectURL(file); + let img_el = document.createElement("img"); + img_el.src = URL.createObjectURL(file); + img_el.classList.add("img-thumbnail"); + previewArea.appendChild(img_el); + + } } else @@ -206,6 +214,8 @@ function handleFileDrop(e) // return false; } + + ['dragenter', 'dragover', 'dragleave'].forEach(eventName => { dropArea.addEventListener(eventName, preventDefaults, false) }); From 3af07d4cbb437cf88b120e20dbb172e94360872e Mon Sep 17 00:00:00 2001 From: Lndh <17167523+LndH@users.noreply.github.com> Date: Wed, 7 Jul 2021 16:28:05 +0200 Subject: [PATCH 4/4] image preview is flexbox --- my-demo-app/dist/my-demo.css | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/my-demo-app/dist/my-demo.css b/my-demo-app/dist/my-demo.css index acfa695..fd300b8 100644 --- a/my-demo-app/dist/my-demo.css +++ b/my-demo-app/dist/my-demo.css @@ -67,7 +67,13 @@ dd { outline-color: grey; } +.file-preview-zone{ + display: flex; + flex-wrap: wrap; +} + .img-thumbnail{ width: 200px; - height: auto; + height: 100%; + margin: 20px; } \ No newline at end of file