/* * 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/). */ var bookmarks; /******/ (() => { // webpackBootstrap /******/ var __webpack_modules__ = ({ /***/ "./dist/src/constants.js": /*!*******************************!*\ !*** ./dist/src/constants.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 */ __Bookmark: () => (/* binding */ __Bookmark),\n/* harmony export */ __DC_UPDATED: () => (/* binding */ __DC_UPDATED),\n/* harmony export */ __crdt_createdAt: () => (/* binding */ __crdt_createdAt),\n/* harmony export */ __crdt_resource: () => (/* binding */ __crdt_resource),\n/* harmony export */ __crdt_updatedAt: () => (/* binding */ __crdt_updatedAt),\n/* harmony export */ __foafPerson: () => (/* binding */ __foafPerson),\n/* harmony export */ __forClass: () => (/* binding */ __forClass),\n/* harmony export */ __privateTypeIndex: () => (/* binding */ __privateTypeIndex),\n/* harmony export */ __publicTypeIndex: () => (/* binding */ __publicTypeIndex),\n/* harmony export */ __schemaPerson: () => (/* binding */ __schemaPerson),\n/* harmony export */ __solidTypeIndex: () => (/* binding */ __solidTypeIndex),\n/* harmony export */ __solidTypeRegistration: () => (/* binding */ __solidTypeRegistration),\n/* harmony export */ __solidUnlistedDocument: () => (/* binding */ __solidUnlistedDocument),\n/* harmony export */ __solid_instance: () => (/* binding */ __solid_instance),\n/* harmony export */ __solid_instance_container: () => (/* binding */ __solid_instance_container)\n/* harmony export */ });\nconst __forClass = \"http://www.w3.org/ns/solid/terms#forClass\";\nconst __Bookmark = 'http://www.w3.org/2002/01/bookmark#Bookmark';\nconst __privateTypeIndex = \"http://www.w3.org/ns/solid/terms#privateTypeIndex\";\nconst __publicTypeIndex = \"http://www.w3.org/ns/solid/terms#publicTypeIndex\";\nconst __solidTypeRegistration = \"http://www.w3.org/ns/solid/terms#TypeRegistration\";\nconst __solidTypeIndex = \"http://www.w3.org/ns/solid/terms#TypeIndex\";\nconst __solidUnlistedDocument = \"http://www.w3.org/ns/solid/terms#UnlistedDocument\";\nconst __solid_instance = \"http://www.w3.org/ns/solid/terms#instance\";\nconst __solid_instance_container = \"http://www.w3.org/ns/solid/terms#instanceContainer\";\nconst __DC_UPDATED = \"http://purl.org/dc/terms/updated\";\nconst __crdt_resource = \"http://soukai-solid.com/crdt/resource\";\nconst __crdt_createdAt = \"http://soukai-solid.com/crdt/createdAt\";\nconst __crdt_updatedAt = \"http://soukai-solid.com/crdt/updatedAt\";\nconst __schemaPerson = \"http://schema.org/Person\";\nconst __foafPerson = \"http://xmlns.com/foaf/0.1/Person\";\n\n\n//# sourceURL=webpack://bookmarks/./dist/src/constants.js?"); /***/ }), /***/ "./dist/src/index.js": /*!***************************!*\ !*** ./dist/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 */ Bookmark: () => (/* reexport safe */ _modules_Bookmark__WEBPACK_IMPORTED_MODULE_0__.Bookmark)\n/* harmony export */ });\n/* harmony import */ var _modules_Bookmark__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./modules/Bookmark */ \"./dist/src/modules/Bookmark.js\");\n\n\n\n//# sourceURL=webpack://bookmarks/./dist/src/index.js?"); /***/ }), /***/ "./dist/src/modules/Bookmark.js": /*!**************************************!*\ !*** ./dist/src/modules/Bookmark.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 */ Bookmark: () => (/* binding */ Bookmark)\n/* harmony export */ });\n/* harmony import */ var _inrupt_solid_client__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @inrupt/solid-client */ \"./node_modules/@inrupt/solid-client/dist/profile/webid.mjs\");\n/* harmony import */ var _inrupt_solid_client__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @inrupt/solid-client */ \"./node_modules/@inrupt/solid-client/dist/resource/solidDataset.mjs\");\n/* harmony import */ var _inrupt_solid_client__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @inrupt/solid-client */ \"./node_modules/@inrupt/solid-client/dist/thing/thing.mjs\");\n/* harmony import */ var _inrupt_solid_client__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @inrupt/solid-client */ \"./node_modules/@inrupt/solid-client/dist/thing/add.mjs\");\n/* harmony import */ var _inrupt_solid_client__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @inrupt/solid-client */ \"./node_modules/@inrupt/solid-client/dist/thing/set.mjs\");\n/* harmony import */ var _inrupt_solid_client__WEBPACK_IMPORTED_MODULE_10__ = __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/* 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 _rdfjs_data_model__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_rdfjs_data_model__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constants */ \"./dist/src/constants.js\");\n/* harmony import */ var _rezasoltani_solid_typeindex_support__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @rezasoltani/solid-typeindex-support */ \"./node_modules/@rezasoltani/solid-typeindex-support/dist/index.js\");\n/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../utils */ \"./dist/src/utils.js\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\n\n\n\n/**\n * The Bookmark class provides methods for CRUD over Bookmark resources in Solid.\n * @public\n */\nclass Bookmark {\n /**\n * Gets the registry URLs for the bookmarks for the given webId.\n *\n * @param fetch - The fetch function to use for network requests\n * @param webId - The webId of the user to get bookmark registries for\n * @param defaultPrivateBookmarkDocUrl - Where to store the bookmarks if no type registration is found\n * @returns A promise resolving to an array of registry URL strings\n * @internal\n */\n static getAllBookmarkDocUrls(fetch, webId, defaultPrivateBookmarkDocUrl) {\n return __awaiter(this, void 0, void 0, function* () {\n const privateEntriesOne = yield _rezasoltani_solid_typeindex_support__WEBPACK_IMPORTED_MODULE_2__.TypeIndexHelper.getFromTypeIndex(webId, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.BOOKMARK.Bookmark, fetch, true);\n const publicEntriesOne = yield _rezasoltani_solid_typeindex_support__WEBPACK_IMPORTED_MODULE_2__.TypeIndexHelper.getFromTypeIndex(webId, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.BOOKMARK.Bookmark, fetch, false);\n const instancesOne = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.merge)(privateEntriesOne.instances, publicEntriesOne.instances);\n const privateEntriesTwo = yield _rezasoltani_solid_typeindex_support__WEBPACK_IMPORTED_MODULE_2__.TypeIndexHelper.getFromTypeIndex(webId, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.AS.Note, fetch, true);\n const publicEntriesTwo = yield _rezasoltani_solid_typeindex_support__WEBPACK_IMPORTED_MODULE_2__.TypeIndexHelper.getFromTypeIndex(webId, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.AS.Note, fetch, false);\n const instancesTwo = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.merge)(privateEntriesTwo.instances, publicEntriesTwo.instances);\n const instances = (0,_utils__WEBPACK_IMPORTED_MODULE_3__.merge)(instancesOne, instancesTwo);\n // console.log(instances);\n if (!!instances.length) {\n return instances;\n }\n else {\n const podToUse = (yield (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_5__.getPodUrlAll)(webId, { fetch: fetch }))[0];\n const baseURL = podToUse ? podToUse : webId === null || webId === void 0 ? void 0 : webId.split(\"/profile\")[0];\n defaultPrivateBookmarkDocUrl = `${baseURL}${defaultPrivateBookmarkDocUrl !== null && defaultPrivateBookmarkDocUrl !== void 0 ? defaultPrivateBookmarkDocUrl : '/bookmarks/index.ttl'}`;\n const defaultIndexDataset = yield (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_6__.getSolidDataset)(defaultPrivateBookmarkDocUrl, { fetch: fetch });\n if (!defaultIndexDataset) {\n yield (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_6__.saveSolidDatasetAt)(defaultPrivateBookmarkDocUrl, (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_6__.createSolidDataset)(), { fetch: fetch });\n }\n yield _rezasoltani_solid_typeindex_support__WEBPACK_IMPORTED_MODULE_2__.TypeIndexHelper.registerInTypeIndex(webId, \"bookmarks_registry\", _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.BOOKMARK.Bookmark, fetch, defaultPrivateBookmarkDocUrl, false, true);\n return [defaultPrivateBookmarkDocUrl];\n }\n });\n }\n /**\n * Gets all bookmarks for the given user's webId.\n *\n * @param fetch - The fetch function to use for network requests.\n * @param webId - The user's webId.\n * @param defaultPrivateBookmarkDocUrl - The default container url\n * @returns A promise resolving to an array of the user's bookmarks.\n */\n static getAll(fetch, webId, defaultPrivateBookmarkDocUrl) {\n return __awaiter(this, void 0, void 0, function* () {\n const bookmarkDocUrls = yield this.getAllBookmarkDocUrls(fetch, webId, defaultPrivateBookmarkDocUrl);\n try {\n const all = bookmarkDocUrls.map((bookmarkDocUrl) => __awaiter(this, void 0, void 0, function* () {\n const ds = yield (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_6__.getSolidDataset)(bookmarkDocUrl, { fetch: fetch });\n // console.log('data set for', bookmarkDocUrl);\n const things = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_7__.getThingAll)(ds).filter(thing => {\n // console.log('thing', thing, thing.predicates, thing.predicates[RDF.type], thing.predicates[RDF.type].namedNodes);\n if (thing && thing.predicates && thing.predicates[_inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.RDF.type] && thing.predicates[_inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.RDF.type].namedNodes) {\n const types = thing.predicates[_inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.RDF.type].namedNodes;\n // console.log(\"thing types\", types, JSON.stringify(types));\n if (types && types.find((rdfType) => rdfType === _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.BOOKMARK.Bookmark)) {\n // console.log('found bookmark (type one)', thing.url);\n return true;\n }\n if (types && types.find((rdfType) => rdfType === \"http://www.w3.org/2002/01/bookmark#BookMark\")) {\n // console.log('found bookmark (type two)', thing.url);\n return true;\n }\n if (types && types.find((rdfType) => rdfType === _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.AS.Note)) {\n // console.log('found bookmark (type three)', thing.url);\n return true;\n }\n if (types && types.find((rdfType) => rdfType === \"http://soukai-solid.com/crdt/Metadata\")) {\n // console.log('found Soukai metadata', thing.url);\n return true;\n }\n }\n // console.log('found non-bookmark', thing.url);\n return false;\n });\n // console.log('things', things);\n const bookmarks = yield things.map(thing => this.mapBookmark(thing));\n const resources = bookmarks.filter(Bookmark => !Bookmark.url.endsWith('-metadata'));\n const metadatas = bookmarks.filter(Bookmark => Bookmark.url.endsWith('-metadata'));\n const response = resources.map(bookmark => {\n const metadata = metadatas.find((meta) => meta.resource === bookmark.url);\n return Object.assign(Object.assign(Object.assign({}, bookmark), ((metadata === null || metadata === void 0 ? void 0 : metadata.created) && { created: metadata.created })), ((metadata === null || metadata === void 0 ? void 0 : metadata.updated) && { updated: metadata.updated }));\n });\n return response;\n }));\n const allPromise = Promise.all([...all]);\n const values = (yield allPromise).flat();\n return values;\n }\n catch (error) {\n return [];\n }\n });\n }\n /**\n * Gets a bookmark by URL.\n *\n * @param url - The URL of the bookmark to get.\n * @param fetch - The fetch function to use for network requests.\n * @returns A promise resolving to the bookmark, if found, or undefined.\n */\n static get(url, fetch) {\n return __awaiter(this, void 0, void 0, function* () {\n const ds = yield (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_6__.getSolidDataset)(url, { fetch: fetch });\n const thing = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_7__.getThing)(ds, url);\n const meta = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_7__.getThing)(ds, `${url}-metadata`);\n const metadata = meta ? this.mapBookmark(meta) : undefined;\n return thing ? Object.assign(Object.assign(Object.assign({}, this.mapBookmark(thing)), ((metadata === null || metadata === void 0 ? void 0 : metadata.resource) === (thing === null || thing === void 0 ? void 0 : thing.url) && (metadata === null || metadata === void 0 ? void 0 : metadata.created) && { created: metadata === null || metadata === void 0 ? void 0 : metadata.created })), ((metadata === null || metadata === void 0 ? void 0 : metadata.resource) === (thing === null || thing === void 0 ? void 0 : thing.url) && (metadata === null || metadata === void 0 ? void 0 : metadata.updated) && { updated: metadata === null || metadata === void 0 ? void 0 : metadata.updated })) : undefined;\n });\n }\n /**\n * Deletes the bookmark at the given URL.\n *\n * @param url - The URL of the bookmark to delete.\n * @param fetch - The fetch function to use for network requests.\n * @returns A promise resolving to true if the bookmark was deleted, false otherwise.\n */\n static delete(url, fetch) {\n return __awaiter(this, void 0, void 0, function* () {\n const ds = yield (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_6__.getSolidDataset)(url, { fetch: fetch });\n const thing = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_7__.getThing)(ds, url);\n if (thing) {\n const updatedBookmarks = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_7__.removeThing)(ds, thing);\n const updatedDataset = yield (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_6__.saveSolidDatasetAt)(url, updatedBookmarks, { fetch: fetch });\n if (updatedDataset) {\n return true;\n }\n else {\n return false;\n }\n }\n else {\n return false;\n }\n });\n }\n ;\n /**\n * Creates a new bookmark.\n *\n * @param payload - The bookmark data.\n * @param fetch - The fetch function.\n * @param webId - The user's WebID.\n * @param defaultPrivateBookmarkDocUrl - Doc to store the bookmark in if no type registration is foundj\n * @returns A promise resolving to true if the bookmark was created, false otherwise.\n */\n static create(payload, fetch, webId, defaultPrivateBookmarkDocUrl) {\n return __awaiter(this, void 0, void 0, function* () {\n const { title, link, creator, topic } = payload;\n if (!(0,_utils__WEBPACK_IMPORTED_MODULE_3__.isValidUrl)(link))\n throw new Error(\"link is not a valid URL\");\n if (creator && !(0,_utils__WEBPACK_IMPORTED_MODULE_3__.isValidUrl)(creator))\n throw new Error(\"creator is not a valid URL\");\n const [bookmarkDocUrl] = yield this.getAllBookmarkDocUrls(fetch, webId, defaultPrivateBookmarkDocUrl);\n const ds = yield (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_6__.getSolidDataset)(bookmarkDocUrl, { fetch: fetch });\n let newBookmarkThing = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_7__.createThing)();\n newBookmarkThing = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_8__.addStringNoLocale)(newBookmarkThing, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.DCTERMS.title, title);\n newBookmarkThing = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_8__.addNamedNode)(newBookmarkThing, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.BOOKMARK.recalls, (0,_rdfjs_data_model__WEBPACK_IMPORTED_MODULE_0__.namedNode)(link));\n if (creator)\n newBookmarkThing = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_8__.addNamedNode)(newBookmarkThing, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.DCTERMS.creator, (0,_rdfjs_data_model__WEBPACK_IMPORTED_MODULE_0__.namedNode)(creator));\n if (topic && (0,_utils__WEBPACK_IMPORTED_MODULE_3__.isValidUrl)(topic))\n newBookmarkThing = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_8__.addNamedNode)(newBookmarkThing, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.BOOKMARK.hasTopic, (0,_rdfjs_data_model__WEBPACK_IMPORTED_MODULE_0__.namedNode)(topic));\n if (topic && !(0,_utils__WEBPACK_IMPORTED_MODULE_3__.isValidUrl)(topic))\n newBookmarkThing = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_8__.addStringNoLocale)(newBookmarkThing, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.BOOKMARK.hasTopic, topic);\n newBookmarkThing = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_8__.addStringNoLocale)(newBookmarkThing, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.DCTERMS.created, new Date().toISOString());\n newBookmarkThing = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_8__.addStringNoLocale)(newBookmarkThing, _constants__WEBPACK_IMPORTED_MODULE_1__.__DC_UPDATED, new Date().toISOString());\n newBookmarkThing = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_8__.addUrl)(newBookmarkThing, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.RDF.type, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.BOOKMARK.Bookmark);\n const updatedBookmarkList = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_7__.setThing)(ds, newBookmarkThing);\n const updatedDataset = yield (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_6__.saveSolidDatasetAt)(bookmarkDocUrl, updatedBookmarkList, { fetch: fetch });\n return updatedDataset ? true : false;\n });\n }\n /**\n * Updates a bookmark resource in a Solid pod by replacing its metadata\n * with the provided payload.\n *\n * @param url - The URL of the bookmark resource to update\n * @param payload - The updated bookmark metadata\n * @param fetch - The fetch function to use for network requests\n * @returns The updated bookmark object if successful, else undefined\n */\n static update(url, payload, fetch) {\n return __awaiter(this, void 0, void 0, function* () {\n const ds = yield (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_6__.getSolidDataset)(url, { fetch: fetch });\n let thing = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_7__.getThing)(ds, url);\n if (thing) {\n const { title, link, creator, topic } = payload;\n if (!(0,_utils__WEBPACK_IMPORTED_MODULE_3__.isValidUrl)(link))\n throw new Error(\"link is not a valid URL\");\n if (creator && !(0,_utils__WEBPACK_IMPORTED_MODULE_3__.isValidUrl)(creator))\n throw new Error(\"creator is not a valid URL\");\n thing = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_9__.setStringNoLocale)(thing, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.DCTERMS.title, title);\n thing = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_9__.setNamedNode)(thing, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.BOOKMARK.recalls, (0,_rdfjs_data_model__WEBPACK_IMPORTED_MODULE_0__.namedNode)(link));\n if (creator)\n thing = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_9__.setNamedNode)(thing, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.DCTERMS.creator, (0,_rdfjs_data_model__WEBPACK_IMPORTED_MODULE_0__.namedNode)(creator));\n if (topic && (0,_utils__WEBPACK_IMPORTED_MODULE_3__.isValidUrl)(topic))\n thing = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_9__.setNamedNode)(thing, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.BOOKMARK.hasTopic, (0,_rdfjs_data_model__WEBPACK_IMPORTED_MODULE_0__.namedNode)(topic));\n if (topic && !(0,_utils__WEBPACK_IMPORTED_MODULE_3__.isValidUrl)(topic))\n thing = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_9__.setStringNoLocale)(thing, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.BOOKMARK.hasTopic, topic);\n thing = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_9__.setStringNoLocale)(thing, _constants__WEBPACK_IMPORTED_MODULE_1__.__DC_UPDATED, new Date().toISOString());\n thing = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_9__.setUrl)(thing, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.RDF.type, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.BOOKMARK.Bookmark);\n const updatedBookmarkList = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_7__.setThing)(ds, thing);\n yield (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_6__.saveSolidDatasetAt)(url, updatedBookmarkList, { fetch: fetch });\n return this.mapBookmark(thing);\n }\n });\n }\n /**\n * Maps a Solid dataset Thing to a Bookmark interface.\n *\n * @param thing - The Thing to map\n * @returns The mapped Bookmark interface\n * @internal\n */\n static mapBookmark(thing) {\n var _a;\n const url = thing.url;\n const title = this.mapTitle(thing);\n const link = this.mapLink(thing);\n const topic = this.mapTopic(thing);\n const created = this.mapCreated(thing);\n const updated = this.mapUpdated(thing);\n const creator = this.mapCreator(thing);\n const resource = (_a = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_10__.getNamedNode)(thing, _constants__WEBPACK_IMPORTED_MODULE_1__.__crdt_resource)) === null || _a === void 0 ? void 0 : _a.value;\n const ret = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ url,\n title,\n link }, (topic && { topic })), (created && { created })), (updated && { updated })), (creator && { creator })), (resource && { resource }));\n // console.log('mapped bookmark', thing.predicates, ret);\n return ret;\n }\n /**\n * Maps the title from a Solid dataset Thing.\n *\n * @param thing - The Thing to map\n * @returns The title as a string\n * @internal\n */\n static mapTitle(thing) {\n var _a, _b, _c, _d, _e, _f;\n return ((_f = (_d = (_b = (_a = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_10__.getLiteral)(thing, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.DCTERMS.title)) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : (_c = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_10__.getLiteral)(thing, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.RDFS.label)) === null || _c === void 0 ? void 0 : _c.value) !== null && _d !== void 0 ? _d : (_e = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_10__.getLiteral)(thing, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.AS.name)) === null || _e === void 0 ? void 0 : _e.value) !== null && _f !== void 0 ? _f : \"\");\n }\n /**\n * Maps the link URL from a Solid dataset Thing.\n *\n * @param thing - The Thing to map\n * @returns The link URL as a string\n * @internal\n */\n static mapLink(thing) {\n var _a, _b, _c, _d, _e, _f;\n // console.log('mapping link', getLiteral(thing, BOOKMARK.recalls)?.value, )\n return ((_f = (_d = (_b = (_a = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_10__.getLiteral)(thing, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.BOOKMARK.recalls)) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : (_c = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_10__.getNamedNode)(thing, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.BOOKMARK.recalls)) === null || _c === void 0 ? void 0 : _c.value) !== null && _d !== void 0 ? _d : (_e = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_10__.getNamedNode)(thing, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.AS.url)) === null || _e === void 0 ? void 0 : _e.value) !== null && _f !== void 0 ? _f : \"\");\n }\n /**\n * Maps the creation date from a Solid dataset Thing.\n *\n * @param thing - The Thing to map\n * @returns The creation date as a string, if available\n * @internal\n */\n static mapCreated(thing) {\n var _a, _b, _c, _d, _e;\n return ((_d = (_b = (_a = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_10__.getLiteral)(thing, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.DCTERMS.created)) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : (_c = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_10__.getLiteral)(thing, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.AS.published)) === null || _c === void 0 ? void 0 : _c.value) !== null && _d !== void 0 ? _d : (_e = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_10__.getLiteral)(thing, _constants__WEBPACK_IMPORTED_MODULE_1__.__crdt_createdAt)) === null || _e === void 0 ? void 0 : _e.value);\n }\n /**\n * Maps the update date from a Solid dataset Thing.\n *\n * @param thing - The Thing to map\n * @returns The update date as a string, if available\n * @internal\n */\n static mapUpdated(thing) {\n var _a, _b, _c;\n return ((_b = (_a = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_10__.getLiteral)(thing, _constants__WEBPACK_IMPORTED_MODULE_1__.__DC_UPDATED)) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : (_c = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_10__.getLiteral)(thing, _constants__WEBPACK_IMPORTED_MODULE_1__.__crdt_updatedAt)) === null || _c === void 0 ? void 0 : _c.value);\n }\n /**\n * Maps the creator from a Solid dataset Thing.\n *\n * @param thing - The Thing to map\n * @returns The creator as a string, if available\n * @internal\n */\n static mapCreator(thing) {\n var _a, _b, _c, _d, _e;\n return ((_d = (_b = (_a = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_10__.getNamedNode)(thing, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.DCTERMS.creator)) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : (_c = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_10__.getNamedNode)(thing, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.AS.actor)) === null || _c === void 0 ? void 0 : _c.value) !== null && _d !== void 0 ? _d : (_e = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_10__.getNamedNode)(thing, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.FOAF.maker)) === null || _e === void 0 ? void 0 : _e.value);\n }\n /**\n * Maps the topic from a Solid dataset Thing.\n *\n * @param thing - The Thing to map\n * @returns The topic as a string, if available\n * @internal\n */\n static mapTopic(thing) {\n var _a;\n return (_a = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_10__.getNamedNode)(thing, _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_4__.BOOKMARK.hasTopic)) === null || _a === void 0 ? void 0 : _a.value;\n }\n}\n\n\n//# sourceURL=webpack://bookmarks/./dist/src/modules/Bookmark.js?"); /***/ }), /***/ "./dist/src/utils.js": /*!***************************!*\ !*** ./dist/src/utils.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 */ isValidUrl: () => (/* binding */ isValidUrl),\n/* harmony export */ merge: () => (/* binding */ merge)\n/* harmony export */ });\n/**\n * Checks if a given string is a valid URL.\n *\n * @param str - The string to check.\n * @returns True if str is a valid URL, false otherwise.\n * @internal\n */\nconst isValidUrl = (str) => {\n try {\n new URL(str);\n return true;\n }\n catch (err) {\n return false;\n }\n};\nconst merge = (a, b, predicate = (a, b) => a === b) => {\n const c = [...a]; // copy to avoid side effects\n // add all items from B to copy C if they're not already present\n b.forEach((bItem) => (c.some((cItem) => predicate(bItem, cItem)) ? null : c.push(bItem)));\n return c;\n};\n\n\n//# sourceURL=webpack://bookmarks/./dist/src/utils.js?"); /***/ }), /***/ "./node_modules/@bergos/jsonparse/jsonparse.js": /*!*****************************************************!*\ !*** ./node_modules/@bergos/jsonparse/jsonparse.js ***! \*****************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval("var { Buffer } = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")\n// Named constants with unique integer values\nvar C = {};\n// Tokens\nvar LEFT_BRACE = C.LEFT_BRACE = 0x1;\nvar RIGHT_BRACE = C.RIGHT_BRACE = 0x2;\nvar LEFT_BRACKET = C.LEFT_BRACKET = 0x3;\nvar RIGHT_BRACKET = C.RIGHT_BRACKET = 0x4;\nvar COLON = C.COLON = 0x5;\nvar COMMA = C.COMMA = 0x6;\nvar TRUE = C.TRUE = 0x7;\nvar FALSE = C.FALSE = 0x8;\nvar NULL = C.NULL = 0x9;\nvar STRING = C.STRING = 0xa;\nvar NUMBER = C.NUMBER = 0xb;\n// Tokenizer States\nvar START = C.START = 0x11;\nvar STOP = C.STOP = 0x12;\nvar TRUE1 = C.TRUE1 = 0x21;\nvar TRUE2 = C.TRUE2 = 0x22;\nvar TRUE3 = C.TRUE3 = 0x23;\nvar FALSE1 = C.FALSE1 = 0x31;\nvar FALSE2 = C.FALSE2 = 0x32;\nvar FALSE3 = C.FALSE3 = 0x33;\nvar FALSE4 = C.FALSE4 = 0x34;\nvar NULL1 = C.NULL1 = 0x41;\nvar NULL2 = C.NULL2 = 0x42;\nvar NULL3 = C.NULL3 = 0x43;\nvar NUMBER1 = C.NUMBER1 = 0x51;\nvar NUMBER3 = C.NUMBER3 = 0x53;\nvar STRING1 = C.STRING1 = 0x61;\nvar STRING2 = C.STRING2 = 0x62;\nvar STRING3 = C.STRING3 = 0x63;\nvar STRING4 = C.STRING4 = 0x64;\nvar STRING5 = C.STRING5 = 0x65;\nvar STRING6 = C.STRING6 = 0x66;\n// Parser States\nvar VALUE = C.VALUE = 0x71;\nvar KEY = C.KEY = 0x72;\n// Parser Modes\nvar OBJECT = C.OBJECT = 0x81;\nvar ARRAY = C.ARRAY = 0x82;\n// Character constants\nvar BACK_SLASH = \"\\\\\".charCodeAt(0);\nvar FORWARD_SLASH = \"\\/\".charCodeAt(0);\nvar BACKSPACE = \"\\b\".charCodeAt(0);\nvar FORM_FEED = \"\\f\".charCodeAt(0);\nvar NEWLINE = \"\\n\".charCodeAt(0);\nvar CARRIAGE_RETURN = \"\\r\".charCodeAt(0);\nvar TAB = \"\\t\".charCodeAt(0);\n\nvar STRING_BUFFER_SIZE = 64 * 1024;\n\nfunction alloc(size) {\n return Buffer.alloc ? Buffer.alloc(size) : new Buffer(size);\n}\n\nfunction Parser() {\n this.tState = START;\n this.value = undefined;\n\n this.string = undefined; // string data\n this.stringBuffer = alloc(STRING_BUFFER_SIZE);\n this.stringBufferOffset = 0;\n this.unicode = undefined; // unicode escapes\n this.highSurrogate = undefined;\n\n this.key = undefined;\n this.mode = undefined;\n this.stack = [];\n this.state = VALUE;\n this.bytes_remaining = 0; // number of bytes remaining in multi byte utf8 char to read after split boundary\n this.bytes_in_sequence = 0; // bytes in multi byte utf8 char to read\n this.temp_buffs = { \"2\": alloc(2), \"3\": alloc(3), \"4\": alloc(4) }; // for rebuilding chars split before boundary is reached\n\n // Stream offset\n this.offset = -1;\n}\n\n// Slow code to string converter (only used when throwing syntax errors)\nParser.toknam = function (code) {\n var keys = Object.keys(C);\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n if (C[key] === code) { return key; }\n }\n return code && (\"0x\" + code.toString(16));\n};\n\nvar proto = Parser.prototype;\nproto.onError = function (err) { throw err; };\nproto.charError = function (buffer, i) {\n this.tState = STOP;\n this.onError(new Error(\"Unexpected \" + JSON.stringify(String.fromCharCode(buffer[i])) + \" at position \" + i + \" in state \" + Parser.toknam(this.tState)));\n};\nproto.appendStringChar = function (char) {\n if (this.stringBufferOffset >= STRING_BUFFER_SIZE) {\n this.string += this.stringBuffer.toString('utf8');\n this.stringBufferOffset = 0;\n }\n\n this.stringBuffer[this.stringBufferOffset++] = char;\n};\nproto.appendStringBuf = function (buf, start, end) {\n var size = buf.length;\n if (typeof start === 'number') {\n if (typeof end === 'number') {\n if (end < 0) {\n // adding a negative end decreeses the size\n size = buf.length - start + end;\n } else {\n size = end - start;\n }\n } else {\n size = buf.length - start;\n }\n }\n\n if (size < 0) {\n size = 0;\n }\n\n if (this.stringBufferOffset + size > STRING_BUFFER_SIZE) {\n this.string += this.stringBuffer.toString('utf8', 0, this.stringBufferOffset);\n this.stringBufferOffset = 0;\n }\n\n buf.copy(this.stringBuffer, this.stringBufferOffset, start, end);\n this.stringBufferOffset += size;\n};\nproto.write = function (buffer) {\n if (typeof buffer === \"string\") buffer = new Buffer(buffer);\n var n;\n for (var i = 0, l = buffer.length; i < l; i++) {\n if (this.tState === START){\n n = buffer[i];\n this.offset++;\n if(n === 0x7b){ this.onToken(LEFT_BRACE, \"{\"); // {\n }else if(n === 0x7d){ this.onToken(RIGHT_BRACE, \"}\"); // }\n }else if(n === 0x5b){ this.onToken(LEFT_BRACKET, \"[\"); // [\n }else if(n === 0x5d){ this.onToken(RIGHT_BRACKET, \"]\"); // ]\n }else if(n === 0x3a){ this.onToken(COLON, \":\"); // :\n }else if(n === 0x2c){ this.onToken(COMMA, \",\"); // ,\n }else if(n === 0x74){ this.tState = TRUE1; // t\n }else if(n === 0x66){ this.tState = FALSE1; // f\n }else if(n === 0x6e){ this.tState = NULL1; // n\n }else if(n === 0x22){ // \"\n this.string = \"\";\n this.stringBufferOffset = 0;\n this.tState = STRING1;\n }else if(n === 0x2d){ this.string = \"-\"; this.tState = NUMBER1; // -\n }else{\n if (n >= 0x30 && n < 0x40) { // 1-9\n this.string = String.fromCharCode(n); this.tState = NUMBER3;\n } else if (n === 0x20 || n === 0x09 || n === 0x0a || n === 0x0d) {\n // whitespace\n } else {\n return this.charError(buffer, i);\n }\n }\n }else if (this.tState === STRING1){ // After open quote\n n = buffer[i]; // get current byte from buffer\n // check for carry over of a multi byte char split between data chunks\n // & fill temp buffer it with start of this data chunk up to the boundary limit set in the last iteration\n if (this.bytes_remaining > 0) {\n for (var j = 0; j < this.bytes_remaining; j++) {\n this.temp_buffs[this.bytes_in_sequence][this.bytes_in_sequence - this.bytes_remaining + j] = buffer[j];\n }\n\n this.appendStringBuf(this.temp_buffs[this.bytes_in_sequence]);\n this.bytes_in_sequence = this.bytes_remaining = 0;\n i = i + j - 1;\n } else if (this.bytes_remaining === 0 && n >= 128) { // else if no remainder bytes carried over, parse multi byte (>=128) chars one at a time\n if (n <= 193 || n > 244) {\n return this.onError(new Error(\"Invalid UTF-8 character at position \" + i + \" in state \" + Parser.toknam(this.tState)));\n }\n if ((n >= 194) && (n <= 223)) this.bytes_in_sequence = 2;\n if ((n >= 224) && (n <= 239)) this.bytes_in_sequence = 3;\n if ((n >= 240) && (n <= 244)) this.bytes_in_sequence = 4;\n if ((this.bytes_in_sequence + i) > buffer.length) { // if bytes needed to complete char fall outside buffer length, we have a boundary split\n for (var k = 0; k <= (buffer.length - 1 - i); k++) {\n this.temp_buffs[this.bytes_in_sequence][k] = buffer[i + k]; // fill temp buffer of correct size with bytes available in this chunk\n }\n this.bytes_remaining = (i + this.bytes_in_sequence) - buffer.length;\n i = buffer.length - 1;\n } else {\n this.appendStringBuf(buffer, i, i + this.bytes_in_sequence);\n i = i + this.bytes_in_sequence - 1;\n }\n } else if (n === 0x22) {\n this.tState = START;\n this.string += this.stringBuffer.toString('utf8', 0, this.stringBufferOffset);\n this.stringBufferOffset = 0;\n this.onToken(STRING, this.string);\n this.offset += Buffer.byteLength(this.string, 'utf8') + 1;\n this.string = undefined;\n }\n else if (n === 0x5c) {\n this.tState = STRING2;\n }\n else if (n >= 0x20) { this.appendStringChar(n); }\n else {\n return this.charError(buffer, i);\n }\n }else if (this.tState === STRING2){ // After backslash\n n = buffer[i];\n if(n === 0x22){ this.appendStringChar(n); this.tState = STRING1;\n }else if(n === 0x5c){ this.appendStringChar(BACK_SLASH); this.tState = STRING1;\n }else if(n === 0x2f){ this.appendStringChar(FORWARD_SLASH); this.tState = STRING1;\n }else if(n === 0x62){ this.appendStringChar(BACKSPACE); this.tState = STRING1;\n }else if(n === 0x66){ this.appendStringChar(FORM_FEED); this.tState = STRING1;\n }else if(n === 0x6e){ this.appendStringChar(NEWLINE); this.tState = STRING1;\n }else if(n === 0x72){ this.appendStringChar(CARRIAGE_RETURN); this.tState = STRING1;\n }else if(n === 0x74){ this.appendStringChar(TAB); this.tState = STRING1;\n }else if(n === 0x75){ this.unicode = \"\"; this.tState = STRING3;\n }else{\n return this.charError(buffer, i);\n }\n }else if (this.tState === STRING3 || this.tState === STRING4 || this.tState === STRING5 || this.tState === STRING6){ // unicode hex codes\n n = buffer[i];\n // 0-9 A-F a-f\n if ((n >= 0x30 && n < 0x40) || (n > 0x40 && n <= 0x46) || (n > 0x60 && n <= 0x66)) {\n this.unicode += String.fromCharCode(n);\n if (this.tState++ === STRING6) {\n var intVal = parseInt(this.unicode, 16);\n this.unicode = undefined;\n if (this.highSurrogate !== undefined && intVal >= 0xDC00 && intVal < (0xDFFF + 1)) { //<56320,57343> - lowSurrogate\n this.appendStringBuf(new Buffer(String.fromCharCode(this.highSurrogate, intVal)));\n this.highSurrogate = undefined;\n } else if (this.highSurrogate === undefined && intVal >= 0xD800 && intVal < (0xDBFF + 1)) { //<55296,56319> - highSurrogate\n this.highSurrogate = intVal;\n } else {\n if (this.highSurrogate !== undefined) {\n this.appendStringBuf(new Buffer(String.fromCharCode(this.highSurrogate)));\n this.highSurrogate = undefined;\n }\n this.appendStringBuf(new Buffer(String.fromCharCode(intVal)));\n }\n this.tState = STRING1;\n }\n } else {\n return this.charError(buffer, i);\n }\n } else if (this.tState === NUMBER1 || this.tState === NUMBER3) {\n n = buffer[i];\n\n switch (n) {\n case 0x30: // 0\n case 0x31: // 1\n case 0x32: // 2\n case 0x33: // 3\n case 0x34: // 4\n case 0x35: // 5\n case 0x36: // 6\n case 0x37: // 7\n case 0x38: // 8\n case 0x39: // 9\n case 0x2e: // .\n case 0x65: // e\n case 0x45: // E\n case 0x2b: // +\n case 0x2d: // -\n this.string += String.fromCharCode(n);\n this.tState = NUMBER3;\n break;\n default:\n this.tState = START;\n var error = this.numberReviver(this.string, buffer, i);\n if (error){\n return error;\n }\n\n this.offset += this.string.length - 1;\n this.string = undefined;\n i--;\n break;\n }\n }else if (this.tState === TRUE1){ // r\n if (buffer[i] === 0x72) { this.tState = TRUE2; }\n else { return this.charError(buffer, i); }\n }else if (this.tState === TRUE2){ // u\n if (buffer[i] === 0x75) { this.tState = TRUE3; }\n else { return this.charError(buffer, i); }\n }else if (this.tState === TRUE3){ // e\n if (buffer[i] === 0x65) { this.tState = START; this.onToken(TRUE, true); this.offset+= 3; }\n else { return this.charError(buffer, i); }\n }else if (this.tState === FALSE1){ // a\n if (buffer[i] === 0x61) { this.tState = FALSE2; }\n else { return this.charError(buffer, i); }\n }else if (this.tState === FALSE2){ // l\n if (buffer[i] === 0x6c) { this.tState = FALSE3; }\n else { return this.charError(buffer, i); }\n }else if (this.tState === FALSE3){ // s\n if (buffer[i] === 0x73) { this.tState = FALSE4; }\n else { return this.charError(buffer, i); }\n }else if (this.tState === FALSE4){ // e\n if (buffer[i] === 0x65) { this.tState = START; this.onToken(FALSE, false); this.offset+= 4; }\n else { return this.charError(buffer, i); }\n }else if (this.tState === NULL1){ // u\n if (buffer[i] === 0x75) { this.tState = NULL2; }\n else { return this.charError(buffer, i); }\n }else if (this.tState === NULL2){ // l\n if (buffer[i] === 0x6c) { this.tState = NULL3; }\n else { return this.charError(buffer, i); }\n }else if (this.tState === NULL3){ // l\n if (buffer[i] === 0x6c) { this.tState = START; this.onToken(NULL, null); this.offset += 3; }\n else { return this.charError(buffer, i); }\n }\n }\n};\nproto.onToken = function (token, value) {\n // Override this to get events\n};\n\nproto.parseError = function (token, value) {\n this.tState = STOP;\n this.onError(new Error(\"Unexpected \" + Parser.toknam(token) + (value ? (\"(\" + JSON.stringify(value) + \")\") : \"\") + \" in state \" + Parser.toknam(this.state)));\n};\nproto.push = function () {\n this.stack.push({value: this.value, key: this.key, mode: this.mode});\n};\nproto.pop = function () {\n var value = this.value;\n var parent = this.stack.pop();\n this.value = parent.value;\n this.key = parent.key;\n this.mode = parent.mode;\n this.emit(value);\n if (!this.mode) { this.state = VALUE; }\n};\nproto.emit = function (value) {\n if (this.mode) { this.state = COMMA; }\n this.onValue(value);\n};\nproto.onValue = function (value) {\n // Override me\n};\nproto.onToken = function (token, value) {\n if(this.state === VALUE){\n if(token === STRING || token === NUMBER || token === TRUE || token === FALSE || token === NULL){\n if (this.value) {\n this.value[this.key] = value;\n }\n this.emit(value);\n }else if(token === LEFT_BRACE){\n this.push();\n if (this.value) {\n this.value = this.value[this.key] = {};\n } else {\n this.value = {};\n }\n this.key = undefined;\n this.state = KEY;\n this.mode = OBJECT;\n }else if(token === LEFT_BRACKET){\n this.push();\n if (this.value) {\n this.value = this.value[this.key] = [];\n } else {\n this.value = [];\n }\n this.key = 0;\n this.mode = ARRAY;\n this.state = VALUE;\n }else if(token === RIGHT_BRACE){\n if (this.mode === OBJECT) {\n this.pop();\n } else {\n return this.parseError(token, value);\n }\n }else if(token === RIGHT_BRACKET){\n if (this.mode === ARRAY) {\n this.pop();\n } else {\n return this.parseError(token, value);\n }\n }else{\n return this.parseError(token, value);\n }\n }else if(this.state === KEY){\n if (token === STRING) {\n this.key = value;\n this.state = COLON;\n } else if (token === RIGHT_BRACE) {\n this.pop();\n } else {\n return this.parseError(token, value);\n }\n }else if(this.state === COLON){\n if (token === COLON) { this.state = VALUE; }\n else { return this.parseError(token, value); }\n }else if(this.state === COMMA){\n if (token === COMMA) {\n if (this.mode === ARRAY) { this.key++; this.state = VALUE; }\n else if (this.mode === OBJECT) { this.state = KEY; }\n\n } else if (token === RIGHT_BRACKET && this.mode === ARRAY || token === RIGHT_BRACE && this.mode === OBJECT) {\n this.pop();\n } else {\n return this.parseError(token, value);\n }\n }else{\n return this.parseError(token, value);\n }\n};\n\n// Override to implement your own number reviver.\n// Any value returned is treated as error and will interrupt parsing.\nproto.numberReviver = function (text, buffer, i) {\n var result = Number(text);\n\n if (isNaN(result)) {\n return this.charError(buffer, i);\n }\n\n if ((text.match(/[0-9]+/) == text) && (result.toString() != text)) {\n // Long string of digits which is an ID string and not valid and/or safe JavaScript integer Number\n this.onToken(STRING, text);\n } else {\n this.onToken(NUMBER, result);\n }\n}\n\nParser.C = C;\n\nmodule.exports = Parser;\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/@bergos/jsonparse/jsonparse.js?"); /***/ }), /***/ "./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 */ 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 */ 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 */ SIOC: () => (/* binding */ SIOC),\n/* harmony export */ SKOS: () => (/* binding */ SKOS),\n/* harmony export */ SKOS_XL: () => (/* binding */ SKOS_XL),\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 */ VOID: () => (/* binding */ VOID),\n/* harmony export */ VS: () => (/* binding */ VS),\n/* harmony export */ XSD: () => (/* binding */ XSD)\n/* harmony export */ });\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\r\n *\r\n * [Generator provided] - Web Access Control Vocabulary\r\n */\r\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$D = \"http://www.w3.org/ns/auth/acl#\";\r\nfunction _NS$D(localName) {\r\n return (_NAMESPACE$D + localName);\r\n}\r\n/**\r\n * [Generator provided] - Web Access Control Vocabulary\r\n */\r\nvar ACL = {\r\n PREFIX: \"acl\",\r\n NAMESPACE: _NAMESPACE$D,\r\n PREFIX_AND_NAMESPACE: { \"acl\": \"http://www.w3.org/ns/auth/acl#\" },\r\n NS: _NS$D,\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 * The term has a description only in English, but has a mismatch between its labels and comments, with [0] labels, but [1] comment in the language [NoLocale].\r\n */\r\n Access: _NS$D(\"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 * The term has a description only in English, with [1] label in the language [en], but [1] comment in the language [NoLocale] (so the difference is only between English and NoLocale, which we consider the same).\r\n */\r\n Append: _NS$D(\"Append\"),\r\n /**\r\n * write\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n Write: _NS$D(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n AuthenticatedAgent: _NS$D(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n Authorization: _NS$D(\"Authorization\"),\r\n /**\r\n * Allows read/write access to the ACL for the resource(s)\r\n *\r\n * The term has a description only in English, with [1] label in the language [en], but [1] comment in the language [NoLocale] (so the difference is only between English and NoLocale, which we consider the same).\r\n */\r\n Control: _NS$D(\"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 * This term provides descriptions only with no explicit locale.\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$D(\"Origin\"),\r\n /**\r\n * The class of read operations\r\n *\r\n * The term has a description only in English, with [1] label in the language [en], but [1] comment in the language [NoLocale] (so the difference is only between English and NoLocale, which we consider the same).\r\n */\r\n Read: _NS$D(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n accessControl: _NS$D(\"accessControl\"),\r\n /**\r\n * The information resource to which access is being granted.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n accessTo: _NS$D(\"accessTo\"),\r\n /**\r\n * A class of information resources to which access is being granted.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n accessToClass: _NS$D(\"accessToClass\"),\r\n /**\r\n * A person or social entity to being given the right\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n agent: _NS$D(\"agent\"),\r\n /**\r\n * A class of persons or social entities to being given the right\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n agentClass: _NS$D(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n agentGroup: _NS$D(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n default: _NS$D(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n defaultForNew: _NS$D(\"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 * The term has a description only in English, with [1] label in the language [en], but [1] comment in the language [NoLocale] (so the difference is only between English and NoLocale, which we consider the same).\r\n */\r\n delegates: _NS$D(\"delegates\"),\r\n /**\r\n * A mode of access such as read or write.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n mode: _NS$D(\"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 * This term provides descriptions only with no explicit locale.\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$D(\"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 * The term has a description only in English, with [1] label in the language [en], but [1] comment in the language [NoLocale] (so the difference is only between English and NoLocale, which we consider the same).\r\n */\r\n owner: _NS$D(\"owner\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\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\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$C = \"http://www.w3.org/ns/dx/conneg/altr#\";\r\nfunction _NS$C(localName) {\r\n return (_NAMESPACE$C + localName);\r\n}\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: _NAMESPACE$C,\r\n PREFIX_AND_NAMESPACE: { \"altr\": \"http://www.w3.org/ns/dx/conneg/altr#\" },\r\n NS: _NS$C,\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 * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/dx/connegp/altp\r\n */\r\n Representation: _NS$C(\"Representation\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * Indicates a Representation of a Resource.\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n hasRepresentation: _NS$C(\"hasRepresentation\"),\r\n /**\r\n * Indicates the default Representation of a Resource.\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n hasDefaultRepresentation: _NS$C(\"hasDefaultRepresentation\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\r\n *\r\n * Extended Activity Streams 2.0 Vocabulary\r\n */\r\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$B = \"https://www.w3.org/ns/activitystreams#\";\r\nfunction _NS$B(localName) {\r\n return (_NAMESPACE$B + localName);\r\n}\r\n/**\r\n * Extended Activity Streams 2.0 Vocabulary\r\n */\r\nvar AS = {\r\n PREFIX: \"as\",\r\n NAMESPACE: _NAMESPACE$B,\r\n PREFIX_AND_NAMESPACE: { \"as\": \"https://www.w3.org/ns/activitystreams#\" },\r\n NS: _NS$B,\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 * This term provides descriptions only in English.\r\n */\r\n Activity: _NS$B(\"Activity\"),\r\n /**\r\n * Object\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n Object: _NS$B(\"Object\"),\r\n /**\r\n * Represents a qualified reference to another resource. Patterned after the RFC5988 Web Linking Model\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Link: _NS$B(\"Link\"),\r\n /**\r\n * A rdf:List variant for Objects and Links\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n OrderedItems: _NS$B(\"OrderedItems\"),\r\n /**\r\n * An ordered or unordered collection of Objects or Links\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Collection: _NS$B(\"Collection\"),\r\n /**\r\n * A subset of items from a Collection\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n CollectionPage: _NS$B(\"CollectionPage\"),\r\n /**\r\n * An Image file\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Image: _NS$B(\"Image\"),\r\n /**\r\n * Represents a digital document/file of any sort\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Document: _NS$B(\"Document\"),\r\n /**\r\n * Represents a Social Graph relationship between two Individuals (indicated by the 'a' and 'b' properties)\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Relationship: _NS$B(\"Relationship\"),\r\n /**\r\n * A question of any sort.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Question: _NS$B(\"Question\"),\r\n /**\r\n * An Activity that has no direct object\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n IntransitiveActivity: _NS$B(\"IntransitiveActivity\"),\r\n /**\r\n * A Profile Document\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Profile: _NS$B(\"Profile\"),\r\n /**\r\n * A placeholder for a deleted object\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Tombstone: _NS$B(\"Tombstone\"),\r\n /**\r\n * A physical or logical location\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Place: _NS$B(\"Place\"),\r\n /**\r\n * An ordered subset of items from an OrderedCollection\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n OrderedCollectionPage: _NS$B(\"OrderedCollectionPage\"),\r\n /**\r\n * A variation of Collection in which items are strictly ordered\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n OrderedCollection: _NS$B(\"OrderedCollection\"),\r\n /**\r\n * Actor accepts the Object\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Accept: _NS$B(\"Accept\"),\r\n /**\r\n * Block\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n Block: _NS$B(\"Block\"),\r\n /**\r\n * Actor is ignoring the Object\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Ignore: _NS$B(\"Ignore\"),\r\n /**\r\n * To Add an Object or Link to Something\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Add: _NS$B(\"Add\"),\r\n /**\r\n * Actor announces the object to the target\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Announce: _NS$B(\"Announce\"),\r\n /**\r\n * Represents a software application of any sort\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Application: _NS$B(\"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 * This term provides descriptions only in English.\r\n */\r\n Arrive: _NS$B(\"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 * This term provides descriptions only in English.\r\n */\r\n Article: _NS$B(\"Article\"),\r\n /**\r\n * An audio file\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Audio: _NS$B(\"Audio\"),\r\n /**\r\n * To Create Something\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Create: _NS$B(\"Create\"),\r\n /**\r\n * To Delete Something\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Delete: _NS$B(\"Delete\"),\r\n /**\r\n * The actor dislikes the object\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Dislike: _NS$B(\"Dislike\"),\r\n /**\r\n * An Event of any kind\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Event: _NS$B(\"Event\"),\r\n /**\r\n * To flag something (e.g. flag as inappropriate, flag as spam, etc)\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Flag: _NS$B(\"Flag\"),\r\n /**\r\n * To Express Interest in Something\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Follow: _NS$B(\"Follow\"),\r\n /**\r\n * A Group of any kind.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Group: _NS$B(\"Group\"),\r\n /**\r\n * To invite someone or something to something\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Invite: _NS$B(\"Invite\"),\r\n /**\r\n * To Offer something to someone or something\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Offer: _NS$B(\"Offer\"),\r\n /**\r\n * To Join Something\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Join: _NS$B(\"Join\"),\r\n /**\r\n * To Leave Something\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Leave: _NS$B(\"Leave\"),\r\n /**\r\n * To Like Something\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Like: _NS$B(\"Like\"),\r\n /**\r\n * The actor viewed the object\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n View: _NS$B(\"View\"),\r\n /**\r\n * The actor listened to the object\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Listen: _NS$B(\"Listen\"),\r\n /**\r\n * The actor read the object\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Read: _NS$B(\"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 * The term has a description only in English, with [1] label in the language [en], but [1] comment in the language [NoLocale] (so the difference is only between English and NoLocale, which we consider the same).\r\n */\r\n Move: _NS$B(\"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 * The term has a description only in English, with [1] label in the language [en], but [1] comment in the language [NoLocale] (so the difference is only between English and NoLocale, which we consider the same).\r\n */\r\n Travel: _NS$B(\"Travel\"),\r\n /**\r\n * A specialized Link that represents an @mention\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Mention: _NS$B(\"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 * This term provides descriptions only in English.\r\n */\r\n Note: _NS$B(\"Note\"),\r\n /**\r\n * A Web Page\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Page: _NS$B(\"Page\"),\r\n /**\r\n * A Person\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Person: _NS$B(\"Person\"),\r\n /**\r\n * An Organization\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Organization: _NS$B(\"Organization\"),\r\n /**\r\n * Actor rejects the Object\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Reject: _NS$B(\"Reject\"),\r\n /**\r\n * To Remove Something\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Remove: _NS$B(\"Remove\"),\r\n /**\r\n * A service provided by some entity\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Service: _NS$B(\"Service\"),\r\n /**\r\n * Actor tentatively accepts the Object\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n TentativeAccept: _NS$B(\"TentativeAccept\"),\r\n /**\r\n * Actor tentatively rejects the object\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n TentativeReject: _NS$B(\"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 * This term provides descriptions only in English.\r\n */\r\n Undo: _NS$B(\"Undo\"),\r\n /**\r\n * To Update/Modify Something\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Update: _NS$B(\"Update\"),\r\n /**\r\n * A Video document of any kind.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Video: _NS$B(\"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 * This term provides descriptions only in English.\r\n */\r\n actor: _NS$B(\"actor\"),\r\n /**\r\n * Identifies an entity to which an object is attributed\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n attributedTo: _NS$B(\"attributedTo\"),\r\n /**\r\n * attachment\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n attachment: _NS$B(\"attachment\"),\r\n /**\r\n * attachments\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n attachments: _NS$B(\"attachments\"),\r\n /**\r\n * Identifies the author of an object. Deprecated. Use as:attributedTo instead\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n author: _NS$B(\"author\"),\r\n /**\r\n * bcc\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n bcc: _NS$B(\"bcc\"),\r\n /**\r\n * bto\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n bto: _NS$B(\"bto\"),\r\n /**\r\n * cc\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n cc: _NS$B(\"cc\"),\r\n /**\r\n * Specifies the context within which an object exists or an activity was performed\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n context: _NS$B(\"context\"),\r\n /**\r\n * current\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n current: _NS$B(\"current\"),\r\n /**\r\n * first\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n first: _NS$B(\"first\"),\r\n /**\r\n * generator\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n generator: _NS$B(\"generator\"),\r\n /**\r\n * icon\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n icon: _NS$B(\"icon\"),\r\n /**\r\n * image\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n image: _NS$B(\"image\"),\r\n /**\r\n * inReplyTo\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n inReplyTo: _NS$B(\"inReplyTo\"),\r\n /**\r\n * items\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n items: _NS$B(\"items\"),\r\n /**\r\n * last\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n last: _NS$B(\"last\"),\r\n /**\r\n * location\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n location: _NS$B(\"location\"),\r\n /**\r\n * next\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n next: _NS$B(\"next\"),\r\n /**\r\n * object\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n object: _NS$B(\"object\"),\r\n /**\r\n * Describes a possible exclusive answer or option for a question.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n oneOf: _NS$B(\"oneOf\"),\r\n /**\r\n * Describes a possible inclusive answer or option for a question.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n anyOf: _NS$B(\"anyOf\"),\r\n /**\r\n * prev\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n prev: _NS$B(\"prev\"),\r\n /**\r\n * preview\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n preview: _NS$B(\"preview\"),\r\n /**\r\n * provider\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n provider: _NS$B(\"provider\"),\r\n /**\r\n * replies\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n replies: _NS$B(\"replies\"),\r\n /**\r\n * result\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n result: _NS$B(\"result\"),\r\n /**\r\n * audience\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n audience: _NS$B(\"audience\"),\r\n /**\r\n * partOf\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n partOf: _NS$B(\"partOf\"),\r\n /**\r\n * tag\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n tag: _NS$B(\"tag\"),\r\n /**\r\n * tags\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n tags: _NS$B(\"tags\"),\r\n /**\r\n * target\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n target: _NS$B(\"target\"),\r\n /**\r\n * For certain activities, specifies the entity from which the action is directed.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n origin: _NS$B(\"origin\"),\r\n /**\r\n * Indentifies an object used (or to be used) to complete an activity\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n instrument: _NS$B(\"instrument\"),\r\n /**\r\n * to\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n to: _NS$B(\"to\"),\r\n /**\r\n * Specifies a link to a specific representation of the Object\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n url: _NS$B(\"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 * This term provides descriptions only in English.\r\n */\r\n subject: _NS$B(\"subject\"),\r\n /**\r\n * On a Relationship object, describes the type of relationship\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n relationship: _NS$B(\"relationship\"),\r\n /**\r\n * On a Profile object, describes the object described by the profile\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n describes: _NS$B(\"describes\"),\r\n /**\r\n * On a Tombstone object, describes the former type of the deleted object\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n formerType: _NS$B(\"formerType\"),\r\n /**\r\n * Specifies the accuracy around the point established by the longitude and latitude\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n accuracy: _NS$B(\"accuracy\"),\r\n /**\r\n * The altitude of a place\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n altitude: _NS$B(\"altitude\"),\r\n /**\r\n * The content of the object.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n content: _NS$B(\"content\"),\r\n /**\r\n * name\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n name: _NS$B(\"name\"),\r\n /**\r\n * downstreamDuplicates\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n downstreamDuplicates: _NS$B(\"downstreamDuplicates\"),\r\n /**\r\n * The duration of the object\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n duration: _NS$B(\"duration\"),\r\n /**\r\n * The ending time of the object\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n endTime: _NS$B(\"endTime\"),\r\n /**\r\n * The display height expressed as device independent pixels\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n height: _NS$B(\"height\"),\r\n /**\r\n * The target URI of the Link\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n href: _NS$B(\"href\"),\r\n /**\r\n * A hint about the language of the referenced resource\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n hreflang: _NS$B(\"hreflang\"),\r\n /**\r\n * id\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n id: _NS$B(\"id\"),\r\n /**\r\n * The latitude\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n latitude: _NS$B(\"latitude\"),\r\n /**\r\n * The longitude\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n longitude: _NS$B(\"longitude\"),\r\n /**\r\n * The MIME Media Type\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n mediaType: _NS$B(\"mediaType\"),\r\n /**\r\n * objectType\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n objectType: _NS$B(\"objectType\"),\r\n /**\r\n * Specifies the date and time the object was published\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n published: _NS$B(\"published\"),\r\n /**\r\n * Specifies a radius around the point established by the longitude and latitude\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n radius: _NS$B(\"radius\"),\r\n /**\r\n * A numeric rating (>= 0.0, <= 5.0) for the object\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n rating: _NS$B(\"rating\"),\r\n /**\r\n * The RFC 5988 or HTML5 Link Relation associated with the Link\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n rel: _NS$B(\"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 * This term provides descriptions only in English.\r\n */\r\n startIndex: _NS$B(\"startIndex\"),\r\n /**\r\n * The starting time of the object\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n startTime: _NS$B(\"startTime\"),\r\n /**\r\n * A short summary of the object\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n summary: _NS$B(\"summary\"),\r\n /**\r\n * The total number of items in a logical collection\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n totalItems: _NS$B(\"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 * This term provides descriptions only in English.\r\n */\r\n units: _NS$B(\"units\"),\r\n /**\r\n * Specifies when the object was last updated\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n updated: _NS$B(\"updated\"),\r\n /**\r\n * upstreamDuplicates\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n upstreamDuplicates: _NS$B(\"upstreamDuplicates\"),\r\n /**\r\n * verb\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n verb: _NS$B(\"verb\"),\r\n /**\r\n * Specifies the preferred display width of the content, expressed in terms of device independent pixels.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n width: _NS$B(\"width\"),\r\n /**\r\n * Specifies the date and time the object was deleted\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n deleted: _NS$B(\"deleted\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\r\n *\r\n * [Generator provided] - W3C Bookmark vocabulary\r\n */\r\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$A = \"http://www.w3.org/2002/01/bookmark#\";\r\nfunction _NS$A(localName) {\r\n return (_NAMESPACE$A + localName);\r\n}\r\n/**\r\n * [Generator provided] - W3C Bookmark vocabulary\r\n */\r\nvar BOOKMARK = {\r\n PREFIX: \"bookmark\",\r\n NAMESPACE: _NAMESPACE$A,\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 * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\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 * This term provides descriptions only with no explicit locale.\r\n */\r\n Shortcut: _NS$A(\"Shortcut\"),\r\n /**\r\n * The class to which all bookmarks belong.\r\n *\r\n * This term provides descriptions only with no explicit locale.\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 * This term provides descriptions only with no explicit locale.\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 * The term has a description only in English, but has a mismatch between its labels and comments, with [0] labels, but [1] comment in the language [en].\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 * This term provides descriptions only with no explicit locale.\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 * This term provides descriptions only with no explicit locale.\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 * This term provides descriptions only with no explicit locale.\r\n */\r\n subTopicOf: _NS$A(\"subTopicOf\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\r\n *\r\n * A vocabulary for the Data Model for W3C Verifiable Credentials.\r\n */\r\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$z = \"https://www.w3.org/2018/credentials#\";\r\nfunction _NS$z(localName) {\r\n return (_NAMESPACE$z + localName);\r\n}\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: _NAMESPACE$z,\r\n PREFIX_AND_NAMESPACE: { \"cred\": \"https://www.w3.org/2018/credentials#\" },\r\n NS: _NS$z,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n VerifiableCredential: _NS$z(\"VerifiableCredential\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n JsonSchemaValidator2018: _NS$z(\"JsonSchemaValidator2018\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n ManualRefreshService2018: _NS$z(\"ManualRefreshService2018\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n VerifiablePresentation: _NS$z(\"VerifiablePresentation\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n verifiableCredential: _NS$z(\"verifiableCredential\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n credentialSchema: _NS$z(\"credentialSchema\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n credentialStatus: _NS$z(\"credentialStatus\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n credentialSubject: _NS$z(\"credentialSubject\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n evidence: _NS$z(\"evidence\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n expirationDate: _NS$z(\"expirationDate\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n holder: _NS$z(\"holder\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n issued: _NS$z(\"issued\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n issuer: _NS$z(\"issuer\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n issuanceDate: _NS$z(\"issuanceDate\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n refreshService: _NS$z(\"refreshService\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n termsOfUse: _NS$z(\"termsOfUse\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n validFrom: _NS$z(\"validFrom\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/2018/credentials#\r\n */\r\n validUntil: _NS$z(\"validUntil\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\r\n *\r\n * DCAT is an RDF vocabulary designed to facilitate interoperability between data catalogs published on the Web. By using DCAT to describe datasets in data catalogs, publishers increase discoverability and enable applications easily to consume metadata from multiple catalogs. It further enables decentralized publishing of catalogs and facilitates federated dataset search across sites. Aggregated DCAT metadata can serve as a manifest file to facilitate digital preservation. DCAT is defined at http://www.w3.org/TR/vocab-dcat/. Any variance between that normative document and this schema is an error in this schema.\r\n */\r\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$y = \"http://www.w3.org/ns/dcat#\";\r\nfunction _NS$y(localName) {\r\n return (_NAMESPACE$y + localName);\r\n}\r\n/**\r\n * DCAT is an RDF vocabulary designed to facilitate interoperability between data catalogs published on the Web. By using DCAT to describe datasets in data catalogs, publishers increase discoverability and enable applications easily to consume metadata from multiple catalogs. It further enables decentralized publishing of catalogs and facilitates federated dataset search across sites. Aggregated DCAT metadata can serve as a manifest file to facilitate digital preservation. DCAT is defined at http://www.w3.org/TR/vocab-dcat/. Any variance between that normative document and this schema is an error in this schema.\r\n */\r\nvar DCAT = {\r\n PREFIX: \"dcat\",\r\n NAMESPACE: _NAMESPACE$y,\r\n PREFIX_AND_NAMESPACE: { \"dcat\": \"http://www.w3.org/ns/dcat#\" },\r\n NS: _NS$y,\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 [9] labels and comments, in the languages [ar, cs, da, el, en, 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$y(\"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 [9] labels and comments, in the languages [ar, cs, da, el, en, 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$y(\"Dataset\"),\r\n /**\r\n * Resource published or curated by a single agent.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, da, en, es, it].\r\n */\r\n Resource: _NS$y(\"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 multilingual descriptions, but has a mismatch between its labels and comments, with [9] labels in languages [ar, cs, da, el, en, es, fr, it, ja], but [8] comments in languages [cs, da, el, en, 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$y(\"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 multilingual descriptions, but has a mismatch between its labels and comments, with [4] labels in languages [da, en, es, it], but [5] comments in languages [cs, da, en, es, it].\r\n */\r\n DataService: _NS$y(\"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 [9] labels and comments, in the languages [ar, cs, da, el, en, 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$y(\"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 [5] labels and comments, in the languages [cs, da, en, es, it].\r\n */\r\n Relationship: _NS$y(\"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 [5] labels and comments, in the languages [cs, da, en, es, it].\r\n *\r\n * See also:\r\n * - http://www.w3.org/ns/dcat#hadRole\r\n */\r\n Role: _NS$y(\"Role\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\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 multilingual descriptions, but has a mismatch between its labels and comments, with [4] labels in languages [cs, da, en, it], but [5] comments in languages [cs, da, en, es, it].\r\n */\r\n hadRole: _NS$y(\"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 [5] labels and comments, in the languages [cs, da, en, es, it].\r\n */\r\n accessService: _NS$y(\"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 [9] labels and comments, in the languages [ar, cs, da, el, en, 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$y(\"accessURL\"),\r\n /**\r\n * The root location or primary endpoint of the service (a web-resolvable IRI).\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, da, en, es, it].\r\n */\r\n endpointURL: _NS$y(\"endpointURL\"),\r\n /**\r\n * The geographic bounding box of a resource.\r\n *\r\n * This term has [5] labels (in languages [cs, da, en, es, it]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n bbox: _NS$y(\"bbox\"),\r\n /**\r\n * The size of a distribution in bytes.\r\n *\r\n * This term has [9] labels and comments, in the languages [ar, cs, da, el, en, 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$y(\"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 [5] labels and comments, in the languages [cs, da, en, es, it].\r\n */\r\n catalog: _NS$y(\"catalog\"),\r\n /**\r\n * The geographic center (centroid) of a resource.\r\n *\r\n * This term has [5] labels (in languages [cs, da, en, es, it]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n centroid: _NS$y(\"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 [5] labels and comments, in the languages [cs, da, en, es, it].\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/TR/vocab-dcat-2/\r\n */\r\n compressFormat: _NS$y(\"compressFormat\"),\r\n /**\r\n * Relevant contact information for the catalogued resource. Use of vCard is recommended.\r\n *\r\n * This term has [9] labels and comments, in the languages [ar, cs, da, el, en, 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$y(\"contactPoint\"),\r\n /**\r\n * A collection of data that is listed in the catalog.\r\n *\r\n * This term has [9] labels and comments, in the languages [ar, cs, da, el, en, 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$y(\"dataset\"),\r\n /**\r\n * An available distribution of the dataset.\r\n *\r\n * This term has [9] labels and comments, in the languages [ar, cs, da, el, en, 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$y(\"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 [9] labels and comments, in the languages [ar, cs, da, el, en, 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$y(\"downloadURL\"),\r\n /**\r\n * The end of the period.\r\n *\r\n * This term has [5] labels (in languages [cs, da, en, es, it]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n endDate: _NS$y(\"endDate\"),\r\n /**\r\n * A description of the service end-point, including its operations, parameters etc.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, da, en, es, it].\r\n */\r\n endpointDescription: _NS$y(\"endpointDescription\"),\r\n /**\r\n * A keyword or tag describing a resource.\r\n *\r\n * This term has [9] labels and comments, in the languages [ar, cs, da, el, en, 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$y(\"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 [9] labels and comments, in the languages [ar, cs, da, el, en, 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$y(\"landingPage\"),\r\n /**\r\n * The media type of the distribution as defined by IANA\r\n *\r\n * This term has [9] labels and comments, in the languages [ar, cs, da, el, en, 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$y(\"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 [5] labels and comments, in the languages [cs, da, en, es, it].\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/TR/vocab-dcat-2/\r\n */\r\n packageFormat: _NS$y(\"packageFormat\"),\r\n /**\r\n * Link to a description of a relationship with another resource.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, da, en, es, it].\r\n */\r\n qualifiedRelation: _NS$y(\"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 [9] labels and comments, in the languages [ar, cs, da, el, en, 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$y(\"record\"),\r\n /**\r\n * A collection of data that this DataService can distribute.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, da, en, es, it].\r\n */\r\n servesDataset: _NS$y(\"servesDataset\"),\r\n /**\r\n * A site or endpoint that is listed in the catalog.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, da, en, es, it].\r\n */\r\n service: _NS$y(\"service\"),\r\n /**\r\n * minimum spatial separation resolvable in a dataset, measured in meters.\r\n *\r\n * This term has [6] labels and comments, in the languages [cs, da, en-GB, en-US, es, it].\r\n */\r\n spatialResolutionInMeters: _NS$y(\"spatialResolutionInMeters\"),\r\n /**\r\n * The start of the period\r\n *\r\n * This term has [4] labels (in languages [cs, da, en, it]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n startDate: _NS$y(\"startDate\"),\r\n /**\r\n * minimum time period resolvable in a dataset.\r\n *\r\n * This term has [5] labels and comments, in the languages [cs, da, en, es, it].\r\n */\r\n temporalResolution: _NS$y(\"temporalResolution\"),\r\n /**\r\n * A main category of the resource. A resource can have multiple themes.\r\n *\r\n * This term has [9] labels and comments, in the languages [ar, cs, da, el, en, 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$y(\"theme\"),\r\n /**\r\n * The knowledge organization system (KOS) used to classify catalog's datasets.\r\n *\r\n * This term has [9] labels and comments, in the languages [ar, cs, da, el, en, 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$y(\"themeTaxonomy\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\r\n *\r\n * [Generator provided] - Dublin Core Terms - for describing resources\r\n */\r\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$x = \"http://purl.org/dc/terms/\";\r\nfunction _NS$x(localName) {\r\n return (_NAMESPACE$x + localName);\r\n}\r\n/**\r\n * [Generator provided] - Dublin Core Terms - for describing resources\r\n */\r\nvar DCTERMS = {\r\n PREFIX: \"dcterms\",\r\n NAMESPACE: _NAMESPACE$x,\r\n PREFIX_AND_NAMESPACE: { \"dcterms\": \"http://purl.org/dc/terms/\" },\r\n NS: _NS$x,\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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n Agent: _NS$x(\"Agent\"),\r\n /**\r\n * A group of agents.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n AgentClass: _NS$x(\"AgentClass\"),\r\n /**\r\n * A book, article, or other documentary resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n BibliographicResource: _NS$x(\"BibliographicResource\"),\r\n /**\r\n * A digital resource format.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n FileFormat: _NS$x(\"FileFormat\"),\r\n /**\r\n * A file format or physical medium.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n MediaType: _NS$x(\"MediaType\"),\r\n /**\r\n * A media type or extent.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n MediaTypeOrExtent: _NS$x(\"MediaTypeOrExtent\"),\r\n /**\r\n * A rate at which something recurs.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n Frequency: _NS$x(\"Frequency\"),\r\n /**\r\n * The extent or range of judicial, law enforcement, or other authority.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n Jurisdiction: _NS$x(\"Jurisdiction\"),\r\n /**\r\n * A location, period of time, or jurisdiction.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n LocationPeriodOrJurisdiction: _NS$x(\"LocationPeriodOrJurisdiction\"),\r\n /**\r\n * A legal document giving official permission to do something with a Resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n LicenseDocument: _NS$x(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n RightsStatement: _NS$x(\"RightsStatement\"),\r\n /**\r\n * A system of signs, symbols, sounds, gestures, or rules used in communication.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n LinguisticSystem: _NS$x(\"LinguisticSystem\"),\r\n /**\r\n * A spatial region or named place.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n Location: _NS$x(\"Location\"),\r\n /**\r\n * A method by which resources are added to a collection.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n MethodOfAccrual: _NS$x(\"MethodOfAccrual\"),\r\n /**\r\n * A process that is used to engender knowledge, attitudes, and skills.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n MethodOfInstruction: _NS$x(\"MethodOfInstruction\"),\r\n /**\r\n * An interval of time that is named or defined by its start and end dates.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n PeriodOfTime: _NS$x(\"PeriodOfTime\"),\r\n /**\r\n * A physical material or carrier.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n PhysicalMedium: _NS$x(\"PhysicalMedium\"),\r\n /**\r\n * A material thing.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n PhysicalResource: _NS$x(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n Policy: _NS$x(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n ProvenanceStatement: _NS$x(\"ProvenanceStatement\"),\r\n /**\r\n * A dimension or extent, or a time taken to play or execute.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n SizeOrDuration: _NS$x(\"SizeOrDuration\"),\r\n /**\r\n * A basis for comparison; a reference point against which other things can be evaluated.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n Standard: _NS$x(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n modified: _NS$x(\"modified\"),\r\n /**\r\n * An entity responsible for making the resource available.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n publisher: _NS$x(\"publisher\"),\r\n /**\r\n * A name given to the resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n title: _NS$x(\"title\"),\r\n /**\r\n * A related resource that is a version, edition, or adaptation of the described resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n hasVersion: _NS$x(\"hasVersion\"),\r\n /**\r\n * Date of formal issuance (e.g., publication) of the resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n issued: _NS$x(\"issued\"),\r\n /**\r\n * A point or period of time associated with an event in the lifecycle of the resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n date: _NS$x(\"date\"),\r\n /**\r\n * An account of the resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n description: _NS$x(\"description\"),\r\n /**\r\n * A related resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n relation: _NS$x(\"relation\"),\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 * This term provides descriptions only in English.\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$x(\"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 * This term provides descriptions only in English.\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$x(\"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 * This term provides descriptions only in English.\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$x(\"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 * This term provides descriptions only in English.\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$x(\"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 * This term provides descriptions only in English.\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$x(\"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 * This term provides descriptions only in English.\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$x(\"Point\"),\r\n /**\r\n * The set of tags, constructed according to RFC 1766, for the identification of languages.\r\n *\r\n * This term provides descriptions only in English.\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$x(\"RFC1766\"),\r\n /**\r\n * The set of tags constructed according to RFC 3066 for the identification of languages.\r\n *\r\n * This term provides descriptions only in English.\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$x(\"RFC3066\"),\r\n /**\r\n * The set of tags constructed according to RFC 4646 for the identification of languages.\r\n *\r\n * This term provides descriptions only in English.\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$x(\"RFC4646\"),\r\n /**\r\n * The set of tags constructed according to RFC 5646 for the identification of languages.\r\n *\r\n * This term provides descriptions only in English.\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$x(\"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 * This term provides descriptions only in English.\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$x(\"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 * This term provides descriptions only in English.\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$x(\"W3CDTF\"),\r\n /**\r\n * A summary of the resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n abstract: _NS$x(\"abstract\"),\r\n /**\r\n * Information about who can access the resource or an indication of its security status.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n accessRights: _NS$x(\"accessRights\"),\r\n /**\r\n * Information about rights held in and over the resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n rights: _NS$x(\"rights\"),\r\n /**\r\n * The method by which items are added to a collection.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n accrualMethod: _NS$x(\"accrualMethod\"),\r\n /**\r\n * The frequency with which items are added to a collection.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n accrualPeriodicity: _NS$x(\"accrualPeriodicity\"),\r\n /**\r\n * The policy governing the addition of items to a collection.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n accrualPolicy: _NS$x(\"accrualPolicy\"),\r\n /**\r\n * An alternative name for the resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n alternative: _NS$x(\"alternative\"),\r\n /**\r\n * A class of entity for whom the resource is intended or useful.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n audience: _NS$x(\"audience\"),\r\n /**\r\n * Date (often a range) that the resource became or will become available.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n available: _NS$x(\"available\"),\r\n /**\r\n * A bibliographic reference for the resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n bibliographicCitation: _NS$x(\"bibliographicCitation\"),\r\n /**\r\n * An unambiguous reference to the resource within a given context.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n identifier: _NS$x(\"identifier\"),\r\n /**\r\n * An established standard to which the described resource conforms.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n conformsTo: _NS$x(\"conformsTo\"),\r\n /**\r\n * An entity responsible for making contributions to the resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n contributor: _NS$x(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n coverage: _NS$x(\"coverage\"),\r\n /**\r\n * Date of creation of the resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n created: _NS$x(\"created\"),\r\n /**\r\n * An entity primarily responsible for making the resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n creator: _NS$x(\"creator\"),\r\n /**\r\n * Date of acceptance of the resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n dateAccepted: _NS$x(\"dateAccepted\"),\r\n /**\r\n * Date of copyright.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n dateCopyrighted: _NS$x(\"dateCopyrighted\"),\r\n /**\r\n * Date of submission of the resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n dateSubmitted: _NS$x(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n educationLevel: _NS$x(\"educationLevel\"),\r\n /**\r\n * The size or duration of the resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n extent: _NS$x(\"extent\"),\r\n /**\r\n * The file format, physical medium, or dimensions of the resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n format: _NS$x(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n hasFormat: _NS$x(\"hasFormat\"),\r\n /**\r\n * A related resource that is included either physically or logically in the described resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n hasPart: _NS$x(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n instructionalMethod: _NS$x(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n isFormatOf: _NS$x(\"isFormatOf\"),\r\n /**\r\n * A related resource in which the described resource is physically or logically included.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n isPartOf: _NS$x(\"isPartOf\"),\r\n /**\r\n * A related resource that references, cites, or otherwise points to the described resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n isReferencedBy: _NS$x(\"isReferencedBy\"),\r\n /**\r\n * A related resource that supplants, displaces, or supersedes the described resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n isReplacedBy: _NS$x(\"isReplacedBy\"),\r\n /**\r\n * A related resource that requires the described resource to support its function, delivery, or coherence.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n isRequiredBy: _NS$x(\"isRequiredBy\"),\r\n /**\r\n * A related resource of which the described resource is a version, edition, or adaptation.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n isVersionOf: _NS$x(\"isVersionOf\"),\r\n /**\r\n * A language of the resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n language: _NS$x(\"language\"),\r\n /**\r\n * A legal document giving official permission to do something with the resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n license: _NS$x(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n mediator: _NS$x(\"mediator\"),\r\n /**\r\n * The material or physical carrier of the resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n medium: _NS$x(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n provenance: _NS$x(\"provenance\"),\r\n /**\r\n * A related resource that is referenced, cited, or otherwise pointed to by the described resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n references: _NS$x(\"references\"),\r\n /**\r\n * A related resource that is supplanted, displaced, or superseded by the described resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n replaces: _NS$x(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n requires: _NS$x(\"requires\"),\r\n /**\r\n * A person or organization owning or managing rights over the resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n rightsHolder: _NS$x(\"rightsHolder\"),\r\n /**\r\n * A related resource from which the described resource is derived.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n source: _NS$x(\"source\"),\r\n /**\r\n * Spatial characteristics of the resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n spatial: _NS$x(\"spatial\"),\r\n /**\r\n * The topic of the resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n subject: _NS$x(\"subject\"),\r\n /**\r\n * A list of subunits of the resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n tableOfContents: _NS$x(\"tableOfContents\"),\r\n /**\r\n * Temporal characteristics of the resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n temporal: _NS$x(\"temporal\"),\r\n /**\r\n * The nature or genre of the resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n type: _NS$x(\"type\"),\r\n /**\r\n * Date (often a range) of validity of a resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/dc/terms/\r\n */\r\n valid: _NS$x(\"valid\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\r\n *\r\n * [Generator provided] - Description of a Project (DOAP) vocabulary\r\n */\r\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$w = \"http://usefulinc.com/ns/doap#\";\r\nfunction _NS$w(localName) {\r\n return (_NAMESPACE$w + localName);\r\n}\r\n/**\r\n * [Generator provided] - Description of a Project (DOAP) vocabulary\r\n */\r\nvar DOAP = {\r\n PREFIX: \"doap\",\r\n NAMESPACE: _NAMESPACE$w,\r\n PREFIX_AND_NAMESPACE: { \"doap\": \"http://usefulinc.com/ns/doap#\" },\r\n NS: _NS$w,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * A project.\r\n *\r\n * This term has [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n Project: _NS$w(\"Project\"),\r\n /**\r\n * Version information of a project release.\r\n *\r\n * This term has [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n Version: _NS$w(\"Version\"),\r\n /**\r\n * A specification of a system's aspects, technical or otherwise.\r\n *\r\n * This term has [2] labels and comments, in the languages [en, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n Specification: _NS$w(\"Specification\"),\r\n /**\r\n * Source code repository.\r\n *\r\n * This term has [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n Repository: _NS$w(\"Repository\"),\r\n /**\r\n * Subversion source code repository.\r\n *\r\n * This term has [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n SVNRepository: _NS$w(\"SVNRepository\"),\r\n /**\r\n * Git source code repository.\r\n *\r\n * This term has [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n GitRepository: _NS$w(\"GitRepository\"),\r\n /**\r\n * BitKeeper source code repository.\r\n *\r\n * This term has [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n BKRepository: _NS$w(\"BKRepository\"),\r\n /**\r\n * CVS source code repository.\r\n *\r\n * This term has [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n CVSRepository: _NS$w(\"CVSRepository\"),\r\n /**\r\n * GNU Arch source code repository.\r\n *\r\n * This term has [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n ArchRepository: _NS$w(\"ArchRepository\"),\r\n /**\r\n * Bazaar source code branch.\r\n *\r\n * This term has [2] labels and comments, in the languages [en, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n BazaarBranch: _NS$w(\"BazaarBranch\"),\r\n /**\r\n * Git source code branch.\r\n *\r\n * This term has [2] labels and comments, in the languages [en, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n GitBranch: _NS$w(\"GitBranch\"),\r\n /**\r\n * Mercurial source code repository.\r\n *\r\n * This term has [2] labels and comments, in the languages [en, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n HgRepository: _NS$w(\"HgRepository\"),\r\n /**\r\n * darcs source code repository.\r\n *\r\n * This term has [4] labels and comments, in the languages [en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n DarcsRepository: _NS$w(\"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 [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n name: _NS$w(\"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 [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n homepage: _NS$w(\"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 [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n old_homepage: _NS$w(\"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 [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n created: _NS$w(\"created\"),\r\n /**\r\n * Short (8 or 9 words) plain text description of a project.\r\n *\r\n * This term has [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n shortdesc: _NS$w(\"shortdesc\"),\r\n /**\r\n * Plain text description of a project, of 2-4 sentences in length.\r\n *\r\n * This term has [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n description: _NS$w(\"description\"),\r\n /**\r\n * A project release.\r\n *\r\n * This term has [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n release: _NS$w(\"release\"),\r\n /**\r\n * Mailing list home page or email address.\r\n *\r\n * This term has [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n mailing_list: _NS$w(\"mailing-list\"),\r\n /**\r\n * A forum or community that supports this project.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n support_forum: _NS$w(\"support-forum\"),\r\n /**\r\n * A forum or community for developers of this project.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n developer_forum: _NS$w(\"developer-forum\"),\r\n /**\r\n * A category of project.\r\n *\r\n * This term has [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n category: _NS$w(\"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 [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n license: _NS$w(\"license\"),\r\n /**\r\n * Source code repository.\r\n *\r\n * This term has [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n repository: _NS$w(\"repository\"),\r\n /**\r\n * The project that uses a repository.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n repositoryOf: _NS$w(\"repositoryOf\"),\r\n /**\r\n * Repository for anonymous access.\r\n *\r\n * This term has [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n anon_root: _NS$w(\"anon-root\"),\r\n /**\r\n * Web browser interface to repository.\r\n *\r\n * This term has [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n browse: _NS$w(\"browse\"),\r\n /**\r\n * Module name of a Subversion, CVS, BitKeeper or Arch repository.\r\n *\r\n * This term has [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n module: _NS$w(\"module\"),\r\n /**\r\n * Location of a repository.\r\n *\r\n * This term has [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n location: _NS$w(\"location\"),\r\n /**\r\n * Web page from which the project software can be downloaded.\r\n *\r\n * This term has [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n download_page: _NS$w(\"download-page\"),\r\n /**\r\n * Mirror of software download web page.\r\n *\r\n * This term has [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n download_mirror: _NS$w(\"download-mirror\"),\r\n /**\r\n * Revision identifier of a software release.\r\n *\r\n * This term has [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n revision: _NS$w(\"revision\"),\r\n /**\r\n * URI of download associated with this release.\r\n *\r\n * This term has [3] labels and comments, in the languages [cs, en, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n file_release: _NS$w(\"file-release\"),\r\n /**\r\n * URL of Wiki for collaborative discussion of project.\r\n *\r\n * This term has [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n wiki: _NS$w(\"wiki\"),\r\n /**\r\n * Bug tracker for a project.\r\n *\r\n * This term has [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n bug_database: _NS$w(\"bug-database\"),\r\n /**\r\n * Web page with screenshots of project.\r\n *\r\n * This term has [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n screenshots: _NS$w(\"screenshots\"),\r\n /**\r\n * Maintainer of a project, a project leader.\r\n *\r\n * This term has [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n maintainer: _NS$w(\"maintainer\"),\r\n /**\r\n * Developer of software for the project.\r\n *\r\n * This term has [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n developer: _NS$w(\"developer\"),\r\n /**\r\n * Contributor of documentation to the project.\r\n *\r\n * This term has [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n documenter: _NS$w(\"documenter\"),\r\n /**\r\n * Contributor of translations to the project.\r\n *\r\n * This term has [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n translator: _NS$w(\"translator\"),\r\n /**\r\n * A tester or other quality control contributor.\r\n *\r\n * This term has [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n tester: _NS$w(\"tester\"),\r\n /**\r\n * Project contributor.\r\n *\r\n * This term has [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n helper: _NS$w(\"helper\"),\r\n /**\r\n * Programming language a project is implemented in or intended for use with.\r\n *\r\n * This term has [6] labels and comments, in the languages [cs, de, en, es, fr, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n programming_language: _NS$w(\"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 multilingual descriptions, but has a mismatch between its labels and comments, with [6] labels in languages [cs, de, en, es, fr, pt], but [5] comments in languages [cs, de, en, es, fr].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n os: _NS$w(\"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 [2] labels and comments, in the languages [en, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n implements: _NS$w(\"implements\"),\r\n /**\r\n * The URI of a web service endpoint where software as a service may be accessed\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n service_endpoint: _NS$w(\"service-endpoint\"),\r\n /**\r\n * ISO language code a project has been translated into\r\n *\r\n * This term has [2] labels and comments, in the languages [en, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n language: _NS$w(\"language\"),\r\n /**\r\n * Vendor organization: commercial, free or otherwise\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n vendor: _NS$w(\"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 [2] labels and comments, in the languages [en, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n platform: _NS$w(\"platform\"),\r\n /**\r\n * Description of target user base\r\n *\r\n * This term has [2] labels and comments, in the languages [en, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n audience: _NS$w(\"audience\"),\r\n /**\r\n * URI of a blog related to a project\r\n *\r\n * This term has [2] labels and comments, in the languages [en, pt].\r\n *\r\n * Defined by the vocabulary: http://usefulinc.com/ns/doap#\r\n */\r\n blog: _NS$w(\"blog\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\r\n *\r\n * [Generator provided] - Evaluation and Report Language (EARL)\r\n */\r\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$v = \"http://www.w3.org/ns/earl#\";\r\nfunction _NS$v(localName) {\r\n return (_NAMESPACE$v + localName);\r\n}\r\n/**\r\n * [Generator provided] - Evaluation and Report Language (EARL)\r\n */\r\nvar EARL = {\r\n PREFIX: \"earl\",\r\n NAMESPACE: _NAMESPACE$v,\r\n PREFIX_AND_NAMESPACE: { \"earl\": \"http://www.w3.org/ns/earl#\" },\r\n NS: _NS$v,\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 * This term provides descriptions only in English.\r\n */\r\n Assertion: _NS$v(\"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 * This term provides descriptions only in English.\r\n */\r\n Assertor: _NS$v(\"Assertor\"),\r\n /**\r\n * the class of things that have been tested against some test criterion\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n TestSubject: _NS$v(\"TestSubject\"),\r\n /**\r\n * a testable statement, usually one that can be passed or failed\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n TestCriterion: _NS$v(\"TestCriterion\"),\r\n /**\r\n * a higher-level requirement that is tested by executing one or more sub-tests\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n TestRequirement: _NS$v(\"TestRequirement\"),\r\n /**\r\n * an atomic test, usually one that is a partial test for a requirement\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n TestCase: _NS$v(\"TestCase\"),\r\n /**\r\n * the actual result of performing the test\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n TestResult: _NS$v(\"TestResult\"),\r\n /**\r\n * describes how a test was carried out\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n TestMode: _NS$v(\"TestMode\"),\r\n /**\r\n * a discrete value that describes a resulting condition from carrying out the test\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n OutcomeValue: _NS$v(\"OutcomeValue\"),\r\n /**\r\n * the class of outcomes to denote passing a test\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Pass: _NS$v(\"Pass\"),\r\n /**\r\n * the class of outcomes to denote failing a test\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Fail: _NS$v(\"Fail\"),\r\n /**\r\n * the class of outcomes to denote an undetermined outcome\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n CannotTell: _NS$v(\"CannotTell\"),\r\n /**\r\n * the class of outcomes to denote the test is not applicable\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n NotApplicable: _NS$v(\"NotApplicable\"),\r\n /**\r\n * the class of outcomes to denote the test has not been carried out\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n NotTested: _NS$v(\"NotTested\"),\r\n /**\r\n * any piece of software such as an authoring tool, browser, or evaluation tool\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Software: _NS$v(\"Software\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * assertor of an assertion\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n assertedBy: _NS$v(\"assertedBy\"),\r\n /**\r\n * test subject of an assertion\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n subject: _NS$v(\"subject\"),\r\n /**\r\n * test criterion of an assertion\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n test: _NS$v(\"test\"),\r\n /**\r\n * result of an assertion\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n result: _NS$v(\"result\"),\r\n /**\r\n * mode in which the test was performed\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n mode: _NS$v(\"mode\"),\r\n /**\r\n * assertor that is primarily responsible for performing the test\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n mainAssertor: _NS$v(\"mainAssertor\"),\r\n /**\r\n * outcome of performing the test\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n outcome: _NS$v(\"outcome\"),\r\n /**\r\n * location within a test subject that are most relevant to a test result\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n pointer: _NS$v(\"pointer\"),\r\n /**\r\n * additional warnings or error messages in a human-readable form\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n info: _NS$v(\"info\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\r\n *\r\n * [Generator provided] - Friend of a friend, v0.99\r\n */\r\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$u = \"http://xmlns.com/foaf/0.1/\";\r\nfunction _NS$u(localName) {\r\n return (_NAMESPACE$u + localName);\r\n}\r\n/**\r\n * [Generator provided] - Friend of a friend, v0.99\r\n */\r\nvar FOAF = {\r\n PREFIX: \"foaf\",\r\n NAMESPACE: _NAMESPACE$u,\r\n PREFIX_AND_NAMESPACE: { \"foaf\": \"http://xmlns.com/foaf/0.1/\" },\r\n NS: _NS$u,\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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n Agent: _NS$u(\"Agent\"),\r\n /**\r\n * A document.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n Document: _NS$u(\"Document\"),\r\n /**\r\n * An organization.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n Organization: _NS$u(\"Organization\"),\r\n /**\r\n * A project (a collective endeavour of some kind).\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n Project: _NS$u(\"Project\"),\r\n /**\r\n * A person.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n Person: _NS$u(\"Person\"),\r\n /**\r\n * A class of Agents.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n Group: _NS$u(\"Group\"),\r\n /**\r\n * An image.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n Image: _NS$u(\"Image\"),\r\n /**\r\n * A foaf:LabelProperty is any RDF property with texual values that serve as labels.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n LabelProperty: _NS$u(\"LabelProperty\"),\r\n /**\r\n * An online account.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n OnlineAccount: _NS$u(\"OnlineAccount\"),\r\n /**\r\n * An online chat account.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n OnlineChatAccount: _NS$u(\"OnlineChatAccount\"),\r\n /**\r\n * An online e-commerce account.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n OnlineEcommerceAccount: _NS$u(\"OnlineEcommerceAccount\"),\r\n /**\r\n * An online gaming account.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n OnlineGamingAccount: _NS$u(\"OnlineGamingAccount\"),\r\n /**\r\n * A personal profile RDF document.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n PersonalProfileDocument: _NS$u(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n account: _NS$u(\"account\"),\r\n /**\r\n * Indicates the name (identifier) associated with this online account.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n accountName: _NS$u(\"accountName\"),\r\n /**\r\n * Indicates a homepage of the service provide for this online account.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n accountServiceHomepage: _NS$u(\"accountServiceHomepage\"),\r\n /**\r\n * The age in years of some agent.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n age: _NS$u(\"age\"),\r\n /**\r\n * An AIM chat ID\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n aimChatID: _NS$u(\"aimChatID\"),\r\n /**\r\n * A short informal nickname characterising an agent (includes login identifiers, IRC and other chat nicknames).\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n nick: _NS$u(\"nick\"),\r\n /**\r\n * A location that something is based near, for some broadly human notion of near.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n based_near: _NS$u(\"based_near\"),\r\n /**\r\n * The birthday of this Agent, represented in mm-dd string form, eg. '12-31'.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n birthday: _NS$u(\"birthday\"),\r\n /**\r\n * A current project this person works on.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n currentProject: _NS$u(\"currentProject\"),\r\n /**\r\n * A depiction of some thing.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n depiction: _NS$u(\"depiction\"),\r\n /**\r\n * A thing depicted in this representation.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n depicts: _NS$u(\"depicts\"),\r\n /**\r\n * A checksum for the DNA of some thing. Joke.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n dnaChecksum: _NS$u(\"dnaChecksum\"),\r\n /**\r\n * The family name of some person.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n familyName: _NS$u(\"familyName\"),\r\n /**\r\n * The family name of some person.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n family_name: _NS$u(\"family_name\"),\r\n /**\r\n * The first name of a person.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n firstName: _NS$u(\"firstName\"),\r\n /**\r\n * The underlying or 'focal' entity associated with some SKOS-described concept.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n focus: _NS$u(\"focus\"),\r\n /**\r\n * An organization funding a project or person.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n fundedBy: _NS$u(\"fundedBy\"),\r\n /**\r\n * A textual geekcode for this person, see http://www.geekcode.com/geek.html\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n geekcode: _NS$u(\"geekcode\"),\r\n /**\r\n * The gender of this Agent (typically but not necessarily 'male' or 'female').\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n gender: _NS$u(\"gender\"),\r\n /**\r\n * The given name of some person.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n givenName: _NS$u(\"givenName\"),\r\n /**\r\n * The given name of some person.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n givenname: _NS$u(\"givenname\"),\r\n /**\r\n * Indicates an account held by this agent.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n holdsAccount: _NS$u(\"holdsAccount\"),\r\n /**\r\n * A homepage for some thing.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n homepage: _NS$u(\"homepage\"),\r\n /**\r\n * A page or document about this thing.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n page: _NS$u(\"page\"),\r\n /**\r\n * A document that this thing is the primary topic of.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n isPrimaryTopicOf: _NS$u(\"isPrimaryTopicOf\"),\r\n /**\r\n * A topic of some page or document.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n topic: _NS$u(\"topic\"),\r\n /**\r\n * The primary topic of some page or document.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n primaryTopic: _NS$u(\"primaryTopic\"),\r\n /**\r\n * An ICQ chat ID\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n icqChatID: _NS$u(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n img: _NS$u(\"img\"),\r\n /**\r\n * A page about a topic of interest to this person.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n interest: _NS$u(\"interest\"),\r\n /**\r\n * A jabber ID for something.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n jabberID: _NS$u(\"jabberID\"),\r\n /**\r\n * A person known by this person (indicating some level of reciprocated interaction between the parties).\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n knows: _NS$u(\"knows\"),\r\n /**\r\n * The last name of a person.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n lastName: _NS$u(\"lastName\"),\r\n /**\r\n * A logo representing some thing.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n logo: _NS$u(\"logo\"),\r\n /**\r\n * Something that was made by this agent.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n made: _NS$u(\"made\"),\r\n /**\r\n * An agent that made this thing.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n maker: _NS$u(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n mbox: _NS$u(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n mbox_sha1sum: _NS$u(\"mbox_sha1sum\"),\r\n /**\r\n * Indicates a member of a Group\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n member: _NS$u(\"member\"),\r\n /**\r\n * Indicates the class of individuals that are a member of a Group\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n membershipClass: _NS$u(\"membershipClass\"),\r\n /**\r\n * An MSN chat ID\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n msnChatID: _NS$u(\"msnChatID\"),\r\n /**\r\n * A Myers Briggs (MBTI) personality classification.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n myersBriggs: _NS$u(\"myersBriggs\"),\r\n /**\r\n * A name for some thing.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n name: _NS$u(\"name\"),\r\n /**\r\n * An OpenID for an Agent.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n openid: _NS$u(\"openid\"),\r\n /**\r\n * A project this person has previously worked on.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n pastProject: _NS$u(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n phone: _NS$u(\"phone\"),\r\n /**\r\n * A .plan comment, in the tradition of finger and '.plan' files.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n plan: _NS$u(\"plan\"),\r\n /**\r\n * A link to the publications of this person.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n publications: _NS$u(\"publications\"),\r\n /**\r\n * A homepage of a school attended by the person.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n schoolHomepage: _NS$u(\"schoolHomepage\"),\r\n /**\r\n * A sha1sum hash, in hex.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n sha1: _NS$u(\"sha1\"),\r\n /**\r\n * A Skype ID\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n skypeID: _NS$u(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n status: _NS$u(\"status\"),\r\n /**\r\n * The surname of some person.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n surname: _NS$u(\"surname\"),\r\n /**\r\n * A theme.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n theme: _NS$u(\"theme\"),\r\n /**\r\n * A derived thumbnail image.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n thumbnail: _NS$u(\"thumbnail\"),\r\n /**\r\n * A tipjar document for this agent, describing means for payment and reward.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n tipjar: _NS$u(\"tipjar\"),\r\n /**\r\n * Title (Mr, Mrs, Ms, Dr. etc)\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n title: _NS$u(\"title\"),\r\n /**\r\n * A thing of interest to this person.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n topic_interest: _NS$u(\"topic_interest\"),\r\n /**\r\n * A weblog of some thing (whether person, group, company etc.).\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n weblog: _NS$u(\"weblog\"),\r\n /**\r\n * A work info homepage of some person; a page about their work for some organization.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n workInfoHomepage: _NS$u(\"workInfoHomepage\"),\r\n /**\r\n * A workplace homepage of some person; the homepage of an organization they work for.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n workplaceHomepage: _NS$u(\"workplaceHomepage\"),\r\n /**\r\n * A Yahoo chat ID\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://xmlns.com/foaf/0.1/\r\n */\r\n yahooChatID: _NS$u(\"yahooChatID\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\r\n *\r\n * A namespace for describing HTTP messages (http://www.w3.org/Protocols/rfc2616/rfc2616.html)\r\n */\r\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$t = \"http://www.w3.org/2011/http#\";\r\nfunction _NS$t(localName) {\r\n return (_NAMESPACE$t + localName);\r\n}\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: _NAMESPACE$t,\r\n PREFIX_AND_NAMESPACE: { \"http\": \"http://www.w3.org/2011/http#\" },\r\n NS: _NS$t,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * A connection used for HTTP transfer.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n Connection: _NS$t(\"Connection\"),\r\n /**\r\n * An entity header in an HTTP message.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n EntityHeader: _NS$t(\"EntityHeader\"),\r\n /**\r\n * A header in an HTTP message.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n MessageHeader: _NS$t(\"MessageHeader\"),\r\n /**\r\n * A general header in an HTTP message.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n GeneralHeader: _NS$t(\"GeneralHeader\"),\r\n /**\r\n * A part of a deconstructed header value.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n HeaderElement: _NS$t(\"HeaderElement\"),\r\n /**\r\n * A header name.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n HeaderName: _NS$t(\"HeaderName\"),\r\n /**\r\n * An HTTP message.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n Message: _NS$t(\"Message\"),\r\n /**\r\n * The HTTP method used for the request.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n Method: _NS$t(\"Method\"),\r\n /**\r\n * A parameter for a part of a header value.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Parameter: _NS$t(\"Parameter\"),\r\n /**\r\n * An HTTP request.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n Request: _NS$t(\"Request\"),\r\n /**\r\n * A header in an HTTP request message.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n RequestHeader: _NS$t(\"RequestHeader\"),\r\n /**\r\n * An HTTP response.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n Response: _NS$t(\"Response\"),\r\n /**\r\n * A header in an HTTP response message.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n ResponseHeader: _NS$t(\"ResponseHeader\"),\r\n /**\r\n * The status code of an HTTP response.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n StatusCode: _NS$t(\"StatusCode\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * The absolute request URI.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n absoluteURI: _NS$t(\"absoluteURI\"),\r\n /**\r\n * The request URI of an HTTP request.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n requestURI: _NS$t(\"requestURI\"),\r\n /**\r\n * The absolute path sort of request URI.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n absolutePath: _NS$t(\"absolutePath\"),\r\n /**\r\n * The authority sort of request URI.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n authority: _NS$t(\"authority\"),\r\n /**\r\n * The entity body of an HTTP message.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n body: _NS$t(\"body\"),\r\n /**\r\n * The authority of a connection used for the HTTP transfer.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n connectionAuthority: _NS$t(\"connectionAuthority\"),\r\n /**\r\n * The name of a header element.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n elementName: _NS$t(\"elementName\"),\r\n /**\r\n * The value of a header element.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n elementValue: _NS$t(\"elementValue\"),\r\n /**\r\n * The name of an HTTP header field.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n fieldName: _NS$t(\"fieldName\"),\r\n /**\r\n * The value of an HTTP header field.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n fieldValue: _NS$t(\"fieldValue\"),\r\n /**\r\n * The deconstructed parts of an HTTP header value.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n headerElements: _NS$t(\"headerElements\"),\r\n /**\r\n * The name of an HTTP header.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n hdrName: _NS$t(\"hdrName\"),\r\n /**\r\n * The headers in an HTTP message.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n headers: _NS$t(\"headers\"),\r\n /**\r\n * The HTTP version of an HTTP message.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n httpVersion: _NS$t(\"httpVersion\"),\r\n /**\r\n * The HTTP method used for the HTTP request.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n mthd: _NS$t(\"mthd\"),\r\n /**\r\n * The HTTP method name used for the HTTP request.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n methodName: _NS$t(\"methodName\"),\r\n /**\r\n * The name of a parameter in a part of a deconstructed HTTP header value.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n paramName: _NS$t(\"paramName\"),\r\n /**\r\n * The parameters in a part of a deconstructed HTTP header value.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n params: _NS$t(\"params\"),\r\n /**\r\n * The value of a parameter in a part of a deconstructed HTTP header value.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n paramValue: _NS$t(\"paramValue\"),\r\n /**\r\n * The reason phrase (status text) of an HTTP response.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n reasonPhrase: _NS$t(\"reasonPhrase\"),\r\n /**\r\n * The HTTP requests made via a connection.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n requests: _NS$t(\"requests\"),\r\n /**\r\n * The HTTP response sent in answer to an HTTP request.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n resp: _NS$t(\"resp\"),\r\n /**\r\n * The status code of an HTTP response.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n sc: _NS$t(\"sc\"),\r\n /**\r\n * The status code number.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n statusCodeNumber: _NS$t(\"statusCodeNumber\"),\r\n /**\r\n * The status code value of an HTTP response.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.ietf.org/rfc/rfc2616.txt\r\n */\r\n statusCodeValue: _NS$t(\"statusCodeValue\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\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\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$s = \"http://www.w3.org/2007/ont/httph#\";\r\nfunction _NS$s(localName) {\r\n return (_NAMESPACE$s + localName);\r\n}\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: _NAMESPACE$s,\r\n PREFIX_AND_NAMESPACE: { \"httph-inrupt\": \"http://www.w3.org/2007/ont/httph#\" },\r\n NS: _NS$s,\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * See the HTTP specification\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2007/ont/httph\r\n */\r\n content_type: _NS$s(\"content-type\"),\r\n /**\r\n * See the HTTP specification\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2007/ont/httph#\r\n */\r\n accept: _NS$s(\"accept\"),\r\n /**\r\n * See the HTTP specification\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2007/ont/httph#\r\n */\r\n accept_language: _NS$s(\"accept-language\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\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\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$r = \"http://www.w3.org/ns/hydra/core#\";\r\nfunction _NS$r(localName) {\r\n return (_NAMESPACE$r + localName);\r\n}\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: _NAMESPACE$r,\r\n PREFIX_AND_NAMESPACE: { \"hydra\": \"http://www.w3.org/ns/hydra/core#\" },\r\n NS: _NS$r,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * The class of Hydra classes.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n Class: _NS$r(\"Class\"),\r\n /**\r\n * The class of properties representing links.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n Link: _NS$r(\"Link\"),\r\n /**\r\n * The Hydra API documentation class\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n ApiDocumentation: _NS$r(\"ApiDocumentation\"),\r\n /**\r\n * A templated link.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n TemplatedLink: _NS$r(\"TemplatedLink\"),\r\n /**\r\n * A runtime error, used to report information beyond the returned status code.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n Error: _NS$r(\"Error\"),\r\n /**\r\n * A collection holding references to a number of related resources.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n Collection: _NS$r(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n PartialCollectionView: _NS$r(\"PartialCollectionView\"),\r\n /**\r\n * Provides a base abstract for base Uri source for Iri template resolution.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n BaseUriSource: _NS$r(\"BaseUriSource\"),\r\n /**\r\n * Specifies a possible either expected or returned header values\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n HeaderSpecification: _NS$r(\"HeaderSpecification\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * A property\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n property: _NS$r(\"property\"),\r\n /**\r\n * True if the property is required, false otherwise.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n required: _NS$r(\"required\"),\r\n /**\r\n * True if the client can retrieve the property's value, false otherwise.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n readable: _NS$r(\"readable\"),\r\n /**\r\n * True if the client can change the property's value, false otherwise.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n writable: _NS$r(\"writable\"),\r\n /**\r\n * This property is left for compatibility purposes and hydra:writable should be used instead.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n writeable: _NS$r(\"writeable\"),\r\n /**\r\n * The HTTP method.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n method: _NS$r(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n statusCode: _NS$r(\"statusCode\"),\r\n /**\r\n * A title, often used along with a description.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n title: _NS$r(\"title\"),\r\n /**\r\n * A description.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n description: _NS$r(\"description\"),\r\n /**\r\n * This predicate is left for compatibility purposes and hydra:memberAssertion should be used instead.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n manages: _NS$r(\"manages\"),\r\n /**\r\n * The total number of items referenced by a collection.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n totalItems: _NS$r(\"totalItems\"),\r\n /**\r\n * A property representing a freetext query.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n freetextQuery: _NS$r(\"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 * This term provides descriptions only with no explicit locale.\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$r(\"template\"),\r\n /**\r\n * An IRI template as defined by RFC6570.\r\n *\r\n * This term provides descriptions only with no explicit locale.\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$r(\"Rfc6570Template\"),\r\n /**\r\n * The representation format to use when expanding the IRI template.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n variableRepresentation: _NS$r(\"variableRepresentation\"),\r\n /**\r\n * A variable-to-property mapping of the IRI template.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n mapping: _NS$r(\"mapping\"),\r\n /**\r\n * An IRI template variable\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n variable: _NS$r(\"variable\"),\r\n /**\r\n * relative Uri resolution\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n resolveRelativeUsing: _NS$r(\"resolveRelativeUsing\"),\r\n /**\r\n * Instructs to skip N elements of the set.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n offset: _NS$r(\"offset\"),\r\n /**\r\n * Instructs to limit set only to N elements.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n limit: _NS$r(\"limit\"),\r\n /**\r\n * Instructs to provide a specific page of the collection at a given index.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n pageIndex: _NS$r(\"pageIndex\"),\r\n /**\r\n * Instructs to provide a specific page reference of the collection.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n pageReference: _NS$r(\"pageReference\"),\r\n /**\r\n * Name of the header returned by the operation.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n returnsHeader: _NS$r(\"returnsHeader\"),\r\n /**\r\n * Specification of the header expected by the operation.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n expectsHeader: _NS$r(\"expectsHeader\"),\r\n /**\r\n * Name of the header.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n headerName: _NS$r(\"headerName\"),\r\n /**\r\n * Possible value of the header.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n possibleValue: _NS$r(\"possibleValue\"),\r\n /**\r\n * Determines whether the provided set of header values is closed or not.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n closedSet: _NS$r(\"closedSet\"),\r\n /**\r\n * Hint on what kind of extensions are in use.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/hydra/core\r\n */\r\n extension: _NS$r(\"extension\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\r\n *\r\n * [Generator provided] - iCal - a vocabulary for description of events and calendars\r\n */\r\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$q = \"https://www.w3.org/2002/12/cal/ical#\";\r\nfunction _NS$q(localName) {\r\n return (_NAMESPACE$q + localName);\r\n}\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: _NAMESPACE$q,\r\n PREFIX_AND_NAMESPACE: { \"ical\": \"https://www.w3.org/2002/12/cal/ical#\" },\r\n NS: _NS$q,\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 * This term provides descriptions only with no explicit locale.\r\n */\r\n Valarm: _NS$q(\"Valarm\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n Value_DURATION: _NS$q(\"Value_DURATION\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n Value_CAL_ADDRESS: _NS$q(\"Value_CAL-ADDRESS\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n Value_DATE: _NS$q(\"Value_DATE\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n Value_DATE_TIME: _NS$q(\"Value_DATE-TIME\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n Value_PERIOD: _NS$q(\"Value_PERIOD\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n Value_RECUR: _NS$q(\"Value_RECUR\"),\r\n /**\r\n * Provide a grouping of component properties that describe an event.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n Vevent: _NS$q(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n Vfreebusy: _NS$q(\"Vfreebusy\"),\r\n /**\r\n * Provide a grouping of component properties that describe a journal entry.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n Vjournal: _NS$q(\"Vjournal\"),\r\n /**\r\n * Provide a grouping of component properties that defines a time zone.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n Vtimezone: _NS$q(\"Vtimezone\"),\r\n /**\r\n * Provide a grouping of calendar properties that describe a to-do.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n Vtodo: _NS$q(\"Vtodo\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n *\r\n default value type: URI\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n attach: _NS$q(\"attach\"),\r\n /**\r\n *\r\n value type: TEXT\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n description: _NS$q(\"description\"),\r\n /**\r\n *\r\n value type: TEXT\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n summary: _NS$q(\"summary\"),\r\n /**\r\n *\r\n value type: DURATION\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n duration: _NS$q(\"duration\"),\r\n /**\r\n *\r\n value type: CAL-ADDRESS\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n attendee: _NS$q(\"attendee\"),\r\n /**\r\n *\r\n value type: TEXT\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n action: _NS$q(\"action\"),\r\n /**\r\n *\r\n value type: INTEGER\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n repeat: _NS$q(\"repeat\"),\r\n /**\r\n *\r\n default value type: DURATION\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n trigger: _NS$q(\"trigger\"),\r\n /**\r\n *\r\n value type: TEXT\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n categories: _NS$q(\"categories\"),\r\n /**\r\n *\r\n value type: TEXT\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n class: _NS$q(\"class\"),\r\n /**\r\n *\r\n value type: TEXT\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n comment: _NS$q(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n geo: _NS$q(\"geo\"),\r\n /**\r\n *\r\n value type: TEXT\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n location: _NS$q(\"location\"),\r\n /**\r\n *\r\n value type: INTEGER\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n priority: _NS$q(\"priority\"),\r\n /**\r\n *\r\n value type: TEXT\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n resources: _NS$q(\"resources\"),\r\n /**\r\n *\r\n value type: TEXT\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n status: _NS$q(\"status\"),\r\n /**\r\n *\r\n default value type: DATE-TIME\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n dtend: _NS$q(\"dtend\"),\r\n /**\r\n *\r\n default value type: DATE-TIME\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n dtstart: _NS$q(\"dtstart\"),\r\n /**\r\n *\r\n value type: TEXT\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n transp: _NS$q(\"transp\"),\r\n /**\r\n *\r\n value type: TEXT\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n contact: _NS$q(\"contact\"),\r\n /**\r\n *\r\n value type: CAL-ADDRESS\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n organizer: _NS$q(\"organizer\"),\r\n /**\r\n *\r\n value type: TEXT\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n relatedTo: _NS$q(\"relatedTo\"),\r\n /**\r\n *\r\n value type: URI\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n url: _NS$q(\"url\"),\r\n /**\r\n *\r\n value type: TEXT\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n uid: _NS$q(\"uid\"),\r\n /**\r\n *\r\n value type: RECUR\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n exrule: _NS$q(\"exrule\"),\r\n /**\r\n *\r\n default value type: DATE-TIME\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n rdate: _NS$q(\"rdate\"),\r\n /**\r\n *\r\n value type: RECUR\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n rrule: _NS$q(\"rrule\"),\r\n /**\r\n *\r\n value type: DATE-TIME\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n created: _NS$q(\"created\"),\r\n /**\r\n *\r\n value type: DATE-TIME\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n dtstamp: _NS$q(\"dtstamp\"),\r\n /**\r\n *\r\n value type: DATE-TIME\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n lastModified: _NS$q(\"lastModified\"),\r\n /**\r\n *\r\n value type: integer\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n sequence: _NS$q(\"sequence\"),\r\n /**\r\n *\r\n value type: TEXT\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n requestStatus: _NS$q(\"requestStatus\"),\r\n /**\r\n *\r\n value type: PERIOD\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n freebusy: _NS$q(\"freebusy\"),\r\n /**\r\n *\r\n value type: TEXT\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n tzid: _NS$q(\"tzid\"),\r\n /**\r\n *\r\n value type: TEXT\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n tzname: _NS$q(\"tzname\"),\r\n /**\r\n *\r\n value type: UTC-OFFSET\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n tzoffsetfrom: _NS$q(\"tzoffsetfrom\"),\r\n /**\r\n *\r\n value type: UTC-OFFSET\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n tzoffsetto: _NS$q(\"tzoffsetto\"),\r\n /**\r\n *\r\n value type: URI\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n tzurl: _NS$q(\"tzurl\"),\r\n /**\r\n *\r\n value type: INTEGER\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n percentComplete: _NS$q(\"percentComplete\"),\r\n /**\r\n *\r\n value type: DATE-TIME\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n completed: _NS$q(\"completed\"),\r\n /**\r\n *\r\n default value type: DATE-TIME\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n due: _NS$q(\"due\"),\r\n /**\r\n *\r\n value type: TEXT\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n X_: _NS$q(\"X-\"),\r\n /**\r\n *\r\n value type: TEXT\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n calscale: _NS$q(\"calscale\"),\r\n /**\r\n *\r\n default value type: DATE-TIME\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n exdate: _NS$q(\"exdate\"),\r\n /**\r\n *\r\n value type: TEXT\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n method: _NS$q(\"method\"),\r\n /**\r\n *\r\n value type: TEXT\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n prodid: _NS$q(\"prodid\"),\r\n /**\r\n *\r\n default value type: DATE-TIME\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n recurrenceId: _NS$q(\"recurrenceId\"),\r\n /**\r\n *\r\n value type: TEXT\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n version: _NS$q(\"version\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\r\n *\r\n * This is a vocabulary document and is used to achieve certain features of the JSON-LD language.\r\n */\r\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$p = \"http://www.w3.org/ns/json-ld#\";\r\nfunction _NS$p(localName) {\r\n return (_NAMESPACE$p + localName);\r\n}\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: _NAMESPACE$p,\r\n PREFIX_AND_NAMESPACE: { \"jsonld\": \"http://www.w3.org/ns/json-ld#\" },\r\n NS: _NS$p,\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 * This term provides descriptions only in English.\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$p(\"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 * This term provides descriptions only in English.\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$p(\"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 * This term provides descriptions only in English.\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$p(\"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 * This term provides descriptions only in English.\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$p(\"base\"),\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 * This term provides descriptions only in English.\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$p(\"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 * This term provides descriptions only in English.\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$p(\"context\"),\r\n /**\r\n * Term definition(s) associated with this context.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/json-ld#\r\n */\r\n definition: _NS$p(\"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 * This term provides descriptions only in English.\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$p(\"direction\"),\r\n /**\r\n * The `@id` mapping of a [term definition](#TermDefinition).\r\n *\r\n * This term provides descriptions only in English.\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$p(\"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 * This term provides descriptions only in English.\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$p(\"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 * This term provides descriptions only in English.\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$p(\"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 * This term provides descriptions only in English.\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$p(\"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 * This term provides descriptions only in English.\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$p(\"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 * This term provides descriptions only in English.\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$p(\"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 * This term provides descriptions only in English.\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$p(\"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 * This term provides descriptions only in English.\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$p(\"reverse\"),\r\n /**\r\n * The term associated with a [term definition](#TermDefinition).\r\n *\r\n * This term provides descriptions only in English.\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$p(\"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 * This term provides descriptions only in English.\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$p(\"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 * This term provides descriptions only in English.\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$p(\"version\"),\r\n /**\r\n * Used to expand properties and values in `@type` with a common prefix IRI.\r\n *\r\n * This term provides descriptions only in English.\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$p(\"vocab\"),\r\n /**\r\n * This profile IRI is used to request or specify compacted JSON-LD document form.\r\n *\r\n * This term provides descriptions only in English.\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$p(\"compacted\"),\r\n /**\r\n * This profile URI is used to request or specify expanded JSON-LD document form.\r\n *\r\n * This term provides descriptions only in English.\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$p(\"expanded\"),\r\n /**\r\n * This profile URI is used to request or specify flattened JSON-LD document form.\r\n *\r\n * This term provides descriptions only in English.\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$p(\"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 * This term provides descriptions only in English.\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$p(\"frame\"),\r\n /**\r\n * This profile URI is used to request or specify framed JSON-LD document form.\r\n *\r\n * This term provides descriptions only in English.\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$p(\"framed\"),\r\n /**\r\n * This profile URI is used to request or specify streaming JSON-LD document form.\r\n *\r\n * This term provides descriptions only in English.\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$p(\"streaming\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\r\n *\r\n * Vocabulary URIs defined in the Linked Data Platform (LDP) namespace.\r\n */\r\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$o = \"http://www.w3.org/ns/ldp#\";\r\nfunction _NS$o(localName) {\r\n return (_NAMESPACE$o + localName);\r\n}\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: _NAMESPACE$o,\r\n PREFIX_AND_NAMESPACE: { \"ldp\": \"http://www.w3.org/ns/ldp#\" },\r\n NS: _NS$o,\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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n Resource: _NS$o(\"Resource\"),\r\n /**\r\n * A Linked Data Platform Resource (LDPR) whose state is represented as RDF.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n RDFSource: _NS$o(\"RDFSource\"),\r\n /**\r\n * A Linked Data Platform Resource (LDPR) whose state is NOT represented as RDF.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n NonRDFSource: _NS$o(\"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 provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n Container: _NS$o(\"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 provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n BasicContainer: _NS$o(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n DirectContainer: _NS$o(\"DirectContainer\"),\r\n /**\r\n * An LDPC that has the flexibility of choosing what form the membership triples take.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n IndirectContainer: _NS$o(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n Page: _NS$o(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n PageSortCriterion: _NS$o(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n hasMemberRelation: _NS$o(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n isMemberOfRelation: _NS$o(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n membershipResource: _NS$o(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n insertedContentRelation: _NS$o(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n member: _NS$o(\"member\"),\r\n /**\r\n * Links a container with resources created through the container.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n contains: _NS$o(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n constrainedBy: _NS$o(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n pageSortCriteria: _NS$o(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n pageSortPredicate: _NS$o(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n pageSortOrder: _NS$o(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n pageSortCollation: _NS$o(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ldp#\r\n */\r\n pageSequence: _NS$o(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: https://www.w3.org/TR/ldn/\r\n */\r\n inbox: _NS$o(\"inbox\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\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\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$n = \"http://www.w3.org/ns/odrl/2/\";\r\nfunction _NS$n(localName) {\r\n return (_NAMESPACE$n + localName);\r\n}\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: _NAMESPACE$n,\r\n PREFIX_AND_NAMESPACE: { \"odrl\": \"http://www.w3.org/ns/odrl/2/\" },\r\n NS: _NS$n,\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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Policy: _NS$n(\"Policy\"),\r\n /**\r\n * An unambiguous identifier\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n uid: _NS$n(\"uid\"),\r\n /**\r\n * The identifier(s) of an ODRL Profile that the Policy conforms to.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n profile: _NS$n(\"profile\"),\r\n /**\r\n * Relates a (child) policy to another (parent) policy from which terms are inherited.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n inheritFrom: _NS$n(\"inheritFrom\"),\r\n /**\r\n * An abstract concept that represents the common characteristics of Permissions, Prohibitions, and Duties.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Rule: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n relation: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n function: _NS$n(\"function\"),\r\n /**\r\n * Failure is an abstract property that defines the violation (or unmet) relationship between Rules.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n failure: _NS$n(\"failure\"),\r\n /**\r\n * A resource or a collection of resources that are the subject of a Rule.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Asset: _NS$n(\"Asset\"),\r\n /**\r\n * An entity or a collection of entities that undertake Roles in a Rule.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Party: _NS$n(\"Party\"),\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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n ConflictTerm: _NS$n(\"ConflictTerm\"),\r\n /**\r\n * The conflict-resolution strategy for a Policy.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n conflict: _NS$n(\"conflict\"),\r\n /**\r\n * Permissions take preference over prohibitions.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n perm: _NS$n(\"perm\"),\r\n /**\r\n * Prohibitions take preference over permissions.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n prohibit: _NS$n(\"prohibit\"),\r\n /**\r\n * The policy is void.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n invalid: _NS$n(\"invalid\"),\r\n /**\r\n * A Policy that grants the assignee a Rule over an Asset from an assigner.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Agreement: _NS$n(\"Agreement\"),\r\n /**\r\n * A Policy that proposes a Rule over an Asset from an assigner.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Offer: _NS$n(\"Offer\"),\r\n /**\r\n * A Policy that expresses a Rule over an Asset.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Set: _NS$n(\"Set\"),\r\n /**\r\n * A Policy that asserts a Rule over an Asset from parties.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Assertion: _NS$n(\"Assertion\"),\r\n /**\r\n * A Policy that expresses a Rule over an Asset containing personal information.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Privacy: _NS$n(\"Privacy\"),\r\n /**\r\n * A Policy that proposes a Rule over an Asset from an assignee.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Request: _NS$n(\"Request\"),\r\n /**\r\n * A Policy that grants the holder a Rule over an Asset from an assigner.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Ticket: _NS$n(\"Ticket\"),\r\n /**\r\n * An Asset that is collection of individual resources\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n AssetCollection: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n target: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n hasPolicy: _NS$n(\"hasPolicy\"),\r\n /**\r\n * The output property specifies the Asset which is created from the output of the Action.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n output: _NS$n(\"output\"),\r\n /**\r\n * A Party that is a group of individual entities\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n PartyCollection: _NS$n(\"PartyCollection\"),\r\n /**\r\n * The Party is the recipient of the Rule.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n assignee: _NS$n(\"assignee\"),\r\n /**\r\n * The Party is the issuer of the Rule.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n assigner: _NS$n(\"assigner\"),\r\n /**\r\n * Identifies an ODRL Policy for which the identified Party undertakes the assignee functional role.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n assigneeOf: _NS$n(\"assigneeOf\"),\r\n /**\r\n * Identifies an ODRL Policy for which the identified Party undertakes the assigner functional role.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n assignerOf: _NS$n(\"assignerOf\"),\r\n /**\r\n * The Party to be attributed.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n attributedParty: _NS$n(\"attributedParty\"),\r\n /**\r\n * The Party who undertakes the attribution.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n attributingParty: _NS$n(\"attributingParty\"),\r\n /**\r\n * The Party is the recipient of the compensation.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n compensatedParty: _NS$n(\"compensatedParty\"),\r\n /**\r\n * The Party that is the provider of the compensation.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n compensatingParty: _NS$n(\"compensatingParty\"),\r\n /**\r\n * The Party to obtain consent from.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n consentingParty: _NS$n(\"consentingParty\"),\r\n /**\r\n * The Party who obtains the consent.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n consentedParty: _NS$n(\"consentedParty\"),\r\n /**\r\n * The Party who is offering the contract.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n contractingParty: _NS$n(\"contractingParty\"),\r\n /**\r\n * The Party who is being contracted.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n contractedParty: _NS$n(\"contractedParty\"),\r\n /**\r\n * The Party to be informed of all uses.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n informedParty: _NS$n(\"informedParty\"),\r\n /**\r\n * The Party who provides the inform use data.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n informingParty: _NS$n(\"informingParty\"),\r\n /**\r\n * The Party who is tracking usage.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n trackingParty: _NS$n(\"trackingParty\"),\r\n /**\r\n * The Party whose usage is being tracked.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n trackedParty: _NS$n(\"trackedParty\"),\r\n /**\r\n * Identifies an Asset/PartyCollection that the Asset/Party is a member of.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n partOf: _NS$n(\"partOf\"),\r\n /**\r\n * Reference to a Asset/PartyCollection\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n source: _NS$n(\"source\"),\r\n /**\r\n * An operation on an Asset.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Action: _NS$n(\"Action\"),\r\n /**\r\n * The operation relating to the Asset for which the Rule is being subjected.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n action: _NS$n(\"action\"),\r\n /**\r\n * An Action transitively asserts that another Action that encompasses its operational semantics.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n includedIn: _NS$n(\"includedIn\"),\r\n /**\r\n * An Action asserts that another Action is not prohibited to enable its operational semantics.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n implies: _NS$n(\"implies\"),\r\n /**\r\n * The ability to perform an Action over an Asset.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Permission: _NS$n(\"Permission\"),\r\n /**\r\n * Relates an individual Permission to a Policy.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n permission: _NS$n(\"permission\"),\r\n /**\r\n * The inability to perform an Action over an Asset.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Prohibition: _NS$n(\"Prohibition\"),\r\n /**\r\n * The obligation to perform an Action\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Duty: _NS$n(\"Duty\"),\r\n /**\r\n * Relates an individual Prohibition to a Policy.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n prohibition: _NS$n(\"prohibition\"),\r\n /**\r\n * To use the Asset\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n use: _NS$n(\"use\"),\r\n /**\r\n * To transfer the ownership of the Asset in perpetuity.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n transfer: _NS$n(\"transfer\"),\r\n /**\r\n * To accept that the use of the Asset may be tracked.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n acceptTracking: _NS$n(\"acceptTracking\"),\r\n /**\r\n * To use the Asset or parts of it as part of a composite collection.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n aggregate: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n annotate: _NS$n(\"annotate\"),\r\n /**\r\n * To anonymize all or parts of the Asset.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n anonymize: _NS$n(\"anonymize\"),\r\n /**\r\n * To store the Asset (in a non-transient form).\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n archive: _NS$n(\"archive\"),\r\n /**\r\n * To attribute the use of the Asset.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n attribute: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n compensate: _NS$n(\"compensate\"),\r\n /**\r\n * To create multiple copies of the Asset that are being concurrently used.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n concurrentUse: _NS$n(\"concurrentUse\"),\r\n /**\r\n * To permanently remove all copies of the Asset after it has been used.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n delete: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n derive: _NS$n(\"derive\"),\r\n /**\r\n * To produce a digital copy of (or otherwise digitize) the Asset from its analogue form.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n digitize: _NS$n(\"digitize\"),\r\n /**\r\n * To create a static and transient rendition of an Asset.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n display: _NS$n(\"display\"),\r\n /**\r\n * To supply the Asset to third-parties.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n distribute: _NS$n(\"distribute\"),\r\n /**\r\n * To ensure that the Rule on the Asset is exclusive.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n ensureExclusivity: _NS$n(\"ensureExclusivity\"),\r\n /**\r\n * To run the computer program Asset.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n execute: _NS$n(\"execute\"),\r\n /**\r\n * To extract parts of the Asset and to use it as a new Asset.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n extract: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n give: _NS$n(\"give\"),\r\n /**\r\n * To grant the use of the Asset to third parties.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n grantUse: _NS$n(\"grantUse\"),\r\n /**\r\n * To include other related assets in the Asset.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n include: _NS$n(\"include\"),\r\n /**\r\n * To record the Asset in an index.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n index: _NS$n(\"index\"),\r\n /**\r\n * To inform that an action has been performed on or in relation to the Asset.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n inform: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n install: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n modify: _NS$n(\"modify\"),\r\n /**\r\n * To move the Asset from one digital location to another including deleting the original copy.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n move: _NS$n(\"move\"),\r\n /**\r\n * To grant the specified Policy to a third party for their use of the Asset.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n nextPolicy: _NS$n(\"nextPolicy\"),\r\n /**\r\n * To obtain verifiable consent to perform the requested action in relation to the Asset.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n obtainConsent: _NS$n(\"obtainConsent\"),\r\n /**\r\n * To create a sequential and transient rendition of an Asset.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n play: _NS$n(\"play\"),\r\n /**\r\n * To publicly perform the Asset.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n present: _NS$n(\"present\"),\r\n /**\r\n * To create a tangible and permanent rendition of an Asset.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n print: _NS$n(\"print\"),\r\n /**\r\n * To obtain data from the Asset.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n read: _NS$n(\"read\"),\r\n /**\r\n * To make duplicate copies the Asset in any material form.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n reproduce: _NS$n(\"reproduce\"),\r\n /**\r\n * To review the Policy applicable to the Asset.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n reviewPolicy: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n sell: _NS$n(\"sell\"),\r\n /**\r\n * To deliver the Asset in real-time.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n stream: _NS$n(\"stream\"),\r\n /**\r\n * To use the Asset in timed relations with media (audio/visual) elements of another Asset.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n synchronize: _NS$n(\"synchronize\"),\r\n /**\r\n * To have a text Asset read out loud.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n textToSpeech: _NS$n(\"textToSpeech\"),\r\n /**\r\n * To convert the Asset into a different format.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n transform: _NS$n(\"transform\"),\r\n /**\r\n * To translate the original natural language of an Asset into another natural language.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n translate: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n uninstall: _NS$n(\"uninstall\"),\r\n /**\r\n * To apply a watermark to the Asset.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n watermark: _NS$n(\"watermark\"),\r\n /**\r\n * Relates an individual Duty to a Policy.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n obligation: _NS$n(\"obligation\"),\r\n /**\r\n * Relates an individual Duty to a Permission.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n duty: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n consequence: _NS$n(\"consequence\"),\r\n /**\r\n * Relates an individual remedy Duty to a Prohibition.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n remedy: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Constraint: _NS$n(\"Constraint\"),\r\n /**\r\n * Constraint applied to a Rule\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n constraint: _NS$n(\"constraint\"),\r\n /**\r\n * Constraint used to refine the semantics of an Action, or Party/Asset Collection\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n refinement: _NS$n(\"refinement\"),\r\n /**\r\n * Operator for constraint expression.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Operator: _NS$n(\"Operator\"),\r\n /**\r\n * The operator function applied to operands of a Constraint\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n operator: _NS$n(\"operator\"),\r\n /**\r\n * Right operand for constraint expression.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n RightOperand: _NS$n(\"RightOperand\"),\r\n /**\r\n * The value of the right operand in a constraint expression.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n rightOperand: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n rightOperandReference: _NS$n(\"rightOperandReference\"),\r\n /**\r\n * Left operand for a constraint expression.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n LeftOperand: _NS$n(\"LeftOperand\"),\r\n /**\r\n * The left operand in a constraint expression.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n leftOperand: _NS$n(\"leftOperand\"),\r\n /**\r\n * The datatype of the value of the rightOperand or rightOperandReference of a Constraint.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n dataType: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n status: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n LogicalConstraint: _NS$n(\"LogicalConstraint\"),\r\n /**\r\n * Operand is an abstract property for a logical relationship.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n operand: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n absolutePosition: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n absoluteSpatialPosition: _NS$n(\"absoluteSpatialPosition\"),\r\n /**\r\n * The absolute temporal positions in a media stream the target Asset has to fit.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n absoluteTemporalPosition: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n absoluteSize: _NS$n(\"absoluteSize\"),\r\n /**\r\n * Numeric count of executions of the action of the Rule.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n count: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n dateTime: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n delayPeriod: _NS$n(\"delayPeriod\"),\r\n /**\r\n * The delivery channel used for exercising the action of the Rule.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n deliveryChannel: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n elapsedTime: _NS$n(\"elapsedTime\"),\r\n /**\r\n * An identified event setting a context for exercising the action of the Rule.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n event: _NS$n(\"event\"),\r\n /**\r\n * A transformed file format of the target Asset.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n fileFormat: _NS$n(\"fileFormat\"),\r\n /**\r\n * A defined industry sector setting a context for exercising the action of the Rule.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n industry: _NS$n(\"industry\"),\r\n /**\r\n * A natural language used by the target Asset.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n language: _NS$n(\"language\"),\r\n /**\r\n * Category of a media asset setting a context for exercising the action of the Rule.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n media: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n meteredTime: _NS$n(\"meteredTime\"),\r\n /**\r\n * The amount of a financial payment. Right operand value MUST be an xsd:decimal.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n payAmount: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n percentage: _NS$n(\"percentage\"),\r\n /**\r\n * Category of product or service setting a context for exercising the action of the Rule.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n product: _NS$n(\"product\"),\r\n /**\r\n * A defined purpose for exercising the action of the Rule.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n purpose: _NS$n(\"purpose\"),\r\n /**\r\n * The party receiving the result/outcome of exercising the action of the Rule.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n recipient: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n relativePosition: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n relativeSpatialPosition: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n relativeTemporalPosition: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n relativeSize: _NS$n(\"relativeSize\"),\r\n /**\r\n * Resolution of the rendition of the target Asset.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n resolution: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n spatial: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n spatialCoordinates: _NS$n(\"spatialCoordinates\"),\r\n /**\r\n * An identified computing system or computing device used for exercising the action of the Rule.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n systemDevice: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n timeInterval: _NS$n(\"timeInterval\"),\r\n /**\r\n * The unit of measure used for counting the executions of the action of the Rule.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n unitOfCount: _NS$n(\"unitOfCount\"),\r\n /**\r\n * The version of the target Asset.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n version: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n virtualLocation: _NS$n(\"virtualLocation\"),\r\n /**\r\n * An identified device used for exercising the action of the Rule.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n device: _NS$n(\"device\"),\r\n /**\r\n * An identified computing system used for exercising the action of the Rule.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n system: _NS$n(\"system\"),\r\n /**\r\n * The relation is satisfied when at least one of the Constraints is satisfied.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n or: _NS$n(\"or\"),\r\n /**\r\n * The relation is satisfied when only one, and not more, of the Constaints is satisfied\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n xone: _NS$n(\"xone\"),\r\n /**\r\n * The relation is satisfied when all of the Constraints are satisfied.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n and: _NS$n(\"and\"),\r\n /**\r\n * The relation is satisfied when each of the Constraints are satisfied in the order specified.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n andSequence: _NS$n(\"andSequence\"),\r\n /**\r\n * Indicating that a given value equals the right operand of the Constraint.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n eq: _NS$n(\"eq\"),\r\n /**\r\n * Indicating that a given value is greater than the right operand of the Constraint.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n gt: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n gteq: _NS$n(\"gteq\"),\r\n /**\r\n * Indicating that a given value is less than the right operand of the Constraint.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n lt: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n lteq: _NS$n(\"lteq\"),\r\n /**\r\n * Indicating that a given value is not equal to the right operand of the Constraint.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n neq: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n isA: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n hasPart: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n isPartOf: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n isAllOf: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n isAnyOf: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n isNoneOf: _NS$n(\"isNoneOf\"),\r\n /**\r\n * Indicates the actual datetime the action of the Rule was exercised.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n policyUsage: _NS$n(\"policyUsage\"),\r\n /**\r\n * An value indicating the closeness or nearness.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n proximity: _NS$n(\"proximity\"),\r\n /**\r\n * The act of adding to the end of an asset.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n append: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n appendTo: _NS$n(\"appendTo\"),\r\n /**\r\n * The act of making an exact reproduction of the asset.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n copy: _NS$n(\"copy\"),\r\n /**\r\n * The act of transforming the asset into a new form.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n export: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n lease: _NS$n(\"lease\"),\r\n /**\r\n * The act of granting the right to use the asset to a third-party.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n license: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n lend: _NS$n(\"lend\"),\r\n /**\r\n * The act of paying a financial amount to a party for use of the asset.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n pay: _NS$n(\"pay\"),\r\n /**\r\n * The Party is the recipient of the payment.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n payeeParty: _NS$n(\"payeeParty\"),\r\n /**\r\n * The act of providing a short preview of the asset.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n preview: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n secondaryUse: _NS$n(\"secondaryUse\"),\r\n /**\r\n * The act of writing to the Asset.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n write: _NS$n(\"write\"),\r\n /**\r\n * The act of adding data to the Asset.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n writeTo: _NS$n(\"writeTo\"),\r\n /**\r\n * The act of sharing the asset to parties in close proximity to the owner.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n adHocShare: _NS$n(\"adHocShare\"),\r\n /**\r\n * The act of extracting (replicating) unchanged characters from the asset.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n extractChar: _NS$n(\"extractChar\"),\r\n /**\r\n * The act of extracting (replicating) unchanged pages from the asset.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n extractPage: _NS$n(\"extractPage\"),\r\n /**\r\n * The act of extracting (replicating) unchanged words from the asset.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n extractWord: _NS$n(\"extractWord\"),\r\n /**\r\n * The number of seconds after which timed metering use of the asset begins.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n timedCount: _NS$n(\"timedCount\"),\r\n /**\r\n * Indentifies the type of inheritance.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n inheritRelation: _NS$n(\"inheritRelation\"),\r\n /**\r\n * Indicates if the Policy entity can be inherited.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n inheritAllowed: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n UndefinedTerm: _NS$n(\"UndefinedTerm\"),\r\n /**\r\n * Relates the strategy used for handling undefined actions to a Policy.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n undefined: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n ignore: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n support: _NS$n(\"support\"),\r\n /**\r\n * Scopes for Asset Scope expressions.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n AssetScope: _NS$n(\"AssetScope\"),\r\n /**\r\n * Scopes for Party Scope expressions.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n PartyScope: _NS$n(\"PartyScope\"),\r\n /**\r\n * The identifier of a scope that provides context to the extent of the entity.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n scope: _NS$n(\"scope\"),\r\n /**\r\n * Specifies that the scope of the relationship is the defined group with multiple individual members.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Group: _NS$n(\"Group\"),\r\n /**\r\n * Specifies that the scope of the relationship is the single Party individual.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n Individual: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n All: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n AllConnections: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n All2ndConnections: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n AllGroups: _NS$n(\"AllGroups\"),\r\n /**\r\n * The act of keeping the policy notice with the asset.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n attachPolicy: _NS$n(\"attachPolicy\"),\r\n /**\r\n * The act of attaching the source of the asset and its derivatives.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n attachSource: _NS$n(\"attachSource\"),\r\n /**\r\n * The act of distributing any derivative asset under the same terms as the original asset.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n shareAlike: _NS$n(\"shareAlike\"),\r\n /**\r\n * The act of using the asset in a business environment.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n commercialize: _NS$n(\"commercialize\"),\r\n /**\r\n * The act of the non-commercial reproduction and distribution of the asset to third-parties.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n share: _NS$n(\"share\"),\r\n /**\r\n * Identifier for the ODRL Core Profile\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n core: _NS$n(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/odrl/2/\r\n */\r\n unit: _NS$n(\"unit\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\r\n *\r\n * [Generator provided] - OLO (Ordered List Ontology) - for describing ordered lists\r\n */\r\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$m = \"http://purl.org/ontology/olo/core#\";\r\nfunction _NS$m(localName) {\r\n return (_NAMESPACE$m + localName);\r\n}\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: _NAMESPACE$m,\r\n PREFIX_AND_NAMESPACE: { \"olo\": \"http://purl.org/ontology/olo/core#\" },\r\n NS: _NS$m,\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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/ontology/olo/core#\r\n */\r\n OrderedList: _NS$m(\"OrderedList\"),\r\n /**\r\n * A slot in an ordered list with a fixed index.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/ontology/olo/core#\r\n */\r\n Slot: _NS$m(\"Slot\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * The length of an ordered list.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/ontology/olo/core#\r\n */\r\n length: _NS$m(\"length\"),\r\n /**\r\n * Associates the next slot in an ordered list.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/ontology/olo/core#\r\n */\r\n next: _NS$m(\"next\"),\r\n /**\r\n * An index of a slot in an ordered list.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/ontology/olo/core#\r\n */\r\n index: _NS$m(\"index\"),\r\n /**\r\n * An ordered list of an slot.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/ontology/olo/core#\r\n */\r\n ordered_list: _NS$m(\"ordered_list\"),\r\n /**\r\n * Associates the previous slot in an ordered list\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/ontology/olo/core#\r\n */\r\n previous: _NS$m(\"previous\"),\r\n /**\r\n * A slot in an ordered list.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/ontology/olo/core#\r\n */\r\n slot: _NS$m(\"slot\"),\r\n /**\r\n * An item of a slot in an ordered list.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/ontology/olo/core#\r\n */\r\n item: _NS$m(\"item\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\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\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$l = \"http://www.w3.org/2002/07/owl#\";\r\nfunction _NS$l(localName) {\r\n return (_NAMESPACE$l + localName);\r\n}\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: _NAMESPACE$l,\r\n PREFIX_AND_NAMESPACE: { \"owl\": \"http://www.w3.org/2002/07/owl#\" },\r\n NS: _NS$l,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * The class of ontologies.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n Ontology: _NS$l(\"Ontology\"),\r\n /**\r\n * The class of ontology properties.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n OntologyProperty: _NS$l(\"OntologyProperty\"),\r\n /**\r\n * The class of annotation properties.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n AnnotationProperty: _NS$l(\"AnnotationProperty\"),\r\n /**\r\n * The class of collections of pairwise different individuals.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n AllDifferent: _NS$l(\"AllDifferent\"),\r\n /**\r\n * The class of collections of pairwise disjoint classes.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n AllDisjointClasses: _NS$l(\"AllDisjointClasses\"),\r\n /**\r\n * The class of collections of pairwise disjoint properties.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n AllDisjointProperties: _NS$l(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n Annotation: _NS$l(\"Annotation\"),\r\n /**\r\n * The class of asymmetric properties.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n AsymmetricProperty: _NS$l(\"AsymmetricProperty\"),\r\n /**\r\n * The class of object properties.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n ObjectProperty: _NS$l(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n Axiom: _NS$l(\"Axiom\"),\r\n /**\r\n * The class of OWL classes.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n Class: _NS$l(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n DataRange: _NS$l(\"DataRange\"),\r\n /**\r\n * The class of data properties.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n DatatypeProperty: _NS$l(\"DatatypeProperty\"),\r\n /**\r\n * The class of deprecated classes.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n DeprecatedClass: _NS$l(\"DeprecatedClass\"),\r\n /**\r\n * The class of deprecated properties.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n DeprecatedProperty: _NS$l(\"DeprecatedProperty\"),\r\n /**\r\n * The class of functional properties.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n FunctionalProperty: _NS$l(\"FunctionalProperty\"),\r\n /**\r\n * The class of inverse-functional properties.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n InverseFunctionalProperty: _NS$l(\"InverseFunctionalProperty\"),\r\n /**\r\n * The class of irreflexive properties.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n IrreflexiveProperty: _NS$l(\"IrreflexiveProperty\"),\r\n /**\r\n * The class of named individuals.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n NamedIndividual: _NS$l(\"NamedIndividual\"),\r\n /**\r\n * The class of OWL individuals.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n Thing: _NS$l(\"Thing\"),\r\n /**\r\n * The class of negative property assertions.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n NegativePropertyAssertion: _NS$l(\"NegativePropertyAssertion\"),\r\n /**\r\n * This is the empty class.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n Nothing: _NS$l(\"Nothing\"),\r\n /**\r\n * The class of reflexive properties.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n ReflexiveProperty: _NS$l(\"ReflexiveProperty\"),\r\n /**\r\n * The class of property restrictions.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n Restriction: _NS$l(\"Restriction\"),\r\n /**\r\n * The class of symmetric properties.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n SymmetricProperty: _NS$l(\"SymmetricProperty\"),\r\n /**\r\n * The class of transitive properties.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n TransitiveProperty: _NS$l(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n versionInfo: _NS$l(\"versionInfo\"),\r\n /**\r\n * The property that determines the class that a universal property restriction refers to.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n allValuesFrom: _NS$l(\"allValuesFrom\"),\r\n /**\r\n * The property that determines the predicate of an annotated axiom or annotated annotation.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n annotatedProperty: _NS$l(\"annotatedProperty\"),\r\n /**\r\n * The property that determines the subject of an annotated axiom or annotated annotation.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n annotatedSource: _NS$l(\"annotatedSource\"),\r\n /**\r\n * The property that determines the object of an annotated axiom or annotated annotation.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n annotatedTarget: _NS$l(\"annotatedTarget\"),\r\n /**\r\n * The property that determines the predicate of a negative property assertion.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n assertionProperty: _NS$l(\"assertionProperty\"),\r\n /**\r\n * The annotation property that indicates that a given ontology is backward compatible with another ontology.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n backwardCompatibleWith: _NS$l(\"backwardCompatibleWith\"),\r\n /**\r\n * The data property that does not relate any individual to any data value.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n bottomDataProperty: _NS$l(\"bottomDataProperty\"),\r\n /**\r\n * The object property that does not relate any two individuals.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n bottomObjectProperty: _NS$l(\"bottomObjectProperty\"),\r\n /**\r\n * The property that determines the cardinality of an exact cardinality restriction.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n cardinality: _NS$l(\"cardinality\"),\r\n /**\r\n * The property that determines that a given class is the complement of another class.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n complementOf: _NS$l(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n datatypeComplementOf: _NS$l(\"datatypeComplementOf\"),\r\n /**\r\n * The annotation property that indicates that a given entity has been deprecated.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n deprecated: _NS$l(\"deprecated\"),\r\n /**\r\n * The property that determines that two given individuals are different.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n differentFrom: _NS$l(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n disjointUnionOf: _NS$l(\"disjointUnionOf\"),\r\n /**\r\n * The property that determines that two given classes are disjoint.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n disjointWith: _NS$l(\"disjointWith\"),\r\n /**\r\n * The property that determines the collection of pairwise different individuals in a owl:AllDifferent axiom.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n distinctMembers: _NS$l(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n equivalentClass: _NS$l(\"equivalentClass\"),\r\n /**\r\n * The property that determines that two given properties are equivalent.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n equivalentProperty: _NS$l(\"equivalentProperty\"),\r\n /**\r\n * The property that determines the collection of properties that jointly build a key.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n hasKey: _NS$l(\"hasKey\"),\r\n /**\r\n * The property that determines the property that a self restriction refers to.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n hasSelf: _NS$l(\"hasSelf\"),\r\n /**\r\n * The property that determines the individual that a has-value restriction refers to.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n hasValue: _NS$l(\"hasValue\"),\r\n /**\r\n * The annotation property that indicates that a given ontology is incompatible with another ontology.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n incompatibleWith: _NS$l(\"incompatibleWith\"),\r\n /**\r\n * The property that determines the collection of classes or data ranges that build an intersection.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n intersectionOf: _NS$l(\"intersectionOf\"),\r\n /**\r\n * The property that determines that two given properties are inverse.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n inverseOf: _NS$l(\"inverseOf\"),\r\n /**\r\n * The property that determines the cardinality of a maximum cardinality restriction.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n maxCardinality: _NS$l(\"maxCardinality\"),\r\n /**\r\n * The property that determines the cardinality of a maximum qualified cardinality restriction.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n maxQualifiedCardinality: _NS$l(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n members: _NS$l(\"members\"),\r\n /**\r\n * The property that determines the cardinality of a minimum cardinality restriction.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n minCardinality: _NS$l(\"minCardinality\"),\r\n /**\r\n * The property that determines the cardinality of a minimum qualified cardinality restriction.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n minQualifiedCardinality: _NS$l(\"minQualifiedCardinality\"),\r\n /**\r\n * The property that determines the class that a qualified object cardinality restriction refers to.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n onClass: _NS$l(\"onClass\"),\r\n /**\r\n * The property that determines the data range that a qualified data cardinality restriction refers to.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n onDataRange: _NS$l(\"onDataRange\"),\r\n /**\r\n * The property that determines the datatype that a datatype restriction refers to.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n onDatatype: _NS$l(\"onDatatype\"),\r\n /**\r\n * The property that determines the collection of individuals or data values that build an enumeration.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n oneOf: _NS$l(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n onProperties: _NS$l(\"onProperties\"),\r\n /**\r\n * The property that determines the property that a property restriction refers to.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n onProperty: _NS$l(\"onProperty\"),\r\n /**\r\n * The annotation property that indicates the predecessor ontology of a given ontology.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n priorVersion: _NS$l(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n propertyChainAxiom: _NS$l(\"propertyChainAxiom\"),\r\n /**\r\n * The property that determines that two given properties are disjoint.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n propertyDisjointWith: _NS$l(\"propertyDisjointWith\"),\r\n /**\r\n * The property that determines the cardinality of an exact qualified cardinality restriction.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n qualifiedCardinality: _NS$l(\"qualifiedCardinality\"),\r\n /**\r\n * The property that determines that two given individuals are equal.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n sameAs: _NS$l(\"sameAs\"),\r\n /**\r\n * The property that determines the class that an existential property restriction refers to.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n someValuesFrom: _NS$l(\"someValuesFrom\"),\r\n /**\r\n * The property that determines the subject of a negative property assertion.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n sourceIndividual: _NS$l(\"sourceIndividual\"),\r\n /**\r\n * The property that determines the object of a negative object property assertion.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n targetIndividual: _NS$l(\"targetIndividual\"),\r\n /**\r\n * The property that determines the value of a negative data property assertion.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n targetValue: _NS$l(\"targetValue\"),\r\n /**\r\n * The data property that relates every individual to every data value.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n topDataProperty: _NS$l(\"topDataProperty\"),\r\n /**\r\n * The object property that relates every two individuals.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n topObjectProperty: _NS$l(\"topObjectProperty\"),\r\n /**\r\n * The property that determines the collection of classes or data ranges that build a union.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n unionOf: _NS$l(\"unionOf\"),\r\n /**\r\n * The property that determines the collection of facet-value pairs that define a datatype restriction.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2002/07/owl#\r\n */\r\n withRestrictions: _NS$l(\"withRestrictions\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\r\n *\r\n * A vocabulary for the basic POSIX terms.\r\n */\r\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$k = \"http://www.w3.org/ns/posix/stat#\";\r\nfunction _NS$k(localName) {\r\n return (_NAMESPACE$k + localName);\r\n}\r\n/**\r\n * A vocabulary for the basic POSIX terms.\r\n */\r\nvar POSIX = {\r\n PREFIX: \"posix\",\r\n NAMESPACE: _NAMESPACE$k,\r\n PREFIX_AND_NAMESPACE: { \"posix\": \"http://www.w3.org/ns/posix/stat#\" },\r\n NS: _NS$k,\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * Time of last access\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n atime: _NS$k(\"atime\"),\r\n /**\r\n * Blocksize for file system I/O\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n blksize: _NS$k(\"blksize\"),\r\n /**\r\n * Number of 512B blocks allocated\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n blocks: _NS$k(\"blocks\"),\r\n /**\r\n * Time of last status change\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n ctime: _NS$k(\"ctime\"),\r\n /**\r\n * ID of device containing file\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n dev: _NS$k(\"dev\"),\r\n /**\r\n * Group ID of owner\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n gid: _NS$k(\"gid\"),\r\n /**\r\n * inode number\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n ino: _NS$k(\"ino\"),\r\n /**\r\n * Protection\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n mode: _NS$k(\"mode\"),\r\n /**\r\n * Time of last modification\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n mtime: _NS$k(\"mtime\"),\r\n /**\r\n * Number of hard links\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n nlink: _NS$k(\"nlink\"),\r\n /**\r\n * Device ID (if special file)\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n rdev: _NS$k(\"rdev\"),\r\n /**\r\n * Total size, in bytes\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n size: _NS$k(\"size\"),\r\n /**\r\n * User ID of owner\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n uid: _NS$k(\"uid\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\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\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$j = \"http://www.w3.org/ns/prov#\";\r\nfunction _NS$j(localName) {\r\n return (_NAMESPACE$j + localName);\r\n}\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: _NAMESPACE$j,\r\n PREFIX_AND_NAMESPACE: { \"prov-o\": \"http://www.w3.org/ns/prov#\" },\r\n NS: _NS$j,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * Entity\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Entity: _NS$j(\"Entity\"),\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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Revision: _NS$j(\"Revision\"),\r\n /**\r\n * Activity\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Activity: _NS$j(\"Activity\"),\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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n InstantaneousEvent: _NS$j(\"InstantaneousEvent\"),\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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\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$j(\"ActivityInfluence\"),\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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\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$j(\"EntityInfluence\"),\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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Influence: _NS$j(\"Influence\"),\r\n /**\r\n * Agent\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Agent: _NS$j(\"Agent\"),\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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\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$j(\"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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Association: _NS$j(\"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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Attribution: _NS$j(\"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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Bundle: _NS$j(\"Bundle\"),\r\n /**\r\n * Collection\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Collection: _NS$j(\"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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Communication: _NS$j(\"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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Delegation: _NS$j(\"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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Derivation: _NS$j(\"Derivation\"),\r\n /**\r\n * EmptyCollection\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n EmptyCollection: _NS$j(\"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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n End: _NS$j(\"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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Generation: _NS$j(\"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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Invalidation: _NS$j(\"Invalidation\"),\r\n /**\r\n * Location\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\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$j(\"Location\"),\r\n /**\r\n * Organization\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Organization: _NS$j(\"Organization\"),\r\n /**\r\n * Person\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Person: _NS$j(\"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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Plan: _NS$j(\"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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n PrimarySource: _NS$j(\"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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Quotation: _NS$j(\"Quotation\"),\r\n /**\r\n * Role\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\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$j(\"Role\"),\r\n /**\r\n * SoftwareAgent\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n SoftwareAgent: _NS$j(\"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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Start: _NS$j(\"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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n Usage: _NS$j(\"Usage\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * A revision is a derivation that revises an entity into a revised version.\r\n *\r\n * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n wasRevisionOf: _NS$j(\"wasRevisionOf\"),\r\n /**\r\n * specializationOf\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\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$j(\"specializationOf\"),\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 * The term has a description only in English, but has a mismatch between its labels and comments, with [0] labels, but [1] comment in the language [en].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n category: _NS$j(\"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 * The term has a description only in English, but has a mismatch between its labels and comments, with [0] labels, but [1] comment in the language [en].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n component: _NS$j(\"component\"),\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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n wasDerivedFrom: _NS$j(\"wasDerivedFrom\"),\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 * The term has a description only in English, but has a mismatch between its labels and comments, with [0] labels, but [1] comment in the language [en].\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$j(\"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 * The term has a description only in English, but has a mismatch between its labels and comments, with [0] labels, but [1] comment in the language [en].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n qualifiedForm: _NS$j(\"qualifiedForm\"),\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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n qualifiedRevision: _NS$j(\"qualifiedRevision\"),\r\n /**\r\n * alternateOf\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\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$j(\"alternateOf\"),\r\n /**\r\n * A reference to the principal section of the PROV-CONSTRAINTS document that describes this concept.\r\n *\r\n * The term has a description only in English, but has a mismatch between its labels and comments, with [0] labels, but [1] comment in the language [en].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n constraints: _NS$j(\"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 * The term has a description only in English, but has a mismatch between its labels and comments, with [0] labels, but [1] comment in the language [en].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n definition: _NS$j(\"definition\"),\r\n /**\r\n * A reference to the principal section of the PROV-DM document that describes this concept.\r\n *\r\n * The term has a description only in English, but has a mismatch between its labels and comments, with [0] labels, but [1] comment in the language [en].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n dm: _NS$j(\"dm\"),\r\n /**\r\n * A reference to the principal section of the PROV-DM document that describes this concept.\r\n *\r\n * The term has a description only in English, but has a mismatch between its labels and comments, with [0] labels, but [1] comment in the language [en].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n n: _NS$j(\"n\"),\r\n /**\r\n * activity\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n activity: _NS$j(\"activity\"),\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 * The term has a description only in English, but has a mismatch between its labels and comments, with [0] labels, but [1] comment in the language [en].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n editorsDefinition: _NS$j(\"editorsDefinition\"),\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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n influencer: _NS$j(\"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 * The term has a description only in English, but has a mismatch between its labels and comments, with [0] labels, but [1] comment in the language [en].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n editorialNote: _NS$j(\"editorialNote\"),\r\n /**\r\n * entity\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n entity: _NS$j(\"entity\"),\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 * The term has a description only in English, but has a mismatch between its labels and comments, with [0] labels, but [1] comment in the language [en].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n unqualifiedForm: _NS$j(\"unqualifiedForm\"),\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 * The term has a description only in English, with [1] label in the language [NoLocale], but [2] comments in languages [NoLocale, en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n wasInfluencedBy: _NS$j(\"wasInfluencedBy\"),\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 * The term has a description only in English, with [1] label in the language [NoLocale], but [2] comments in languages [NoLocale, en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n hadActivity: _NS$j(\"hadActivity\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n sharesDefinitionWith: _NS$j(\"sharesDefinitionWith\"),\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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n qualifiedInfluence: _NS$j(\"qualifiedInfluence\"),\r\n /**\r\n * agent\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n agent: _NS$j(\"agent\"),\r\n /**\r\n * An prov:Agent that had some (unspecified) responsibility for the occurrence of this prov:Activity.\r\n *\r\n * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n wasAssociatedWith: _NS$j(\"wasAssociatedWith\"),\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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n qualifiedAssociation: _NS$j(\"qualifiedAssociation\"),\r\n /**\r\n * Attribution is the ascribing of an entity to an agent.\r\n *\r\n * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n wasAttributedTo: _NS$j(\"wasAttributedTo\"),\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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n qualifiedAttribution: _NS$j(\"qualifiedAttribution\"),\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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n wasInformedBy: _NS$j(\"wasInformedBy\"),\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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n qualifiedCommunication: _NS$j(\"qualifiedCommunication\"),\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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n actedOnBehalfOf: _NS$j(\"actedOnBehalfOf\"),\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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n qualifiedDelegation: _NS$j(\"qualifiedDelegation\"),\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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n qualifiedDerivation: _NS$j(\"qualifiedDerivation\"),\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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n wasEndedBy: _NS$j(\"wasEndedBy\"),\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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n qualifiedEnd: _NS$j(\"qualifiedEnd\"),\r\n /**\r\n * wasGeneratedBy\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n wasGeneratedBy: _NS$j(\"wasGeneratedBy\"),\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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n qualifiedGeneration: _NS$j(\"qualifiedGeneration\"),\r\n /**\r\n * wasInvalidatedBy\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n wasInvalidatedBy: _NS$j(\"wasInvalidatedBy\"),\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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n qualifiedInvalidation: _NS$j(\"qualifiedInvalidation\"),\r\n /**\r\n * The Location of any resource.\r\n *\r\n * The term has a description only in English, with [1] label in the language [NoLocale], but [2] comments in languages [NoLocale, en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n atLocation: _NS$j(\"atLocation\"),\r\n /**\r\n * hadPrimarySource\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n hadPrimarySource: _NS$j(\"hadPrimarySource\"),\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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n qualifiedPrimarySource: _NS$j(\"qualifiedPrimarySource\"),\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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n wasQuotedFrom: _NS$j(\"wasQuotedFrom\"),\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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n qualifiedQuotation: _NS$j(\"qualifiedQuotation\"),\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 * The term has a description only in English, with [1] label in the language [NoLocale], but [2] comments in languages [NoLocale, en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n hadRole: _NS$j(\"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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n wasStartedBy: _NS$j(\"wasStartedBy\"),\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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n qualifiedStart: _NS$j(\"qualifiedStart\"),\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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n used: _NS$j(\"used\"),\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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n qualifiedUsage: _NS$j(\"qualifiedUsage\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n aq: _NS$j(\"aq\"),\r\n /**\r\n * The time at which an InstantaneousEvent occurred, in the form of xsd:dateTime.\r\n *\r\n * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n atTime: _NS$j(\"atTime\"),\r\n /**\r\n * The time at which an activity ended. See also prov:startedAtTime.\r\n *\r\n * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n endedAtTime: _NS$j(\"endedAtTime\"),\r\n /**\r\n * The time at which an entity was completely created and is available for use.\r\n *\r\n * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n generatedAtTime: _NS$j(\"generatedAtTime\"),\r\n /**\r\n * The time at which an entity was invalidated (i.e., no longer usable).\r\n *\r\n * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n invalidatedAtTime: _NS$j(\"invalidatedAtTime\"),\r\n /**\r\n * The time at which an activity started. See also prov:endedAtTime.\r\n *\r\n * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n startedAtTime: _NS$j(\"startedAtTime\"),\r\n /**\r\n * generated\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n generated: _NS$j(\"generated\"),\r\n /**\r\n * influenced\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n influenced: _NS$j(\"influenced\"),\r\n /**\r\n * The _optional_ Generation involved in an Entity's Derivation.\r\n *\r\n * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n hadGeneration: _NS$j(\"hadGeneration\"),\r\n /**\r\n * hadMember\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n hadMember: _NS$j(\"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 * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n hadPlan: _NS$j(\"hadPlan\"),\r\n /**\r\n * The _optional_ Usage involved in an Entity's Derivation.\r\n *\r\n * The term has a description only in English, with [1] label in the language [NoLocale], but [1] comment in the language [en] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n hadUsage: _NS$j(\"hadUsage\"),\r\n /**\r\n * invalidated\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n invalidated: _NS$j(\"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 * The term has a description only in English, but has a mismatch between its labels and comments, with [0] labels, but [1] comment in the language [en].\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n order: _NS$j(\"order\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n todo: _NS$j(\"todo\"),\r\n /**\r\n * value\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/prov-o#\r\n */\r\n value: _NS$j(\"value\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\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\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$i = \"http://purl.org/linked-data/cube#\";\r\nfunction _NS$i(localName) {\r\n return (_NAMESPACE$i + localName);\r\n}\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: _NAMESPACE$i,\r\n PREFIX_AND_NAMESPACE: { \"qb\": \"http://purl.org/linked-data/cube#\" },\r\n NS: _NS$i,\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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n DataSet: _NS$i(\"DataSet\"),\r\n /**\r\n * Abstract superclass for everything that can have attributes and dimensions\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n Attachable: _NS$i(\"Attachable\"),\r\n /**\r\n * A single observation in the cube, may have one or more associated measured values\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n Observation: _NS$i(\"Observation\"),\r\n /**\r\n * A, possibly arbitrary, group of observations.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n ObservationGroup: _NS$i(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n Slice: _NS$i(\"Slice\"),\r\n /**\r\n * Abstract super-property of all properties representing dimensions, attributes or measures\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n ComponentProperty: _NS$i(\"ComponentProperty\"),\r\n /**\r\n * The class of components which represent the dimensions of the cube\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n DimensionProperty: _NS$i(\"DimensionProperty\"),\r\n /**\r\n * Superclass of all coded ComponentProperties\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n CodedProperty: _NS$i(\"CodedProperty\"),\r\n /**\r\n * The class of components which represent the measured value of the phenomenon being observed\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n MeasureProperty: _NS$i(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n AttributeProperty: _NS$i(\"AttributeProperty\"),\r\n /**\r\n * Defines the structure of a DataSet or slice\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n DataStructureDefinition: _NS$i(\"DataStructureDefinition\"),\r\n /**\r\n * Abstract class of things which reference one or more ComponentProperties\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n ComponentSet: _NS$i(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n ComponentSpecification: _NS$i(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n SliceKey: _NS$i(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n HierarchicalCodeList: _NS$i(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n dataSet: _NS$i(\"dataSet\"),\r\n /**\r\n * indicates a observation contained within this slice of the data set\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n observation: _NS$i(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n observationGroup: _NS$i(\"observationGroup\"),\r\n /**\r\n * Indicates a subset of a DataSet defined by fixing a subset of the dimensional values\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n slice: _NS$i(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n measureType: _NS$i(\"measureType\"),\r\n /**\r\n * indicates the structure to which this data set conforms\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n structure: _NS$i(\"structure\"),\r\n /**\r\n * indicates a component specification which is included in the structure of the dataset\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n component: _NS$i(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n componentProperty: _NS$i(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n order: _NS$i(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n componentRequired: _NS$i(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n componentAttachment: _NS$i(\"componentAttachment\"),\r\n /**\r\n * An alternative to qb:componentProperty which makes explicit that the component is a dimension\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n dimension: _NS$i(\"dimension\"),\r\n /**\r\n * An alternative to qb:componentProperty which makes explicit that the component is a measure\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n measure: _NS$i(\"measure\"),\r\n /**\r\n * An alternative to qb:componentProperty which makes explicit that the component is a attribute\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n attribute: _NS$i(\"attribute\"),\r\n /**\r\n * An alternative to qb:componentProperty which makes explicit that the component is a measure dimension\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n measureDimension: _NS$i(\"measureDimension\"),\r\n /**\r\n * indicates the sub-key corresponding to this slice\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n sliceStructure: _NS$i(\"sliceStructure\"),\r\n /**\r\n * indicates a slice key which is used for slices in this dataset\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n sliceKey: _NS$i(\"sliceKey\"),\r\n /**\r\n * gives the concept which is being measured or indicated by a ComponentProperty\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n concept: _NS$i(\"concept\"),\r\n /**\r\n * gives the code list associated with a CodedProperty\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n codeList: _NS$i(\"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 * The term has a description only in English, but has a mismatch between its labels and comments, with [0] labels, but [1] comment in the language [en].\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n hierarchyRoot: _NS$i(\"hierarchyRoot\"),\r\n /**\r\n * Specifies a property which relates a parent concept in the hierarchy to a child concept.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://purl.org/linked-data/cube\r\n */\r\n parentChildProperty: _NS$i(\"parentChildProperty\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\r\n *\r\n * [Generator provided] - RDF (Resource Description Framework) - a framework for representing information in the Web\r\n */\r\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$h = \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\";\r\nfunction _NS$h(localName) {\r\n return (_NAMESPACE$h + localName);\r\n}\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: _NAMESPACE$h,\r\n PREFIX_AND_NAMESPACE: { \"rdf\": \"http://www.w3.org/1999/02/22-rdf-syntax-ns#\" },\r\n NS: _NS$h,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * The class of RDF properties.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n Property: _NS$h(\"Property\"),\r\n /**\r\n * The datatype of RDF literals storing fragments of HTML content\r\n *\r\n * This term provides descriptions only with no explicit locale.\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$h(\"HTML\"),\r\n /**\r\n * The datatype of language-tagged string values\r\n *\r\n * This term provides descriptions only with no explicit locale.\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$h(\"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 * This term provides descriptions only with no explicit locale.\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$h(\"PlainLiteral\"),\r\n /**\r\n * The class of RDF statements.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n Statement: _NS$h(\"Statement\"),\r\n /**\r\n * The class of unordered containers.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n Bag: _NS$h(\"Bag\"),\r\n /**\r\n * The class of ordered containers.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n Seq: _NS$h(\"Seq\"),\r\n /**\r\n * The class of containers of alternatives.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n Alt: _NS$h(\"Alt\"),\r\n /**\r\n * The class of RDF Lists.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n List: _NS$h(\"List\"),\r\n /**\r\n * The datatype of XML literal values.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n XMLLiteral: _NS$h(\"XMLLiteral\"),\r\n /**\r\n * The datatype of RDF literals storing JSON content.\r\n *\r\n * This term provides descriptions only with no explicit locale.\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$h(\"JSON\"),\r\n /**\r\n * A class representing a compound literal.\r\n *\r\n * This term provides descriptions only with no explicit locale.\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$h(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n type: _NS$h(\"type\"),\r\n /**\r\n * The subject of the subject RDF statement.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n subject: _NS$h(\"subject\"),\r\n /**\r\n * The predicate of the subject RDF statement.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n predicate: _NS$h(\"predicate\"),\r\n /**\r\n * The object of the subject RDF statement.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n object: _NS$h(\"object\"),\r\n /**\r\n * Idiomatic property used for structured values.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n value: _NS$h(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n nil: _NS$h(\"nil\"),\r\n /**\r\n * The first item in the subject RDF list.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n first: _NS$h(\"first\"),\r\n /**\r\n * The rest of the subject RDF list after the first item.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/1999/02/22-rdf-syntax-ns#\r\n */\r\n rest: _NS$h(\"rest\"),\r\n /**\r\n * The language component of a CompoundLiteral.\r\n *\r\n * This term provides descriptions only with no explicit locale.\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$h(\"language\"),\r\n /**\r\n * The base direction component of a CompoundLiteral.\r\n *\r\n * This term provides descriptions only with no explicit locale.\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$h(\"direction\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\r\n *\r\n * [Generator provided] - RDFS (RDF Schema) - a data-modelling vocabulary for RDF data\r\n */\r\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$g = \"http://www.w3.org/2000/01/rdf-schema#\";\r\nfunction _NS$g(localName) {\r\n return (_NAMESPACE$g + localName);\r\n}\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: _NAMESPACE$g,\r\n PREFIX_AND_NAMESPACE: { \"rdfs\": \"http://www.w3.org/2000/01/rdf-schema#\" },\r\n NS: _NS$g,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * The class resource, everything.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2000/01/rdf-schema#\r\n */\r\n Resource: _NS$g(\"Resource\"),\r\n /**\r\n * The class of classes.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2000/01/rdf-schema#\r\n */\r\n Class: _NS$g(\"Class\"),\r\n /**\r\n * The class of literal values, eg. textual strings and integers.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2000/01/rdf-schema#\r\n */\r\n Literal: _NS$g(\"Literal\"),\r\n /**\r\n * The class of RDF containers.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2000/01/rdf-schema#\r\n */\r\n Container: _NS$g(\"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 * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2000/01/rdf-schema#\r\n */\r\n ContainerMembershipProperty: _NS$g(\"ContainerMembershipProperty\"),\r\n /**\r\n * The class of RDF datatypes.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2000/01/rdf-schema#\r\n */\r\n Datatype: _NS$g(\"Datatype\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * Further information about the subject resource.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2000/01/rdf-schema#\r\n */\r\n seeAlso: _NS$g(\"seeAlso\"),\r\n /**\r\n * The defininition of the subject resource.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2000/01/rdf-schema#\r\n */\r\n isDefinedBy: _NS$g(\"isDefinedBy\"),\r\n /**\r\n * A human-readable name for the subject.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2000/01/rdf-schema#\r\n */\r\n label: _NS$g(\"label\"),\r\n /**\r\n * A description of the subject resource.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2000/01/rdf-schema#\r\n */\r\n comment: _NS$g(\"comment\"),\r\n /**\r\n * A range of the subject property.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2000/01/rdf-schema#\r\n */\r\n range: _NS$g(\"range\"),\r\n /**\r\n * A domain of the subject property.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2000/01/rdf-schema#\r\n */\r\n domain: _NS$g(\"domain\"),\r\n /**\r\n * The subject is a subclass of a class.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2000/01/rdf-schema#\r\n */\r\n subClassOf: _NS$g(\"subClassOf\"),\r\n /**\r\n * The subject is a subproperty of a property.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2000/01/rdf-schema#\r\n */\r\n subPropertyOf: _NS$g(\"subPropertyOf\"),\r\n /**\r\n * A member of the subject resource.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2000/01/rdf-schema#\r\n */\r\n member: _NS$g(\"member\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\r\n *\r\n * Inrupt-created copy of RLOG, needed due to Server 500 errors resolving original uni-leipzig.org!\r\n */\r\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$f = \"http://persistence.uni-leipzig.org/nlp2rdf/ontologies/rlog#\";\r\nfunction _NS$f(localName) {\r\n return (_NAMESPACE$f + localName);\r\n}\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: _NAMESPACE$f,\r\n PREFIX_AND_NAMESPACE: { \"rlog\": \"http://persistence.uni-leipzig.org/nlp2rdf/ontologies/rlog#\" },\r\n NS: _NS$f,\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 * This term provides descriptions only in English.\r\n */\r\n Level: _NS$f(\"Level\"),\r\n /**\r\n * An entry in a log.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n Entry: _NS$f(\"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 * This term provides descriptions only in English.\r\n */\r\n StatusCode: _NS$f(\"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 * This term provides descriptions only in English.\r\n */\r\n ALL: _NS$f(\"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 * This term provides descriptions only in English.\r\n */\r\n priority: _NS$f(\"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 * This term provides descriptions only in English.\r\n */\r\n DEBUG: _NS$f(\"DEBUG\"),\r\n /**\r\n * The ERROR level designates error events that might still allow the application to continue running.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n ERROR: _NS$f(\"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 * This term provides descriptions only in English.\r\n */\r\n FATAL: _NS$f(\"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 * This term provides descriptions only in English.\r\n */\r\n INFO: _NS$f(\"INFO\"),\r\n /**\r\n * The OFF has the highest possible rank and is intended to turn off logging.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n OFF: _NS$f(\"OFF\"),\r\n /**\r\n * The TRACE Level designates finer-grained informational events than the DEBUG.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n TRACE: _NS$f(\"TRACE\"),\r\n /**\r\n * The WARN level designates potentially harmful situations.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n WARN: _NS$f(\"WARN\"),\r\n /**\r\n * Outputs the fully qualified class name of the caller issuing the logging request.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n className: _NS$f(\"className\"),\r\n /**\r\n * The numerical value of the code, e.g. 200, 404 or 42.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n codeId: _NS$f(\"codeId\"),\r\n /**\r\n * Logging datetime (or just date)\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n date: _NS$f(\"date\"),\r\n /**\r\n * Links a log message to a status code.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n hasCode: _NS$f(\"hasCode\"),\r\n /**\r\n * logLevel\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n level: _NS$f(\"level\"),\r\n /**\r\n * Logging message\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n message: _NS$f(\"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 * This term provides descriptions only in English.\r\n */\r\n resource: _NS$f(\"resource\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\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\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$e = \"http://schema.org/\";\r\nfunction _NS$e(localName) {\r\n return (_NAMESPACE$e + localName);\r\n}\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: _NAMESPACE$e,\r\n PREFIX_AND_NAMESPACE: { \"schema-inrupt\": \"http://schema.org/\" },\r\n NS: _NS$e,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * An organization such as a school, NGO, corporation, club, etc.\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n Organization: _NS$e(\"Organization\"),\r\n /**\r\n * A person (alive, dead, undead, or fictional).\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n Person: _NS$e(\"Person\"),\r\n /**\r\n * An image file.\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n ImageObject: _NS$e(\"ImageObject\"),\r\n /**\r\n * Data type: URL.\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n URL: _NS$e(\"URL\"),\r\n /**\r\n * Any medical intervention designed to prevent, treat, and cure human diseases and medical conditions, including both curative and palliative therapies. Medical therapies are typically processes of care relying upon pharmacotherapy, behavioral therapy, supportive therapy (with fluid or nutrition for example), or detoxification (e.g. hemodialysis) aimed at improving or preventing a health condition.\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n MedicalTherapy: _NS$e(\"MedicalTherapy\"),\r\n /**\r\n * An educational or occupational credential. A diploma, academic degree, certification, qualification, badge, etc., that may be awarded to a person or other entity that meets the requirements defined by the credentialer.\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n EducationalOccupationalCredential: _NS$e(\"EducationalOccupationalCredential\"),\r\n /**\r\n * The mailing address.\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n PostalAddress: _NS$e(\"PostalAddress\"),\r\n /**\r\n * Any offered product or service. For example: a pair of shoes; a concert ticket; the rental of a car; a haircut; or an episode of a TV show streamed online.\r\n *\r\n * This term has [5] labels and comments, in the languages [NoLocale, de, es, fr, it].\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n Product: _NS$e(\"Product\"),\r\n /**\r\n * An event happening at a certain time and location, such as a concert, lecture, or festival. Ticketing information may be added via the [[offers]] property. Repeated events may be structured as separate Event objects.\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n Event: _NS$e(\"Event\"),\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 [6] labels and comments, in the languages [NoLocale, de, en, es, fr, it].\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n alternateName: _NS$e(\"alternateName\"),\r\n /**\r\n * Given name. In the U.S., the first name of a Person.\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n givenName: _NS$e(\"givenName\"),\r\n /**\r\n * Family name. In the U.S., the last name of a Person.\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n familyName: _NS$e(\"familyName\"),\r\n /**\r\n * An additional name for a Person, can be used for a middle name.\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n additionalName: _NS$e(\"additionalName\"),\r\n /**\r\n * A license document that applies to this content, typically indicated by URL.\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n license: _NS$e(\"license\"),\r\n /**\r\n * The name of the item.\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n name: _NS$e(\"name\"),\r\n /**\r\n * The textual content of this CreativeWork.\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n text: _NS$e(\"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 provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\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$e(\"identifier\"),\r\n /**\r\n * A description of the item.\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n description: _NS$e(\"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 provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\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$e(\"image\"),\r\n /**\r\n * URL of the item.\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n url: _NS$e(\"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 provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n startTime: _NS$e(\"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 provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n endTime: _NS$e(\"endTime\"),\r\n /**\r\n * The start date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n startDate: _NS$e(\"startDate\"),\r\n /**\r\n * The end date and time of the item (in [ISO 8601 date format](http://en.wikipedia.org/wiki/ISO_8601)).\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n endDate: _NS$e(\"endDate\"),\r\n /**\r\n * Email address.\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n email: _NS$e(\"email\"),\r\n /**\r\n * A preventative therapy used to prevent an initial occurrence of the medical condition, such as vaccination.\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n primaryPrevention: _NS$e(\"primaryPrevention\"),\r\n /**\r\n * Specific qualifications required for this role or Occupation.\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n qualifications: _NS$e(\"qualifications\"),\r\n /**\r\n * A person or organization attending the event.\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n attendee: _NS$e(\"attendee\"),\r\n /**\r\n * Physical address of the item.\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n address: _NS$e(\"address\"),\r\n /**\r\n * The street address. For example, 1600 Amphitheatre Pkwy.\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n streetAddress: _NS$e(\"streetAddress\"),\r\n /**\r\n * The locality in which the street address is, and which is in the region. For example, Mountain View.\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n addressLocality: _NS$e(\"addressLocality\"),\r\n /**\r\n * The region in which the locality is, and which is in the country. For example, California or another appropriate first-level [Administrative division](https://en.wikipedia.org/wiki/List_of_administrative_divisions_by_country)\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n addressRegion: _NS$e(\"addressRegion\"),\r\n /**\r\n * The postal code. For example, 94043.\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n postalCode: _NS$e(\"postalCode\"),\r\n /**\r\n * The country. For example, USA. You can also provide the two-letter [ISO 3166-1 alpha-2 country code](http://en.wikipedia.org/wiki/ISO_3166-1).\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n addressCountry: _NS$e(\"addressCountry\"),\r\n /**\r\n * Password, PIN, or access code needed for delivery (e.g. from a locker).\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n accessCode: _NS$e(\"accessCode\"),\r\n /**\r\n * The identifier for the account the payment will be applied to.\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n accountId: _NS$e(\"accountId\"),\r\n /**\r\n * The serial number or any alphanumeric identifier of a particular product. When attached to an offer, it is a shortcut for the serial number of the product included in the offer.\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n serialNumber: _NS$e(\"serialNumber\"),\r\n /**\r\n * The product identifier, such as ISBN. For example: ``` meta itemprop=\"productID\" content=\"isbn:123-456-789\" ```.\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n productID: _NS$e(\"productID\"),\r\n /**\r\n * The brand(s) associated with a product or service, or the brand(s) maintained by an organization or business person.\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n brand: _NS$e(\"brand\"),\r\n /**\r\n * The model of the product. Use with the URL of a ProductModel or a textual representation of the model identifier. The URL of the ProductModel can be from an external source. It is recommended to additionally provide strong product identifiers via the gtin8/gtin13/gtin14 and mpn properties.\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n model: _NS$e(\"model\"),\r\n /**\r\n * The value of the quantitative value or property value node.\\n\\n* For [[QuantitativeValue]] and [[MonetaryAmount]], the recommended type for values is 'Number'.\\n* For [[PropertyValue]], it can be 'Text;', 'Number', 'Boolean', or 'StructuredValue'.\\n* Use values from 0123456789 (Unicode 'DIGIT ZERO' (U+0030) to 'DIGIT NINE' (U+0039)) rather than superficially similiar Unicode symbols.\\n* Use '.' (Unicode 'FULL STOP' (U+002E)) rather than ',' to indicate a decimal point. Avoid using these symbols as a readability separator.\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n value: _NS$e(\"value\"),\r\n /**\r\n * The distance travelled, e.g. exercising or travelling.\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n distance: _NS$e(\"distance\"),\r\n /**\r\n * The latitude of a location. For example ```37.42242``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n latitude: _NS$e(\"latitude\"),\r\n /**\r\n * The longitude of a location. For example ```-122.08585``` ([WGS 84](https://en.wikipedia.org/wiki/World_Geodetic_System)).\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n longitude: _NS$e(\"longitude\"),\r\n /**\r\n * The date on which the CreativeWork was most recently modified or when the item's entry was modified within a DataFeed.\r\n *\r\n * This term provides multilingual descriptions, with [6] labels in languages [NoLocale, de, en, es, fr, it], but [5] comments in languages [NoLocale, de, es, fr, it] (so the difference is only between English and NoLocale, which we consider the same).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/schema#\r\n */\r\n dateModified: _NS$e(\"dateModified\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\r\n *\r\n * [Generator provided] - SPARQL Service Description vocabulary\r\n */\r\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$d = \"http://www.w3.org/ns/sparql-service-description#\";\r\nfunction _NS$d(localName) {\r\n return (_NAMESPACE$d + localName);\r\n}\r\n/**\r\n * [Generator provided] - SPARQL Service Description vocabulary\r\n */\r\nvar SD = {\r\n PREFIX: \"sd\",\r\n NAMESPACE: _NAMESPACE$d,\r\n PREFIX_AND_NAMESPACE: { \"sd\": \"http://www.w3.org/ns/sparql-service-description#\" },\r\n NS: _NS$d,\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 * This term provides descriptions only with no explicit locale.\r\n */\r\n Service: _NS$d(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n Feature: _NS$d(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n EntailmentRegime: _NS$d(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n NamedGraph: _NS$d(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n EntailmentProfile: _NS$d(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n Function: _NS$d(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n Aggregate: _NS$d(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n Language: _NS$d(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n Dataset: _NS$d(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n GraphCollection: _NS$d(\"GraphCollection\"),\r\n /**\r\n * An instance of sd:Graph represents the description of an RDF graph.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n Graph: _NS$d(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n endpoint: _NS$d(\"endpoint\"),\r\n /**\r\n * Relates an instance of sd:Service with a resource representing a supported feature.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n feature: _NS$d(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n defaultEntailmentRegime: _NS$d(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n entailmentRegime: _NS$d(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n defaultSupportedEntailmentProfile: _NS$d(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n supportedEntailmentProfile: _NS$d(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n extensionFunction: _NS$d(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n extensionAggregate: _NS$d(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n languageExtension: _NS$d(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n supportedLanguage: _NS$d(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n propertyFeature: _NS$d(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n defaultDataset: _NS$d(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n availableGraphs: _NS$d(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n resultFormat: _NS$d(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n inputFormat: _NS$d(\"inputFormat\"),\r\n /**\r\n * Relates an instance of sd:Dataset to the description of its default graph.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n defaultGraph: _NS$d(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n namedGraph: _NS$d(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n name: _NS$d(\"name\"),\r\n /**\r\n * Relates a named graph to its graph description.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n graph: _NS$d(\"graph\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\r\n *\r\n * [Generator provided] - SDMX Dimension Vocabulary\r\n */\r\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$c = \"http://purl.org/linked-data/sdmx/2009/dimension#\";\r\nfunction _NS$c(localName) {\r\n return (_NAMESPACE$c + localName);\r\n}\r\n/**\r\n * [Generator provided] - SDMX Dimension Vocabulary\r\n */\r\nvar SDMX_DIMENSION = {\r\n PREFIX: \"sdmx-dimension\",\r\n NAMESPACE: _NAMESPACE$c,\r\n PREFIX_AND_NAMESPACE: { \"sdmx-dimension\": \"http://purl.org/linked-data/sdmx/2009/dimension#\" },\r\n NS: _NS$c,\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 * This term provides descriptions only in English.\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$c(\"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 * This term provides descriptions only in English.\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$c(\"civilStatus\"),\r\n /**\r\n * Monetary denomination of the object being measured.\r\n *\r\n * This term provides descriptions only in English.\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$c(\"currency\"),\r\n /**\r\n * The highest level of an educational programme the person has successfully completed.\r\n *\r\n * This term provides descriptions only in English.\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$c(\"educationLev\"),\r\n /**\r\n * The time interval at which observations occur over a given time period.\r\n *\r\n * This term provides descriptions only in English.\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$c(\"freq\"),\r\n /**\r\n * Job or position held by an individual who performs a set of tasks and duties.\r\n *\r\n * This term provides descriptions only in English.\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$c(\"occupation\"),\r\n /**\r\n * The country or geographic area to which the measured statistical phenomenon relates.\r\n *\r\n * This term provides descriptions only in English.\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$c(\"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 * This term provides descriptions only in English.\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$c(\"refPeriod\"),\r\n /**\r\n * The state of being male or female.\r\n *\r\n * This term provides descriptions only in English.\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$c(\"sex\"),\r\n /**\r\n * The period of time or point in time to which the measured observation refers.\r\n *\r\n * This term provides descriptions only in English.\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$c(\"timePeriod\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\r\n *\r\n * [Generator provided] - Security vocabulary\r\n */\r\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$b = \"https://w3id.org/security#\";\r\nfunction _NS$b(localName) {\r\n return (_NAMESPACE$b + localName);\r\n}\r\n/**\r\n * [Generator provided] - Security vocabulary\r\n */\r\nvar SEC = {\r\n PREFIX: \"sec\",\r\n NAMESPACE: _NAMESPACE$b,\r\n PREFIX_AND_NAMESPACE: { \"sec\": \"https://w3id.org/security#\" },\r\n NS: _NS$b,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n EcdsaSecp256k1Signature2019: _NS$b(\"EcdsaSecp256k1Signature2019\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n EcdsaSecp256k1RecoverySignature2020: _NS$b(\"EcdsaSecp256k1RecoverySignature2020\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n EcdsaSecp256k1VerificationKey2019: _NS$b(\"EcdsaSecp256k1VerificationKey2019\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n EcdsaSecp256k1RecoveryMethod2020: _NS$b(\"EcdsaSecp256k1RecoveryMethod2020\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n RsaSignature2018: _NS$b(\"RsaSignature2018\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n RsaVerificationKey2018: _NS$b(\"RsaVerificationKey2018\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n SchnorrSecp256k1Signature2019: _NS$b(\"SchnorrSecp256k1Signature2019\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n SchnorrSecp256k1VerificationKey2019: _NS$b(\"SchnorrSecp256k1VerificationKey2019\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n ServiceEndpointProxyService: _NS$b(\"ServiceEndpointProxyService\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n Digest: _NS$b(\"Digest\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n EncryptedMessage: _NS$b(\"EncryptedMessage\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n Signature: _NS$b(\"Signature\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n LinkedDataSignature2015: _NS$b(\"LinkedDataSignature2015\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n X25519KeyAgreementKey2019: _NS$b(\"X25519KeyAgreementKey2019\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n Ed25519VerificationKey2018: _NS$b(\"Ed25519VerificationKey2018\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n BbsBlsSignature2020: _NS$b(\"BbsBlsSignature2020\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n BbsBlsSignatureProof2020: _NS$b(\"BbsBlsSignatureProof2020\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n Bls12381G1Key2020: _NS$b(\"Bls12381G1Key2020\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n Bls12381G2Key2020: _NS$b(\"Bls12381G2Key2020\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n Key: _NS$b(\"Key\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n cipherAlgorithm: _NS$b(\"cipherAlgorithm\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n cipherData: _NS$b(\"cipherData\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n digestAlgorithm: _NS$b(\"digestAlgorithm\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n digestValue: _NS$b(\"digestValue\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n cipherKey: _NS$b(\"cipherKey\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n blockchainAccountId: _NS$b(\"blockchainAccountId\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n ethereumAddress: _NS$b(\"ethereumAddress\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n expires: _NS$b(\"expires\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n initializationVector: _NS$b(\"initializationVector\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n nonce: _NS$b(\"nonce\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n canonicalizationAlgorithm: _NS$b(\"canonicalizationAlgorithm\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n owner: _NS$b(\"owner\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n password: _NS$b(\"password\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n privateKeyPem: _NS$b(\"privateKeyPem\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n verificationMethod: _NS$b(\"verificationMethod\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n publicKey: _NS$b(\"publicKey\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n assertionMethod: _NS$b(\"assertionMethod\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n authenticationMethod: _NS$b(\"authenticationMethod\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n capabilityDelegationMethod: _NS$b(\"capabilityDelegationMethod\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n capabilityInvocationMethod: _NS$b(\"capabilityInvocationMethod\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n keyAgreementMethod: _NS$b(\"keyAgreementMethod\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n publicKeyBase58: _NS$b(\"publicKeyBase58\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n publicKeyJwk: _NS$b(\"publicKeyJwk\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n publicKeyPem: _NS$b(\"publicKeyPem\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n publicKeyHex: _NS$b(\"publicKeyHex\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n publicKeyMultibase: _NS$b(\"publicKeyMultibase\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n publicKeyService: _NS$b(\"publicKeyService\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n revoked: _NS$b(\"revoked\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n proof: _NS$b(\"proof\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n jws: _NS$b(\"jws\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n proofPurpose: _NS$b(\"proofPurpose\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n challenge: _NS$b(\"challenge\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n domain: _NS$b(\"domain\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n expiration: _NS$b(\"expiration\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n proofValue: _NS$b(\"proofValue\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n signature: _NS$b(\"signature\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n signatureValue: _NS$b(\"signatureValue\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n signatureAlgorithm: _NS$b(\"signatureAlgorithm\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n service: _NS$b(\"service\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n serviceEndpoint: _NS$b(\"serviceEndpoint\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n x509CertificateChain: _NS$b(\"x509CertificateChain\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n x509CertificateFingerprint: _NS$b(\"x509CertificateFingerprint\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n allowedAction: _NS$b(\"allowedAction\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n capability: _NS$b(\"capability\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n capabilityAction: _NS$b(\"capabilityAction\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n capabilityChain: _NS$b(\"capabilityChain\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n caveat: _NS$b(\"caveat\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n delegator: _NS$b(\"delegator\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n invocationTarget: _NS$b(\"invocationTarget\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n invoker: _NS$b(\"invoker\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\r\n *\r\n * This document describes the RDFS vocabulary description used in the Shape Expression Language (ShEx) [[shex-semantics]] along with the default JSON-LD Context and shape expression to validate RDF versions of shapes.\r\n */\r\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$a = \"http://www.w3.org/ns/shex#\";\r\nfunction _NS$a(localName) {\r\n return (_NAMESPACE$a + localName);\r\n}\r\n/**\r\n * This document describes the RDFS vocabulary description used in the Shape Expression Language (ShEx) [[shex-semantics]] along with the default JSON-LD Context and shape expression to validate RDF versions of shapes.\r\n */\r\nvar SHEX = {\r\n PREFIX: \"shex\",\r\n NAMESPACE: _NAMESPACE$a,\r\n PREFIX_AND_NAMESPACE: { \"shex\": \"http://www.w3.org/ns/shex#\" },\r\n NS: _NS$a,\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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n Annotation: _NS$a(\"Annotation\"),\r\n /**\r\n * A TripleExpression composed of one or more sub-expressions, all of which must match.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n EachOf: _NS$a(\"EachOf\"),\r\n /**\r\n * The abstract class of Triple Expressions.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n TripleExpression: _NS$a(\"TripleExpression\"),\r\n /**\r\n * An IRI prefix used for matching IRIs.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n IriStem: _NS$a(\"IriStem\"),\r\n /**\r\n * Abstract class for Stems\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n Stem: _NS$a(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n IriStemRange: _NS$a(\"IriStemRange\"),\r\n /**\r\n * Abstract Class for Stem Ranges\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n StemRange: _NS$a(\"StemRange\"),\r\n /**\r\n * An Language tag used for matching Literal Languages.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n Language: _NS$a(\"Language\"),\r\n /**\r\n * An Language prefix used for matching Literal Languages.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n LanguageStem: _NS$a(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n LanguageStemRange: _NS$a(\"LanguageStemRange\"),\r\n /**\r\n * An Literal prefix used for matching Literals.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n LiteralStem: _NS$a(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n LiteralStemRange: _NS$a(\"LiteralStemRange\"),\r\n /**\r\n * A constraint on the type or value of an RDF Node.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n NodeConstraint: _NS$a(\"NodeConstraint\"),\r\n /**\r\n * The abstract class of Shape Expressions.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n ShapeExpression: _NS$a(\"ShapeExpression\"),\r\n /**\r\n * The set of kinds of RDF Nodes.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n NodeKind: _NS$a(\"NodeKind\"),\r\n /**\r\n * A TripleExpression composed of one or more sub-expressions, one of which must match.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n OneOf: _NS$a(\"OneOf\"),\r\n /**\r\n * A Schema contains the set of shapes, used for matching a focus node.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n Schema: _NS$a(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n SemAct: _NS$a(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n Shape: _NS$a(\"Shape\"),\r\n /**\r\n * A ShapeExpression composed of one or more sub-expressions, all of which must match.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n ShapeAnd: _NS$a(\"ShapeAnd\"),\r\n /**\r\n * A reference to a shape defined in some external Schema.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n ShapeExternal: _NS$a(\"ShapeExternal\"),\r\n /**\r\n * A ShapeNot is satisfied when it’s included ShapeExpression is not satisfied.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n ShapeNot: _NS$a(\"ShapeNot\"),\r\n /**\r\n * A ShapeExpression composed of one or more sub-expressions, one of which must match.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n ShapeOr: _NS$a(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n TripleConstraint: _NS$a(\"TripleConstraint\"),\r\n /**\r\n * Indicates that a stem is a Wildcard, rather than a URI prefix.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n Wildcard: _NS$a(\"Wildcard\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * Annotations on a TripleExpression.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n annotation: _NS$a(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n closed: _NS$a(\"closed\"),\r\n /**\r\n * Code executed by Semantic Action.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n code: _NS$a(\"code\"),\r\n /**\r\n * A datatype constraint.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n datatype: _NS$a(\"datatype\"),\r\n /**\r\n * Values that are excluded from value matching.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n exclusion: _NS$a(\"exclusion\"),\r\n /**\r\n * Expression associated with the TripleExpression.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n expression: _NS$a(\"expression\"),\r\n /**\r\n * List of 2 or more expressions associated with the TripleExpression.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n expressions: _NS$a(\"expressions\"),\r\n /**\r\n * Properties which may have extra values beyond those matched through a constraint.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n extra: _NS$a(\"extra\"),\r\n /**\r\n * Regular expression flags\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n flags: _NS$a(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n fractiondigits: _NS$a(\"fractiondigits\"),\r\n /**\r\n * Abstract property of numeric facets on a NodeConstraint.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n numericFacet: _NS$a(\"numericFacet\"),\r\n /**\r\n * An abstract property of string and numeric facets on a NodeConstraint.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n xsFacet: _NS$a(\"xsFacet\"),\r\n /**\r\n * Constrains the subject of a triple, rather than the object.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n inverse: _NS$a(\"inverse\"),\r\n /**\r\n * The value used to match the language tag of a language-tagged string.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n languageTag: _NS$a(\"languageTag\"),\r\n /**\r\n * The exact length of the value of the cell.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n length: _NS$a(\"length\"),\r\n /**\r\n * An abstract property of string facets on a NodeConstraint.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n stringFacet: _NS$a(\"stringFacet\"),\r\n /**\r\n * Maximum number of times this TripleExpression may match; -1 for “*”\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n max: _NS$a(\"max\"),\r\n /**\r\n * An atomic property that contains a single number that is the maximum valid value (exclusive).\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n maxexclusive: _NS$a(\"maxexclusive\"),\r\n /**\r\n * An atomic property that contains a single number that is the maximum valid value (inclusive).\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n maxinclusive: _NS$a(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n maxlength: _NS$a(\"maxlength\"),\r\n /**\r\n * Minimum number of times this TripleExpression may match.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n min: _NS$a(\"min\"),\r\n /**\r\n * An atomic property that contains a single number that is the minimum valid value (exclusive).\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n minexclusive: _NS$a(\"minexclusive\"),\r\n /**\r\n * An atomic property that contains a single number that is the minimum valid value (inclusive).\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n mininclusive: _NS$a(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n minlength: _NS$a(\"minlength\"),\r\n /**\r\n * Identifier of SemAct extension.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n name: _NS$a(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n nodeKind: _NS$a(\"nodeKind\"),\r\n /**\r\n * The object of an Annotation.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n object: _NS$a(\"object\"),\r\n /**\r\n * A regular expression used for matching a value.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n pattern: _NS$a(\"pattern\"),\r\n /**\r\n * The predicate of a TripleConstraint or Annotation.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n predicate: _NS$a(\"predicate\"),\r\n /**\r\n * Semantic Actions on this TripleExpression.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n semActs: _NS$a(\"semActs\"),\r\n /**\r\n * Shape Expression referenced by this shape.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n shapeExpr: _NS$a(\"shapeExpr\"),\r\n /**\r\n * A list of 2 or more Shape Expressions referenced by this shape.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n shapeExprs: _NS$a(\"shapeExprs\"),\r\n /**\r\n * Shapes in this Schema.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n shapes: _NS$a(\"shapes\"),\r\n /**\r\n * A ShapeExpression matched against the focus node prior to any other mapped expressions.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n start: _NS$a(\"start\"),\r\n /**\r\n * Semantic Actions run on the Schema.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n startActs: _NS$a(\"startActs\"),\r\n /**\r\n * A stem value used for matching or excluding values.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n stem: _NS$a(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n totaldigits: _NS$a(\"totaldigits\"),\r\n /**\r\n * A ShapeExpression used for matching the object (or subject if inverted) of a TripleConstraint.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n valueExpr: _NS$a(\"valueExpr\"),\r\n /**\r\n * A value restriction on a NodeConstraint.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/shex#\r\n */\r\n values: _NS$a(\"values\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\r\n *\r\n * SIOC (Semantically-Interlinked Online Communities) is an ontology for describing the information in online communities.\r\nThis information can be used to export information from online communities and to link them together. The scope of the application areas that SIOC can be used for includes (and is not limited to) weblogs, message boards, mailing lists and chat channels.\r\n */\r\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$9 = \"http://rdfs.org/sioc/ns#\";\r\nfunction _NS$9(localName) {\r\n return (_NAMESPACE$9 + localName);\r\n}\r\n/**\r\n * SIOC (Semantically-Interlinked Online Communities) is an ontology for describing the information in online communities.\r\nThis information can be used to export information from online communities and to link them together. The scope of the application areas that SIOC can be used for includes (and is not limited to) weblogs, message boards, mailing lists and chat channels.\r\n */\r\nvar SIOC = {\r\n PREFIX: \"sioc\",\r\n NAMESPACE: _NAMESPACE$9,\r\n PREFIX_AND_NAMESPACE: { \"sioc\": \"http://rdfs.org/sioc/ns#\" },\r\n NS: _NS$9,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * Community is a high-level concept that defines an online community and what it consists of.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n Community: _NS$9(\"Community\"),\r\n /**\r\n * An Item is something which can be in a Container.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n Item: _NS$9(\"Item\"),\r\n /**\r\n * A Role is a function of a UserAccount within a scope of a particular Forum, Site, etc.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n Role: _NS$9(\"Role\"),\r\n /**\r\n * A user account in an online community site.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n UserAccount: _NS$9(\"UserAccount\"),\r\n /**\r\n * An area in which content Items are contained.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n Container: _NS$9(\"Container\"),\r\n /**\r\n * A set of UserAccounts whose owners have a common purpose or interest. Can be used for access control purposes.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n Usergroup: _NS$9(\"Usergroup\"),\r\n /**\r\n * A Space is a place where data resides, e.g. on a website, desktop, fileshare, etc.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n Space: _NS$9(\"Space\"),\r\n /**\r\n * A discussion area on which Posts or entries are made.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n Forum: _NS$9(\"Forum\"),\r\n /**\r\n * An article or message that can be posted to a Forum.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n Post: _NS$9(\"Post\"),\r\n /**\r\n * A Site can be the location of an online community or set of communities, with UserAccounts and Usergroups creating Items in a set of Containers. It can be thought of as a web-accessible data Space.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n Site: _NS$9(\"Site\"),\r\n /**\r\n * A container for a series of threaded discussion Posts or Items.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n Thread: _NS$9(\"Thread\"),\r\n /**\r\n * UserAccount is now preferred. This is a deprecated class for a User in an online community site.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n User: _NS$9(\"User\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * Specifies that this Item is about a particular resource, e.g. a Post describing a book, hotel, etc.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n about: _NS$9(\"about\"),\r\n /**\r\n * Refers to the foaf:Agent or foaf:Person who owns this sioc:UserAccount.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n account_of: _NS$9(\"account_of\"),\r\n /**\r\n * Refers to who (e.g. a UserAccount, e-mail address, etc.) a particular Item is addressed to.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n addressed_to: _NS$9(\"addressed_to\"),\r\n /**\r\n * A Site that the UserAccount is an administrator of.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n administrator_of: _NS$9(\"administrator_of\"),\r\n /**\r\n * A UserAccount that is an administrator of this Site.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n has_administrator: _NS$9(\"has_administrator\"),\r\n /**\r\n * The URI of a file attached to an Item.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n attachment: _NS$9(\"attachment\"),\r\n /**\r\n * An image or depiction used to represent this UserAccount.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n avatar: _NS$9(\"avatar\"),\r\n /**\r\n * An Item that this Container contains.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n container_of: _NS$9(\"container_of\"),\r\n /**\r\n * The Container to which this Item belongs.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n has_container: _NS$9(\"has_container\"),\r\n /**\r\n * The content of the Item in plain text format.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n content: _NS$9(\"content\"),\r\n /**\r\n * A resource that the UserAccount is a creator of.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n creator_of: _NS$9(\"creator_of\"),\r\n /**\r\n * This is the UserAccount that made this resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n has_creator: _NS$9(\"has_creator\"),\r\n /**\r\n * When this was delivered, in ISO 8601 format.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n delivered_at: _NS$9(\"delivered_at\"),\r\n /**\r\n * The Item that this discussion is about.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n discussion_of: _NS$9(\"discussion_of\"),\r\n /**\r\n * A discussion that is related to this Item. The discussion can be anything, for example, a sioc:Forum or sioc:Thread, a sioct:WikiArticle or simply a foaf:Document.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n has_discussion: _NS$9(\"has_discussion\"),\r\n /**\r\n * An electronic mail address of the UserAccount.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n email: _NS$9(\"email\"),\r\n /**\r\n * An electronic mail address of the UserAccount, encoded using SHA1.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n email_sha1: _NS$9(\"email_sha1\"),\r\n /**\r\n * This links Items to embedded statements, facts and structured content.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n embeds_knowledge: _NS$9(\"embeds_knowledge\"),\r\n /**\r\n * A feed (e.g. RSS, Atom, etc.) pertaining to this resource (e.g. for a Forum, Site, UserAccount, etc.).\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n feed: _NS$9(\"feed\"),\r\n /**\r\n * Indicates that one UserAccount follows another UserAccount (e.g. for microblog posts or other content item updates).\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n follows: _NS$9(\"follows\"),\r\n /**\r\n * A UserAccount that has this Role.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n function_of: _NS$9(\"function_of\"),\r\n /**\r\n * A Role that this UserAccount has.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n has_function: _NS$9(\"has_function\"),\r\n /**\r\n * A URI for the application used to generate this Item.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n generator: _NS$9(\"generator\"),\r\n /**\r\n * The Site that hosts this Container.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n has_host: _NS$9(\"has_host\"),\r\n /**\r\n * A Container that is hosted on this Site.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n host_of: _NS$9(\"host_of\"),\r\n /**\r\n * A data Space which this resource is a part of.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n has_space: _NS$9(\"has_space\"),\r\n /**\r\n * A resource which belongs to this data Space.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n space_of: _NS$9(\"space_of\"),\r\n /**\r\n * A UserAccount that is a member of this Usergroup.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n has_member: _NS$9(\"has_member\"),\r\n /**\r\n * A Usergroup that this UserAccount is a member of.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n member_of: _NS$9(\"member_of\"),\r\n /**\r\n * A UserAccount that is a moderator of this Forum.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n has_moderator: _NS$9(\"has_moderator\"),\r\n /**\r\n * A Forum that a UserAccount is a moderator of.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n moderator_of: _NS$9(\"moderator_of\"),\r\n /**\r\n * A UserAccount that modified this resource (e.g. Item, Container, Space).\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n has_modifier: _NS$9(\"has_modifier\"),\r\n /**\r\n * A resource that this UserAccount has modified.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n modifier_of: _NS$9(\"modifier_of\"),\r\n /**\r\n * A UserAccount that this resource is owned by.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n has_owner: _NS$9(\"has_owner\"),\r\n /**\r\n * A resource owned by a particular UserAccount, for example, a weblog or image gallery.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n owner_of: _NS$9(\"owner_of\"),\r\n /**\r\n * A Container or Forum that this Container or Forum is a child of.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n has_parent: _NS$9(\"has_parent\"),\r\n /**\r\n * A child Container or Forum that this Container or Forum is a parent of.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n parent_of: _NS$9(\"parent_of\"),\r\n /**\r\n * Points to an Item or Post that is a reply or response to this Item or Post.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n has_reply: _NS$9(\"has_reply\"),\r\n /**\r\n * Links to an Item or Post which this Item or Post is a reply to.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n reply_of: _NS$9(\"reply_of\"),\r\n /**\r\n * Related resources for this resource, e.g. for Posts, perhaps determined implicitly from topics or references.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n related_to: _NS$9(\"related_to\"),\r\n /**\r\n * A resource that this Role applies to.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n has_scope: _NS$9(\"has_scope\"),\r\n /**\r\n * A Role that has a scope of this resource.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n scope_of: _NS$9(\"scope_of\"),\r\n /**\r\n * A UserAccount that is subscribed to this Container.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * See also:\r\n * - http://rdfs.org/sioc/ns#feed\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n has_subscriber: _NS$9(\"has_subscriber\"),\r\n /**\r\n * A Container that a UserAccount is subscribed to.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * See also:\r\n * - http://rdfs.org/sioc/ns#feed\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n subscriber_of: _NS$9(\"subscriber_of\"),\r\n /**\r\n * Points to a Usergroup that has certain access to this Space.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n has_usergroup: _NS$9(\"has_usergroup\"),\r\n /**\r\n * A Space that the Usergroup has access to.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n usergroup_of: _NS$9(\"usergroup_of\"),\r\n /**\r\n * An identifier of a SIOC concept instance. For example, a user ID. Must be unique for instances of each type of SIOC concept within the same site.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n id: _NS$9(\"id\"),\r\n /**\r\n * The IP address used when creating this Item, UserAccount, etc. This can be associated with a creator. Some wiki articles list the IP addresses for the creator or modifiers when the usernames are absent.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n ip_address: _NS$9(\"ip_address\"),\r\n /**\r\n * The date and time of the last activity associated with a SIOC concept instance, and expressed in ISO 8601 format. This could be due to a reply Post or Comment, a modification to an Item, etc.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n last_activity_date: _NS$9(\"last_activity_date\"),\r\n /**\r\n * The date and time of the last Post (or Item) in a Forum (or a Container), in ISO 8601 format.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n last_item_date: _NS$9(\"last_item_date\"),\r\n /**\r\n * The date and time of the last reply Post or Comment, which could be associated with a starter Item or Post or with a Thread, and expressed in ISO 8601 format.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n last_reply_date: _NS$9(\"last_reply_date\"),\r\n /**\r\n * Links to the latest revision of this Item or Post.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n latest_version: _NS$9(\"latest_version\"),\r\n /**\r\n * Used to indicate some form of endorsement by a UserAccount or Agent of an Item, Container, Space, UserAccount, etc.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n likes: _NS$9(\"likes\"),\r\n /**\r\n * A URI of a document which contains this SIOC object.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n link: _NS$9(\"link\"),\r\n /**\r\n * Links extracted from hyperlinks within a SIOC concept, e.g. Post or Site.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n links_to: _NS$9(\"links_to\"),\r\n /**\r\n * Refers to a UserAccount that a particular Item mentions.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n mentions: _NS$9(\"mentions\"),\r\n /**\r\n * The name of a SIOC concept instance, e.g. a username for a UserAccount, group name for a Usergroup, etc.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n name: _NS$9(\"name\"),\r\n /**\r\n * Next Item or Post in a given Container sorted by date.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n next_by_date: _NS$9(\"next_by_date\"),\r\n /**\r\n * Previous Item or Post in a given Container sorted by date.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n previous_by_date: _NS$9(\"previous_by_date\"),\r\n /**\r\n * Links to the next revision of this Item or Post.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n next_version: _NS$9(\"next_version\"),\r\n /**\r\n * Links to the previous revision of this Item or Post.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n previous_version: _NS$9(\"previous_version\"),\r\n /**\r\n * A note associated with this resource, for example, if it has been edited by a UserAccount.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n note: _NS$9(\"note\"),\r\n /**\r\n * The number of unique authors (UserAccounts and unregistered posters) who have contributed to this Item, Thread, Post, etc.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n num_authors: _NS$9(\"num_authors\"),\r\n /**\r\n * The number of Posts (or Items) in a Forum (or a Container).\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n num_items: _NS$9(\"num_items\"),\r\n /**\r\n * The number of replies that this Item, Thread, Post, etc. has. Useful for when the reply structure is absent.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n num_replies: _NS$9(\"num_replies\"),\r\n /**\r\n * The number of Threads (AKA discussion topics) in a Forum.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n num_threads: _NS$9(\"num_threads\"),\r\n /**\r\n * The number of times this Item, Thread, UserAccount profile, etc. has been viewed.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n num_views: _NS$9(\"num_views\"),\r\n /**\r\n * When this was read, in ISO 8601 format.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n read_at: _NS$9(\"read_at\"),\r\n /**\r\n * For the reply-to address set in email messages, IMs, etc. The property name was chosen to avoid confusion with has_reply/reply_of (the reply graph).\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n respond_to: _NS$9(\"respond_to\"),\r\n /**\r\n * For shared Items where there is a certain creator_of and an intermediary who shares or forwards it (e.g. as a sibling Item).\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * See also:\r\n * - http://rdfs.org/sioc/ns#sibling\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n shared_by: _NS$9(\"shared_by\"),\r\n /**\r\n * A topic of interest, linking to the appropriate URI, e.g. in the Open Directory Project or of a SKOS category.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n topic: _NS$9(\"topic\"),\r\n /**\r\n * This is the title (subject line) of the Post. Note that for a Post within a threaded discussion that has no parents, it would detail the topic thread.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n title: _NS$9(\"title\"),\r\n /**\r\n * The encoded content of the Post, contained in CDATA areas.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n content_encoded: _NS$9(\"content_encoded\"),\r\n /**\r\n * When this was created, in ISO 8601 format.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n created_at: _NS$9(\"created_at\"),\r\n /**\r\n * The content of the Post.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n description: _NS$9(\"description\"),\r\n /**\r\n * First (real) name of this User. Synonyms include given name or christian name.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n first_name: _NS$9(\"first_name\"),\r\n /**\r\n * group of\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n group_of: _NS$9(\"group_of\"),\r\n /**\r\n * has group\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n has_group: _NS$9(\"has_group\"),\r\n /**\r\n * An resource that is a part of this subject.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n has_part: _NS$9(\"has_part\"),\r\n /**\r\n * A resource that the subject is a part of.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n part_of: _NS$9(\"part_of\"),\r\n /**\r\n * Last (real) name of this user. Synonyms include surname or family name.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n last_name: _NS$9(\"last_name\"),\r\n /**\r\n * When this was modified, in ISO 8601 format.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n modified_at: _NS$9(\"modified_at\"),\r\n /**\r\n * Links either created explicitly or extracted implicitly on the HTML level from the Post.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n reference: _NS$9(\"reference\"),\r\n /**\r\n * Keyword(s) describing subject of the Post.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://rdfs.org/sioc/ns#\r\n */\r\n subject: _NS$9(\"subject\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\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\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$8 = \"http://www.w3.org/2004/02/skos/core#\";\r\nfunction _NS$8(localName) {\r\n return (_NAMESPACE$8 + localName);\r\n}\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: _NAMESPACE$8,\r\n PREFIX_AND_NAMESPACE: { \"skos\": \"http://www.w3.org/2004/02/skos/core#\" },\r\n NS: _NS$8,\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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n Concept: _NS$8(\"Concept\"),\r\n /**\r\n * A set of concepts, optionally including statements about semantic relationships between those concepts.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n ConceptScheme: _NS$8(\"ConceptScheme\"),\r\n /**\r\n * A meaningful collection of concepts.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n Collection: _NS$8(\"Collection\"),\r\n /**\r\n * An ordered collection of concepts, where both the grouping and the ordering are meaningful.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n OrderedCollection: _NS$8(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n definition: _NS$8(\"definition\"),\r\n /**\r\n * A general note, for any purpose.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n note: _NS$8(\"note\"),\r\n /**\r\n * A note that helps to clarify the meaning and/or the use of a concept.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n scopeNote: _NS$8(\"scopeNote\"),\r\n /**\r\n * An example of the use of a concept.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n example: _NS$8(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n inScheme: _NS$8(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n hasTopConcept: _NS$8(\"hasTopConcept\"),\r\n /**\r\n * Relates a concept to the concept scheme that it is a top level concept of.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n topConceptOf: _NS$8(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n prefLabel: _NS$8(\"prefLabel\"),\r\n /**\r\n * The range of skos:altLabel is the class of RDF plain literals.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n altLabel: _NS$8(\"altLabel\"),\r\n /**\r\n * skos:prefLabel, skos:altLabel and skos:hiddenLabel are pairwise disjoint properties.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n hiddenLabel: _NS$8(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n notation: _NS$8(\"notation\"),\r\n /**\r\n * A note about a modification to a concept.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n changeNote: _NS$8(\"changeNote\"),\r\n /**\r\n * A note for an editor, translator or maintainer of the vocabulary.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n editorialNote: _NS$8(\"editorialNote\"),\r\n /**\r\n * A note about the past state/use/meaning of a concept.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n historyNote: _NS$8(\"historyNote\"),\r\n /**\r\n * Links a concept to a concept related by meaning.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n semanticRelation: _NS$8(\"semanticRelation\"),\r\n /**\r\n * Broader concepts are typically rendered as parents in a concept hierarchy (tree).\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n broader: _NS$8(\"broader\"),\r\n /**\r\n * skos:broaderTransitive is a transitive superproperty of skos:broader.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n broaderTransitive: _NS$8(\"broaderTransitive\"),\r\n /**\r\n * Narrower concepts are typically rendered as children in a concept hierarchy (tree).\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n narrower: _NS$8(\"narrower\"),\r\n /**\r\n * skos:narrowerTransitive is a transitive superproperty of skos:narrower.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n narrowerTransitive: _NS$8(\"narrowerTransitive\"),\r\n /**\r\n * skos:related is disjoint with skos:broaderTransitive\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n related: _NS$8(\"related\"),\r\n /**\r\n * Relates a collection to one of its members.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n member: _NS$8(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n memberList: _NS$8(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n mappingRelation: _NS$8(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n broadMatch: _NS$8(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n narrowMatch: _NS$8(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n relatedMatch: _NS$8(\"relatedMatch\"),\r\n /**\r\n * skos:exactMatch is disjoint with each of the properties skos:broadMatch and skos:relatedMatch.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n exactMatch: _NS$8(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2004/02/skos/core\r\n */\r\n closeMatch: _NS$8(\"closeMatch\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\r\n *\r\n * An RDF vocabulary extending SKOS and allowing the description and linking of lexical entities.\r\n */\r\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$7 = \"http://www.w3.org/2008/05/skos-xl#\";\r\nfunction _NS$7(localName) {\r\n return (_NAMESPACE$7 + localName);\r\n}\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: _NAMESPACE$7,\r\n PREFIX_AND_NAMESPACE: { \"skos-xl\": \"http://www.w3.org/2008/05/skos-xl#\" },\r\n NS: _NS$7,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * A special class of lexical entities.\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2008/05/skos-xl\r\n */\r\n Label: _NS$7(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2008/05/skos-xl\r\n */\r\n literalForm: _NS$7(\"literalForm\"),\r\n /**\r\n * If C skosxl:prefLabel L and L skosxl:literalForm V, then X skos:prefLabel V.\r\n *\r\n * This term provides descriptions only in English.\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$7(\"prefLabel\"),\r\n /**\r\n * If C skosxl:altLabel L and L skosxl:literalForm V, then X skos:altLabel V.\r\n *\r\n * This term provides descriptions only in English.\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$7(\"altLabel\"),\r\n /**\r\n * If C skosxl:hiddenLabel L and L skosxl:literalForm V, then C skos:hiddenLabel V.\r\n *\r\n * This term provides descriptions only in English.\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$7(\"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 * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2008/05/skos-xl\r\n */\r\n labelRelation: _NS$7(\"labelRelation\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\r\n *\r\n * [Generator provided] - UI Ontology\r\n */\r\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$6 = \"http://www.w3.org/ns/ui#\";\r\nfunction _NS$6(localName) {\r\n return (_NAMESPACE$6 + localName);\r\n}\r\n/**\r\n * [Generator provided] - UI Ontology\r\n */\r\nvar UI = {\r\n PREFIX: \"ui\",\r\n NAMESPACE: _NAMESPACE$6,\r\n PREFIX_AND_NAMESPACE: { \"ui\": \"http://www.w3.org/ns/ui#\" },\r\n NS: _NS$6,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n BooleanField: _NS$6(\"BooleanField\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n NumericField: _NS$6(\"NumericField\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n ValueField: _NS$6(\"ValueField\"),\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 * The term has a description only in English, but has a mismatch between its labels and comments, with [0] labels, but [1] comment in the language [NoLocale].\r\n */\r\n Form: _NS$6(\"Form\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n Single: _NS$6(\"Single\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n Group: _NS$6(\"Group\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n Choice: _NS$6(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n Classifier: _NS$6(\"Classifier\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n ColorField: _NS$6(\"ColorField\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n TextField: _NS$6(\"TextField\"),\r\n /**\r\n * Comment\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n Comment: _NS$6(\"Comment\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n DateField: _NS$6(\"DateField\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n DateTimeField: _NS$6(\"DateTimeField\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n DecimalField: _NS$6(\"DecimalField\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n EmailField: _NS$6(\"EmailField\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n Heading: _NS$6(\"Heading\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n SingleLineTextField: _NS$6(\"SingleLineTextField\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n Options: _NS$6(\"Options\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n IntegerField: _NS$6(\"IntegerField\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n FloatField: _NS$6(\"FloatField\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n PhoneField: _NS$6(\"PhoneField\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n Multiple: _NS$6(\"Multiple\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n MultiLineTextField: _NS$6(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n NamedNodeURIField: _NS$6(\"NamedNodeURIField\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n TriStateField: _NS$6(\"TriStateField\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * parts\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n parts: _NS$6(\"parts\"),\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 * This term provides descriptions only with no explicit locale.\r\n */\r\n creationForm: _NS$6(\"creationForm\"),\r\n /**\r\n * from\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n from: _NS$6(\"from\"),\r\n /**\r\n * Label\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n label: _NS$6(\"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 * The term has a description only in English, with [1] label in the language [en], but [1] comment in the language [NoLocale] (so the difference is only between English and NoLocale, which we consider the same).\r\n */\r\n property: _NS$6(\"property\"),\r\n /**\r\n * The value for which this case is selected.\r\n *\r\n * The term has a description only in English, with [1] label in the language [en], but [1] comment in the language [NoLocale] (so the difference is only between English and NoLocale, which we consider the same).\r\n */\r\n for: _NS$6(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n prompt: _NS$6(\"prompt\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n use: _NS$6(\"use\"),\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 * The term has a description only in English, with [1] label in the language [en], but [1] comment in the language [NoLocale] (so the difference is only between English and NoLocale, which we consider the same).\r\n */\r\n Color: _NS$6(\"Color\"),\r\n /**\r\n * Contents\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n contents: _NS$6(\"contents\"),\r\n /**\r\n * size of field\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n size: _NS$6(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n style: _NS$6(\"style\"),\r\n /**\r\n * The superclass subclasses of which will be selected.\r\n *\r\n * The term has a description only in English, with [1] label in the language [en], but [1] comment in the language [NoLocale] (so the difference is only between English and NoLocale, which we consider the same).\r\n */\r\n category: _NS$6(\"category\"),\r\n /**\r\n * Many fields prompt for information about a given property of the subject\r\n *\r\n * The term has a description only in English, with [1] label in the language [en], but [1] comment in the language [NoLocale] (so the difference is only between English and NoLocale, which we consider the same).\r\n */\r\n dependingOn: _NS$6(\"dependingOn\"),\r\n /**\r\n * Max length\r\n *\r\n * This term has [3] labels (in languages [NoLocale, en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n maxLength: _NS$6(\"maxLength\"),\r\n /**\r\n * part\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n part: _NS$6(\"part\"),\r\n /**\r\n * Time field\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n TimeField: _NS$6(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n annotationForm: _NS$6(\"annotationForm\"),\r\n /**\r\n * background color\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n backgroundColor: _NS$6(\"backgroundColor\"),\r\n /**\r\n * URI or base64 representation of an image\r\n *\r\n * The term has a description only in English, with [1] label in the language [en], but [1] comment in the language [NoLocale] (so the difference is only between English and NoLocale, which we consider the same).\r\n */\r\n backgroundImage: _NS$6(\"backgroundImage\"),\r\n /**\r\n * Base\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n base: _NS$6(\"base\"),\r\n /**\r\n * color\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n color: _NS$6(\"color\"),\r\n /**\r\n * Default error\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n defaultError: _NS$6(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n initialProperties: _NS$6(\"initialProperties\"),\r\n /**\r\n * Maximum date offset\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n maxDateOffset: _NS$6(\"maxDateOffset\"),\r\n /**\r\n * Maximum datetime offset\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n maxDatetimeOffset: _NS$6(\"maxDatetimeOffset\"),\r\n /**\r\n * max\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n maxValue: _NS$6(\"maxValue\"),\r\n /**\r\n * Minimum date offset\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n minDateOffset: _NS$6(\"minDateOffset\"),\r\n /**\r\n * Minimum datetime offset\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n minDatetimeOffset: _NS$6(\"minDatetimeOffset\"),\r\n /**\r\n * Min length\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n minLength: _NS$6(\"minLength\"),\r\n /**\r\n * min\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n minValue: _NS$6(\"minValue\"),\r\n /**\r\n * Name\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n name: _NS$6(\"name\"),\r\n /**\r\n * Old value\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n oldValue: _NS$6(\"oldValue\"),\r\n /**\r\n * Parent property\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n parentProperty: _NS$6(\"parentProperty\"),\r\n /**\r\n * Parts clone\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n partsClone: _NS$6(\"partsClone\"),\r\n /**\r\n * Pattern\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n pattern: _NS$6(\"pattern\"),\r\n /**\r\n * Reference\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n reference: _NS$6(\"reference\"),\r\n /**\r\n * Required\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n required: _NS$6(\"required\"),\r\n /**\r\n * Required error\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n requiredError: _NS$6(\"requiredError\"),\r\n /**\r\n * The sequence in which this item is arranged with repect to other parts.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n seqeunce: _NS$6(\"seqeunce\"),\r\n /**\r\n * A property which typically is used to sort\r\n members of a given class.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n sortBy: _NS$6(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n sortPriority: _NS$6(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n tableProperties: _NS$6(\"tableProperties\"),\r\n /**\r\n * Valid\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n valid: _NS$6(\"valid\"),\r\n /**\r\n * Validation error\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n validationError: _NS$6(\"validationError\"),\r\n /**\r\n * Value\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n value: _NS$6(\"value\"),\r\n /**\r\n * Values\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/ns/ui\r\n */\r\n values: _NS$6(\"values\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\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\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$5 = \"http://www.w3.org/ns/ui#\";\r\nfunction _NS$5(localName) {\r\n return (_NAMESPACE$5 + localName);\r\n}\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: _NAMESPACE$5,\r\n PREFIX_AND_NAMESPACE: { \"ui-inrupt\": \"http://www.w3.org/ns/ui#\" },\r\n NS: _NS$5,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n BooleanField: _NS$5(\"BooleanField\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n NumericField: _NS$5(\"NumericField\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n ValueField: _NS$5(\"ValueField\"),\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 * The term has a description only in English, but has a mismatch between its labels and comments, with [0] labels, but [1] comment in the language [NoLocale].\r\n */\r\n Form: _NS$5(\"Form\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n Single: _NS$5(\"Single\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n TextField: _NS$5(\"TextField\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n TriStateField: _NS$5(\"TriStateField\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n Group: _NS$5(\"Group\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n Choice: _NS$5(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n Classifier: _NS$5(\"Classifier\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n ColorField: _NS$5(\"ColorField\"),\r\n /**\r\n * Comment\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n Comment: _NS$5(\"Comment\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n DateField: _NS$5(\"DateField\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n DateTimeField: _NS$5(\"DateTimeField\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n DecimalField: _NS$5(\"DecimalField\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n EmailField: _NS$5(\"EmailField\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n Heading: _NS$5(\"Heading\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n SingleLineTextField: _NS$5(\"SingleLineTextField\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n Options: _NS$5(\"Options\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n IntegerField: _NS$5(\"IntegerField\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n FloatField: _NS$5(\"FloatField\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n PhoneField: _NS$5(\"PhoneField\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n Multiple: _NS$5(\"Multiple\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n MultiLineTextField: _NS$5(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n NamedNodeURIField: _NS$5(\"NamedNodeURIField\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\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 * This term provides descriptions only with no explicit locale.\r\n */\r\n creationForm: _NS$5(\"creationForm\"),\r\n /**\r\n * parts\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n parts: _NS$5(\"parts\"),\r\n /**\r\n * from\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n from: _NS$5(\"from\"),\r\n /**\r\n * Label\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n label: _NS$5(\"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 * The term has a description only in English, with [1] label in the language [en], but [1] comment in the language [NoLocale] (so the difference is only between English and NoLocale, which we consider the same).\r\n */\r\n property: _NS$5(\"property\"),\r\n /**\r\n * The value for which this case is selected.\r\n *\r\n * The term has a description only in English, with [1] label in the language [en], but [1] comment in the language [NoLocale] (so the difference is only between English and NoLocale, which we consider the same).\r\n */\r\n for: _NS$5(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n prompt: _NS$5(\"prompt\"),\r\n /**\r\n *\r\n *\r\n * This term has no descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:label', 'rdfs:comment', or 'dcterms:description' meta-data).\r\n */\r\n use: _NS$5(\"use\"),\r\n /**\r\n * The superclass subclasses of which will be selected.\r\n *\r\n * The term has a description only in English, with [1] label in the language [en], but [1] comment in the language [NoLocale] (so the difference is only between English and NoLocale, which we consider the same).\r\n */\r\n category: _NS$5(\"category\"),\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 * The term has a description only in English, with [1] label in the language [en], but [1] comment in the language [NoLocale] (so the difference is only between English and NoLocale, which we consider the same).\r\n */\r\n Color: _NS$5(\"Color\"),\r\n /**\r\n * Contents\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n contents: _NS$5(\"contents\"),\r\n /**\r\n * size of field\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n size: _NS$5(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n style: _NS$5(\"style\"),\r\n /**\r\n * Many fields prompt for information about a given property of the subject\r\n *\r\n * The term has a description only in English, with [1] label in the language [en], but [1] comment in the language [NoLocale] (so the difference is only between English and NoLocale, which we consider the same).\r\n */\r\n dependingOn: _NS$5(\"dependingOn\"),\r\n /**\r\n * part\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n part: _NS$5(\"part\"),\r\n /**\r\n * Max length\r\n *\r\n * This term has [3] labels (in languages [NoLocale, en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n maxLength: _NS$5(\"maxLength\"),\r\n /**\r\n * Time field\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n TimeField: _NS$5(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n annotationForm: _NS$5(\"annotationForm\"),\r\n /**\r\n * background color\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n backgroundColor: _NS$5(\"backgroundColor\"),\r\n /**\r\n * URI or base64 representation of an image\r\n *\r\n * The term has a description only in English, with [1] label in the language [en], but [1] comment in the language [NoLocale] (so the difference is only between English and NoLocale, which we consider the same).\r\n */\r\n backgroundImage: _NS$5(\"backgroundImage\"),\r\n /**\r\n * Base\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n base: _NS$5(\"base\"),\r\n /**\r\n * color\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n color: _NS$5(\"color\"),\r\n /**\r\n * Default error\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n defaultError: _NS$5(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n initialProperties: _NS$5(\"initialProperties\"),\r\n /**\r\n * Maximum date offset\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n maxDateOffset: _NS$5(\"maxDateOffset\"),\r\n /**\r\n * Maximum datetime offset\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n maxDatetimeOffset: _NS$5(\"maxDatetimeOffset\"),\r\n /**\r\n * max\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n maxValue: _NS$5(\"maxValue\"),\r\n /**\r\n * Minimum date offset\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n minDateOffset: _NS$5(\"minDateOffset\"),\r\n /**\r\n * Minimum datetime offset\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n minDatetimeOffset: _NS$5(\"minDatetimeOffset\"),\r\n /**\r\n * Min length\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n minLength: _NS$5(\"minLength\"),\r\n /**\r\n * min\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n minValue: _NS$5(\"minValue\"),\r\n /**\r\n * Name\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n name: _NS$5(\"name\"),\r\n /**\r\n * Old value\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n oldValue: _NS$5(\"oldValue\"),\r\n /**\r\n * Parent property\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n parentProperty: _NS$5(\"parentProperty\"),\r\n /**\r\n * Parts clone\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n partsClone: _NS$5(\"partsClone\"),\r\n /**\r\n * Pattern\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n pattern: _NS$5(\"pattern\"),\r\n /**\r\n * Reference\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n reference: _NS$5(\"reference\"),\r\n /**\r\n * Required\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n required: _NS$5(\"required\"),\r\n /**\r\n * Required error\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n requiredError: _NS$5(\"requiredError\"),\r\n /**\r\n * The sequence in which this item is arranged with repect to other parts.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n seqeunce: _NS$5(\"seqeunce\"),\r\n /**\r\n * A property which typically is used to sort\r\n members of a given class.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n sortBy: _NS$5(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n sortPriority: _NS$5(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n tableProperties: _NS$5(\"tableProperties\"),\r\n /**\r\n * Valid\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n valid: _NS$5(\"valid\"),\r\n /**\r\n * Validation error\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n validationError: _NS$5(\"validationError\"),\r\n /**\r\n * Value\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n value: _NS$5(\"value\"),\r\n /**\r\n * Values\r\n *\r\n * This term has [2] labels (in languages [en, es]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: https://w3id.org/inrupt/vocab/extension/ui#\r\n */\r\n values: _NS$5(\"values\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\r\n *\r\n * A vocabulary for annotating vocabulary descriptions (VANN).\r\n */\r\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$4 = \"http://purl.org/vocab/vann/\";\r\nfunction _NS$4(localName) {\r\n return (_NAMESPACE$4 + localName);\r\n}\r\n/**\r\n * A vocabulary for annotating vocabulary descriptions (VANN).\r\n */\r\nvar VANN = {\r\n PREFIX: \"vann\",\r\n NAMESPACE: _NAMESPACE$4,\r\n PREFIX_AND_NAMESPACE: { \"vann\": \"http://purl.org/vocab/vann/\" },\r\n NS: _NS$4,\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 * This term provides descriptions only in English.\r\n */\r\n preferredNamespacePrefix: _NS$4(\"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 * This term provides descriptions only in English.\r\n */\r\n preferredNamespaceUri: _NS$4(\"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 * This term provides descriptions only in English.\r\n */\r\n changes: _NS$4(\"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 * This term provides descriptions only in English.\r\n */\r\n example: _NS$4(\"example\"),\r\n /**\r\n * A group of related terms in a vocabulary.\r\n *\r\n * This term provides descriptions only in English.\r\n */\r\n termGroup: _NS$4(\"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 * This term provides descriptions only in English.\r\n */\r\n usageNote: _NS$4(\"usageNote\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\r\n *\r\n * Ontology for vCard based on RFC6350\r\n */\r\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$3 = \"http://www.w3.org/2006/vcard/ns#\";\r\nfunction _NS$3(localName) {\r\n return (_NAMESPACE$3 + localName);\r\n}\r\n/**\r\n * Ontology for vCard based on RFC6350\r\n */\r\nvar VCARD = {\r\n PREFIX: \"vcard\",\r\n NAMESPACE: _NAMESPACE$3,\r\n PREFIX_AND_NAMESPACE: { \"vcard\": \"http://www.w3.org/2006/vcard/ns#\" },\r\n NS: _NS$3,\r\n // *****************\r\n // All the Classes.\r\n // *****************\r\n /**\r\n * Acquaintance\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Acquaintance: _NS$3(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n RelatedType: _NS$3(\"RelatedType\"),\r\n /**\r\n * Agent\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Agent: _NS$3(\"Agent\"),\r\n /**\r\n * This class is deprecated\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n BBS: _NS$3(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n TelephoneType: _NS$3(\"TelephoneType\"),\r\n /**\r\n * This class is deprecated\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Car: _NS$3(\"Car\"),\r\n /**\r\n * Also called mobile telephone\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Cell: _NS$3(\"Cell\"),\r\n /**\r\n * Child\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Child: _NS$3(\"Child\"),\r\n /**\r\n * Colleague\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Colleague: _NS$3(\"Colleague\"),\r\n /**\r\n * Contact\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Contact: _NS$3(\"Contact\"),\r\n /**\r\n * Coresident\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Coresident: _NS$3(\"Coresident\"),\r\n /**\r\n * Coworker\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Coworker: _NS$3(\"Coworker\"),\r\n /**\r\n * Crush\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Crush: _NS$3(\"Crush\"),\r\n /**\r\n * Date\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Date: _NS$3(\"Date\"),\r\n /**\r\n * This class is deprecated\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Dom: _NS$3(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Type: _NS$3(\"Type\"),\r\n /**\r\n * Emergency\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Emergency: _NS$3(\"Emergency\"),\r\n /**\r\n * Fax\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Fax: _NS$3(\"Fax\"),\r\n /**\r\n * Female\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Female: _NS$3(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Gender: _NS$3(\"Gender\"),\r\n /**\r\n * Friend\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Friend: _NS$3(\"Friend\"),\r\n /**\r\n * This implies that the property is related to an individual's personal life\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Home: _NS$3(\"Home\"),\r\n /**\r\n * This class is deprecated\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n ISDN: _NS$3(\"ISDN\"),\r\n /**\r\n * This class is deprecated\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Internet: _NS$3(\"Internet\"),\r\n /**\r\n * This class is deprecated\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Intl: _NS$3(\"Intl\"),\r\n /**\r\n * Kin\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Kin: _NS$3(\"Kin\"),\r\n /**\r\n * This class is deprecated\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Label: _NS$3(\"Label\"),\r\n /**\r\n * Male\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Male: _NS$3(\"Male\"),\r\n /**\r\n * Me\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Me: _NS$3(\"Me\"),\r\n /**\r\n * Met\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Met: _NS$3(\"Met\"),\r\n /**\r\n * This class is deprecated\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Modem: _NS$3(\"Modem\"),\r\n /**\r\n * This class is deprecated\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Msg: _NS$3(\"Msg\"),\r\n /**\r\n * Muse\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Muse: _NS$3(\"Muse\"),\r\n /**\r\n * Neighbor\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Neighbor: _NS$3(\"Neighbor\"),\r\n /**\r\n * None\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n None: _NS$3(\"None\"),\r\n /**\r\n * Other\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Other: _NS$3(\"Other\"),\r\n /**\r\n * This class is deprecated\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n PCS: _NS$3(\"PCS\"),\r\n /**\r\n * Pager\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Pager: _NS$3(\"Pager\"),\r\n /**\r\n * This class is deprecated\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Parcel: _NS$3(\"Parcel\"),\r\n /**\r\n * Parent\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Parent: _NS$3(\"Parent\"),\r\n /**\r\n * This class is deprecated\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Postal: _NS$3(\"Postal\"),\r\n /**\r\n * This class is deprecated\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Pref: _NS$3(\"Pref\"),\r\n /**\r\n * Sibling\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Sibling: _NS$3(\"Sibling\"),\r\n /**\r\n * Spouse\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Spouse: _NS$3(\"Spouse\"),\r\n /**\r\n * Sweetheart\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Sweetheart: _NS$3(\"Sweetheart\"),\r\n /**\r\n * This class is deprecated. Use the hasTelephone object property.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Tel: _NS$3(\"Tel\"),\r\n /**\r\n * Also called sms telephone\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Text: _NS$3(\"Text\"),\r\n /**\r\n * Text phone\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n TextPhone: _NS$3(\"TextPhone\"),\r\n /**\r\n * Unknown\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Unknown: _NS$3(\"Unknown\"),\r\n /**\r\n * Video\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Video: _NS$3(\"Video\"),\r\n /**\r\n * Voice\r\n *\r\n * This term has a label (in language [en]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Voice: _NS$3(\"Voice\"),\r\n /**\r\n * This implies that the property is related to an individual's work place\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Work: _NS$3(\"Work\"),\r\n /**\r\n * This class is deprecated\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n X400: _NS$3(\"X400\"),\r\n /**\r\n * To specify the components of the delivery address for the object\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Address: _NS$3(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Email: _NS$3(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Group: _NS$3(\"Group\"),\r\n /**\r\n * The parent class for all objects\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Kind: _NS$3(\"Kind\"),\r\n /**\r\n * An object representing a single person or entity\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Individual: _NS$3(\"Individual\"),\r\n /**\r\n * An object representing a named geographical place\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Location: _NS$3(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Organization: _NS$3(\"Organization\"),\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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n VCard: _NS$3(\"VCard\"),\r\n /**\r\n * To specify the components of the name of the object\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n Name: _NS$3(\"Name\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * This object property has been mapped\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n adr: _NS$3(\"adr\"),\r\n /**\r\n * To specify the components of the delivery address for the object\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasAddress: _NS$3(\"hasAddress\"),\r\n /**\r\n * This object property has been deprecated\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n agent: _NS$3(\"agent\"),\r\n /**\r\n * The date of marriage, or equivalent, of the object\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n anniversary: _NS$3(\"anniversary\"),\r\n /**\r\n * To specify the birth date of the object\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n bday: _NS$3(\"bday\"),\r\n /**\r\n * The category information about the object, also known as tags\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n category: _NS$3(\"category\"),\r\n /**\r\n * This data property has been deprecated\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n class: _NS$3(\"class\"),\r\n /**\r\n * This object property has been mapped\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n email: _NS$3(\"email\"),\r\n /**\r\n * To specify the electronic mail address for communication with the object\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasEmail: _NS$3(\"hasEmail\"),\r\n /**\r\n * This data property has been deprecated\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n extended_address: _NS$3(\"extended-address\"),\r\n /**\r\n * This object property has been mapped\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n geo: _NS$3(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasGeo: _NS$3(\"hasGeo\"),\r\n /**\r\n * Used to support property parameters for the additional name data property\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasAdditionalName: _NS$3(\"hasAdditionalName\"),\r\n /**\r\n * To specify the busy time associated with the object. (Was called FBURL in RFC6350)\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasCalendarBusy: _NS$3(\"hasCalendarBusy\"),\r\n /**\r\n * To specify the calendar associated with the object. (Was called CALURI in RFC6350)\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasCalendarLink: _NS$3(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasCalendarRequest: _NS$3(\"hasCalendarRequest\"),\r\n /**\r\n * Used to support property parameters for the category data property\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasCategory: _NS$3(\"hasCategory\"),\r\n /**\r\n * Used to support property parameters for the country name data property\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasCountryName: _NS$3(\"hasCountryName\"),\r\n /**\r\n * Used to support property parameters for the formatted name data property\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasFN: _NS$3(\"hasFN\"),\r\n /**\r\n * Used to support property parameters for the family name data property\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasFamilyName: _NS$3(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasGender: _NS$3(\"hasGender\"),\r\n /**\r\n * Used to support property parameters for the given name data property\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasGivenName: _NS$3(\"hasGivenName\"),\r\n /**\r\n * Used to support property parameters for the honorific prefix data property\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasHonorificPrefix: _NS$3(\"hasHonorificPrefix\"),\r\n /**\r\n * Used to support property parameters for the honorific suffix data property\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasHonorificSuffix: _NS$3(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasInstantMessage: _NS$3(\"hasInstantMessage\"),\r\n /**\r\n * Used to support property parameters for the language data property\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasLanguage: _NS$3(\"hasLanguage\"),\r\n /**\r\n * Used to support property parameters for the locality data property\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasLocality: _NS$3(\"hasLocality\"),\r\n /**\r\n * Used to support property parameters for the nickname data property\r\n *\r\n * This term provides descriptions only in English.\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$3(\"hasNickname\"),\r\n /**\r\n * The nick name associated with the object\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n nickname: _NS$3(\"nickname\"),\r\n /**\r\n * Used to support property parameters for the note data property\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasNote: _NS$3(\"hasNote\"),\r\n /**\r\n * Used to support property parameters for the organization name data property\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasOrganizationName: _NS$3(\"hasOrganizationName\"),\r\n /**\r\n * Used to support property parameters for the organization unit name data property\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasOrganizationUnit: _NS$3(\"hasOrganizationUnit\"),\r\n /**\r\n * Used to support property parameters for the postal code data property\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasPostalCode: _NS$3(\"hasPostalCode\"),\r\n /**\r\n * Used to support property parameters for the region data property\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasRegion: _NS$3(\"hasRegion\"),\r\n /**\r\n * To specify a relationship between another entity and the entity represented by this object\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasRelated: _NS$3(\"hasRelated\"),\r\n /**\r\n * Used to support property parameters for the role data property\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasRole: _NS$3(\"hasRole\"),\r\n /**\r\n * To identify the source of directory information of the object\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasSource: _NS$3(\"hasSource\"),\r\n /**\r\n * Used to support property parameters for the street address data property\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasStreetAddress: _NS$3(\"hasStreetAddress\"),\r\n /**\r\n * Used to support property parameters for the title data property\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasTitle: _NS$3(\"hasTitle\"),\r\n /**\r\n * To specify a value that represents a globally unique identifier corresponding to the object\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasUID: _NS$3(\"hasUID\"),\r\n /**\r\n * Used to indicate the resource value of an object property that requires property parameters\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasValue: _NS$3(\"hasValue\"),\r\n /**\r\n * This data property has been deprecated\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n label: _NS$3(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n language: _NS$3(\"language\"),\r\n /**\r\n * This data property has been deprecated. See hasGeo\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n latitude: _NS$3(\"latitude\"),\r\n /**\r\n * This data property has been deprecated. See hasGeo\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n longitude: _NS$3(\"longitude\"),\r\n /**\r\n * This data property has been deprecated\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n mailer: _NS$3(\"mailer\"),\r\n /**\r\n * A note associated with the object\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n note: _NS$3(\"note\"),\r\n /**\r\n * This object property has been mapped. Use the organization-name data property.\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n org: _NS$3(\"org\"),\r\n /**\r\n * To specify the organizational name associated with the object\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n organization_name: _NS$3(\"organization-name\"),\r\n /**\r\n * To specify the organizational unit name associated with the object\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n organization_unit: _NS$3(\"organization-unit\"),\r\n /**\r\n * This data property has been deprecated\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n post_office_box: _NS$3(\"post-office-box\"),\r\n /**\r\n * To specify the identifier for the product that created the object\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n prodid: _NS$3(\"prodid\"),\r\n /**\r\n * To specify revision information about the object\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n rev: _NS$3(\"rev\"),\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 descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n role: _NS$3(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n sort_string: _NS$3(\"sort-string\"),\r\n /**\r\n * To specify the position or job of the object\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n title: _NS$3(\"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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n tz: _NS$3(\"tz\"),\r\n /**\r\n * Used to indicate the literal value of a data property that requires property parameters\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n value: _NS$3(\"value\"),\r\n /**\r\n * The country name associated with the address of the object\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n country_name: _NS$3(\"country-name\"),\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 descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n locality: _NS$3(\"locality\"),\r\n /**\r\n * The postal code associated with the address of the object\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n postal_code: _NS$3(\"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 descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n region: _NS$3(\"region\"),\r\n /**\r\n * The street address associated with the address of the object\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n street_address: _NS$3(\"street-address\"),\r\n /**\r\n * The formatted text corresponding to the name of the object\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n fn: _NS$3(\"fn\"),\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 * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasMember: _NS$3(\"hasMember\"),\r\n /**\r\n * The additional name associated with the object\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n additional_name: _NS$3(\"additional-name\"),\r\n /**\r\n * The family name associated with the object\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n family_name: _NS$3(\"family-name\"),\r\n /**\r\n * The given name associated with the object\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n given_name: _NS$3(\"given-name\"),\r\n /**\r\n * The honorific prefix of the name associated with the object\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n honorific_prefix: _NS$3(\"honorific-prefix\"),\r\n /**\r\n * The honorific suffix of the name associated with the object\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n honorific_suffix: _NS$3(\"honorific-suffix\"),\r\n /**\r\n * To specify a public key or authentication certificate associated with the object\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasKey: _NS$3(\"hasKey\"),\r\n /**\r\n * This object property has been mapped\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n key: _NS$3(\"key\"),\r\n /**\r\n * To specify a graphic image of a logo associated with the object\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasLogo: _NS$3(\"hasLogo\"),\r\n /**\r\n * This object property has been mapped\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n logo: _NS$3(\"logo\"),\r\n /**\r\n * To specify the components of the name of the object\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasName: _NS$3(\"hasName\"),\r\n /**\r\n * This object property has been mapped\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n n: _NS$3(\"n\"),\r\n /**\r\n * To specify an image or photograph information that annotates some aspect of the object\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasPhoto: _NS$3(\"hasPhoto\"),\r\n /**\r\n * This object property has been mapped\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n photo: _NS$3(\"photo\"),\r\n /**\r\n * To specify a digital sound content information that annotates some aspect of the object\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasSound: _NS$3(\"hasSound\"),\r\n /**\r\n * This object property has been mapped\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n sound: _NS$3(\"sound\"),\r\n /**\r\n * To specify the telephone number for telephony communication with the object\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasTelephone: _NS$3(\"hasTelephone\"),\r\n /**\r\n * This object property has been mapped\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n tel: _NS$3(\"tel\"),\r\n /**\r\n * To specify a uniform resource locator associated with the object\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n hasURL: _NS$3(\"hasURL\"),\r\n /**\r\n * This object property has been mapped\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2006/vcard/ns\r\n */\r\n url: _NS$3(\"url\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\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\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$2 = \"http://rdfs.org/ns/void#\";\r\nfunction _NS$2(localName) {\r\n return (_NAMESPACE$2 + localName);\r\n}\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: _NAMESPACE$2,\r\n PREFIX_AND_NAMESPACE: { \"void\": \"http://rdfs.org/ns/void#\" },\r\n NS: _NS$2,\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 * This term provides descriptions only with no explicit locale.\r\n */\r\n Dataset: _NS$2(\"Dataset\"),\r\n /**\r\n * A collection of RDF links between two void:Datasets.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n Linkset: _NS$2(\"Linkset\"),\r\n /**\r\n * A technical feature of a void:Dataset, such as a supported RDF serialization format.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n TechnicalFeature: _NS$2(\"TechnicalFeature\"),\r\n /**\r\n * A web resource whose foaf:primaryTopic or foaf:topics include void:Datasets.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n DatasetDescription: _NS$2(\"DatasetDescription\"),\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * feature\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n feature: _NS$2(\"feature\"),\r\n /**\r\n * has subset\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n subset: _NS$2(\"subset\"),\r\n /**\r\n * One of the two datasets linked by the Linkset.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n target: _NS$2(\"target\"),\r\n /**\r\n * has a SPARQL endpoint at\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n sparqlEndpoint: _NS$2(\"sparqlEndpoint\"),\r\n /**\r\n * a link predicate\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n linkPredicate: _NS$2(\"linkPredicate\"),\r\n /**\r\n * example resource of dataset\r\n *\r\n * This term has a label (in language [NoLocale]), but no long-form descriptions at all (i.e., the vocabulary doesn't provide any 'rdfs:comment' or 'dcterms:description' meta-data).\r\n */\r\n exampleResource: _NS$2(\"exampleResource\"),\r\n /**\r\n * A vocabulary that is used in the dataset.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n vocabulary: _NS$2(\"vocabulary\"),\r\n /**\r\n * The dataset describing the subjects of triples contained in the Linkset.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n subjectsTarget: _NS$2(\"subjectsTarget\"),\r\n /**\r\n * The dataset describing the objects of the triples contained in the Linkset.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n objectsTarget: _NS$2(\"objectsTarget\"),\r\n /**\r\n * An RDF dump, partial or complete, of a void:Dataset.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n dataDump: _NS$2(\"dataDump\"),\r\n /**\r\n * Defines a simple URI look-up protocol for accessing a dataset.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n uriLookupEndpoint: _NS$2(\"uriLookupEndpoint\"),\r\n /**\r\n * Defines a regular expression pattern matching URIs in the dataset.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n uriRegexPattern: _NS$2(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n class: _NS$2(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n classes: _NS$2(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n classPartition: _NS$2(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n distinctObjects: _NS$2(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n distinctSubjects: _NS$2(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n documents: _NS$2(\"documents\"),\r\n /**\r\n * The total number of entities that are described in a void:Dataset.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n entities: _NS$2(\"entities\"),\r\n /**\r\n * Points to the void:Dataset that a document is a part of.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n inDataset: _NS$2(\"inDataset\"),\r\n /**\r\n * An OpenSearch description document for a free-text search service over a void:Dataset.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n openSearchDescription: _NS$2(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n properties: _NS$2(\"properties\"),\r\n /**\r\n * The rdf:Property that is the predicate of all triples in a property-based partition.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n property: _NS$2(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n propertyPartition: _NS$2(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n rootResource: _NS$2(\"rootResource\"),\r\n /**\r\n * The total number of triples contained in a void:Dataset.\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n */\r\n triples: _NS$2(\"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 * This term provides descriptions only with no explicit locale.\r\n */\r\n uriSpace: _NS$2(\"uriSpace\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\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\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE$1 = \"http://www.w3.org/2003/06/sw-vocab-status/ns#\";\r\nfunction _NS$1(localName) {\r\n return (_NAMESPACE$1 + localName);\r\n}\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: _NAMESPACE$1,\r\n PREFIX_AND_NAMESPACE: { \"vs\": \"http://www.w3.org/2003/06/sw-vocab-status/ns#\" },\r\n NS: _NS$1,\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 * This term provides descriptions only with no explicit locale.\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$1(\"term_status\"),\r\n /**\r\n * more information about the status etc of a term, typically human oriented\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2003/06/sw-vocab-status/ns#\r\n */\r\n moreinfo: _NS$1(\"moreinfo\"),\r\n /**\r\n * human-oriented documentation, examples etc for use of this term\r\n *\r\n * This term provides descriptions only with no explicit locale.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2003/06/sw-vocab-status/ns#\r\n */\r\n userdocs: _NS$1(\"userdocs\"),\r\n};\n\n/**\r\n * MIT License\r\n *\r\n * Copyright 2022 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 * Generated by the artifact generator [@inrupt/artifact-generator], version [1.0.4]\r\n * as part of artifact: [vocab-common-rdf], version: [1.0.5]\r\n * on 'Wednesday, June 1, 2022 7:54 PM'.\r\n *\r\n * Vocabulary built from vocab list file: [common-rdf/vocab-common-rdf.yml].\r\n *\r\n * A vocabulary for describing XML Schema datatypes.\r\n */\r\n// We prefix our local variables with underscores to (hopefully!) prevent\r\n// potential names clashes with terms from vocabularies.\r\nvar _NAMESPACE = \"http://www.w3.org/2001/XMLSchema#\";\r\nfunction _NS(localName) {\r\n return (_NAMESPACE + localName);\r\n}\r\n/**\r\n * A vocabulary for describing XML Schema datatypes.\r\n */\r\nvar XSD = {\r\n PREFIX: \"xsd\",\r\n NAMESPACE: _NAMESPACE,\r\n PREFIX_AND_NAMESPACE: { \"xsd\": \"http://www.w3.org/2001/XMLSchema#\" },\r\n NS: _NS,\r\n // *******************\r\n // All the Properties.\r\n // *******************\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n changes: _NS(\"changes\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n string: _NS(\"string\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n boolean: _NS(\"boolean\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n float: _NS(\"float\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n double: _NS(\"double\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n decimal: _NS(\"decimal\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n dateTime: _NS(\"dateTime\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n duration: _NS(\"duration\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n hexBinary: _NS(\"hexBinary\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n base64Binary: _NS(\"base64Binary\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n anyURI: _NS(\"anyURI\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n ID: _NS(\"ID\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n IDREF: _NS(\"IDREF\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n ENTITY: _NS(\"ENTITY\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n NOTATION: _NS(\"NOTATION\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n normalizedString: _NS(\"normalizedString\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n token: _NS(\"token\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n language: _NS(\"language\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n IDREFS: _NS(\"IDREFS\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n ENTITIES: _NS(\"ENTITIES\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n NMTOKEN: _NS(\"NMTOKEN\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n NMTOKENS: _NS(\"NMTOKENS\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n Name: _NS(\"Name\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n QName: _NS(\"QName\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n NCName: _NS(\"NCName\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n integer: _NS(\"integer\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n nonNegativeInteger: _NS(\"nonNegativeInteger\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n positiveInteger: _NS(\"positiveInteger\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n nonPositiveInteger: _NS(\"nonPositiveInteger\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n negativeInteger: _NS(\"negativeInteger\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n byte: _NS(\"byte\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n int: _NS(\"int\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n long: _NS(\"long\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n short: _NS(\"short\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n unsignedByte: _NS(\"unsignedByte\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n unsignedInt: _NS(\"unsignedInt\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n unsignedLong: _NS(\"unsignedLong\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n unsignedShort: _NS(\"unsignedShort\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n date: _NS(\"date\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n time: _NS(\"time\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n gYearMonth: _NS(\"gYearMonth\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n gYear: _NS(\"gYear\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n gMonthDay: _NS(\"gMonthDay\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n gDay: _NS(\"gDay\"),\r\n /**\r\n * .\r\n *\r\n * This term provides descriptions only in English.\r\n *\r\n * Defined by the vocabulary: http://www.w3.org/2001/XMLSchema#\r\n */\r\n gMonth: _NS(\"gMonth\"),\r\n};\n\n\n\n\n//# sourceURL=webpack://bookmarks/./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://bookmarks/./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://bookmarks/./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://bookmarks/./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://bookmarks/./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://bookmarks/./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://bookmarks/./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://bookmarks/./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://bookmarks/./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://bookmarks/./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://bookmarks/./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://bookmarks/./node_modules/@rdfjs/dataset/index.js?"); /***/ }), /***/ "./node_modules/@rezasoltani/solid-typeindex-support/dist/TypeIndexHelper.js": /*!***********************************************************************************!*\ !*** ./node_modules/@rezasoltani/solid-typeindex-support/dist/TypeIndexHelper.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 */ TypeIndexHelper: () => (/* binding */ TypeIndexHelper)\n/* harmony export */ });\n/* harmony import */ var _inrupt_solid_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @inrupt/solid-client */ \"./node_modules/@inrupt/solid-client/dist/resource/solidDataset.mjs\");\n/* harmony import */ var _inrupt_solid_client__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @inrupt/solid-client */ \"./node_modules/@inrupt/solid-client/dist/thing/thing.mjs\");\n/* harmony import */ var _inrupt_solid_client__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @inrupt/solid-client */ \"./node_modules/@inrupt/solid-client/dist/thing/build.mjs\");\n/* harmony import */ var _inrupt_solid_client__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @inrupt/solid-client */ \"./node_modules/@inrupt/solid-client/dist/thing/get.mjs\");\n/* harmony import */ var _inrupt_solid_client__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @inrupt/solid-client */ \"./node_modules/@inrupt/solid-client/dist/thing/add.mjs\");\n/* harmony import */ var _inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @inrupt/vocab-common-rdf */ \"./node_modules/@inrupt/vocab-common-rdf/dist/index.es.js\");\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 _rdfjs_data_model__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_rdfjs_data_model__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./constants */ \"./node_modules/@rezasoltani/solid-typeindex-support/dist/constants.js\");\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\n\n\n\n\n/**\n * TypeIndexHelper provides helper methods for working with typeIndexes in Solid.\n * This includes methods for getting and updating a user's public and private\n * typeIndexes.\n * @public\n */\nclass TypeIndexHelper {\n /**\n * Retrieves the profile for the given WebID.\n * If no profile exists, creates a default profile.\n *\n * @param webId - The WebID URL to retrieve the profile for\n * @param fetch - The authenticated fetch function\n * @returns The profile Thing for the given WebID, or null if not found\n * @internal\n */\n static getMeProfile(webId, fetch) {\n return __awaiter(this, void 0, void 0, function* () {\n const profileDS = yield (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_2__.getSolidDataset)(webId, { fetch });\n let profileMe = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_3__.getThing)(profileDS, webId);\n if (!profileMe) {\n const profileMeThing = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_4__.buildThing)((0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_3__.createThing)({ name: \"me\" }))\n .addUrl(_inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_5__.RDF.type, _constants__WEBPACK_IMPORTED_MODULE_1__.__foafPerson)\n .addUrl(_inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_5__.RDF.type, _constants__WEBPACK_IMPORTED_MODULE_1__.__schemaPerson)\n .build();\n const updatedProfile = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_3__.setThing)(profileDS, profileMeThing);\n const updatedProfileDS = yield (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_2__.saveSolidDatasetAt)(webId, updatedProfile, { fetch });\n profileMe = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_3__.getThing)(updatedProfileDS, webId);\n }\n return profileMe;\n });\n }\n /**\n * Retrieves the typeIndexe for the given WebID, creating one if it does not exist.\n *\n * @param webId - The WebID of the user\n * @param fetch - The authenticated fetch function to use for requests\n * @param isPrivate - Whether to get the private or public typeIndexe\n * @returns A NamedNode containing the typeIndexe URL\n * @internal\n */\n static getTypeIndex(webId, fetch, isPrivate) {\n return __awaiter(this, void 0, void 0, function* () {\n const profileMe = yield this.getMeProfile(webId, fetch);\n const typeIndexPredicate = TypeIndexHelper.getTypeIndexPredicate(isPrivate);\n const typeIndexUrl = TypeIndexHelper.getDefaultTypeIndexURL(webId, isPrivate);\n const profileDS = yield (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_2__.getSolidDataset)(webId, { fetch });\n if (profileMe) {\n let typeIndex = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_6__.getNamedNode)(profileMe, typeIndexPredicate);\n if (typeIndex)\n return typeIndex;\n yield this.createTypeIndex(fetch, typeIndexUrl);\n const updatedProfileMe = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_7__.addNamedNode)(profileMe, typeIndexPredicate, (0,_rdfjs_data_model__WEBPACK_IMPORTED_MODULE_0__.namedNode)(typeIndexUrl));\n const updatedProfileDS = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_3__.setThing)(profileDS, updatedProfileMe);\n yield (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_2__.saveSolidDatasetAt)(webId, updatedProfileDS, { fetch });\n return (0,_rdfjs_data_model__WEBPACK_IMPORTED_MODULE_0__.namedNode)(typeIndexUrl);\n }\n else {\n yield this.createTypeIndex(fetch, typeIndexUrl);\n const profileMeThing = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_4__.buildThing)((0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_3__.createThing)({ name: \"me\" }))\n .addNamedNode(typeIndexPredicate, (0,_rdfjs_data_model__WEBPACK_IMPORTED_MODULE_0__.namedNode)(typeIndexUrl))\n .addUrl(_inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_5__.RDF.type, _constants__WEBPACK_IMPORTED_MODULE_1__.__foafPerson)\n .addUrl(_inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_5__.RDF.type, _constants__WEBPACK_IMPORTED_MODULE_1__.__schemaPerson)\n .build();\n const updatedProfileDS = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_3__.setThing)(profileDS, profileMeThing);\n yield (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_2__.saveSolidDatasetAt)(webId, updatedProfileDS, { fetch });\n return (0,_rdfjs_data_model__WEBPACK_IMPORTED_MODULE_0__.namedNode)(typeIndexUrl);\n }\n });\n }\n /**\n * Retrieves all instances of the given RDF class from the user's typeIndexe.\n *\n * @param webId - The user's WebID\n * @param rdfClass - The RDF class to retrieve instances for, as a Valid URL\n * @param fetch - Authenticated fetch function\n * @param isPrivate - Whether the typeIndexe is private or public\n * @returns Promise resolving to an object containing instance URLs and instanceContainers URLs.\n */\n static getFromTypeIndex(webId, rdfClass, fetch, isPrivate) {\n return __awaiter(this, void 0, void 0, function* () {\n const typeIndex = yield this.getTypeIndex(webId, fetch, isPrivate);\n const typeIndexDS = yield (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_2__.getSolidDataset)(typeIndex === null || typeIndex === void 0 ? void 0 : typeIndex.value, { fetch });\n const allRegisteries = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_3__.getThingAll)(typeIndexDS);\n const instances = [];\n const instanceContainers = [];\n allRegisteries.forEach(registery => {\n var _a, _b;\n const forClass = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_6__.getNamedNode)(registery, _constants__WEBPACK_IMPORTED_MODULE_1__.__forClass);\n if ((forClass === null || forClass === void 0 ? void 0 : forClass.value) === rdfClass) {\n const instance = (_a = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_6__.getNamedNode)(registery, _constants__WEBPACK_IMPORTED_MODULE_1__.__solid_instance)) === null || _a === void 0 ? void 0 : _a.value;\n const instanceContainer = (_b = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_6__.getNamedNode)(registery, _constants__WEBPACK_IMPORTED_MODULE_1__.__solid_instance_container)) === null || _b === void 0 ? void 0 : _b.value;\n instance && (instances === null || instances === void 0 ? void 0 : instances.push(instance));\n instanceContainer && (instanceContainers === null || instanceContainers === void 0 ? void 0 : instanceContainers.push(instanceContainer));\n }\n });\n const instanceContainersPromises = instanceContainers.map((instanceContainer) => __awaiter(this, void 0, void 0, function* () {\n const instanceContainerDS = yield (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_2__.getSolidDataset)(instanceContainer, { fetch });\n const all = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_3__.getThingAll)(instanceContainerDS); // all files under the instanceContainer\n const urls = all.filter(x => x.url !== \"\").map(x => x.url); // all file urls\n return urls.filter(url => url !== instanceContainer); // remove the instanceContainer itself, only file urls needed;\n }));\n const innerInstances = (yield Promise.all([...instanceContainersPromises])).flat();\n return {\n instanceContainers: instanceContainers,\n instances: [...new Set([...instances, ...innerInstances])]\n };\n });\n }\n /**\n * Registers a typeRegistration in the user's typeIndexe.\n *\n * @param webId - The WebID of the user\n * @param typeRegistrationTitle - The title to use for the typeRegistration inside the typeIndex,\n * @param rdfClass - The RDF class that this registration is for, as a Valid URL\n * @param fetch - The authenticated fetch function\n * @param registeryUrl - The URL of the solid:instance or solid:instanceContainer being registered\n * @param isContainer - Whether to register a solid:instanceContainer or a solid:instance\n * @param isPrivate - Whether to register in the private or public typeIndexe\n * @returns A Promise resolving to the updated typeIndexe dataset\n */\n static registerInTypeIndex(webId, typeRegistrationTitle, rdfClass, fetch, registeryUrl, isContainer, isPrivate) {\n return __awaiter(this, void 0, void 0, function* () {\n const typeIndex = yield this.getTypeIndex(webId, fetch, isPrivate);\n const typeIndexDS = yield (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_2__.getSolidDataset)(typeIndex === null || typeIndex === void 0 ? void 0 : typeIndex.value, { fetch });\n const registeryThing = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_4__.buildThing)((0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_3__.createThing)({ name: typeRegistrationTitle }))\n .addNamedNode(_constants__WEBPACK_IMPORTED_MODULE_1__.__forClass, (0,_rdfjs_data_model__WEBPACK_IMPORTED_MODULE_0__.namedNode)(rdfClass))\n .addNamedNode(isContainer ? _constants__WEBPACK_IMPORTED_MODULE_1__.__solid_instance_container : _constants__WEBPACK_IMPORTED_MODULE_1__.__solid_instance, (0,_rdfjs_data_model__WEBPACK_IMPORTED_MODULE_0__.namedNode)(registeryUrl))\n .addUrl(_inrupt_vocab_common_rdf__WEBPACK_IMPORTED_MODULE_5__.RDF.type, _constants__WEBPACK_IMPORTED_MODULE_1__.__solidTypeRegistration)\n .build();\n const updatedTypeIndexDS = (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_3__.setThing)(typeIndexDS, registeryThing);\n yield (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_2__.saveSolidDatasetAt)(registeryUrl, (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_2__.createSolidDataset)(), { fetch });\n return yield (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_2__.saveSolidDatasetAt)(typeIndex === null || typeIndex === void 0 ? void 0 : typeIndex.value, updatedTypeIndexDS, { fetch });\n });\n }\n /**\n * Creates a new empty TypeIndex file at the given indexUrl.\n *\n * @param fetch - Authenticated fetch function\n * @param typeIndexUrl - URL where the new TypeIndex file will be created\n * @returns A Promise resolving to the created TypeIndex dataset if successful, or undefined if there was an error.\n * @internal\n */\n static createTypeIndex(fetch, typeIndexUrl) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n yield fetch(typeIndexUrl, {\n method: \"PUT\",\n headers: {\n \"Content-Type\": \"text/turtle\",\n },\n body: `@prefix solid: .\\n\\n<> a solid:TypeIndex, solid:UnlistedDocument.`,\n });\n return yield (0,_inrupt_solid_client__WEBPACK_IMPORTED_MODULE_2__.getSolidDataset)(typeIndexUrl, { fetch });\n }\n catch (error) { }\n });\n }\n /**\n * Returns the predicate to use for the typeIndexe based on whether it is private or public.\n *\n * @param isPrivate - Whether the typeIndexe is private or public.\n * @returns The predicate to use - either __privateTypeIndex or __publicTypeIndex.\n * @internal\n */\n static getTypeIndexPredicate(isPrivate) {\n return isPrivate ? _constants__WEBPACK_IMPORTED_MODULE_1__.__privateTypeIndex : _constants__WEBPACK_IMPORTED_MODULE_1__.__publicTypeIndex;\n }\n /**\n * Generates the URL for the given user's typeIndexe file.\n *\n * @param webId - The user's WebID URL\n * @param isPrivate - Whether the typeIndexe is private or public.\n * @returns The full URL for the typeIndexe file in the user's /settings/ folder\n * @internal\n */\n static getDefaultTypeIndexURL(webId, isPrivate) {\n return `${webId.split(\"/profile\")[0]}/settings/${isPrivate ? \"privateTypeIndex\" : \"publicTypeIndex\"}.ttl`;\n }\n}\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/@rezasoltani/solid-typeindex-support/dist/TypeIndexHelper.js?"); /***/ }), /***/ "./node_modules/@rezasoltani/solid-typeindex-support/dist/constants.js": /*!*****************************************************************************!*\ !*** ./node_modules/@rezasoltani/solid-typeindex-support/dist/constants.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 */ __Bookmark: () => (/* binding */ __Bookmark),\n/* harmony export */ __DC_UPDATED: () => (/* binding */ __DC_UPDATED),\n/* harmony export */ __foafPerson: () => (/* binding */ __foafPerson),\n/* harmony export */ __forClass: () => (/* binding */ __forClass),\n/* harmony export */ __privateTypeIndex: () => (/* binding */ __privateTypeIndex),\n/* harmony export */ __publicTypeIndex: () => (/* binding */ __publicTypeIndex),\n/* harmony export */ __schemaPerson: () => (/* binding */ __schemaPerson),\n/* harmony export */ __solidTypeIndex: () => (/* binding */ __solidTypeIndex),\n/* harmony export */ __solidTypeRegistration: () => (/* binding */ __solidTypeRegistration),\n/* harmony export */ __solidUnlistedDocument: () => (/* binding */ __solidUnlistedDocument),\n/* harmony export */ __solid_instance: () => (/* binding */ __solid_instance),\n/* harmony export */ __solid_instance_container: () => (/* binding */ __solid_instance_container)\n/* harmony export */ });\nconst __forClass = \"http://www.w3.org/ns/solid/terms#forClass\";\nconst __Bookmark = 'http://www.w3.org/2002/01/bookmark#Bookmark';\nconst __privateTypeIndex = \"http://www.w3.org/ns/solid/terms#privateTypeIndex\";\nconst __publicTypeIndex = \"http://www.w3.org/ns/solid/terms#publicTypeIndex\";\nconst __solidTypeRegistration = \"http://www.w3.org/ns/solid/terms#TypeRegistration\";\nconst __solidTypeIndex = \"http://www.w3.org/ns/solid/terms#TypeIndex\";\nconst __solidUnlistedDocument = \"http://www.w3.org/ns/solid/terms#UnlistedDocument\";\nconst __solid_instance = \"http://www.w3.org/ns/solid/terms#instance\";\nconst __solid_instance_container = \"http://www.w3.org/ns/solid/terms#instanceContainer\";\nconst __DC_UPDATED = \"http://purl.org/dc/terms/updated\";\nconst __schemaPerson = \"http://schema.org/Person\";\nconst __foafPerson = \"http://xmlns.com/foaf/0.1/Person\";\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/@rezasoltani/solid-typeindex-support/dist/constants.js?"); /***/ }), /***/ "./node_modules/@rezasoltani/solid-typeindex-support/dist/index.js": /*!*************************************************************************!*\ !*** ./node_modules/@rezasoltani/solid-typeindex-support/dist/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 */ TypeIndexHelper: () => (/* reexport safe */ _TypeIndexHelper__WEBPACK_IMPORTED_MODULE_0__.TypeIndexHelper)\n/* harmony export */ });\n/* harmony import */ var _TypeIndexHelper__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./TypeIndexHelper */ \"./node_modules/@rezasoltani/solid-typeindex-support/dist/TypeIndexHelper.js\");\n/**\n * Exports the TypeIndexHelper type from the TypeIndexHelper module.\n */\n\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/@rezasoltani/solid-typeindex-support/dist/index.js?"); /***/ }), /***/ "./node_modules/abort-controller/browser.js": /*!**************************************************!*\ !*** ./node_modules/abort-controller/browser.js ***! \**************************************************/ /***/ ((module) => { "use strict"; eval("/*globals self, window */\n\n\n/*eslint-disable @mysticatea/prettier */\nconst { AbortController, AbortSignal } =\n typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window :\n /* otherwise */ undefined\n/*eslint-enable @mysticatea/prettier */\n\nmodule.exports = AbortController\nmodule.exports.AbortSignal = AbortSignal\nmodule.exports[\"default\"] = AbortController\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/abort-controller/browser.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://bookmarks/./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://bookmarks/./node_modules/buffer/index.js?"); /***/ }), /***/ "./node_modules/canonicalize/lib/canonicalize.js": /*!*******************************************************!*\ !*** ./node_modules/canonicalize/lib/canonicalize.js ***! \*******************************************************/ /***/ ((module) => { "use strict"; eval("/* jshint esversion: 6 */\n/* jslint node: true */\n\n\nmodule.exports = function serialize (object) {\n if (object === null || typeof object !== 'object' || object.toJSON != null) {\n return JSON.stringify(object);\n }\n\n if (Array.isArray(object)) {\n return '[' + object.reduce((t, cv, ci) => {\n const comma = ci === 0 ? '' : ',';\n const value = cv === undefined || typeof cv === 'symbol' ? null : cv;\n return t + comma + serialize(value);\n }, '') + ']';\n }\n\n return '{' + Object.keys(object).sort().reduce((t, cv, ci) => {\n if (object[cv] === undefined ||\n typeof object[cv] === 'symbol') {\n return t;\n }\n const comma = t.length === 0 ? '' : ',';\n return t + comma + serialize(cv) + ':' + serialize(object[cv]);\n }, '') + '}';\n};\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/canonicalize/lib/canonicalize.js?"); /***/ }), /***/ "./node_modules/cross-fetch/dist/browser-polyfill.js": /*!***********************************************************!*\ !*** ./node_modules/cross-fetch/dist/browser-polyfill.js ***! \***********************************************************/ /***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) { eval("(function(self) {\n\nvar irrelevant = (function (exports) {\n\n /* eslint-disable no-prototype-builtins */\n var g =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof self !== 'undefined' && self) ||\n // eslint-disable-next-line no-undef\n (typeof __webpack_require__.g !== 'undefined' && __webpack_require__.g) ||\n {};\n\n var support = {\n searchParams: 'URLSearchParams' in g,\n iterable: 'Symbol' in g && 'iterator' in Symbol,\n blob:\n 'FileReader' in g &&\n 'Blob' in g &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in g,\n arrayBuffer: 'ArrayBuffer' in g\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) || name === '') {\n throw new TypeError('Invalid character in header field name: \"' + 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 if (header.length != 2) {\n throw new TypeError('Headers constructor: expected name/value pair to be length 2, found' + header.length)\n }\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._noBody) return\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 var match = /charset=([A-Za-z0-9_-]+)/.exec(blob.type);\n var encoding = match ? match[1] : 'utf-8';\n reader.readAsText(blob, encoding);\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 /*\n fetch-mock wraps the Response object in an ES6 Proxy to\n provide useful test harness features such as flush. However, on\n ES5 browsers without fetch or Proxy support pollyfills must be used;\n the proxy-pollyfill is unable to proxy an attribute unless it exists\n on the object before the Proxy is created. This change ensures\n Response.bodyUsed exists on the instance, while maintaining the\n semantic of setting Request.bodyUsed in the constructor before\n _initBody is called.\n */\n // eslint-disable-next-line no-self-assign\n this.bodyUsed = this.bodyUsed;\n this._bodyInit = body;\n if (!body) {\n this._noBody = true;\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\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n var isConsumed = consumed(this);\n if (isConsumed) {\n return isConsumed\n } else if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\n return Promise.resolve(\n this._bodyArrayBuffer.buffer.slice(\n this._bodyArrayBuffer.byteOffset,\n this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\n )\n )\n } else {\n return Promise.resolve(this._bodyArrayBuffer)\n }\n } else if (support.blob) {\n return this.blob().then(readBlobAsArrayBuffer)\n } else {\n throw new Error('could not read as ArrayBuffer')\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 = ['CONNECT', 'DELETE', 'GET', 'HEAD', 'OPTIONS', 'PATCH', 'POST', 'PUT', 'TRACE'];\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 if (!(this instanceof Request)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n\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 || (function () {\n if ('AbortController' in g) {\n var ctrl = new AbortController();\n return ctrl.signal;\n }\n }());\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 if (this.method === 'GET' || this.method === 'HEAD') {\n if (options.cache === 'no-store' || options.cache === 'no-cache') {\n // Search for a '_' parameter in the query string\n var reParamSearch = /([?&])_=[^&]*/;\n if (reParamSearch.test(this.url)) {\n // If it already exists then set the value with the current time\n this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime());\n } else {\n // Otherwise add a new '_' parameter to the end with the current time\n var reQueryString = /\\?/;\n this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime();\n }\n }\n }\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 // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n // https://github.com/github/fetch/issues/748\n // https://github.com/zloirock/core-js/issues/751\n preProcessedHeaders\n .split('\\r')\n .map(function(header) {\n return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\n })\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 try {\n headers.append(key, value);\n } catch (error) {\n console.warn('Response ' + error.message);\n }\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!(this instanceof Response)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n if (this.status < 200 || this.status > 599) {\n throw new RangeError(\"Failed to construct 'Response': The status provided (0) is outside the range [200, 599].\")\n }\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = options.statusText === undefined ? '' : '' + options.statusText;\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: 200, statusText: ''});\n response.ok = false;\n response.status = 0;\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 = g.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 statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n // This check if specifically for when a user fetches a file locally from the file system\n // Only if the status is out of a normal range\n if (request.url.indexOf('file://') === 0 && (xhr.status < 200 || xhr.status > 599)) {\n options.status = 200;\n } else {\n options.status = xhr.status;\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 setTimeout(function() {\n resolve(new Response(body, options));\n }, 0);\n };\n\n xhr.onerror = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'));\n }, 0);\n };\n\n xhr.ontimeout = function() {\n setTimeout(function() {\n reject(new TypeError('Network request timed out'));\n }, 0);\n };\n\n xhr.onabort = function() {\n setTimeout(function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n }, 0);\n };\n\n function fixUrl(url) {\n try {\n return url === '' && g.location.href ? g.location.href : url\n } catch (e) {\n return url\n }\n }\n\n xhr.open(request.method, fixUrl(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) {\n if (support.blob) {\n xhr.responseType = 'blob';\n } else if (\n support.arrayBuffer\n ) {\n xhr.responseType = 'arraybuffer';\n }\n }\n\n if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers || (g.Headers && init.headers instanceof g.Headers))) {\n var names = [];\n Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n names.push(normalizeName(name));\n xhr.setRequestHeader(name, normalizeValue(init.headers[name]));\n });\n request.headers.forEach(function(value, name) {\n if (names.indexOf(name) === -1) {\n xhr.setRequestHeader(name, value);\n }\n });\n } else {\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\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 (!g.fetch) {\n g.fetch = fetch;\n g.Headers = Headers;\n g.Request = Request;\n g.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})(typeof self !== 'undefined' ? self : this);\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/cross-fetch/dist/browser-polyfill.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://bookmarks/./node_modules/events/events.js?"); /***/ }), /***/ "./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\n/**\n * Shallow compares two objects to check if their properties match.\n * @param {object} object1 First object to compare.\n * @param {object} object2 Second object to compare.\n * @returns {boolean} Do the objects have matching properties.\n */\nfunction shallowCompareObjects( object1, object2 ) {\n return (\n Object.keys( object1 ).length === Object.keys( object2 ).length &&\n Object.keys( object1 ).every(\n ( key ) => key in object2 && object1[ key ] === object2[ key ]\n )\n );\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( typeof this.refs[ i ].rel === 'string' && 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 value = value.toLowerCase()\n\n var links = []\n\n for( var i = 0; i < this.refs.length; i++ ) {\n if( typeof this.refs[ i ][ attr ] === 'string' && this.refs[ i ][ attr ].toLowerCase() === value ) {\n links.push( this.refs[ i ] )\n }\n }\n\n return links\n\n }\n\n /** Sets a reference. */\n set( link ) {\n this.refs.push( link )\n return this\n }\n\n /**\n * Sets a reference if a reference with similar properties isn’t already set.\n */\n setUnique( link ) {\n\n if( !this.refs.some(( ref ) => shallowCompareObjects( ref, link )) ) {\n this.refs.push( link )\n }\n\n return this\n\n }\n\n has( attr, value ) {\n\n attr = attr.toLowerCase()\n value = value.toLowerCase()\n\n for( var i = 0; i < this.refs.length; i++ ) {\n if( typeof this.refs[ i ][ attr ] === 'string' && this.refs[ i ][ attr ].toLowerCase() === 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 ) end = value.indexOf( ';', offset )\n if( end === -1 ) end = value.length\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://bookmarks/./node_modules/http-link-header/lib/link.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://bookmarks/./node_modules/ieee754/index.js?"); /***/ }), /***/ "./node_modules/jsonld-context-parser/index.js": /*!*****************************************************!*\ !*** ./node_modules/jsonld-context-parser/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 var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\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 }));\n__exportStar(__webpack_require__(/*! ./lib/ContextParser */ \"./node_modules/jsonld-context-parser/lib/ContextParser.js\"), exports);\n__exportStar(__webpack_require__(/*! ./lib/ErrorCoded */ \"./node_modules/jsonld-context-parser/lib/ErrorCoded.js\"), exports);\n__exportStar(__webpack_require__(/*! ./lib/FetchDocumentLoader */ \"./node_modules/jsonld-context-parser/lib/FetchDocumentLoader.js\"), exports);\n__exportStar(__webpack_require__(/*! ./lib/IDocumentLoader */ \"./node_modules/jsonld-context-parser/lib/IDocumentLoader.js\"), exports);\n__exportStar(__webpack_require__(/*! ./lib/JsonLdContext */ \"./node_modules/jsonld-context-parser/lib/JsonLdContext.js\"), exports);\n__exportStar(__webpack_require__(/*! ./lib/JsonLdContextNormalized */ \"./node_modules/jsonld-context-parser/lib/JsonLdContextNormalized.js\"), exports);\n__exportStar(__webpack_require__(/*! ./lib/Util */ \"./node_modules/jsonld-context-parser/lib/Util.js\"), exports);\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://bookmarks/./node_modules/jsonld-context-parser/index.js?"); /***/ }), /***/ "./node_modules/jsonld-context-parser/lib/ContextParser.js": /*!*****************************************************************!*\ !*** ./node_modules/jsonld-context-parser/lib/ContextParser.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ContextParser = void 0;\n__webpack_require__(/*! cross-fetch/polyfill */ \"./node_modules/cross-fetch/dist/browser-polyfill.js\");\nconst relative_to_absolute_iri_1 = __webpack_require__(/*! relative-to-absolute-iri */ \"./node_modules/relative-to-absolute-iri/index.js\");\nconst ErrorCoded_1 = __webpack_require__(/*! ./ErrorCoded */ \"./node_modules/jsonld-context-parser/lib/ErrorCoded.js\");\nconst FetchDocumentLoader_1 = __webpack_require__(/*! ./FetchDocumentLoader */ \"./node_modules/jsonld-context-parser/lib/FetchDocumentLoader.js\");\nconst JsonLdContextNormalized_1 = __webpack_require__(/*! ./JsonLdContextNormalized */ \"./node_modules/jsonld-context-parser/lib/JsonLdContextNormalized.js\");\nconst Util_1 = __webpack_require__(/*! ./Util */ \"./node_modules/jsonld-context-parser/lib/Util.js\");\n/**\n * Parses JSON-LD contexts.\n */\nclass ContextParser {\n constructor(options) {\n options = options || {};\n this.documentLoader = options.documentLoader || new FetchDocumentLoader_1.FetchDocumentLoader();\n this.documentCache = {};\n this.validateContext = !options.skipValidation;\n this.expandContentTypeToBase = !!options.expandContentTypeToBase;\n this.remoteContextsDepthLimit = options.remoteContextsDepthLimit || 32;\n this.redirectSchemaOrgHttps = 'redirectSchemaOrgHttps' in options ? !!options.redirectSchemaOrgHttps : true;\n }\n /**\n * Validate the given @language value.\n * An error will be thrown if it is invalid.\n * @param value An @language value.\n * @param {boolean} strictRange If the string value should be strictly checked against a regex.\n * @param {string} errorCode The error code to emit on errors.\n * @return {boolean} If validation passed.\n * Can only be false if strictRange is false and the string value did not pass the regex.\n */\n static validateLanguage(value, strictRange, errorCode) {\n if (typeof value !== 'string') {\n throw new ErrorCoded_1.ErrorCoded(`The value of an '@language' must be a string, got '${JSON.stringify(value)}'`, errorCode);\n }\n if (!Util_1.Util.REGEX_LANGUAGE_TAG.test(value)) {\n if (strictRange) {\n throw new ErrorCoded_1.ErrorCoded(`The value of an '@language' must be a valid language tag, got '${JSON.stringify(value)}'`, errorCode);\n }\n else {\n return false;\n }\n }\n return true;\n }\n /**\n * Validate the given @direction value.\n * An error will be thrown if it is invalid.\n * @param value An @direction value.\n * @param {boolean} strictValues If the string value should be strictly checked against a regex.\n * @return {boolean} If validation passed.\n * Can only be false if strictRange is false and the string value did not pass the regex.\n */\n static validateDirection(value, strictValues) {\n if (typeof value !== 'string') {\n throw new ErrorCoded_1.ErrorCoded(`The value of an '@direction' must be a string, got '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_BASE_DIRECTION);\n }\n if (!Util_1.Util.REGEX_DIRECTION_TAG.test(value)) {\n if (strictValues) {\n throw new ErrorCoded_1.ErrorCoded(`The value of an '@direction' must be 'ltr' or 'rtl', got '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_BASE_DIRECTION);\n }\n else {\n return false;\n }\n }\n return true;\n }\n /**\n * Add an @id term for all @reverse terms.\n * @param {IJsonLdContextNormalizedRaw} context A context.\n * @return {IJsonLdContextNormalizedRaw} The mutated input context.\n */\n idifyReverseTerms(context) {\n for (const key of Object.keys(context)) {\n let value = context[key];\n if (value && typeof value === 'object') {\n if (value['@reverse'] && !value['@id']) {\n if (typeof value['@reverse'] !== 'string' || Util_1.Util.isValidKeyword(value['@reverse'])) {\n throw new ErrorCoded_1.ErrorCoded(`Invalid @reverse value, must be absolute IRI or blank node: '${value['@reverse']}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n }\n value = context[key] = Object.assign(Object.assign({}, value), { '@id': value['@reverse'] });\n value['@id'] = value['@reverse'];\n if (Util_1.Util.isPotentialKeyword(value['@reverse'])) {\n delete value['@reverse'];\n }\n else {\n value['@reverse'] = true;\n }\n }\n }\n }\n return context;\n }\n /**\n * Expand all prefixed terms in the given context.\n * @param {IJsonLdContextNormalizedRaw} context A context.\n * @param {boolean} expandContentTypeToBase If @type inside the context may be expanded\n * via @base if @vocab is set to null.\n * @param {string[]} keys Optional set of keys from the context to expand. If left undefined, all\n * keys in the context will be expanded.\n */\n expandPrefixedTerms(context, expandContentTypeToBase, keys) {\n const contextRaw = context.getContextRaw();\n for (const key of (keys || Object.keys(contextRaw))) {\n // Only expand allowed keys\n if (Util_1.Util.EXPAND_KEYS_BLACKLIST.indexOf(key) < 0 && !Util_1.Util.isReservedInternalKeyword(key)) {\n // Error if we try to alias a keyword to something else.\n const keyValue = contextRaw[key];\n if (Util_1.Util.isPotentialKeyword(key) && Util_1.Util.ALIAS_DOMAIN_BLACKLIST.indexOf(key) >= 0) {\n if (key !== '@type' || typeof contextRaw[key] === 'object'\n && !(contextRaw[key]['@protected'] || contextRaw[key]['@container'] === '@set')) {\n throw new ErrorCoded_1.ErrorCoded(`Keywords can not be aliased to something else.\nTried mapping ${key} to ${JSON.stringify(keyValue)}`, ErrorCoded_1.ERROR_CODES.KEYWORD_REDEFINITION);\n }\n }\n // Error if we try to alias to an illegal keyword\n if (Util_1.Util.ALIAS_RANGE_BLACKLIST.indexOf(Util_1.Util.getContextValueId(keyValue)) >= 0) {\n throw new ErrorCoded_1.ErrorCoded(`Aliasing to certain keywords is not allowed.\nTried mapping ${key} to ${JSON.stringify(keyValue)}`, ErrorCoded_1.ERROR_CODES.INVALID_KEYWORD_ALIAS);\n }\n // Error if this term was marked as prefix as well\n if (keyValue && Util_1.Util.isPotentialKeyword(Util_1.Util.getContextValueId(keyValue))\n && keyValue['@prefix'] === true) {\n throw new ErrorCoded_1.ErrorCoded(`Tried to use keyword aliases as prefix: '${key}': '${JSON.stringify(keyValue)}'`, ErrorCoded_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n }\n // Loop because prefixes might be nested\n while (Util_1.Util.isPrefixValue(contextRaw[key])) {\n const value = contextRaw[key];\n let changed = false;\n if (typeof value === 'string') {\n contextRaw[key] = context.expandTerm(value, true);\n changed = changed || value !== contextRaw[key];\n }\n else {\n const id = value['@id'];\n const type = value['@type'];\n // If @id is missing, don't allow @id to be added if @prefix: true and key not being a valid IRI.\n const canAddIdEntry = !('@prefix' in value) || Util_1.Util.isValidIri(key);\n if ('@id' in value) {\n // Use @id value for expansion\n if (id !== undefined && id !== null && typeof id === 'string') {\n contextRaw[key] = Object.assign(Object.assign({}, contextRaw[key]), { '@id': context.expandTerm(id, true) });\n changed = changed || id !== contextRaw[key]['@id'];\n }\n }\n else if (!Util_1.Util.isPotentialKeyword(key) && canAddIdEntry) {\n // Add an explicit @id value based on the expanded key value\n const newId = context.expandTerm(key, true);\n if (newId !== key) {\n // Don't set @id if expansion failed\n contextRaw[key] = Object.assign(Object.assign({}, contextRaw[key]), { '@id': newId });\n changed = true;\n }\n }\n if (type && typeof type === 'string' && type !== '@vocab'\n && (!value['@container'] || !value['@container']['@type'])\n && canAddIdEntry) {\n // First check @vocab, then fallback to @base\n let expandedType = context.expandTerm(type, true);\n if (expandContentTypeToBase && type === expandedType) {\n expandedType = context.expandTerm(type, false);\n }\n if (expandedType !== type) {\n changed = true;\n contextRaw[key] = Object.assign(Object.assign({}, contextRaw[key]), { '@type': expandedType });\n }\n }\n }\n if (!changed) {\n break;\n }\n }\n }\n }\n }\n /**\n * Normalize the @language entries in the given context to lowercase.\n * @param {IJsonLdContextNormalizedRaw} context A context.\n * @param {IParseOptions} parseOptions The parsing options.\n */\n normalize(context, { processingMode, normalizeLanguageTags }) {\n // Lowercase language keys in 1.0\n if (normalizeLanguageTags || processingMode === 1.0) {\n for (const key of Object.keys(context)) {\n if (key === '@language' && typeof context[key] === 'string') {\n context[key] = context[key].toLowerCase();\n }\n else {\n const value = context[key];\n if (value && typeof value === 'object') {\n if (typeof value['@language'] === 'string') {\n const lowercase = value['@language'].toLowerCase();\n if (lowercase !== value['@language']) {\n context[key] = Object.assign(Object.assign({}, value), { '@language': lowercase });\n }\n }\n }\n }\n }\n }\n }\n /**\n * Convert all @container strings and array values to hash-based values.\n * @param {IJsonLdContextNormalizedRaw} context A context.\n */\n containersToHash(context) {\n for (const key of Object.keys(context)) {\n const value = context[key];\n if (value && typeof value === 'object') {\n if (typeof value['@container'] === 'string') {\n context[key] = Object.assign(Object.assign({}, value), { '@container': { [value['@container']]: true } });\n }\n else if (Array.isArray(value['@container'])) {\n const newValue = {};\n for (const containerValue of value['@container']) {\n newValue[containerValue] = true;\n }\n context[key] = Object.assign(Object.assign({}, value), { '@container': newValue });\n }\n }\n }\n }\n /**\n * Normalize and apply context-level @protected terms onto each term separately.\n * @param {IJsonLdContextNormalizedRaw} context A context.\n * @param {number} processingMode The processing mode.\n */\n applyScopedProtected(context, { processingMode }, expandOptions) {\n if (processingMode && processingMode >= 1.1) {\n if (context['@protected']) {\n for (const key of Object.keys(context)) {\n if (Util_1.Util.isReservedInternalKeyword(key)) {\n continue;\n }\n if (!Util_1.Util.isPotentialKeyword(key) && !Util_1.Util.isTermProtected(context, key)) {\n const value = context[key];\n if (value && typeof value === 'object') {\n if (!('@protected' in context[key])) {\n // Mark terms with object values as protected if they don't have an @protected: false annotation\n context[key] = Object.assign(Object.assign({}, context[key]), { '@protected': true });\n }\n }\n else {\n // Convert string-based term values to object-based values with @protected: true\n context[key] = {\n '@id': value,\n '@protected': true,\n };\n if (Util_1.Util.isSimpleTermDefinitionPrefix(value, expandOptions)) {\n context[key] = Object.assign(Object.assign({}, context[key]), { '@prefix': true });\n }\n }\n }\n }\n delete context['@protected'];\n }\n }\n }\n /**\n * Check if the given context inheritance does not contain any overrides of protected terms.\n * @param {IJsonLdContextNormalizedRaw} contextBefore The context that may contain some protected terms.\n * @param {IJsonLdContextNormalizedRaw} contextAfter A new context that is being applied on the first one.\n * @param {IExpandOptions} expandOptions Options that are needed for any expansions during this validation.\n * @param {string[]} keys Optional set of keys from the context to validate. If left undefined, all\n * keys defined in contextAfter will be checked.\n */\n validateKeywordRedefinitions(contextBefore, contextAfter, expandOptions, keys) {\n for (const key of (keys !== null && keys !== void 0 ? keys : Object.keys(contextAfter))) {\n if (Util_1.Util.isTermProtected(contextBefore, key)) {\n // The entry in the context before will always be in object-mode\n // If the new entry is in string-mode, convert it to object-mode\n // before checking if it is identical.\n if (typeof contextAfter[key] === 'string') {\n contextAfter[key] = { '@id': contextAfter[key], '@protected': true };\n }\n else {\n // We modify this deliberately,\n // as we need it for the value comparison (they must be identical modulo '@protected')),\n // and for the fact that this new value will override the first one.\n contextAfter[key] = Object.assign(Object.assign({}, contextAfter[key]), { '@protected': true });\n }\n // Error if they are not identical\n if (!Util_1.Util.deepEqual(contextBefore[key], contextAfter[key])) {\n throw new ErrorCoded_1.ErrorCoded(`Attempted to override the protected keyword ${key} from ${JSON.stringify(Util_1.Util.getContextValueId(contextBefore[key]))} to ${JSON.stringify(Util_1.Util.getContextValueId(contextAfter[key]))}`, ErrorCoded_1.ERROR_CODES.PROTECTED_TERM_REDEFINITION);\n }\n }\n }\n }\n /**\n * Validate the entries of the given context.\n * @param {IJsonLdContextNormalizedRaw} context A context.\n * @param {IParseOptions} options The parse options.\n */\n validate(context, { processingMode }) {\n for (const key of Object.keys(context)) {\n // Ignore reserved internal keywords.\n if (Util_1.Util.isReservedInternalKeyword(key)) {\n continue;\n }\n // Do not allow empty term\n if (key === '') {\n throw new ErrorCoded_1.ErrorCoded(`The empty term is not allowed, got: '${key}': '${JSON.stringify(context[key])}'`, ErrorCoded_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n }\n const value = context[key];\n const valueType = typeof value;\n // First check if the key is a keyword\n if (Util_1.Util.isPotentialKeyword(key)) {\n switch (key.substr(1)) {\n case 'vocab':\n if (value !== null && valueType !== 'string') {\n throw new ErrorCoded_1.ErrorCoded(`Found an invalid @vocab IRI: ${value}`, ErrorCoded_1.ERROR_CODES.INVALID_VOCAB_MAPPING);\n }\n break;\n case 'base':\n if (value !== null && valueType !== 'string') {\n throw new ErrorCoded_1.ErrorCoded(`Found an invalid @base IRI: ${context[key]}`, ErrorCoded_1.ERROR_CODES.INVALID_BASE_IRI);\n }\n break;\n case 'language':\n if (value !== null) {\n ContextParser.validateLanguage(value, true, ErrorCoded_1.ERROR_CODES.INVALID_DEFAULT_LANGUAGE);\n }\n break;\n case 'version':\n if (value !== null && valueType !== 'number') {\n throw new ErrorCoded_1.ErrorCoded(`Found an invalid @version number: ${value}`, ErrorCoded_1.ERROR_CODES.INVALID_VERSION_VALUE);\n }\n break;\n case 'direction':\n if (value !== null) {\n ContextParser.validateDirection(value, true);\n }\n break;\n case 'propagate':\n if (processingMode === 1.0) {\n throw new ErrorCoded_1.ErrorCoded(`Found an illegal @propagate keyword: ${value}`, ErrorCoded_1.ERROR_CODES.INVALID_CONTEXT_ENTRY);\n }\n if (value !== null && valueType !== 'boolean') {\n throw new ErrorCoded_1.ErrorCoded(`Found an invalid @propagate value: ${value}`, ErrorCoded_1.ERROR_CODES.INVALID_PROPAGATE_VALUE);\n }\n break;\n }\n // Don't allow keywords to be overridden\n if (Util_1.Util.isValidKeyword(key) && Util_1.Util.isValidKeyword(Util_1.Util.getContextValueId(value))) {\n throw new ErrorCoded_1.ErrorCoded(`Illegal keyword alias in term value, found: '${key}': '${Util_1.Util\n .getContextValueId(value)}'`, ErrorCoded_1.ERROR_CODES.KEYWORD_REDEFINITION);\n }\n continue;\n }\n // Otherwise, consider the key a term\n if (value !== null) {\n switch (valueType) {\n case 'string':\n if (Util_1.Util.getPrefix(value, context) === key) {\n throw new ErrorCoded_1.ErrorCoded(`Detected cyclical IRI mapping in context entry: '${key}': '${JSON\n .stringify(value)}'`, ErrorCoded_1.ERROR_CODES.CYCLIC_IRI_MAPPING);\n }\n if (Util_1.Util.isValidIriWeak(key)) {\n if (value === '@type') {\n throw new ErrorCoded_1.ErrorCoded(`IRIs can not be mapped to @type, found: '${key}': '${value}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n }\n else if (Util_1.Util.isValidIri(value) && value !== new JsonLdContextNormalized_1.JsonLdContextNormalized(context).expandTerm(key)) {\n throw new ErrorCoded_1.ErrorCoded(`IRIs can not be mapped to other IRIs, found: '${key}': '${value}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n }\n }\n break;\n case 'object':\n if (!Util_1.Util.isCompactIri(key) && !('@id' in value)\n && (value['@type'] === '@id' ? !context['@base'] : !context['@vocab'])) {\n throw new ErrorCoded_1.ErrorCoded(`Missing @id in context entry: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n }\n for (const objectKey of Object.keys(value)) {\n const objectValue = value[objectKey];\n if (!objectValue) {\n continue;\n }\n switch (objectKey) {\n case '@id':\n if (Util_1.Util.isValidKeyword(objectValue)\n && objectValue !== '@type' && objectValue !== '@id' && objectValue !== '@graph' && objectValue !== '@nest') {\n throw new ErrorCoded_1.ErrorCoded(`Illegal keyword alias in term value, found: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n }\n if (Util_1.Util.isValidIriWeak(key)) {\n if (objectValue === '@type') {\n throw new ErrorCoded_1.ErrorCoded(`IRIs can not be mapped to @type, found: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n }\n else if (Util_1.Util.isValidIri(objectValue)\n && objectValue !== new JsonLdContextNormalized_1.JsonLdContextNormalized(context).expandTerm(key)) {\n throw new ErrorCoded_1.ErrorCoded(`IRIs can not be mapped to other IRIs, found: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n }\n }\n if (typeof objectValue !== 'string') {\n throw new ErrorCoded_1.ErrorCoded(`Detected non-string @id in context entry: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n }\n if (Util_1.Util.getPrefix(objectValue, context) === key) {\n throw new ErrorCoded_1.ErrorCoded(`Detected cyclical IRI mapping in context entry: '${key}': '${JSON\n .stringify(value)}'`, ErrorCoded_1.ERROR_CODES.CYCLIC_IRI_MAPPING);\n }\n break;\n case '@type':\n if (value['@container'] === '@type' && objectValue !== '@id' && objectValue !== '@vocab') {\n throw new ErrorCoded_1.ErrorCoded(`@container: @type only allows @type: @id or @vocab, but got: '${key}': '${objectValue}'`, ErrorCoded_1.ERROR_CODES.INVALID_TYPE_MAPPING);\n }\n if (typeof objectValue !== 'string') {\n throw new ErrorCoded_1.ErrorCoded(`The value of an '@type' must be a string, got '${JSON.stringify(valueType)}'`, ErrorCoded_1.ERROR_CODES.INVALID_TYPE_MAPPING);\n }\n if (objectValue !== '@id' && objectValue !== '@vocab'\n && (processingMode === 1.0 || objectValue !== '@json')\n && (processingMode === 1.0 || objectValue !== '@none')\n && (objectValue[0] === '_' || !Util_1.Util.isValidIri(objectValue))) {\n throw new ErrorCoded_1.ErrorCoded(`A context @type must be an absolute IRI, found: '${key}': '${objectValue}'`, ErrorCoded_1.ERROR_CODES.INVALID_TYPE_MAPPING);\n }\n break;\n case '@reverse':\n if (typeof objectValue === 'string' && value['@id'] && value['@id'] !== objectValue) {\n throw new ErrorCoded_1.ErrorCoded(`Found non-matching @id and @reverse term values in '${key}':\\\n'${objectValue}' and '${value['@id']}'`, ErrorCoded_1.ERROR_CODES.INVALID_REVERSE_PROPERTY);\n }\n if ('@nest' in value) {\n throw new ErrorCoded_1.ErrorCoded(`@nest is not allowed in the reverse property '${key}'`, ErrorCoded_1.ERROR_CODES.INVALID_REVERSE_PROPERTY);\n }\n break;\n case '@container':\n if (processingMode === 1.0) {\n if (Object.keys(objectValue).length > 1\n || Util_1.Util.CONTAINERS_1_0.indexOf(Object.keys(objectValue)[0]) < 0) {\n throw new ErrorCoded_1.ErrorCoded(`Invalid term @container for '${key}' ('${Object.keys(objectValue)}') in 1.0, \\\nmust be only one of ${Util_1.Util.CONTAINERS_1_0.join(', ')}`, ErrorCoded_1.ERROR_CODES.INVALID_CONTAINER_MAPPING);\n }\n }\n for (const containerValue of Object.keys(objectValue)) {\n if (containerValue === '@list' && value['@reverse']) {\n throw new ErrorCoded_1.ErrorCoded(`Term value can not be @container: @list and @reverse at the same time on '${key}'`, ErrorCoded_1.ERROR_CODES.INVALID_REVERSE_PROPERTY);\n }\n if (Util_1.Util.CONTAINERS.indexOf(containerValue) < 0) {\n throw new ErrorCoded_1.ErrorCoded(`Invalid term @container for '${key}' ('${containerValue}'), \\\nmust be one of ${Util_1.Util.CONTAINERS.join(', ')}`, ErrorCoded_1.ERROR_CODES.INVALID_CONTAINER_MAPPING);\n }\n }\n break;\n case '@language':\n ContextParser.validateLanguage(objectValue, true, ErrorCoded_1.ERROR_CODES.INVALID_LANGUAGE_MAPPING);\n break;\n case '@direction':\n ContextParser.validateDirection(objectValue, true);\n break;\n case '@prefix':\n if (objectValue !== null && typeof objectValue !== 'boolean') {\n throw new ErrorCoded_1.ErrorCoded(`Found an invalid term @prefix boolean in: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_PREFIX_VALUE);\n }\n if (!('@id' in value) && !Util_1.Util.isValidIri(key)) {\n throw new ErrorCoded_1.ErrorCoded(`Invalid @prefix definition for '${key}' ('${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n }\n break;\n case '@index':\n if (processingMode === 1.0 || !value['@container'] || !value['@container']['@index']) {\n throw new ErrorCoded_1.ErrorCoded(`Attempt to add illegal key to value object: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n }\n break;\n case '@nest':\n if (Util_1.Util.isPotentialKeyword(objectValue) && objectValue !== '@nest') {\n throw new ErrorCoded_1.ErrorCoded(`Found an invalid term @nest value in: '${key}': '${JSON.stringify(value)}'`, ErrorCoded_1.ERROR_CODES.INVALID_NEST_VALUE);\n }\n }\n }\n break;\n default:\n throw new ErrorCoded_1.ErrorCoded(`Found an invalid term value: '${key}': '${value}'`, ErrorCoded_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n }\n }\n }\n }\n /**\n * Apply the @base context entry to the given context under certain circumstances.\n * @param context A context.\n * @param options Parsing options.\n * @param inheritFromParent If the @base value from the parent context can be inherited.\n * @return The given context.\n */\n applyBaseEntry(context, options, inheritFromParent) {\n // In some special cases, this can be a string, so ignore those.\n if (typeof context === 'string') {\n return context;\n }\n // Give priority to @base in the parent context\n if (inheritFromParent && !('@base' in context) && options.parentContext\n && typeof options.parentContext === 'object' && '@base' in options.parentContext) {\n context['@base'] = options.parentContext['@base'];\n if (options.parentContext['@__baseDocument']) {\n context['@__baseDocument'] = true;\n }\n }\n // Override the base IRI if provided.\n if (options.baseIRI && !options.external) {\n if (!('@base' in context)) {\n // The context base is the document base\n context['@base'] = options.baseIRI;\n context['@__baseDocument'] = true;\n }\n else if (context['@base'] !== null && typeof context['@base'] === 'string'\n && !Util_1.Util.isValidIri(context['@base'])) {\n // The context base is relative to the document base\n context['@base'] = (0, relative_to_absolute_iri_1.resolve)(context['@base'], options.parentContext && options.parentContext['@base'] || options.baseIRI);\n }\n }\n return context;\n }\n /**\n * Resolve relative context IRIs, or return full IRIs as-is.\n * @param {string} contextIri A context IRI.\n * @param {string} baseIRI A base IRI.\n * @return {string} The normalized context IRI.\n */\n normalizeContextIri(contextIri, baseIRI) {\n if (!Util_1.Util.isValidIri(contextIri)) {\n try {\n contextIri = (0, relative_to_absolute_iri_1.resolve)(contextIri, baseIRI);\n }\n catch (_a) {\n throw new Error(`Invalid context IRI: ${contextIri}`);\n }\n }\n // TODO: Temporary workaround for fixing schema.org CORS issues (https://github.com/schemaorg/schemaorg/issues/2578#issuecomment-652324465)\n if (this.redirectSchemaOrgHttps && contextIri.startsWith('http://schema.org')) {\n contextIri = 'https://schema.org/';\n }\n return contextIri;\n }\n /**\n * Parse scoped contexts in the given context.\n * @param {IJsonLdContextNormalizedRaw} context A context.\n * @param {IParseOptions} options Parsing options.\n * @return {IJsonLdContextNormalizedRaw} The mutated input context.\n * @param {string[]} keys Optional set of keys from the context to parseInnerContexts of. If left undefined, all\n * keys in the context will be iterated over.\n */\n async parseInnerContexts(context, options, keys) {\n for (const key of (keys !== null && keys !== void 0 ? keys : Object.keys(context))) {\n const value = context[key];\n if (value && typeof value === 'object') {\n if ('@context' in value && value['@context'] !== null && !options.ignoreScopedContexts) {\n // Simulate a processing based on the parent context to check if there are any (potential errors).\n // Honestly, I find it a bit weird to do this here, as the context may be unused,\n // and the final effective context may differ based on any other embedded/scoped contexts.\n // But hey, it's part of the spec, so we have no choice...\n // https://w3c.github.io/json-ld-api/#h-note-10\n if (this.validateContext) {\n try {\n const parentContext = Object.assign(Object.assign({}, context), { [key]: Object.assign({}, context[key]) });\n delete parentContext[key]['@context'];\n await this.parse(value['@context'], Object.assign(Object.assign({}, options), { external: false, parentContext, ignoreProtection: true, ignoreRemoteScopedContexts: true, ignoreScopedContexts: true }));\n }\n catch (e) {\n throw new ErrorCoded_1.ErrorCoded(e.message, ErrorCoded_1.ERROR_CODES.INVALID_SCOPED_CONTEXT);\n }\n }\n context[key] = Object.assign(Object.assign({}, value), { '@context': (await this.parse(value['@context'], Object.assign(Object.assign({}, options), { external: false, minimalProcessing: true, ignoreRemoteScopedContexts: true, parentContext: context })))\n .getContextRaw() });\n }\n }\n }\n return context;\n }\n async parse(context, options = {}, \n // These options are only for internal use on recursive calls and should not be used by\n // libraries consuming this function\n internalOptions = {}) {\n const { baseIRI, parentContext, external, processingMode = ContextParser.DEFAULT_PROCESSING_MODE, normalizeLanguageTags, ignoreProtection, minimalProcessing, } = options;\n const remoteContexts = options.remoteContexts || {};\n // Avoid remote context overflows\n if (Object.keys(remoteContexts).length >= this.remoteContextsDepthLimit) {\n throw new ErrorCoded_1.ErrorCoded('Detected an overflow in remote context inclusions: ' + Object.keys(remoteContexts), ErrorCoded_1.ERROR_CODES.CONTEXT_OVERFLOW);\n }\n if (context === null || context === undefined) {\n // Don't allow context nullification and there are protected terms\n if (!ignoreProtection && parentContext && Util_1.Util.hasProtectedTerms(parentContext)) {\n throw new ErrorCoded_1.ErrorCoded('Illegal context nullification when terms are protected', ErrorCoded_1.ERROR_CODES.INVALID_CONTEXT_NULLIFICATION);\n }\n // Context that are explicitly set to null are empty.\n return new JsonLdContextNormalized_1.JsonLdContextNormalized(this.applyBaseEntry({}, options, false));\n }\n else if (typeof context === 'string') {\n const contextIri = this.normalizeContextIri(context, baseIRI);\n const overriddenLoad = this.getOverriddenLoad(contextIri, options);\n if (overriddenLoad) {\n return new JsonLdContextNormalized_1.JsonLdContextNormalized(overriddenLoad);\n }\n const parsedStringContext = await this.parse(await this.load(contextIri), Object.assign(Object.assign({}, options), { baseIRI: contextIri, external: true, remoteContexts: Object.assign(Object.assign({}, remoteContexts), { [contextIri]: true }) }));\n this.applyBaseEntry(parsedStringContext.getContextRaw(), options, true);\n return parsedStringContext;\n }\n else if (Array.isArray(context)) {\n // As a performance consideration, first load all external contexts in parallel.\n const contextIris = [];\n const contexts = await Promise.all(context.map((subContext, i) => {\n if (typeof subContext === 'string') {\n const contextIri = this.normalizeContextIri(subContext, baseIRI);\n contextIris[i] = contextIri;\n const overriddenLoad = this.getOverriddenLoad(contextIri, options);\n if (overriddenLoad) {\n return overriddenLoad;\n }\n return this.load(contextIri);\n }\n else {\n return subContext;\n }\n }));\n // Don't apply inheritance logic on minimal processing\n if (minimalProcessing) {\n return new JsonLdContextNormalized_1.JsonLdContextNormalized(contexts);\n }\n const reducedContexts = await contexts.reduce((accContextPromise, contextEntry, i) => accContextPromise\n .then((accContext) => this.parse(contextEntry, Object.assign(Object.assign({}, options), { baseIRI: contextIris[i] || options.baseIRI, external: !!contextIris[i] || options.external, parentContext: accContext.getContextRaw(), remoteContexts: contextIris[i] ? Object.assign(Object.assign({}, remoteContexts), { [contextIris[i]]: true }) : remoteContexts }), \n // @ts-expect-error: This third argument causes a type error because we have hidden it from consumers\n {\n skipValidation: i < contexts.length - 1,\n })), Promise.resolve(new JsonLdContextNormalized_1.JsonLdContextNormalized(parentContext || {})));\n // Override the base IRI if provided.\n this.applyBaseEntry(reducedContexts.getContextRaw(), options, true);\n return reducedContexts;\n }\n else if (typeof context === 'object') {\n if ('@context' in context) {\n return await this.parse(context['@context'], options);\n }\n // Make a deep clone of the given context, to avoid modifying it.\n context = Object.assign({}, context);\n // According to the JSON-LD spec, @base must be ignored from external contexts.\n if (external) {\n delete context['@base'];\n }\n // Override the base IRI if provided.\n this.applyBaseEntry(context, options, true);\n // Hashify container entries\n // Do this before protected term validation as that influences term format\n this.containersToHash(context);\n // Don't perform any other modifications if only minimal processing is needed.\n if (minimalProcessing) {\n return new JsonLdContextNormalized_1.JsonLdContextNormalized(context);\n }\n // In JSON-LD 1.1, load @import'ed context prior to processing.\n let importContext = {};\n if ('@import' in context) {\n if (processingMode >= 1.1) {\n // Only accept string values\n if (typeof context['@import'] !== 'string') {\n throw new ErrorCoded_1.ErrorCoded('An @import value must be a string, but got ' + typeof context['@import'], ErrorCoded_1.ERROR_CODES.INVALID_IMPORT_VALUE);\n }\n // Load context\n importContext = await this.loadImportContext(this.normalizeContextIri(context['@import'], baseIRI));\n delete context['@import'];\n }\n else {\n throw new ErrorCoded_1.ErrorCoded('Context importing is not supported in JSON-LD 1.0', ErrorCoded_1.ERROR_CODES.INVALID_CONTEXT_ENTRY);\n }\n }\n this.applyScopedProtected(importContext, { processingMode }, JsonLdContextNormalized_1.defaultExpandOptions);\n const newContext = Object.assign(importContext, context);\n // Handle terms (before protection checks)\n this.idifyReverseTerms(newContext);\n this.normalize(newContext, { processingMode, normalizeLanguageTags });\n this.applyScopedProtected(newContext, { processingMode }, JsonLdContextNormalized_1.defaultExpandOptions);\n const keys = Object.keys(newContext);\n const overlappingKeys = [];\n if (typeof parentContext === 'object') {\n // Merge different parts of the final context in order\n for (const key in parentContext) {\n if (key in newContext) {\n overlappingKeys.push(key);\n }\n else {\n newContext[key] = parentContext[key];\n }\n }\n }\n // Parse inner contexts with minimal processing\n await this.parseInnerContexts(newContext, options, keys);\n const newContextWrapped = new JsonLdContextNormalized_1.JsonLdContextNormalized(newContext);\n // In JSON-LD 1.1, @vocab can be relative to @vocab in the parent context, or a compact IRI.\n if ((newContext && newContext['@version'] || ContextParser.DEFAULT_PROCESSING_MODE) >= 1.1\n && ((context['@vocab'] && typeof context['@vocab'] === 'string') || context['@vocab'] === '')) {\n if (parentContext && '@vocab' in parentContext && context['@vocab'].indexOf(':') < 0) {\n newContext['@vocab'] = parentContext['@vocab'] + context['@vocab'];\n }\n else if (Util_1.Util.isCompactIri(context['@vocab']) || context['@vocab'] in newContext) {\n // @vocab is a compact IRI or refers exactly to a prefix\n newContext['@vocab'] = newContextWrapped.expandTerm(context['@vocab'], true);\n }\n }\n this.expandPrefixedTerms(newContextWrapped, this.expandContentTypeToBase, keys);\n // In JSON-LD 1.1, check if we are not redefining any protected keywords\n if (!ignoreProtection && parentContext && processingMode >= 1.1) {\n this.validateKeywordRedefinitions(parentContext, newContext, JsonLdContextNormalized_1.defaultExpandOptions, overlappingKeys);\n }\n if (this.validateContext && !internalOptions.skipValidation) {\n this.validate(newContext, { processingMode });\n }\n return newContextWrapped;\n }\n else {\n throw new ErrorCoded_1.ErrorCoded(`Tried parsing a context that is not a string, array or object, but got ${context}`, ErrorCoded_1.ERROR_CODES.INVALID_LOCAL_CONTEXT);\n }\n }\n /**\n * Fetch the given URL as a raw JSON-LD context.\n * @param url An URL.\n * @return A promise resolving to a raw JSON-LD context.\n */\n async load(url) {\n // First try to retrieve the context from cache\n const cached = this.documentCache[url];\n if (cached) {\n return cached;\n }\n // If not in cache, load it\n let document;\n try {\n document = await this.documentLoader.load(url);\n }\n catch (e) {\n throw new ErrorCoded_1.ErrorCoded(`Failed to load remote context ${url}: ${e.message}`, ErrorCoded_1.ERROR_CODES.LOADING_REMOTE_CONTEXT_FAILED);\n }\n // Validate the context\n if (!('@context' in document)) {\n throw new ErrorCoded_1.ErrorCoded(`Missing @context in remote context at ${url}`, ErrorCoded_1.ERROR_CODES.INVALID_REMOTE_CONTEXT);\n }\n return this.documentCache[url] = document['@context'];\n }\n /**\n * Override the given context that may be loaded.\n *\n * This will check whether or not the url is recursively being loaded.\n * @param url An URL.\n * @param options Parsing options.\n * @return An overridden context, or null.\n * Optionally an error can be thrown if a cyclic context is detected.\n */\n getOverriddenLoad(url, options) {\n if (url in (options.remoteContexts || {})) {\n if (options.ignoreRemoteScopedContexts) {\n return url;\n }\n else {\n throw new ErrorCoded_1.ErrorCoded('Detected a cyclic context inclusion of ' + url, ErrorCoded_1.ERROR_CODES.RECURSIVE_CONTEXT_INCLUSION);\n }\n }\n return null;\n }\n /**\n * Load an @import'ed context.\n * @param importContextIri The full URI of an @import value.\n */\n async loadImportContext(importContextIri) {\n // Load the context - and do a deep clone since we are about to mutate it\n let importContext = await this.load(importContextIri);\n // Require the context to be a non-array object\n if (typeof importContext !== 'object' || Array.isArray(importContext)) {\n throw new ErrorCoded_1.ErrorCoded('An imported context must be a single object: ' + importContextIri, ErrorCoded_1.ERROR_CODES.INVALID_REMOTE_CONTEXT);\n }\n // Error if the context contains another @import\n if ('@import' in importContext) {\n throw new ErrorCoded_1.ErrorCoded('An imported context can not import another context: ' + importContextIri, ErrorCoded_1.ERROR_CODES.INVALID_CONTEXT_ENTRY);\n }\n importContext = Object.assign({}, importContext);\n // Containers have to be converted into hash values the same way as for the importing context\n // Otherwise context validation will fail for container values\n this.containersToHash(importContext);\n return importContext;\n }\n}\nContextParser.DEFAULT_PROCESSING_MODE = 1.1;\nexports.ContextParser = ContextParser;\n//# sourceMappingURL=ContextParser.js.map\n\n//# sourceURL=webpack://bookmarks/./node_modules/jsonld-context-parser/lib/ContextParser.js?"); /***/ }), /***/ "./node_modules/jsonld-context-parser/lib/ErrorCoded.js": /*!**************************************************************!*\ !*** ./node_modules/jsonld-context-parser/lib/ErrorCoded.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ERROR_CODES = exports.ErrorCoded = void 0;\n/**\n * An error that has a certain error code.\n *\n * The error code can be any string.\n * All standardized error codes are listed in {@link ERROR_CODES}.\n */\nclass ErrorCoded extends Error {\n /* istanbul ignore next */\n constructor(message, code) {\n super(message);\n this.code = code;\n }\n}\nexports.ErrorCoded = ErrorCoded;\n/**\n * All standardized JSON-LD error codes.\n * @see https://w3c.github.io/json-ld-api/#dom-jsonlderrorcode\n */\n// tslint:disable:object-literal-sort-keys\nvar ERROR_CODES;\n(function (ERROR_CODES) {\n ERROR_CODES[\"COLLIDING_KEYWORDS\"] = \"colliding keywords\";\n ERROR_CODES[\"CONFLICTING_INDEXES\"] = \"conflicting indexes\";\n ERROR_CODES[\"CYCLIC_IRI_MAPPING\"] = \"cyclic IRI mapping\";\n ERROR_CODES[\"INVALID_ID_VALUE\"] = \"invalid @id value\";\n ERROR_CODES[\"INVALID_INDEX_VALUE\"] = \"invalid @index value\";\n ERROR_CODES[\"INVALID_NEST_VALUE\"] = \"invalid @nest value\";\n ERROR_CODES[\"INVALID_PREFIX_VALUE\"] = \"invalid @prefix value\";\n ERROR_CODES[\"INVALID_PROPAGATE_VALUE\"] = \"invalid @propagate value\";\n ERROR_CODES[\"INVALID_REVERSE_VALUE\"] = \"invalid @reverse value\";\n ERROR_CODES[\"INVALID_IMPORT_VALUE\"] = \"invalid @import value\";\n ERROR_CODES[\"INVALID_VERSION_VALUE\"] = \"invalid @version value\";\n ERROR_CODES[\"INVALID_BASE_IRI\"] = \"invalid base IRI\";\n ERROR_CODES[\"INVALID_CONTAINER_MAPPING\"] = \"invalid container mapping\";\n ERROR_CODES[\"INVALID_CONTEXT_ENTRY\"] = \"invalid context entry\";\n ERROR_CODES[\"INVALID_CONTEXT_NULLIFICATION\"] = \"invalid context nullification\";\n ERROR_CODES[\"INVALID_DEFAULT_LANGUAGE\"] = \"invalid default language\";\n ERROR_CODES[\"INVALID_INCLUDED_VALUE\"] = \"invalid @included value\";\n ERROR_CODES[\"INVALID_IRI_MAPPING\"] = \"invalid IRI mapping\";\n ERROR_CODES[\"INVALID_JSON_LITERAL\"] = \"invalid JSON literal\";\n ERROR_CODES[\"INVALID_KEYWORD_ALIAS\"] = \"invalid keyword alias\";\n ERROR_CODES[\"INVALID_LANGUAGE_MAP_VALUE\"] = \"invalid language map value\";\n ERROR_CODES[\"INVALID_LANGUAGE_MAPPING\"] = \"invalid language mapping\";\n ERROR_CODES[\"INVALID_LANGUAGE_TAGGED_STRING\"] = \"invalid language-tagged string\";\n ERROR_CODES[\"INVALID_LANGUAGE_TAGGED_VALUE\"] = \"invalid language-tagged value\";\n ERROR_CODES[\"INVALID_LOCAL_CONTEXT\"] = \"invalid local context\";\n ERROR_CODES[\"INVALID_REMOTE_CONTEXT\"] = \"invalid remote context\";\n ERROR_CODES[\"INVALID_REVERSE_PROPERTY\"] = \"invalid reverse property\";\n ERROR_CODES[\"INVALID_REVERSE_PROPERTY_MAP\"] = \"invalid reverse property map\";\n ERROR_CODES[\"INVALID_REVERSE_PROPERTY_VALUE\"] = \"invalid reverse property value\";\n ERROR_CODES[\"INVALID_SCOPED_CONTEXT\"] = \"invalid scoped context\";\n ERROR_CODES[\"INVALID_SCRIPT_ELEMENT\"] = \"invalid script element\";\n ERROR_CODES[\"INVALID_SET_OR_LIST_OBJECT\"] = \"invalid set or list object\";\n ERROR_CODES[\"INVALID_TERM_DEFINITION\"] = \"invalid term definition\";\n ERROR_CODES[\"INVALID_TYPE_MAPPING\"] = \"invalid type mapping\";\n ERROR_CODES[\"INVALID_TYPE_VALUE\"] = \"invalid type value\";\n ERROR_CODES[\"INVALID_TYPED_VALUE\"] = \"invalid typed value\";\n ERROR_CODES[\"INVALID_VALUE_OBJECT\"] = \"invalid value object\";\n ERROR_CODES[\"INVALID_VALUE_OBJECT_VALUE\"] = \"invalid value object value\";\n ERROR_CODES[\"INVALID_VOCAB_MAPPING\"] = \"invalid vocab mapping\";\n ERROR_CODES[\"IRI_CONFUSED_WITH_PREFIX\"] = \"IRI confused with prefix\";\n ERROR_CODES[\"KEYWORD_REDEFINITION\"] = \"keyword redefinition\";\n ERROR_CODES[\"LOADING_DOCUMENT_FAILED\"] = \"loading document failed\";\n ERROR_CODES[\"LOADING_REMOTE_CONTEXT_FAILED\"] = \"loading remote context failed\";\n ERROR_CODES[\"MULTIPLE_CONTEXT_LINK_HEADERS\"] = \"multiple context link headers\";\n ERROR_CODES[\"PROCESSING_MODE_CONFLICT\"] = \"processing mode conflict\";\n ERROR_CODES[\"PROTECTED_TERM_REDEFINITION\"] = \"protected term redefinition\";\n ERROR_CODES[\"CONTEXT_OVERFLOW\"] = \"context overflow\";\n ERROR_CODES[\"INVALID_BASE_DIRECTION\"] = \"invalid base direction\";\n ERROR_CODES[\"RECURSIVE_CONTEXT_INCLUSION\"] = \"recursive context inclusion\";\n ERROR_CODES[\"INVALID_STREAMING_KEY_ORDER\"] = \"invalid streaming key order\";\n /**\n * JSON-LD-star\n */\n ERROR_CODES[\"INVALID_EMBEDDED_NODE\"] = \"invalid embedded node\";\n ERROR_CODES[\"INVALID_ANNOTATION\"] = \"invalid annotation\";\n})(ERROR_CODES = exports.ERROR_CODES || (exports.ERROR_CODES = {}));\n//# sourceMappingURL=ErrorCoded.js.map\n\n//# sourceURL=webpack://bookmarks/./node_modules/jsonld-context-parser/lib/ErrorCoded.js?"); /***/ }), /***/ "./node_modules/jsonld-context-parser/lib/FetchDocumentLoader.js": /*!***********************************************************************!*\ !*** ./node_modules/jsonld-context-parser/lib/FetchDocumentLoader.js ***! \***********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.FetchDocumentLoader = void 0;\n__webpack_require__(/*! cross-fetch/polyfill */ \"./node_modules/cross-fetch/dist/browser-polyfill.js\");\nconst ErrorCoded_1 = __webpack_require__(/*! ./ErrorCoded */ \"./node_modules/jsonld-context-parser/lib/ErrorCoded.js\");\nconst http_link_header_1 = __webpack_require__(/*! http-link-header */ \"./node_modules/http-link-header/lib/link.js\");\nconst relative_to_absolute_iri_1 = __webpack_require__(/*! relative-to-absolute-iri */ \"./node_modules/relative-to-absolute-iri/index.js\");\n/**\n * Loads documents via the fetch API.\n */\nclass FetchDocumentLoader {\n constructor(fetcher) {\n this.fetcher = fetcher;\n }\n async load(url) {\n const response = await (this.fetcher || fetch)(url, { headers: new Headers({ accept: 'application/ld+json' }) });\n if (response.ok && response.headers) {\n let mediaType = response.headers.get('Content-Type');\n if (mediaType) {\n const colonPos = mediaType.indexOf(';');\n if (colonPos > 0) {\n mediaType = mediaType.substr(0, colonPos);\n }\n }\n if (mediaType === 'application/ld+json') {\n // Return JSON-LD if proper content type was returned\n return (await response.json());\n }\n else {\n // Check for alternate link for a non-JSON-LD response\n if (response.headers.has('Link')) {\n let alternateUrl;\n response.headers.forEach((value, key) => {\n if (key === 'link') {\n const linkHeader = (0, http_link_header_1.parse)(value);\n for (const link of linkHeader.get('type', 'application/ld+json')) {\n if (link.rel === 'alternate') {\n if (alternateUrl) {\n throw new Error('Multiple JSON-LD alternate links were found on ' + url);\n }\n alternateUrl = (0, relative_to_absolute_iri_1.resolve)(link.uri, url);\n }\n }\n }\n });\n if (alternateUrl) {\n return this.load(alternateUrl);\n }\n }\n throw new ErrorCoded_1.ErrorCoded(`Unsupported JSON-LD media type ${mediaType}`, ErrorCoded_1.ERROR_CODES.LOADING_DOCUMENT_FAILED);\n }\n }\n else {\n throw new Error(response.statusText || `Status code: ${response.status}`);\n }\n }\n}\nexports.FetchDocumentLoader = FetchDocumentLoader;\n//# sourceMappingURL=FetchDocumentLoader.js.map\n\n//# sourceURL=webpack://bookmarks/./node_modules/jsonld-context-parser/lib/FetchDocumentLoader.js?"); /***/ }), /***/ "./node_modules/jsonld-context-parser/lib/IDocumentLoader.js": /*!*******************************************************************!*\ !*** ./node_modules/jsonld-context-parser/lib/IDocumentLoader.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceMappingURL=IDocumentLoader.js.map\n\n//# sourceURL=webpack://bookmarks/./node_modules/jsonld-context-parser/lib/IDocumentLoader.js?"); /***/ }), /***/ "./node_modules/jsonld-context-parser/lib/JsonLdContext.js": /*!*****************************************************************!*\ !*** ./node_modules/jsonld-context-parser/lib/JsonLdContext.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\n// tslint:disable:max-line-length\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\n//# sourceMappingURL=JsonLdContext.js.map\n\n//# sourceURL=webpack://bookmarks/./node_modules/jsonld-context-parser/lib/JsonLdContext.js?"); /***/ }), /***/ "./node_modules/jsonld-context-parser/lib/JsonLdContextNormalized.js": /*!***************************************************************************!*\ !*** ./node_modules/jsonld-context-parser/lib/JsonLdContextNormalized.js ***! \***************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.defaultExpandOptions = exports.JsonLdContextNormalized = void 0;\nconst relative_to_absolute_iri_1 = __webpack_require__(/*! relative-to-absolute-iri */ \"./node_modules/relative-to-absolute-iri/index.js\");\nconst ErrorCoded_1 = __webpack_require__(/*! ./ErrorCoded */ \"./node_modules/jsonld-context-parser/lib/ErrorCoded.js\");\nconst Util_1 = __webpack_require__(/*! ./Util */ \"./node_modules/jsonld-context-parser/lib/Util.js\");\n/**\n * A class exposing operations over a normalized JSON-LD context.\n */\nclass JsonLdContextNormalized {\n constructor(contextRaw) {\n this.contextRaw = contextRaw;\n }\n /**\n * @return The raw inner context.\n */\n getContextRaw() {\n return this.contextRaw;\n }\n /**\n * Expand the term or prefix of the given term if it has one,\n * otherwise return the term as-is.\n *\n * This will try to expand the IRI as much as possible.\n *\n * Iff in vocab-mode, then other references to other terms in the context can be used,\n * such as to `myTerm`:\n * ```\n * {\n * \"myTerm\": \"http://example.org/myLongTerm\"\n * }\n * ```\n *\n * @param {string} term A term that is an URL or a prefixed URL.\n * @param {boolean} expandVocab If the term is a predicate or type and should be expanded based on @vocab,\n * otherwise it is considered a regular term that is expanded based on @base.\n * @param {IExpandOptions} options Options that define the way how expansion must be done.\n * @return {string} The expanded term, the term as-is, or null if it was explicitly disabled in the context.\n * @throws If the term is aliased to an invalid value (not a string, IRI or keyword).\n */\n expandTerm(term, expandVocab, options = exports.defaultExpandOptions) {\n const contextValue = this.contextRaw[term];\n // Immediately return if the term was disabled in the context\n if (contextValue === null || (contextValue && contextValue['@id'] === null)) {\n return null;\n }\n // Check the @id\n let validIriMapping = true;\n if (contextValue && expandVocab) {\n const value = Util_1.Util.getContextValueId(contextValue);\n if (value && value !== term) {\n if (typeof value !== 'string' || (!Util_1.Util.isValidIri(value) && !Util_1.Util.isValidKeyword(value))) {\n // Don't mark this mapping as invalid if we have an unknown keyword, but of the correct form.\n if (!Util_1.Util.isPotentialKeyword(value)) {\n validIriMapping = false;\n }\n }\n else {\n return value;\n }\n }\n }\n // Check if the term is prefixed\n const prefix = Util_1.Util.getPrefix(term, this.contextRaw);\n const vocab = this.contextRaw['@vocab'];\n const vocabRelative = (!!vocab || vocab === '') && vocab.indexOf(':') < 0;\n const base = this.contextRaw['@base'];\n const potentialKeyword = Util_1.Util.isPotentialKeyword(term);\n if (prefix) {\n const contextPrefixValue = this.contextRaw[prefix];\n const value = Util_1.Util.getContextValueId(contextPrefixValue);\n if (value) {\n if (typeof contextPrefixValue === 'string' || !options.allowPrefixForcing) {\n // If we have a simple term definition,\n // check the last character of the prefix to determine whether or not it is a prefix.\n // Validate that prefix ends with gen-delim character, unless @prefix is true\n if (!Util_1.Util.isSimpleTermDefinitionPrefix(value, options)) {\n // Treat the term as an absolute IRI\n return term;\n }\n }\n else {\n // If we have an expanded term definition, default to @prefix: false\n if (value[0] !== '_' && !potentialKeyword && !contextPrefixValue['@prefix'] && !(term in this.contextRaw)) {\n // Treat the term as an absolute IRI\n return term;\n }\n }\n return value + term.substr(prefix.length + 1);\n }\n }\n else if (expandVocab && ((vocab || vocab === '') || (options.allowVocabRelativeToBase && (base && vocabRelative)))\n && !potentialKeyword && !Util_1.Util.isCompactIri(term)) {\n if (vocabRelative) {\n if (options.allowVocabRelativeToBase) {\n return ((vocab || base) ? (0, relative_to_absolute_iri_1.resolve)(vocab, base) : '') + term;\n }\n else {\n throw new ErrorCoded_1.ErrorCoded(`Relative vocab expansion for term '${term}' with vocab '${vocab}' is not allowed.`, ErrorCoded_1.ERROR_CODES.INVALID_VOCAB_MAPPING);\n }\n }\n else {\n return vocab + term;\n }\n }\n else if (!expandVocab && base && !potentialKeyword && !Util_1.Util.isCompactIri(term)) {\n return (0, relative_to_absolute_iri_1.resolve)(term, base);\n }\n // Return the term as-is, unless we discovered an invalid IRI mapping for this term in the context earlier.\n if (validIriMapping) {\n return term;\n }\n else {\n throw new ErrorCoded_1.ErrorCoded(`Invalid IRI mapping found for context entry '${term}': '${JSON.stringify(contextValue)}'`, ErrorCoded_1.ERROR_CODES.INVALID_IRI_MAPPING);\n }\n }\n /**\n * Compact the given term using @base, @vocab, an aliased term, or a prefixed term.\n *\n * This will try to compact the IRI as much as possible.\n *\n * @param {string} iri An IRI to compact.\n * @param {boolean} vocab If the term is a predicate or type and should be compacted based on @vocab,\n * otherwise it is considered a regular term that is compacted based on @base.\n * @return {string} The compacted term or the IRI as-is.\n */\n compactIri(iri, vocab) {\n // Try @vocab compacting\n if (vocab && this.contextRaw['@vocab'] && iri.startsWith(this.contextRaw['@vocab'])) {\n return iri.substr(this.contextRaw['@vocab'].length);\n }\n // Try @base compacting\n if (!vocab && this.contextRaw['@base'] && iri.startsWith(this.contextRaw['@base'])) {\n return iri.substr(this.contextRaw['@base'].length);\n }\n // Loop over all terms in the context\n // This will try to prefix as short as possible.\n // Once a fully compacted alias is found, return immediately, as we can not go any shorter.\n const shortestPrefixing = { prefix: '', suffix: iri };\n for (const key in this.contextRaw) {\n const value = this.contextRaw[key];\n if (value && !Util_1.Util.isPotentialKeyword(key)) {\n const contextIri = Util_1.Util.getContextValueId(value);\n if (iri.startsWith(contextIri)) {\n const suffix = iri.substr(contextIri.length);\n if (!suffix) {\n if (vocab) {\n // Immediately return on compacted alias\n return key;\n }\n }\n else if (suffix.length < shortestPrefixing.suffix.length) {\n // Overwrite the shortest prefix\n shortestPrefixing.prefix = key;\n shortestPrefixing.suffix = suffix;\n }\n }\n }\n }\n // Return the shortest prefix\n if (shortestPrefixing.prefix) {\n return shortestPrefixing.prefix + ':' + shortestPrefixing.suffix;\n }\n return iri;\n }\n}\nexports.JsonLdContextNormalized = JsonLdContextNormalized;\nexports.defaultExpandOptions = {\n allowPrefixForcing: true,\n allowPrefixNonGenDelims: false,\n allowVocabRelativeToBase: true,\n};\n//# sourceMappingURL=JsonLdContextNormalized.js.map\n\n//# sourceURL=webpack://bookmarks/./node_modules/jsonld-context-parser/lib/JsonLdContextNormalized.js?"); /***/ }), /***/ "./node_modules/jsonld-context-parser/lib/Util.js": /*!********************************************************!*\ !*** ./node_modules/jsonld-context-parser/lib/Util.js ***! \********************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Util = void 0;\nclass Util {\n /**\n * Check if the given term is a valid compact IRI.\n * Otherwise, it may be an IRI.\n * @param {string} term A term.\n * @return {boolean} If it is a compact IRI.\n */\n static isCompactIri(term) {\n return term.indexOf(':') > 0 && !(term && term[0] === '#');\n }\n /**\n * Get the prefix from the given term.\n * @see https://json-ld.org/spec/latest/json-ld/#compact-iris\n * @param {string} term A term that is an URL or a prefixed URL.\n * @param {IJsonLdContextNormalizedRaw} context A context.\n * @return {string} The prefix or null.\n */\n static getPrefix(term, context) {\n // Do not consider relative IRIs starting with a hash as compact IRIs\n if (term && term[0] === '#') {\n return null;\n }\n const separatorPos = term.indexOf(':');\n if (separatorPos >= 0) {\n // Suffix can not begin with two slashes\n if (term.length > separatorPos + 1\n && term.charAt(separatorPos + 1) === '/'\n && term.charAt(separatorPos + 2) === '/') {\n return null;\n }\n const prefix = term.substr(0, separatorPos);\n // Prefix can not be an underscore (this is a blank node)\n if (prefix === '_') {\n return null;\n }\n // Prefix must match a term in the active context\n if (context[prefix]) {\n return prefix;\n }\n }\n return null;\n }\n /**\n * From a given context entry value, get the string value, or the @id field.\n * @param contextValue A value for a term in a context.\n * @return {string} The id value, or null.\n */\n static getContextValueId(contextValue) {\n if (contextValue === null || typeof contextValue === 'string') {\n return contextValue;\n }\n const id = contextValue['@id'];\n return id ? id : null;\n }\n /**\n * Check if the given simple term definition (string-based value of a context term)\n * should be considered a prefix.\n * @param value A simple term definition value.\n * @param options Options that define the way how expansion must be done.\n */\n static isSimpleTermDefinitionPrefix(value, options) {\n return !Util.isPotentialKeyword(value)\n && (options.allowPrefixNonGenDelims || (typeof value === 'string' && (value[0] === '_' || Util.isPrefixIriEndingWithGenDelim(value))));\n }\n /**\n * Check if the given keyword is of the keyword format \"@\"1*ALPHA.\n * @param {string} keyword A potential keyword.\n * @return {boolean} If the given keyword is of the keyword format.\n */\n static isPotentialKeyword(keyword) {\n return typeof keyword === 'string' && Util.KEYWORD_REGEX.test(keyword);\n }\n /**\n * Check if the given prefix ends with a gen-delim character.\n * @param {string} prefixIri A prefix IRI.\n * @return {boolean} If the given prefix IRI is valid.\n */\n static isPrefixIriEndingWithGenDelim(prefixIri) {\n return Util.ENDS_WITH_GEN_DELIM.test(prefixIri);\n }\n /**\n * Check if the given context value can be a prefix value.\n * @param value A context value.\n * @return {boolean} If it can be a prefix value.\n */\n static isPrefixValue(value) {\n return value && (typeof value === 'string' || (value && typeof value === 'object'));\n }\n /**\n * Check if the given IRI is valid.\n * @param {string} iri A potential IRI.\n * @return {boolean} If the given IRI is valid.\n */\n static isValidIri(iri) {\n return Boolean(iri && Util.IRI_REGEX.test(iri));\n }\n /**\n * Check if the given IRI is valid, this includes the possibility of being a relative IRI.\n * @param {string} iri A potential IRI.\n * @return {boolean} If the given IRI is valid.\n */\n static isValidIriWeak(iri) {\n return !!iri && iri[0] !== ':' && Util.IRI_REGEX_WEAK.test(iri);\n }\n /**\n * Check if the given keyword is a defined according to the JSON-LD specification.\n * @param {string} keyword A potential keyword.\n * @return {boolean} If the given keyword is valid.\n */\n static isValidKeyword(keyword) {\n return Util.VALID_KEYWORDS[keyword];\n }\n /**\n * Check if the given term is protected in the context.\n * @param {IJsonLdContextNormalizedRaw} context A context.\n * @param {string} key A context term.\n * @return {boolean} If the given term has an @protected flag.\n */\n static isTermProtected(context, key) {\n const value = context[key];\n return !(typeof value === 'string') && value && value['@protected'];\n }\n /**\n * Check if the given context has at least one protected term.\n * @param context A context.\n * @return If the context has a protected term.\n */\n static hasProtectedTerms(context) {\n for (const key of Object.keys(context)) {\n if (Util.isTermProtected(context, key)) {\n return true;\n }\n }\n return false;\n }\n /**\n * Check if the given key is an internal reserved keyword.\n * @param key A context key.\n */\n static isReservedInternalKeyword(key) {\n return key.startsWith('@__');\n }\n /**\n * Check if two objects are deepEqual to on another.\n * @param object1 The first object to test.\n * @param object2 The second object to test.\n */\n static deepEqual(object1, object2) {\n const objKeys1 = Object.keys(object1);\n const objKeys2 = Object.keys(object2);\n if (objKeys1.length !== objKeys2.length)\n return false;\n return objKeys1.every((key) => {\n const value1 = object1[key];\n const value2 = object2[key];\n return (value1 === value2) || (value1 !== null &&\n value2 !== null &&\n typeof value1 === \"object\" &&\n typeof value2 === \"object\" &&\n this.deepEqual(value1, value2));\n });\n }\n ;\n}\n// Regex for valid IRIs\nUtil.IRI_REGEX = /^([A-Za-z][A-Za-z0-9+-.]*|_):[^ \"<>{}|\\\\\\[\\]`#]*(#[^#]*)?$/;\n// Weaker regex for valid IRIs, this includes relative IRIs\nUtil.IRI_REGEX_WEAK = /(?::[^:])|\\//;\n// Regex for keyword form\nUtil.KEYWORD_REGEX = /^@[a-z]+$/i;\n// Regex to see if an IRI ends with a gen-delim character (see RFC 3986)\nUtil.ENDS_WITH_GEN_DELIM = /[:/?#\\[\\]@]$/;\n// Regex for language tags\nUtil.REGEX_LANGUAGE_TAG = /^[a-zA-Z]+(-[a-zA-Z0-9]+)*$/;\n// Regex for base directions\nUtil.REGEX_DIRECTION_TAG = /^(ltr)|(rtl)$/;\n// All known valid JSON-LD keywords\n// @see https://www.w3.org/TR/json-ld11/#keywords\nUtil.VALID_KEYWORDS = {\n '@annotation': true,\n '@base': true,\n '@container': true,\n '@context': true,\n '@direction': true,\n '@graph': true,\n '@id': true,\n '@import': true,\n '@included': true,\n '@index': true,\n '@json': true,\n '@language': true,\n '@list': true,\n '@nest': true,\n '@none': true,\n '@prefix': true,\n '@propagate': true,\n '@protected': true,\n '@reverse': true,\n '@set': true,\n '@type': true,\n '@value': true,\n '@version': true,\n '@vocab': true,\n};\n// Keys in the contexts that will not be expanded based on the base IRI\nUtil.EXPAND_KEYS_BLACKLIST = [\n '@base',\n '@vocab',\n '@language',\n '@version',\n '@direction',\n];\n// Keys in the contexts that may not be aliased from\nUtil.ALIAS_DOMAIN_BLACKLIST = [\n '@container',\n '@graph',\n '@id',\n '@index',\n '@list',\n '@nest',\n '@none',\n '@prefix',\n '@reverse',\n '@set',\n '@type',\n '@value',\n '@version',\n];\n// Keys in the contexts that may not be aliased to\nUtil.ALIAS_RANGE_BLACKLIST = [\n '@context',\n '@preserve',\n];\n// All valid @container values\nUtil.CONTAINERS = [\n '@list',\n '@set',\n '@index',\n '@language',\n '@graph',\n '@id',\n '@type',\n];\n// All valid @container values under processing mode 1.0\nUtil.CONTAINERS_1_0 = [\n '@list',\n '@set',\n '@index',\n];\nexports.Util = Util;\n//# sourceMappingURL=Util.js.map\n\n//# sourceURL=webpack://bookmarks/./node_modules/jsonld-context-parser/lib/Util.js?"); /***/ }), /***/ "./node_modules/jsonld-streaming-parser/index.js": /*!*******************************************************!*\ !*** ./node_modules/jsonld-streaming-parser/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 var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\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 }));\n__exportStar(__webpack_require__(/*! ./lib/JsonLdParser */ \"./node_modules/jsonld-streaming-parser/lib/JsonLdParser.js\"), exports);\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://bookmarks/./node_modules/jsonld-streaming-parser/index.js?"); /***/ }), /***/ "./node_modules/jsonld-streaming-parser/lib/ContextTree.js": /*!*****************************************************************!*\ !*** ./node_modules/jsonld-streaming-parser/lib/ContextTree.js ***! \*****************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ContextTree = void 0;\n/**\n * A tree structure that holds all contexts,\n * based on their position in the JSON object.\n *\n * Positions are identified by a path of keys.\n */\nclass ContextTree {\n constructor() {\n this.subTrees = {};\n }\n getContext(keys) {\n if (keys.length > 0) {\n const [head, ...tail] = keys;\n const subTree = this.subTrees[head];\n if (subTree) {\n const subContext = subTree.getContext(tail);\n if (subContext) {\n return subContext.then(({ context, depth }) => ({ context, depth: depth + 1 }));\n }\n }\n }\n return this.context ? this.context.then((context) => ({ context, depth: 0 })) : null;\n }\n setContext(keys, context) {\n if (keys.length === 0) {\n this.context = context;\n }\n else {\n const [head, ...tail] = keys;\n let subTree = this.subTrees[head];\n if (!subTree) {\n subTree = this.subTrees[head] = new ContextTree();\n }\n subTree.setContext(tail, context);\n }\n }\n removeContext(path) {\n this.setContext(path, null);\n }\n}\nexports.ContextTree = ContextTree;\n//# sourceMappingURL=ContextTree.js.map\n\n//# sourceURL=webpack://bookmarks/./node_modules/jsonld-streaming-parser/lib/ContextTree.js?"); /***/ }), /***/ "./node_modules/jsonld-streaming-parser/lib/JsonLdParser.js": /*!******************************************************************!*\ !*** ./node_modules/jsonld-streaming-parser/lib/JsonLdParser.js ***! \******************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.JsonLdParser = void 0;\n// tslint:disable-next-line:no-var-requires\nconst Parser = __webpack_require__(/*! @bergos/jsonparse */ \"./node_modules/@bergos/jsonparse/jsonparse.js\");\nconst jsonld_context_parser_1 = __webpack_require__(/*! jsonld-context-parser */ \"./node_modules/jsonld-context-parser/index.js\");\nconst readable_stream_1 = __webpack_require__(/*! readable-stream */ \"./node_modules/readable-stream/lib/ours/browser.js\");\nconst EntryHandlerArrayValue_1 = __webpack_require__(/*! ./entryhandler/EntryHandlerArrayValue */ \"./node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerArrayValue.js\");\nconst EntryHandlerContainer_1 = __webpack_require__(/*! ./entryhandler/EntryHandlerContainer */ \"./node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerContainer.js\");\nconst EntryHandlerInvalidFallback_1 = __webpack_require__(/*! ./entryhandler/EntryHandlerInvalidFallback */ \"./node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerInvalidFallback.js\");\nconst EntryHandlerPredicate_1 = __webpack_require__(/*! ./entryhandler/EntryHandlerPredicate */ \"./node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerPredicate.js\");\nconst EntryHandlerKeywordContext_1 = __webpack_require__(/*! ./entryhandler/keyword/EntryHandlerKeywordContext */ \"./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordContext.js\");\nconst EntryHandlerKeywordGraph_1 = __webpack_require__(/*! ./entryhandler/keyword/EntryHandlerKeywordGraph */ \"./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordGraph.js\");\nconst EntryHandlerKeywordId_1 = __webpack_require__(/*! ./entryhandler/keyword/EntryHandlerKeywordId */ \"./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordId.js\");\nconst EntryHandlerKeywordIncluded_1 = __webpack_require__(/*! ./entryhandler/keyword/EntryHandlerKeywordIncluded */ \"./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordIncluded.js\");\nconst EntryHandlerKeywordNest_1 = __webpack_require__(/*! ./entryhandler/keyword/EntryHandlerKeywordNest */ \"./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordNest.js\");\nconst EntryHandlerKeywordType_1 = __webpack_require__(/*! ./entryhandler/keyword/EntryHandlerKeywordType */ \"./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordType.js\");\nconst EntryHandlerKeywordUnknownFallback_1 = __webpack_require__(/*! ./entryhandler/keyword/EntryHandlerKeywordUnknownFallback */ \"./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordUnknownFallback.js\");\nconst EntryHandlerKeywordValue_1 = __webpack_require__(/*! ./entryhandler/keyword/EntryHandlerKeywordValue */ \"./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordValue.js\");\nconst ParsingContext_1 = __webpack_require__(/*! ./ParsingContext */ \"./node_modules/jsonld-streaming-parser/lib/ParsingContext.js\");\nconst Util_1 = __webpack_require__(/*! ./Util */ \"./node_modules/jsonld-streaming-parser/lib/Util.js\");\nconst http_link_header_1 = __webpack_require__(/*! http-link-header */ \"./node_modules/http-link-header/lib/link.js\");\nconst EntryHandlerKeywordAnnotation_1 = __webpack_require__(/*! ./entryhandler/keyword/EntryHandlerKeywordAnnotation */ \"./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordAnnotation.js\");\n/**\n * A stream transformer that parses JSON-LD (text) streams to an {@link RDF.Stream}.\n */\nclass JsonLdParser extends readable_stream_1.Transform {\n constructor(options) {\n super({ readableObjectMode: true });\n options = options || {};\n this.options = options;\n this.parsingContext = new ParsingContext_1.ParsingContext(Object.assign({ parser: this }, options));\n this.util = new Util_1.Util({ dataFactory: options.dataFactory, parsingContext: this.parsingContext });\n this.jsonParser = new Parser();\n this.contextJobs = [];\n this.typeJobs = [];\n this.contextAwaitingJobs = [];\n this.lastDepth = 0;\n this.lastKeys = [];\n this.lastOnValueJob = Promise.resolve();\n this.attachJsonParserListeners();\n this.on('end', () => {\n if (typeof this.jsonParser.mode !== 'undefined') {\n this.emit('error', new Error('Unclosed document'));\n }\n });\n }\n /**\n * Construct a JsonLdParser from the given HTTP response.\n *\n * This will throw an error if no valid JSON response is received\n * (application/ld+json, application/json, or something+json).\n *\n * For raw JSON responses, exactly one link header pointing to a JSON-LD context is required.\n *\n * This method is not responsible for handling redirects.\n *\n * @param baseIRI The URI of the received response.\n * @param mediaType The received content type.\n * @param headers Optional HTTP headers.\n * @param options Optional parser options.\n */\n static fromHttpResponse(baseIRI, mediaType, headers, options) {\n let context;\n let wellKnownMediaTypes = ['application/activity+json'];\n if (options && options.wellKnownMediaTypes) {\n wellKnownMediaTypes = options.wellKnownMediaTypes;\n }\n // Special cases when receiving something else than the JSON-LD media type or the wellKnownMediaTypes\n if (mediaType !== 'application/ld+json' && !wellKnownMediaTypes.includes(mediaType)) {\n // Only accept JSON or JSON extension types\n if (mediaType !== 'application/json' && !mediaType.endsWith('+json')) {\n throw new jsonld_context_parser_1.ErrorCoded(`Unsupported JSON-LD media type ${mediaType}`, jsonld_context_parser_1.ERROR_CODES.LOADING_DOCUMENT_FAILED);\n }\n // We need exactly one JSON-LD context in the link header\n if (headers && headers.has('Link')) {\n headers.forEach((value, key) => {\n if (key === 'link') {\n const linkHeader = (0, http_link_header_1.parse)(value);\n for (const link of linkHeader.get('rel', 'http://www.w3.org/ns/json-ld#context')) {\n if (context) {\n throw new jsonld_context_parser_1.ErrorCoded('Multiple JSON-LD context link headers were found on ' + baseIRI, jsonld_context_parser_1.ERROR_CODES.MULTIPLE_CONTEXT_LINK_HEADERS);\n }\n context = link.uri;\n }\n }\n });\n }\n if (!context && !(options === null || options === void 0 ? void 0 : options.ignoreMissingContextLinkHeader)) {\n throw new jsonld_context_parser_1.ErrorCoded(`Missing context link header for media type ${mediaType} on ${baseIRI}`, jsonld_context_parser_1.ERROR_CODES.LOADING_DOCUMENT_FAILED);\n }\n }\n // Check if the streaming profile is present\n let streamingProfile;\n if (headers && headers.has('Content-Type')) {\n const contentType = headers.get('Content-Type');\n const match = /; *profile=([^\"]*)/.exec(contentType);\n if (match && match[1] === 'http://www.w3.org/ns/json-ld#streaming') {\n streamingProfile = true;\n }\n }\n return new JsonLdParser(Object.assign({ baseIRI,\n context,\n streamingProfile }, options ? options : {}));\n }\n /**\n * Parses the given text stream into a quad stream.\n * @param {NodeJS.EventEmitter} stream A text stream.\n * @return {RDF.Stream} A quad stream.\n */\n import(stream) {\n if ('pipe' in stream) {\n stream.on('error', (error) => parsed.emit('error', error));\n const parsed = stream.pipe(new JsonLdParser(this.options));\n return parsed;\n }\n else {\n const output = new readable_stream_1.PassThrough({ readableObjectMode: true });\n stream.on('error', (error) => parsed.emit('error', error));\n stream.on('data', (data) => output.push(data));\n stream.on('end', () => output.push(null));\n const parsed = output.pipe(new JsonLdParser(this.options));\n return parsed;\n }\n }\n _transform(chunk, encoding, callback) {\n this.jsonParser.write(chunk);\n this.lastOnValueJob\n .then(() => callback(), (error) => callback(error));\n }\n /**\n * Start a new job for parsing the given value.\n *\n * This will let the first valid {@link IEntryHandler} handle the entry.\n *\n * @param {any[]} keys The stack of keys.\n * @param value The value to parse.\n * @param {number} depth The depth to parse at.\n * @param {boolean} lastDepthCheck If the lastDepth check should be done for buffer draining.\n * @return {Promise} A promise resolving when the job is done.\n */\n async newOnValueJob(keys, value, depth, lastDepthCheck) {\n let flushStacks = true;\n // When we go up the stack, emit all unidentified values\n // We need to do this before the new job, because the new job may require determined values from the flushed jobs.\n if (lastDepthCheck && depth < this.lastDepth) {\n // Check if we had any RDF lists that need to be terminated with an rdf:nil\n const listPointer = this.parsingContext.listPointerStack[this.lastDepth];\n if (listPointer) {\n // Terminate the list if the had at least one value\n if (listPointer.value) {\n this.push(this.util.dataFactory.quad(listPointer.value, this.util.rdfRest, this.util.rdfNil, this.util.getDefaultGraph()));\n }\n // Add the list id to the id stack, so it can be used higher up in the stack\n listPointer.listId.listHead = true;\n this.parsingContext.idStack[listPointer.listRootDepth + 1] = [listPointer.listId];\n this.parsingContext.listPointerStack.splice(this.lastDepth, 1);\n }\n // Flush the buffer for lastDepth\n // If the parent key is a special type of container, postpone flushing until that parent is handled.\n if (await EntryHandlerContainer_1.EntryHandlerContainer.isBufferableContainerHandler(this.parsingContext, this.lastKeys, this.lastDepth)) {\n this.parsingContext.pendingContainerFlushBuffers\n .push({ depth: this.lastDepth, keys: this.lastKeys.slice(0, this.lastKeys.length) });\n flushStacks = false;\n }\n else {\n await this.flushBuffer(this.lastDepth, this.lastKeys);\n }\n }\n const key = await this.util.unaliasKeyword(keys[depth], keys, depth);\n const parentKey = await this.util.unaliasKeywordParent(keys, depth);\n this.parsingContext.emittedStack[depth] = true;\n let handleKey = true;\n // Keywords inside @reverse is not allowed apart from @context\n if (jsonld_context_parser_1.Util.isValidKeyword(key) && parentKey === '@reverse' && key !== '@context') {\n this.emit('error', new jsonld_context_parser_1.ErrorCoded(`Found the @id '${value}' inside an @reverse property`, jsonld_context_parser_1.ERROR_CODES.INVALID_REVERSE_PROPERTY_MAP));\n }\n // Skip further processing if one of the parent nodes are invalid.\n // We use the validationStack to reuse validation results that were produced before with common key stacks.\n let inProperty = false;\n if (this.parsingContext.validationStack.length > 1) {\n inProperty = this.parsingContext.validationStack[this.parsingContext.validationStack.length - 1].property;\n }\n for (let i = Math.max(1, this.parsingContext.validationStack.length - 1); i < keys.length - 1; i++) {\n const validationResult = this.parsingContext.validationStack[i]\n || (this.parsingContext.validationStack[i] = await this.validateKey(keys.slice(0, i + 1), i, inProperty));\n if (!validationResult.valid) {\n this.parsingContext.emittedStack[depth] = false;\n handleKey = false;\n break;\n }\n else if (!inProperty && validationResult.property) {\n inProperty = true;\n }\n }\n // Skip further processing if this node is part of a literal\n if (await this.util.isLiteral(keys, depth)) {\n handleKey = false;\n }\n // Get handler\n if (handleKey) {\n for (const entryHandler of JsonLdParser.ENTRY_HANDLERS) {\n const testResult = await entryHandler.test(this.parsingContext, this.util, key, keys, depth);\n if (testResult) {\n // Pass processing over to the handler\n await entryHandler.handle(this.parsingContext, this.util, key, keys, value, depth, testResult);\n // Flag that this depth is processed\n if (entryHandler.isStackProcessor()) {\n this.parsingContext.processingStack[depth] = true;\n }\n break;\n }\n }\n }\n // Validate value indexes on the root.\n if (depth === 0 && Array.isArray(value)) {\n await this.util.validateValueIndexes(value);\n }\n // When we go up the stack, flush the old stack\n if (flushStacks && depth < this.lastDepth) {\n // Reset our stacks\n this.flushStacks(this.lastDepth);\n }\n this.lastDepth = depth;\n this.lastKeys = keys;\n // Clear the keyword cache at this depth, and everything underneath.\n this.parsingContext.unaliasedKeywordCacheStack.splice(depth - 1);\n }\n /**\n * Flush the processing stacks at the given depth.\n * @param {number} depth A depth.\n */\n flushStacks(depth) {\n this.parsingContext.processingStack.splice(depth, 1);\n this.parsingContext.processingType.splice(depth, 1);\n this.parsingContext.emittedStack.splice(depth, 1);\n this.parsingContext.idStack.splice(depth, 1);\n this.parsingContext.graphStack.splice(depth + 1, 1);\n this.parsingContext.graphContainerTermStack.splice(depth, 1);\n this.parsingContext.jsonLiteralStack.splice(depth, 1);\n this.parsingContext.validationStack.splice(depth - 1, 2);\n this.parsingContext.literalStack.splice(depth, this.parsingContext.literalStack.length - depth);\n this.parsingContext.annotationsBuffer.splice(depth, 1);\n // TODO: just like the literal stack, splice all other stack until the end as well?\n }\n /**\n * Flush buffers for the given depth.\n *\n * This should be called after the last entry at a given depth was processed.\n *\n * @param {number} depth A depth.\n * @param {any[]} keys A stack of keys.\n * @return {Promise} A promise resolving if flushing is done.\n */\n async flushBuffer(depth, keys) {\n let subjects = this.parsingContext.idStack[depth];\n const subjectsWasDefined = !!subjects;\n if (!subjectsWasDefined) {\n subjects = this.parsingContext.idStack[depth] = [this.util.dataFactory.blankNode()];\n }\n // Flush values at this level\n const valueBuffer = this.parsingContext.unidentifiedValuesBuffer[depth];\n if (valueBuffer) {\n for (const subject of subjects) {\n const depthOffsetGraph = await this.util.getDepthOffsetGraph(depth, keys);\n const graphs = (this.parsingContext.graphStack[depth] || depthOffsetGraph >= 0)\n ? this.parsingContext.idStack[depth - depthOffsetGraph - 1]\n : [await this.util.getGraphContainerValue(keys, depth)];\n if (graphs) {\n for (const graph of graphs) {\n // Flush values to stream if the graph @id is known\n this.parsingContext.emittedStack[depth] = true;\n for (const bufferedValue of valueBuffer) {\n this.util.emitQuadChecked(depth, subject, bufferedValue.predicate, bufferedValue.object, graph, bufferedValue.reverse, bufferedValue.isEmbedded);\n }\n }\n }\n else {\n // Place the values in the graphs buffer if the graph @id is not yet known\n const subGraphBuffer = this.parsingContext.getUnidentifiedGraphBufferSafe(depth - await this.util.getDepthOffsetGraph(depth, keys) - 1);\n for (const bufferedValue of valueBuffer) {\n if (bufferedValue.reverse) {\n subGraphBuffer.push({\n object: subject,\n predicate: bufferedValue.predicate,\n subject: bufferedValue.object,\n isEmbedded: bufferedValue.isEmbedded,\n });\n }\n else {\n subGraphBuffer.push({\n object: bufferedValue.object,\n predicate: bufferedValue.predicate,\n subject,\n isEmbedded: bufferedValue.isEmbedded,\n });\n }\n }\n }\n }\n this.parsingContext.unidentifiedValuesBuffer.splice(depth, 1);\n this.parsingContext.literalStack.splice(depth, 1);\n this.parsingContext.jsonLiteralStack.splice(depth, 1);\n }\n // Flush graphs at this level\n const graphBuffer = this.parsingContext.unidentifiedGraphsBuffer[depth];\n if (graphBuffer) {\n for (const subject of subjects) {\n // A @graph statement at the root without @id relates to the default graph,\n // unless there are top-level properties,\n // others relate to blank nodes.\n const graph = depth === 1 && subject.termType === 'BlankNode'\n && !this.parsingContext.topLevelProperties ? this.util.getDefaultGraph() : subject;\n this.parsingContext.emittedStack[depth] = true;\n for (const bufferedValue of graphBuffer) {\n this.parsingContext.emitQuad(depth, this.util.dataFactory.quad(bufferedValue.subject, bufferedValue.predicate, bufferedValue.object, graph));\n }\n }\n this.parsingContext.unidentifiedGraphsBuffer.splice(depth, 1);\n }\n // Push unhandled annotations up the stack as nested annotations\n const annotationsBuffer = this.parsingContext.annotationsBuffer[depth];\n if (annotationsBuffer) {\n // Throw an error if we reach the top, and still have annotations\n if (annotationsBuffer.length > 0 && depth === 1) {\n this.parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Annotations can not be made on top-level nodes`, jsonld_context_parser_1.ERROR_CODES.INVALID_ANNOTATION));\n }\n // Pass the annotations buffer up one level in the stack\n const annotationsBufferParent = this.parsingContext.getAnnotationsBufferSafe(depth - 1);\n for (const annotation of annotationsBuffer) {\n annotationsBufferParent.push(annotation);\n }\n delete this.parsingContext.annotationsBuffer[depth];\n }\n }\n /**\n * Check if at least one {@link IEntryHandler} validates the entry to true.\n * @param {any[]} keys A stack of keys.\n * @param {number} depth A depth.\n * @param {boolean} inProperty If the current depth is part of a valid property node.\n * @return {Promise<{ valid: boolean, property: boolean }>} A promise resolving to true or false.\n */\n async validateKey(keys, depth, inProperty) {\n for (const entryHandler of JsonLdParser.ENTRY_HANDLERS) {\n if (await entryHandler.validate(this.parsingContext, this.util, keys, depth, inProperty)) {\n return { valid: true, property: inProperty || entryHandler.isPropertyHandler() };\n }\n }\n return { valid: false, property: false };\n }\n /**\n * Attach all required listeners to the JSON parser.\n *\n * This should only be called once.\n */\n attachJsonParserListeners() {\n // Listen to json parser events\n this.jsonParser.onValue = (value) => {\n const depth = this.jsonParser.stack.length;\n const keys = (new Array(depth + 1).fill(0)).map((v, i) => {\n return i === depth ? this.jsonParser.key : this.jsonParser.stack[i].key;\n });\n if (!this.isParsingContextInner(depth)) { // Don't parse inner nodes inside @context\n const valueJobCb = () => this.newOnValueJob(keys, value, depth, true);\n if (!this.parsingContext.streamingProfile\n && !this.parsingContext.contextTree.getContext(keys.slice(0, -1))) {\n // If an out-of-order context is allowed,\n // we have to buffer everything.\n // We store jobs for @context's and @type's separately,\n // because at the end, we have to process them first.\n // We also handle @type because these *could* introduce a type-scoped context.\n if (keys[depth] === '@context') {\n let jobs = this.contextJobs[depth];\n if (!jobs) {\n jobs = this.contextJobs[depth] = [];\n }\n jobs.push(valueJobCb);\n }\n else {\n this.contextAwaitingJobs.push({ job: valueJobCb, keys, depth });\n }\n }\n else {\n // Make sure that our value jobs are chained synchronously\n this.lastOnValueJob = this.lastOnValueJob.then(valueJobCb);\n }\n // Execute all buffered jobs on deeper levels\n if (!this.parsingContext.streamingProfile && depth === 0) {\n this.lastOnValueJob = this.lastOnValueJob\n .then(() => this.executeBufferedJobs());\n }\n }\n };\n this.jsonParser.onError = (error) => {\n this.emit('error', error);\n };\n }\n /**\n * Check if the parser is currently parsing an element that is part of an @context entry.\n * @param {number} depth A depth.\n * @return {boolean} A boolean.\n */\n isParsingContextInner(depth) {\n for (let i = depth; i > 0; i--) {\n if (this.jsonParser.stack[i - 1].key === '@context') {\n return true;\n }\n }\n return false;\n }\n /**\n * Execute all buffered jobs.\n * @return {Promise} A promise resolving if all jobs are finished.\n */\n async executeBufferedJobs() {\n // Handle context jobs\n for (const jobs of this.contextJobs) {\n if (jobs) {\n for (const job of jobs) {\n await job();\n }\n }\n }\n // Clear the keyword cache.\n this.parsingContext.unaliasedKeywordCacheStack.splice(0);\n const contextAwaitingJobs = [];\n for (const job of this.contextAwaitingJobs) {\n if ((await this.util.unaliasKeyword(job.keys[job.depth], job.keys, job.depth, true)) === '@type'\n || typeof job.keys[job.depth] === 'number' && (await this.util.unaliasKeyword(job.keys[job.depth - 1], job.keys, job.depth - 1, true)) === '@type') { // Also capture @type with array values\n // Remove @type from keys, because we want it to apply to parent later on\n this.typeJobs.push({ job: job.job, keys: job.keys.slice(0, job.keys.length - 1) });\n }\n else {\n contextAwaitingJobs.push(job);\n }\n }\n // Handle non-context jobs\n for (const job of contextAwaitingJobs) {\n // Check if we have a type (with possible type-scoped context) that should be handled before.\n // We check all possible parent nodes for the current job, from root to leaves.\n if (this.typeJobs.length > 0) {\n // First collect all applicable type jobs\n const applicableTypeJobs = [];\n const applicableTypeJobIds = [];\n for (let i = 0; i < this.typeJobs.length; i++) {\n const typeJob = this.typeJobs[i];\n if (Util_1.Util.isPrefixArray(typeJob.keys, job.keys)) {\n applicableTypeJobs.push(typeJob);\n applicableTypeJobIds.push(i);\n }\n }\n // Next, sort the jobs from short to long key length (to ensure types higher up in the tree to be handled first)\n const sortedTypeJobs = applicableTypeJobs.sort((job1, job2) => job1.keys.length - job2.keys.length);\n // Finally, execute the jobs in order\n for (const typeJob of sortedTypeJobs) {\n await typeJob.job();\n }\n // Remove the executed type jobs\n // Sort first, so we can efficiently splice\n const sortedApplicableTypeJobIds = applicableTypeJobIds.sort().reverse();\n for (const jobId of sortedApplicableTypeJobIds) {\n this.typeJobs.splice(jobId, 1);\n }\n }\n await job.job();\n }\n }\n}\nJsonLdParser.DEFAULT_PROCESSING_MODE = '1.1';\nJsonLdParser.ENTRY_HANDLERS = [\n new EntryHandlerArrayValue_1.EntryHandlerArrayValue(),\n new EntryHandlerKeywordContext_1.EntryHandlerKeywordContext(),\n new EntryHandlerKeywordId_1.EntryHandlerKeywordId(),\n new EntryHandlerKeywordIncluded_1.EntryHandlerKeywordIncluded(),\n new EntryHandlerKeywordGraph_1.EntryHandlerKeywordGraph(),\n new EntryHandlerKeywordNest_1.EntryHandlerKeywordNest(),\n new EntryHandlerKeywordType_1.EntryHandlerKeywordType(),\n new EntryHandlerKeywordValue_1.EntryHandlerKeywordValue(),\n new EntryHandlerKeywordAnnotation_1.EntryHandlerKeywordAnnotation(),\n new EntryHandlerContainer_1.EntryHandlerContainer(),\n new EntryHandlerKeywordUnknownFallback_1.EntryHandlerKeywordUnknownFallback(),\n new EntryHandlerPredicate_1.EntryHandlerPredicate(),\n new EntryHandlerInvalidFallback_1.EntryHandlerInvalidFallback(),\n];\nexports.JsonLdParser = JsonLdParser;\n//# sourceMappingURL=JsonLdParser.js.map\n\n//# sourceURL=webpack://bookmarks/./node_modules/jsonld-streaming-parser/lib/JsonLdParser.js?"); /***/ }), /***/ "./node_modules/jsonld-streaming-parser/lib/ParsingContext.js": /*!********************************************************************!*\ !*** ./node_modules/jsonld-streaming-parser/lib/ParsingContext.js ***! \********************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ParsingContext = void 0;\nconst jsonld_context_parser_1 = __webpack_require__(/*! jsonld-context-parser */ \"./node_modules/jsonld-context-parser/index.js\");\nconst ErrorCoded_1 = __webpack_require__(/*! jsonld-context-parser/lib/ErrorCoded */ \"./node_modules/jsonld-context-parser/lib/ErrorCoded.js\");\nconst ContextTree_1 = __webpack_require__(/*! ./ContextTree */ \"./node_modules/jsonld-streaming-parser/lib/ContextTree.js\");\nconst JsonLdParser_1 = __webpack_require__(/*! ./JsonLdParser */ \"./node_modules/jsonld-streaming-parser/lib/JsonLdParser.js\");\n/**\n * Data holder for parsing information.\n */\nclass ParsingContext {\n constructor(options) {\n // Initialize settings\n this.contextParser = new jsonld_context_parser_1.ContextParser({ documentLoader: options.documentLoader, skipValidation: options.skipContextValidation });\n this.streamingProfile = !!options.streamingProfile;\n this.baseIRI = options.baseIRI;\n this.produceGeneralizedRdf = !!options.produceGeneralizedRdf;\n this.allowSubjectList = !!options.allowSubjectList;\n this.processingMode = options.processingMode || JsonLdParser_1.JsonLdParser.DEFAULT_PROCESSING_MODE;\n this.strictValues = !!options.strictValues;\n this.validateValueIndexes = !!options.validateValueIndexes;\n this.defaultGraph = options.defaultGraph;\n this.rdfDirection = options.rdfDirection;\n this.normalizeLanguageTags = options.normalizeLanguageTags;\n this.streamingProfileAllowOutOfOrderPlainType = options.streamingProfileAllowOutOfOrderPlainType;\n this.rdfstar = options.rdfstar !== false;\n this.rdfstarReverseInEmbedded = options.rdfstarReverseInEmbedded;\n this.topLevelProperties = false;\n this.activeProcessingMode = parseFloat(this.processingMode);\n // Initialize stacks\n this.processingStack = [];\n this.processingType = [];\n this.emittedStack = [];\n this.idStack = [];\n this.graphStack = [];\n this.graphContainerTermStack = [];\n this.listPointerStack = [];\n this.contextTree = new ContextTree_1.ContextTree();\n this.literalStack = [];\n this.validationStack = [];\n this.unaliasedKeywordCacheStack = [];\n this.jsonLiteralStack = [];\n this.unidentifiedValuesBuffer = [];\n this.unidentifiedGraphsBuffer = [];\n this.annotationsBuffer = [];\n this.pendingContainerFlushBuffers = [];\n this.parser = options.parser;\n if (options.context) {\n this.rootContext = this.parseContext(options.context);\n this.rootContext.then((context) => this.validateContext(context));\n }\n else {\n this.rootContext = Promise.resolve(new jsonld_context_parser_1.JsonLdContextNormalized(this.baseIRI ? { '@base': this.baseIRI, '@__baseDocument': true } : {}));\n }\n }\n /**\n * Parse the given context with the configured options.\n * @param {JsonLdContext} context A context to parse.\n * @param {JsonLdContextNormalized} parentContext An optional parent context.\n * @param {boolean} ignoreProtection If @protected term checks should be ignored.\n * @return {Promise} A promise resolving to the parsed context.\n */\n async parseContext(context, parentContext, ignoreProtection) {\n return this.contextParser.parse(context, {\n baseIRI: this.baseIRI,\n ignoreProtection,\n normalizeLanguageTags: this.normalizeLanguageTags,\n parentContext,\n processingMode: this.activeProcessingMode,\n });\n }\n /**\n * Check if the given context is valid.\n * If not, an error will be thrown.\n * @param {JsonLdContextNormalized} context A context.\n */\n validateContext(context) {\n const activeVersion = context.getContextRaw()['@version'];\n if (activeVersion) {\n if (this.activeProcessingMode && activeVersion > this.activeProcessingMode) {\n throw new ErrorCoded_1.ErrorCoded(`Unsupported JSON-LD version '${activeVersion}' under active processing mode ${this.activeProcessingMode}.`, ErrorCoded_1.ERROR_CODES.PROCESSING_MODE_CONFLICT);\n }\n else {\n if (this.activeProcessingMode && activeVersion < this.activeProcessingMode) {\n throw new ErrorCoded_1.ErrorCoded(`Invalid JSON-LD version ${activeVersion} under active processing mode ${this.activeProcessingMode}.`, ErrorCoded_1.ERROR_CODES.INVALID_VERSION_VALUE);\n }\n this.activeProcessingMode = activeVersion;\n }\n }\n }\n /**\n * Get the context at the given path.\n * @param {keys} keys The path of keys to get the context at.\n * @param {number} offset The path offset, defaults to 1.\n * @return {Promise} A promise resolving to a context.\n */\n async getContext(keys, offset = 1) {\n const keysOriginal = keys;\n // Ignore array keys at the end\n while (typeof keys[keys.length - 1] === 'number') {\n keys = keys.slice(0, keys.length - 1);\n }\n // Handle offset on keys\n if (offset) {\n keys = keys.slice(0, -offset);\n }\n // Determine the closest context\n const contextData = await this.getContextPropagationAware(keys);\n const context = contextData.context;\n // Process property-scoped contexts (high-to-low)\n let contextRaw = context.getContextRaw();\n for (let i = contextData.depth; i < keysOriginal.length - offset; i++) {\n const key = keysOriginal[i];\n const contextKeyEntry = contextRaw[key];\n if (contextKeyEntry && typeof contextKeyEntry === 'object' && '@context' in contextKeyEntry) {\n const scopedContext = (await this.parseContext(contextKeyEntry, contextRaw, true)).getContextRaw();\n const propagate = !(key in scopedContext)\n || scopedContext[key]['@context']['@propagate']; // Propagation is true by default\n if (propagate !== false || i === keysOriginal.length - 1 - offset) {\n contextRaw = Object.assign({}, scopedContext);\n // Clean up final context\n delete contextRaw['@propagate'];\n contextRaw[key] = Object.assign({}, contextRaw[key]);\n if ('@id' in contextKeyEntry) {\n contextRaw[key]['@id'] = contextKeyEntry['@id'];\n }\n delete contextRaw[key]['@context'];\n if (propagate !== false) {\n this.contextTree.setContext(keysOriginal.slice(0, i + offset), Promise.resolve(new jsonld_context_parser_1.JsonLdContextNormalized(contextRaw)));\n }\n }\n }\n }\n return new jsonld_context_parser_1.JsonLdContextNormalized(contextRaw);\n }\n /**\n * Get the context at the given path.\n * Non-propagating contexts will be skipped,\n * unless the context at that exact depth is retrieved.\n *\n * This ONLY takes into account context propagation logic,\n * so this should usually not be called directly,\n * call {@link #getContext} instead.\n *\n * @param keys The path of keys to get the context at.\n * @return {Promise<{ context: JsonLdContextNormalized, depth: number }>} A context and its depth.\n */\n async getContextPropagationAware(keys) {\n const originalDepth = keys.length;\n let contextData = null;\n let hasApplicablePropertyScopedContext;\n do {\n hasApplicablePropertyScopedContext = false;\n if (contextData && '@__propagateFallback' in contextData.context.getContextRaw()) {\n // If a propagation fallback context has been set,\n // fallback to that context and retry for the same depth.\n contextData.context = new jsonld_context_parser_1.JsonLdContextNormalized(contextData.context.getContextRaw()['@__propagateFallback']);\n }\n else {\n if (contextData) {\n // If we had a previous iteration, jump to the parent of context depth.\n // We must do this because once we get here, last context had propagation disabled,\n // so we check its first parent instead.\n keys = keys.slice(0, contextData.depth - 1);\n }\n contextData = await this.contextTree.getContext(keys) || { context: await this.rootContext, depth: 0 };\n }\n // Allow non-propagating contexts to propagate one level deeper\n // if it defines a property-scoped context that is applicable for the current key.\n // @see https://w3c.github.io/json-ld-api/tests/toRdf-manifest#tc012\n const lastKey = keys[keys.length - 1];\n if (lastKey in contextData.context.getContextRaw()) {\n const lastKeyValue = contextData.context.getContextRaw()[lastKey];\n if (lastKeyValue && typeof lastKeyValue === 'object' && '@context' in lastKeyValue) {\n hasApplicablePropertyScopedContext = true;\n }\n }\n } while (contextData.depth > 0 // Root context has a special case\n && contextData.context.getContextRaw()['@propagate'] === false // Stop loop if propagation is true\n && contextData.depth !== originalDepth // Stop loop if requesting exact depth of non-propagating\n && !hasApplicablePropertyScopedContext);\n // Special case for root context that does not allow propagation.\n // Fallback to empty context in that case.\n if (contextData.depth === 0\n && contextData.context.getContextRaw()['@propagate'] === false\n && contextData.depth !== originalDepth) {\n contextData.context = new jsonld_context_parser_1.JsonLdContextNormalized({});\n }\n return contextData;\n }\n /**\n * Start a new job for parsing the given value.\n * @param {any[]} keys The stack of keys.\n * @param value The value to parse.\n * @param {number} depth The depth to parse at.\n * @param {boolean} lastDepthCheck If the lastDepth check should be done for buffer draining.\n * @return {Promise} A promise resolving when the job is done.\n */\n async newOnValueJob(keys, value, depth, lastDepthCheck) {\n await this.parser.newOnValueJob(keys, value, depth, lastDepthCheck);\n }\n /**\n * Flush the pending container flush buffers\n * @return {boolean} If any pending buffers were flushed.\n */\n async handlePendingContainerFlushBuffers() {\n if (this.pendingContainerFlushBuffers.length > 0) {\n for (const pendingFlushBuffer of this.pendingContainerFlushBuffers) {\n await this.parser.flushBuffer(pendingFlushBuffer.depth, pendingFlushBuffer.keys);\n this.parser.flushStacks(pendingFlushBuffer.depth);\n }\n this.pendingContainerFlushBuffers.splice(0, this.pendingContainerFlushBuffers.length);\n return true;\n }\n else {\n return false;\n }\n }\n /**\n * Emit the given quad into the output stream.\n * @param {number} depth The depth the quad was generated at.\n * @param {Quad} quad A quad to emit.\n */\n emitQuad(depth, quad) {\n if (depth === 1) {\n this.topLevelProperties = true;\n }\n this.parser.push(quad);\n }\n /**\n * Emit the given error into the output stream.\n * @param {Error} error An error to emit.\n */\n emitError(error) {\n this.parser.emit('error', error);\n }\n /**\n * Emit the given context into the output stream under the 'context' event.\n * @param {JsonLdContext} context A context to emit.\n */\n emitContext(context) {\n this.parser.emit('context', context);\n }\n /**\n * Safely get or create the depth value of {@link ParsingContext.unidentifiedValuesBuffer}.\n * @param {number} depth A depth.\n * @return {{predicate: Term; object: Term; reverse: boolean}[]} An element of\n * {@link ParsingContext.unidentifiedValuesBuffer}.\n */\n getUnidentifiedValueBufferSafe(depth) {\n let buffer = this.unidentifiedValuesBuffer[depth];\n if (!buffer) {\n buffer = [];\n this.unidentifiedValuesBuffer[depth] = buffer;\n }\n return buffer;\n }\n /**\n * Safely get or create the depth value of {@link ParsingContext.unidentifiedGraphsBuffer}.\n * @param {number} depth A depth.\n * @return {{predicate: Term; object: Term; reverse: boolean}[]} An element of\n * {@link ParsingContext.unidentifiedGraphsBuffer}.\n */\n getUnidentifiedGraphBufferSafe(depth) {\n let buffer = this.unidentifiedGraphsBuffer[depth];\n if (!buffer) {\n buffer = [];\n this.unidentifiedGraphsBuffer[depth] = buffer;\n }\n return buffer;\n }\n /**\n * Safely get or create the depth value of {@link ParsingContext.annotationsBuffer}.\n * @param {number} depth A depth.\n * @return {} An element of {@link ParsingContext.annotationsBuffer}.\n */\n getAnnotationsBufferSafe(depth) {\n let buffer = this.annotationsBuffer[depth];\n if (!buffer) {\n buffer = [];\n this.annotationsBuffer[depth] = buffer;\n }\n return buffer;\n }\n /**\n * @return IExpandOptions The expand options for the active processing mode.\n */\n getExpandOptions() {\n return ParsingContext.EXPAND_OPTIONS[this.activeProcessingMode];\n }\n /**\n * Shift the stack at the given offset to the given depth.\n *\n * This will override anything in the stack at `depth`,\n * and this will remove anything at `depth + depthOffset`\n *\n * @param depth The target depth.\n * @param depthOffset The origin depth, relative to `depth`.\n */\n shiftStack(depth, depthOffset) {\n // Copy the id stack value up one level so that the next job can access the id.\n const deeperIdStack = this.idStack[depth + depthOffset];\n if (deeperIdStack) {\n this.idStack[depth] = deeperIdStack;\n this.emittedStack[depth] = true;\n delete this.idStack[depth + depthOffset];\n }\n // Shorten key stack\n if (this.pendingContainerFlushBuffers.length) {\n for (const buffer of this.pendingContainerFlushBuffers) {\n if (buffer.depth >= depth + depthOffset) {\n buffer.depth -= depthOffset;\n buffer.keys.splice(depth, depthOffset);\n }\n }\n }\n // Splice stacks\n if (this.unidentifiedValuesBuffer[depth + depthOffset]) {\n this.unidentifiedValuesBuffer[depth] = this.unidentifiedValuesBuffer[depth + depthOffset];\n delete this.unidentifiedValuesBuffer[depth + depthOffset];\n }\n if (this.annotationsBuffer[depth + depthOffset - 1]) {\n if (!this.annotationsBuffer[depth - 1]) {\n this.annotationsBuffer[depth - 1] = [];\n }\n this.annotationsBuffer[depth - 1] = [\n ...this.annotationsBuffer[depth - 1],\n ...this.annotationsBuffer[depth + depthOffset - 1],\n ];\n delete this.annotationsBuffer[depth + depthOffset - 1];\n }\n // TODO: also do the same for other stacks\n }\n}\nParsingContext.EXPAND_OPTIONS = {\n 1.0: {\n allowPrefixForcing: false,\n allowPrefixNonGenDelims: false,\n allowVocabRelativeToBase: false,\n },\n 1.1: {\n allowPrefixForcing: true,\n allowPrefixNonGenDelims: false,\n allowVocabRelativeToBase: true,\n },\n};\nexports.ParsingContext = ParsingContext;\n//# sourceMappingURL=ParsingContext.js.map\n\n//# sourceURL=webpack://bookmarks/./node_modules/jsonld-streaming-parser/lib/ParsingContext.js?"); /***/ }), /***/ "./node_modules/jsonld-streaming-parser/lib/Util.js": /*!**********************************************************!*\ !*** ./node_modules/jsonld-streaming-parser/lib/Util.js ***! \**********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Util = void 0;\nconst jsonld_context_parser_1 = __webpack_require__(/*! jsonld-context-parser */ \"./node_modules/jsonld-context-parser/index.js\");\nconst rdf_data_factory_1 = __webpack_require__(/*! rdf-data-factory */ \"./node_modules/rdf-data-factory/index.js\");\nconst EntryHandlerContainer_1 = __webpack_require__(/*! ./entryhandler/EntryHandlerContainer */ \"./node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerContainer.js\");\n// tslint:disable-next-line:no-var-requires\nconst canonicalizeJson = __webpack_require__(/*! canonicalize */ \"./node_modules/canonicalize/lib/canonicalize.js\");\n/**\n * Utility functions and methods.\n */\nclass Util {\n constructor(options) {\n this.parsingContext = options.parsingContext;\n this.dataFactory = options.dataFactory || new rdf_data_factory_1.DataFactory();\n this.rdfFirst = this.dataFactory.namedNode(Util.RDF + 'first');\n this.rdfRest = this.dataFactory.namedNode(Util.RDF + 'rest');\n this.rdfNil = this.dataFactory.namedNode(Util.RDF + 'nil');\n this.rdfType = this.dataFactory.namedNode(Util.RDF + 'type');\n this.rdfJson = this.dataFactory.namedNode(Util.RDF + 'JSON');\n }\n /**\n * Helper function to get the value of a context entry,\n * or fallback to a certain value.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} contextKey A pre-defined JSON-LD key in context entries.\n * @param {string} key A context entry key.\n * @param {string} fallback A fallback value for when the given contextKey\n * could not be found in the value with the given key.\n * @return {string} The value of the given contextKey in the entry behind key in the given context,\n * or the given fallback value.\n */\n static getContextValue(context, contextKey, key, fallback) {\n const entry = context.getContextRaw()[key];\n if (!entry) {\n return fallback;\n }\n const type = entry[contextKey];\n return type === undefined ? fallback : type;\n }\n /**\n * Get the container type of the given key in the context.\n *\n * Should any context-scoping bugs should occur related to this in the future,\n * it may be required to increase the offset from the depth at which the context is retrieved by one (to 2).\n * This is because containers act 2 levels deep.\n *\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {string} The container type.\n */\n static getContextValueContainer(context, key) {\n return Util.getContextValue(context, '@container', key, { '@set': true });\n }\n /**\n * Get the value type of the given key in the context.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {string} The node type.\n */\n static getContextValueType(context, key) {\n const valueType = Util.getContextValue(context, '@type', key, null);\n if (valueType === '@none') {\n return null;\n }\n return valueType;\n }\n /**\n * Get the language of the given key in the context.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {string} The node type.\n */\n static getContextValueLanguage(context, key) {\n return Util.getContextValue(context, '@language', key, context.getContextRaw()['@language'] || null);\n }\n /**\n * Get the direction of the given key in the context.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {string} The node type.\n */\n static getContextValueDirection(context, key) {\n return Util.getContextValue(context, '@direction', key, context.getContextRaw()['@direction'] || null);\n }\n /**\n * Check if the given key in the context is a reversed property.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {boolean} If the context value has a @reverse key.\n */\n static isContextValueReverse(context, key) {\n return !!Util.getContextValue(context, '@reverse', key, null);\n }\n /**\n * Get the @index of the given key in the context.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key A context entry key.\n * @return {string} The index.\n */\n static getContextValueIndex(context, key) {\n return Util.getContextValue(context, '@index', key, context.getContextRaw()['@index'] || null);\n }\n /**\n * Check if the given key refers to a reversed property.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key The property key.\n * @param {string} parentKey The parent key.\n * @return {boolean} If the property must be reversed.\n */\n static isPropertyReverse(context, key, parentKey) {\n // '!==' is needed because reversed properties in a @reverse container should cancel each other out.\n return parentKey === '@reverse' !== Util.isContextValueReverse(context, key);\n }\n /**\n * Check if the given key exists inside an embedded node as direct child.\n * @param {string} parentKey The parent key.\n * @return {boolean} If the property is embedded.\n */\n static isPropertyInEmbeddedNode(parentKey) {\n return parentKey === '@id';\n }\n /**\n * Check if the given key exists inside an annotation object as direct child.\n * @param {string} parentKey The parent key.\n * @return {boolean} If the property is an annotation.\n */\n static isPropertyInAnnotationObject(parentKey) {\n return parentKey === '@annotation';\n }\n /**\n * Check if the given IRI is valid.\n * @param {string} iri A potential IRI.\n * @return {boolean} If the given IRI is valid.\n */\n static isValidIri(iri) {\n return iri !== null && jsonld_context_parser_1.Util.isValidIri(iri);\n }\n /**\n * Check if the given first array (needle) is a prefix of the given second array (haystack).\n * @param needle An array to check if it is a prefix.\n * @param haystack An array to look in.\n */\n static isPrefixArray(needle, haystack) {\n if (needle.length > haystack.length) {\n return false;\n }\n for (let i = 0; i < needle.length; i++) {\n if (needle[i] !== haystack[i]) {\n return false;\n }\n }\n return true;\n }\n /**\n * Make sure that @id-@index pairs are equal over all array values.\n * Reject otherwise.\n * @param {any[]} value An array value.\n * @return {Promise} A promise rejecting if conflicts are present.\n */\n async validateValueIndexes(value) {\n if (this.parsingContext.validateValueIndexes) {\n const indexHashes = {};\n for (const entry of value) {\n if (entry && typeof entry === 'object') {\n const id = entry['@id'];\n const index = entry['@index'];\n if (id && index) {\n const existingIndexValue = indexHashes[id];\n if (existingIndexValue && existingIndexValue !== index) {\n throw new jsonld_context_parser_1.ErrorCoded(`Conflicting @index value for ${id}`, jsonld_context_parser_1.ERROR_CODES.CONFLICTING_INDEXES);\n }\n indexHashes[id] = index;\n }\n }\n }\n }\n }\n /**\n * Convert a given JSON value to an RDF term.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key The current JSON key.\n * @param value A JSON value.\n * @param {number} depth The depth the value is at.\n * @param {string[]} keys The path of keys.\n * @return {Promise} An RDF term array.\n */\n async valueToTerm(context, key, value, depth, keys) {\n // Skip further processing if we have an @type: @json\n if (Util.getContextValueType(context, key) === '@json') {\n return [this.dataFactory.literal(this.valueToJsonString(value), this.rdfJson)];\n }\n const type = typeof value;\n switch (type) {\n case 'object':\n // Skip if we have a null or undefined object\n if (value === null || value === undefined) {\n return [];\n }\n // Special case for arrays\n if (Array.isArray(value)) {\n // We handle arrays at value level so we can emit earlier, so this is handled already when we get here.\n // Empty context-based lists are emitted at this place, because our streaming algorithm doesn't detect those.\n if ('@list' in Util.getContextValueContainer(context, key)) {\n if (value.length === 0) {\n return [this.rdfNil];\n }\n else {\n return this.parsingContext.idStack[depth + 1] || [];\n }\n }\n await this.validateValueIndexes(value);\n return [];\n }\n // Handle property-scoped contexts\n context = await this.getContextSelfOrPropertyScoped(context, key);\n // Handle local context in the value\n if ('@context' in value) {\n context = await this.parsingContext.parseContext(value['@context'], (await this.parsingContext.getContext(keys, 0)).getContextRaw());\n }\n // In all other cases, we have a hash\n value = await this.unaliasKeywords(value, keys, depth, context); // Un-alias potential keywords in this hash\n if ('@value' in value) {\n let val;\n let valueLanguage;\n let valueDirection;\n let valueType;\n let valueIndex; // We don't use the index, but we need to check its type for spec-compliance\n for (key in value) {\n const subValue = value[key];\n switch (key) {\n case '@value':\n val = subValue;\n break;\n case '@language':\n valueLanguage = subValue;\n break;\n case '@direction':\n valueDirection = subValue;\n break;\n case '@type':\n valueType = subValue;\n break;\n case '@index':\n valueIndex = subValue;\n break;\n case '@annotation':\n // This keyword is allowed, but is processed like normal nodes\n break;\n default:\n throw new jsonld_context_parser_1.ErrorCoded(`Unknown value entry '${key}' in @value: ${JSON.stringify(value)}`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT);\n }\n }\n // Skip further processing if we have an @type: @json\n if (await this.unaliasKeyword(valueType, keys, depth, true, context) === '@json') {\n return [this.dataFactory.literal(this.valueToJsonString(val), this.rdfJson)];\n }\n // Validate @value\n if (val === null) {\n return [];\n }\n if (typeof val === 'object') {\n throw new jsonld_context_parser_1.ErrorCoded(`The value of an '@value' can not be an object, got '${JSON.stringify(val)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT_VALUE);\n }\n // Validate @index\n if (this.parsingContext.validateValueIndexes && valueIndex && typeof valueIndex !== 'string') {\n throw new jsonld_context_parser_1.ErrorCoded(`The value of an '@index' must be a string, got '${JSON.stringify(valueIndex)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_INDEX_VALUE);\n }\n // Validate @language and @direction\n if (valueLanguage) {\n if (typeof val !== 'string') {\n throw new jsonld_context_parser_1.ErrorCoded(`When an '@language' is set, the value of '@value' must be a string, got '${JSON.stringify(val)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_LANGUAGE_TAGGED_VALUE);\n }\n if (!jsonld_context_parser_1.ContextParser.validateLanguage(valueLanguage, this.parsingContext.strictValues, jsonld_context_parser_1.ERROR_CODES.INVALID_LANGUAGE_TAGGED_STRING)) {\n return [];\n }\n // Language tags are always normalized to lowercase in 1.0.\n if (this.parsingContext.normalizeLanguageTags || this.parsingContext.activeProcessingMode === 1.0) {\n valueLanguage = valueLanguage.toLowerCase();\n }\n }\n if (valueDirection) {\n if (typeof val !== 'string') {\n throw new Error(`When an '@direction' is set, the value of '@value' must be a string, got '${JSON.stringify(val)}'`);\n }\n if (!jsonld_context_parser_1.ContextParser.validateDirection(valueDirection, this.parsingContext.strictValues)) {\n return [];\n }\n }\n // Check @language and @direction\n if (valueLanguage && valueDirection && this.parsingContext.rdfDirection) {\n if (valueType) {\n throw new jsonld_context_parser_1.ErrorCoded(`Can not have '@language', '@direction' and '@type' in a value: '${JSON\n .stringify(value)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT);\n }\n return this.nullableTermToArray(this\n .createLanguageDirectionLiteral(depth, val, valueLanguage, valueDirection));\n }\n else if (valueLanguage) { // Check @language\n if (valueType) {\n throw new jsonld_context_parser_1.ErrorCoded(`Can not have both '@language' and '@type' in a value: '${JSON.stringify(value)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT);\n }\n return [this.dataFactory.literal(val, valueLanguage)];\n }\n else if (valueDirection && this.parsingContext.rdfDirection) { // Check @direction\n if (valueType) {\n throw new jsonld_context_parser_1.ErrorCoded(`Can not have both '@direction' and '@type' in a value: '${JSON.stringify(value)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT);\n }\n return this.nullableTermToArray(this\n .createLanguageDirectionLiteral(depth, val, valueLanguage, valueDirection));\n }\n else if (valueType) { // Validate @type\n if (typeof valueType !== 'string') {\n throw new jsonld_context_parser_1.ErrorCoded(`The value of an '@type' must be a string, got '${JSON.stringify(valueType)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_TYPED_VALUE);\n }\n const typeTerm = this.createVocabOrBaseTerm(context, valueType);\n if (!typeTerm) {\n throw new jsonld_context_parser_1.ErrorCoded(`Invalid '@type' value, got '${JSON.stringify(valueType)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_TYPED_VALUE);\n }\n if (typeTerm.termType !== 'NamedNode') {\n throw new jsonld_context_parser_1.ErrorCoded(`Illegal value type (${typeTerm.termType}): ${valueType}`, jsonld_context_parser_1.ERROR_CODES.INVALID_TYPED_VALUE);\n }\n return [this.dataFactory.literal(val, typeTerm)];\n }\n // We don't pass the context, because context-based things like @language should be ignored\n return await this.valueToTerm(new jsonld_context_parser_1.JsonLdContextNormalized({}), key, val, depth, keys);\n }\n else if ('@set' in value) {\n // No other entries are allow in this value\n if (Object.keys(value).length > 1) {\n throw new jsonld_context_parser_1.ErrorCoded(`Found illegal neighbouring entries next to @set for key: '${key}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_SET_OR_LIST_OBJECT);\n }\n // No need to do anything here, this is handled at the deeper level.\n return [];\n }\n else if ('@list' in value) {\n // No other entries are allowed in this value\n if (Object.keys(value).length > 1) {\n throw new jsonld_context_parser_1.ErrorCoded(`Found illegal neighbouring entries next to @list for key: '${key}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_SET_OR_LIST_OBJECT);\n }\n const listValue = value[\"@list\"];\n // We handle lists at value level so we can emit earlier, so this is handled already when we get here.\n // Empty anonymous lists are emitted at this place, because our streaming algorithm doesn't detect those.\n if (Array.isArray(listValue)) {\n if (listValue.length === 0) {\n return [this.rdfNil];\n }\n else {\n return this.parsingContext.idStack[depth + 1] || [];\n }\n }\n else {\n // We only have a single list element here, so emit this directly as single element\n return await this.valueToTerm(await this.parsingContext.getContext(keys), key, listValue, depth - 1, keys.slice(0, -1));\n }\n }\n else if ('@reverse' in value && typeof value['@reverse'] === 'boolean') {\n // We handle reverse properties at value level so we can emit earlier,\n // so this is handled already when we get here.\n return [];\n }\n else if ('@graph' in Util.getContextValueContainer(await this.parsingContext.getContext(keys), key)) {\n // We are processing a graph container\n const graphContainerEntries = this.parsingContext.graphContainerTermStack[depth + 1];\n return graphContainerEntries ? Object.values(graphContainerEntries) : [this.dataFactory.blankNode()];\n }\n else if (\"@id\" in value) {\n // Use deeper context if the value node contains other properties next to @id.\n if (Object.keys(value).length > 1) {\n context = await this.parsingContext.getContext(keys, 0);\n }\n // Handle local context in the value\n if ('@context' in value) {\n context = await this.parsingContext.parseContext(value['@context'], context.getContextRaw());\n }\n if (value[\"@type\"] === '@vocab') {\n return this.nullableTermToArray(this.createVocabOrBaseTerm(context, value[\"@id\"]));\n }\n else {\n const valueId = value[\"@id\"];\n let valueTerm;\n if (typeof valueId === 'object') {\n if (this.parsingContext.rdfstar) {\n valueTerm = this.parsingContext.idStack[depth + 1][0];\n }\n else {\n throw new jsonld_context_parser_1.ErrorCoded(`Found illegal @id '${value}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_ID_VALUE);\n }\n }\n else {\n valueTerm = this.resourceToTerm(context, valueId);\n }\n return this.nullableTermToArray(valueTerm);\n }\n }\n else {\n // Only make a blank node if at least one triple was emitted at the value's level.\n if (this.parsingContext.emittedStack[depth + 1]\n || (value && typeof value === 'object' && Object.keys(value).length === 0)) {\n return (this.parsingContext.idStack[depth + 1]\n || (this.parsingContext.idStack[depth + 1] = [this.dataFactory.blankNode()]));\n }\n else {\n return [];\n }\n }\n case 'string':\n return this.nullableTermToArray(this.stringValueToTerm(depth, await this.getContextSelfOrPropertyScoped(context, key), key, value, null));\n case 'boolean':\n return this.nullableTermToArray(this.stringValueToTerm(depth, await this.getContextSelfOrPropertyScoped(context, key), key, Boolean(value).toString(), this.dataFactory.namedNode(Util.XSD_BOOLEAN)));\n case 'number':\n return this.nullableTermToArray(this.stringValueToTerm(depth, await this.getContextSelfOrPropertyScoped(context, key), key, value, this.dataFactory.namedNode(value % 1 === 0 && value < 1e21 ? Util.XSD_INTEGER : Util.XSD_DOUBLE)));\n default:\n this.parsingContext.emitError(new Error(`Could not determine the RDF type of a ${type}`));\n return [];\n }\n }\n /**\n * If the context defines a property-scoped context for the given key,\n * that context will be returned.\n * Otherwise, the given context will be returned as-is.\n *\n * This should be used for valueToTerm cases that are not objects.\n * @param context A context.\n * @param key A JSON key.\n */\n async getContextSelfOrPropertyScoped(context, key) {\n const contextKeyEntry = context.getContextRaw()[key];\n if (contextKeyEntry && typeof contextKeyEntry === 'object' && '@context' in contextKeyEntry) {\n context = await this.parsingContext.parseContext(contextKeyEntry, context.getContextRaw(), true);\n }\n return context;\n }\n /**\n * If the given term is null, return an empty array, otherwise return an array with the single given term.\n * @param term A term.\n */\n nullableTermToArray(term) {\n return term ? [term] : [];\n }\n /**\n * Convert a given JSON key to an RDF predicate term,\n * based on @vocab.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param key A JSON key.\n * @return {RDF.NamedNode} An RDF named node.\n */\n predicateToTerm(context, key) {\n const expanded = context.expandTerm(key, true, this.parsingContext.getExpandOptions());\n // Immediately return if the predicate was disabled in the context\n if (!expanded) {\n return null;\n }\n // Check if the predicate is a blank node\n if (expanded[0] === '_' && expanded[1] === ':') {\n if (this.parsingContext.produceGeneralizedRdf) {\n return this.dataFactory.blankNode(expanded.substr(2));\n }\n else {\n return null;\n }\n }\n // Check if the predicate is a valid IRI\n if (Util.isValidIri(expanded)) {\n return this.dataFactory.namedNode(expanded);\n }\n else {\n if (expanded && this.parsingContext.strictValues) {\n this.parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Invalid predicate IRI: ${expanded}`, jsonld_context_parser_1.ERROR_CODES.INVALID_IRI_MAPPING));\n }\n else {\n return null;\n }\n }\n return null;\n }\n /**\n * Convert a given JSON key to an RDF resource term or blank node,\n * based on @base.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param key A JSON key.\n * @return {RDF.NamedNode} An RDF named node or null.\n */\n resourceToTerm(context, key) {\n if (key.startsWith('_:')) {\n return this.dataFactory.blankNode(key.substr(2));\n }\n const iri = context.expandTerm(key, false, this.parsingContext.getExpandOptions());\n if (!Util.isValidIri(iri)) {\n if (iri && this.parsingContext.strictValues) {\n this.parsingContext.emitError(new Error(`Invalid resource IRI: ${iri}`));\n }\n else {\n return null;\n }\n }\n return this.dataFactory.namedNode(iri);\n }\n /**\n * Convert a given JSON key to an RDF resource term.\n * It will do this based on the @vocab,\n * and fallback to @base.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param key A JSON key.\n * @return {RDF.NamedNode} An RDF named node or null.\n */\n createVocabOrBaseTerm(context, key) {\n if (key.startsWith('_:')) {\n return this.dataFactory.blankNode(key.substr(2));\n }\n const expandOptions = this.parsingContext.getExpandOptions();\n let expanded = context.expandTerm(key, true, expandOptions);\n if (expanded === key) {\n expanded = context.expandTerm(key, false, expandOptions);\n }\n if (!Util.isValidIri(expanded)) {\n if (expanded && this.parsingContext.strictValues && !expanded.startsWith('@')) {\n this.parsingContext.emitError(new Error(`Invalid term IRI: ${expanded}`));\n }\n else {\n return null;\n }\n }\n return this.dataFactory.namedNode(expanded);\n }\n /**\n * Ensure that the given value becomes a string.\n * @param {string | number} value A string or number.\n * @param {NamedNode} datatype The intended datatype.\n * @return {string} The returned string.\n */\n intToString(value, datatype) {\n if (typeof value === 'number') {\n if (Number.isFinite(value)) {\n const isInteger = value % 1 === 0;\n if (isInteger && (!datatype || datatype.value !== Util.XSD_DOUBLE)) {\n return Number(value).toString();\n }\n else {\n return value.toExponential(15).replace(/(\\d)0*e\\+?/, '$1E');\n }\n }\n else {\n return value > 0 ? 'INF' : '-INF';\n }\n }\n else {\n return value;\n }\n }\n /**\n * Convert a given JSON string value to an RDF term.\n * @param {number} depth The current stack depth.\n * @param {JsonLdContextNormalized} context A JSON-LD context.\n * @param {string} key The current JSON key.\n * @param {string} value A JSON value.\n * @param {NamedNode} defaultDatatype The default datatype for the given value.\n * @return {RDF.Term} An RDF term or null.\n */\n stringValueToTerm(depth, context, key, value, defaultDatatype) {\n // Check the datatype from the context\n const contextType = Util.getContextValueType(context, key);\n if (contextType) {\n if (contextType === '@id') {\n if (!defaultDatatype) {\n return this.resourceToTerm(context, this.intToString(value, defaultDatatype));\n }\n }\n else if (contextType === '@vocab') {\n if (!defaultDatatype) {\n return this.createVocabOrBaseTerm(context, this.intToString(value, defaultDatatype));\n }\n }\n else {\n defaultDatatype = this.dataFactory.namedNode(contextType);\n }\n }\n // If we don't find such a datatype, check the language from the context\n if (!defaultDatatype) {\n const contextLanguage = Util.getContextValueLanguage(context, key);\n const contextDirection = Util.getContextValueDirection(context, key);\n if (contextDirection && this.parsingContext.rdfDirection) {\n return this.createLanguageDirectionLiteral(depth, this.intToString(value, defaultDatatype), contextLanguage, contextDirection);\n }\n else {\n return this.dataFactory.literal(this.intToString(value, defaultDatatype), contextLanguage);\n }\n }\n // If all else fails, make a literal based on the default content type\n return this.dataFactory.literal(this.intToString(value, defaultDatatype), defaultDatatype);\n }\n /**\n * Create a literal for the given value with the given language and direction.\n * Auxiliary quads may be emitted.\n * @param {number} depth The current stack depth.\n * @param {string} value A string value.\n * @param {string} language A language tag.\n * @param {string} direction A direction.\n * @return {Term} An RDF term.\n */\n createLanguageDirectionLiteral(depth, value, language, direction) {\n if (this.parsingContext.rdfDirection === 'i18n-datatype') {\n // Create a datatyped literal, by encoding the language and direction into https://www.w3.org/ns/i18n#.\n if (!language) {\n language = '';\n }\n return this.dataFactory.literal(value, this.dataFactory.namedNode(`https://www.w3.org/ns/i18n#${language}_${direction}`));\n }\n else {\n // Reify the literal.\n const valueNode = this.dataFactory.blankNode();\n const graph = this.getDefaultGraph();\n this.parsingContext.emitQuad(depth, this.dataFactory.quad(valueNode, this.dataFactory.namedNode(Util.RDF + 'value'), this.dataFactory.literal(value), graph));\n if (language) {\n this.parsingContext.emitQuad(depth, this.dataFactory.quad(valueNode, this.dataFactory.namedNode(Util.RDF + 'language'), this.dataFactory.literal(language), graph));\n }\n this.parsingContext.emitQuad(depth, this.dataFactory.quad(valueNode, this.dataFactory.namedNode(Util.RDF + 'direction'), this.dataFactory.literal(direction), graph));\n return valueNode;\n }\n }\n /**\n * Stringify the given JSON object to a canonical JSON string.\n * @param value Any valid JSON value.\n * @return {string} A canonical JSON string.\n */\n valueToJsonString(value) {\n return canonicalizeJson(value);\n }\n /**\n * If the key is not a keyword, try to check if it is an alias for a keyword,\n * and if so, un-alias it.\n * @param {string} key A key, can be falsy.\n * @param {string[]} keys The path of keys.\n * @param {number} depth The depth to\n * @param {boolean} disableCache If the cache should be disabled\n * @param {JsonLdContextNormalized} context A context to unalias with,\n * will fallback to retrieving the context for the given keys.\n * @return {Promise} A promise resolving to the key itself, or another key.\n */\n async unaliasKeyword(key, keys, depth, disableCache, context) {\n // Numbers can not be an alias\n if (Number.isInteger(key)) {\n return key;\n }\n // Try to grab from cache if it was already un-aliased before.\n if (!disableCache) {\n const cachedUnaliasedKeyword = this.parsingContext.unaliasedKeywordCacheStack[depth];\n if (cachedUnaliasedKeyword) {\n return cachedUnaliasedKeyword;\n }\n }\n if (!jsonld_context_parser_1.Util.isPotentialKeyword(key)) {\n context = context || await this.parsingContext.getContext(keys);\n let unliased = context.getContextRaw()[key];\n if (unliased && typeof unliased === 'object') {\n unliased = unliased['@id'];\n }\n if (jsonld_context_parser_1.Util.isValidKeyword(unliased)) {\n key = unliased;\n }\n }\n return disableCache ? key : (this.parsingContext.unaliasedKeywordCacheStack[depth] = key);\n }\n /**\n * Unalias the keyword of the parent.\n * This adds a safety check if no parent exist.\n * @param {any[]} keys A stack of keys.\n * @param {number} depth The current depth.\n * @return {Promise} A promise resolving to the parent key, or another key.\n */\n async unaliasKeywordParent(keys, depth) {\n return await this.unaliasKeyword(depth > 0 && keys[depth - 1], keys, depth - 1);\n }\n /**\n * Un-alias all keywords in the given hash.\n * @param {{[p: string]: any}} hash A hash object.\n * @param {string[]} keys The path of keys.\n * @param {number} depth The depth.\n * @param {JsonLdContextNormalized} context A context to unalias with,\n * will fallback to retrieving the context for the given keys.\n * @return {Promise<{[p: string]: any}>} A promise resolving to the new hash.\n */\n async unaliasKeywords(hash, keys, depth, context) {\n const newHash = {};\n for (const key in hash) {\n newHash[await this.unaliasKeyword(key, keys, depth + 1, true, context)] = hash[key];\n }\n return newHash;\n }\n /**\n * Check if we are processing a literal (including JSON literals) at the given depth.\n * This will also check higher levels,\n * because if a parent is a literal,\n * then the deeper levels are definitely a literal as well.\n * @param {any[]} keys The keys.\n * @param {number} depth The depth.\n * @return {boolean} If we are processing a literal.\n */\n async isLiteral(keys, depth) {\n for (let i = depth; i >= 0; i--) {\n if (await this.unaliasKeyword(keys[i], keys, i) === '@annotation') {\n // Literals may have annotations, which require processing of inner nodes.\n return false;\n }\n if (this.parsingContext.literalStack[i] || this.parsingContext.jsonLiteralStack[i]) {\n return true;\n }\n }\n return false;\n }\n /**\n * Check how many parents should be skipped for checking the @graph for the given node.\n *\n * @param {number} depth The depth of the node.\n * @param {any[]} keys An array of keys.\n * @return {number} The graph depth offset.\n */\n async getDepthOffsetGraph(depth, keys) {\n for (let i = depth - 1; i > 0; i--) {\n if (await this.unaliasKeyword(keys[i], keys, i) === '@graph') {\n // Skip further processing if we are already in an @graph-@id or @graph-@index container\n const containers = (await EntryHandlerContainer_1.EntryHandlerContainer.getContainerHandler(this.parsingContext, keys, i)).containers;\n if (EntryHandlerContainer_1.EntryHandlerContainer.isComplexGraphContainer(containers)) {\n return -1;\n }\n return depth - i - 1;\n }\n }\n return -1;\n }\n /**\n * Check if the given subject is of a valid type.\n * This should be called when applying @reverse'd properties.\n * @param {Term} subject A subject.\n */\n validateReverseSubject(subject) {\n if (subject.termType === 'Literal') {\n throw new jsonld_context_parser_1.ErrorCoded(`Found illegal literal in subject position: ${subject.value}`, jsonld_context_parser_1.ERROR_CODES.INVALID_REVERSE_PROPERTY_VALUE);\n }\n }\n /**\n * Get the default graph.\n * @return {Term} An RDF term.\n */\n getDefaultGraph() {\n return this.parsingContext.defaultGraph || this.dataFactory.defaultGraph();\n }\n /**\n * Get the current graph, while taking into account a graph that can be defined via @container: @graph.\n * If not within a graph container, the default graph will be returned.\n * @param keys The current keys.\n * @param depth The current depth.\n */\n async getGraphContainerValue(keys, depth) {\n // Default to default graph\n let graph = this.getDefaultGraph();\n // Check if we are in an @container: @graph.\n const { containers, depth: depthContainer } = await EntryHandlerContainer_1.EntryHandlerContainer\n .getContainerHandler(this.parsingContext, keys, depth);\n if ('@graph' in containers) {\n // Get the graph from the stack.\n const graphContainerIndex = EntryHandlerContainer_1.EntryHandlerContainer.getContainerGraphIndex(containers, depthContainer, keys);\n const entry = this.parsingContext.graphContainerTermStack[depthContainer];\n graph = entry ? entry[graphContainerIndex] : null;\n // Set the graph in the stack if none has been set yet.\n if (!graph) {\n let graphId = null;\n if ('@id' in containers) {\n const keyUnaliased = await this.getContainerKey(keys[depthContainer], keys, depthContainer);\n if (keyUnaliased !== null) {\n graphId = await this.resourceToTerm(await this.parsingContext.getContext(keys), keyUnaliased);\n }\n }\n if (!graphId) {\n graphId = this.dataFactory.blankNode();\n }\n if (!this.parsingContext.graphContainerTermStack[depthContainer]) {\n this.parsingContext.graphContainerTermStack[depthContainer] = {};\n }\n graph = this.parsingContext.graphContainerTermStack[depthContainer][graphContainerIndex] = graphId;\n }\n }\n return graph;\n }\n /**\n * Get the properties depth for retrieving properties.\n *\n * Typically, the properties depth will be identical to the given depth.\n *\n * The following exceptions apply:\n * * When the parent is @reverse, the depth is decremented by one.\n * * When @nest parents are found, the depth is decremented by the number of @nest parents.\n * If in combination with the exceptions above an intermediary array is discovered,\n * the depth is also decremented by this number of arrays.\n *\n * @param keys The current key chain.\n * @param depth The current depth.\n */\n async getPropertiesDepth(keys, depth) {\n let lastValidDepth = depth;\n for (let i = depth - 1; i > 0; i--) {\n if (typeof keys[i] !== 'number') { // Skip array keys\n const parentKey = await this.unaliasKeyword(keys[i], keys, i);\n if (parentKey === '@reverse') {\n return i;\n }\n else if (parentKey === '@nest') {\n lastValidDepth = i;\n }\n else {\n return lastValidDepth;\n }\n }\n }\n return lastValidDepth;\n }\n /**\n * Get the key for the current container entry.\n * @param key A key, can be falsy.\n * @param keys The key chain.\n * @param depth The current depth to get the key from.\n * @return Promise resolving to the key.\n * Null will be returned for @none entries, with aliasing taken into account.\n */\n async getContainerKey(key, keys, depth) {\n const keyUnaliased = await this.unaliasKeyword(key, keys, depth);\n return keyUnaliased === '@none' ? null : keyUnaliased;\n }\n /**\n * Check if no reverse properties are present in embedded nodes.\n * @param key The current key.\n * @param reverse If a reverse property is active.\n * @param isEmbedded If we're in an embedded node.\n */\n validateReverseInEmbeddedNode(key, reverse, isEmbedded) {\n if (isEmbedded && reverse && !this.parsingContext.rdfstarReverseInEmbedded) {\n throw new jsonld_context_parser_1.ErrorCoded(`Illegal reverse property in embedded node in ${key}`, jsonld_context_parser_1.ERROR_CODES.INVALID_EMBEDDED_NODE);\n }\n }\n /**\n * Emit a quad, with checks.\n * @param depth The current depth.\n * @param subject S\n * @param predicate P\n * @param object O\n * @param graph G\n * @param reverse If a reverse property is active.\n * @param isEmbedded If we're in an embedded node.\n */\n emitQuadChecked(depth, subject, predicate, object, graph, reverse, isEmbedded) {\n // Create a quad\n let quad;\n if (reverse) {\n this.validateReverseSubject(object);\n quad = this.dataFactory.quad(object, predicate, subject, graph);\n }\n else {\n quad = this.dataFactory.quad(subject, predicate, object, graph);\n }\n // Emit the quad, unless it was created in an embedded node\n if (isEmbedded) {\n // Embedded nodes don't inherit the active graph\n if (quad.graph.termType !== 'DefaultGraph') {\n quad = this.dataFactory.quad(quad.subject, quad.predicate, quad.object);\n }\n // Multiple embedded nodes are not allowed\n if (this.parsingContext.idStack[depth - 1]) {\n throw new jsonld_context_parser_1.ErrorCoded(`Illegal multiple properties in an embedded node`, jsonld_context_parser_1.ERROR_CODES.INVALID_EMBEDDED_NODE);\n }\n this.parsingContext.idStack[depth - 1] = [quad];\n }\n else {\n this.parsingContext.emitQuad(depth, quad);\n }\n // Flush annotations\n const annotationsBuffer = this.parsingContext.annotationsBuffer[depth];\n if (annotationsBuffer) {\n for (const annotation of annotationsBuffer) {\n this.emitAnnotation(depth, quad, annotation);\n }\n delete this.parsingContext.annotationsBuffer[depth];\n }\n }\n // This is a separate function to enable recursion\n emitAnnotation(depth, quad, annotation) {\n // Construct annotation quad\n let annotationQuad;\n if (annotation.reverse) {\n this.validateReverseSubject(annotation.object);\n annotationQuad = this.dataFactory.quad(annotation.object, annotation.predicate, quad);\n }\n else {\n annotationQuad = this.dataFactory.quad(quad, annotation.predicate, annotation.object);\n }\n // Emit annotated quad\n this.parsingContext.emitQuad(depth, annotationQuad);\n // Also emit nested annotations\n for (const nestedAnnotation of annotation.nestedAnnotations) {\n this.emitAnnotation(depth, annotationQuad, nestedAnnotation);\n }\n }\n}\nUtil.XSD = 'http://www.w3.org/2001/XMLSchema#';\nUtil.XSD_BOOLEAN = Util.XSD + 'boolean';\nUtil.XSD_INTEGER = Util.XSD + 'integer';\nUtil.XSD_DOUBLE = Util.XSD + 'double';\nUtil.RDF = 'http://www.w3.org/1999/02/22-rdf-syntax-ns#';\nexports.Util = Util;\n//# sourceMappingURL=Util.js.map\n\n//# sourceURL=webpack://bookmarks/./node_modules/jsonld-streaming-parser/lib/Util.js?"); /***/ }), /***/ "./node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerIdentifier.js": /*!*************************************************************************************************!*\ !*** ./node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerIdentifier.js ***! \*************************************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ContainerHandlerIdentifier = void 0;\n/**\n * Container handler for @id.\n *\n * It assumes that the current key is the identifier of the current value.\n * This will add this value to the parent node.\n */\nclass ContainerHandlerIdentifier {\n canCombineWithGraph() {\n return true;\n }\n async handle(containers, parsingContext, util, keys, value, depth) {\n let id;\n // First check if the child node already has a defined id.\n if (parsingContext.emittedStack[depth + 1] && parsingContext.idStack[depth + 1]) {\n // Use the existing identifier\n id = parsingContext.idStack[depth + 1][0];\n }\n else {\n // Create the identifier\n const keyUnaliased = await util.getContainerKey(keys[depth], keys, depth);\n const maybeId = keyUnaliased !== null\n ? await util.resourceToTerm(await parsingContext.getContext(keys), keys[depth])\n : util.dataFactory.blankNode();\n // Do nothing if the id is invalid\n if (!maybeId) {\n parsingContext.emittedStack[depth] = false; // Don't emit the predicate owning this container.\n return;\n }\n id = maybeId;\n // Insert the id into the stack so that buffered children can make us of it.\n parsingContext.idStack[depth + 1] = [id];\n }\n // Insert the id into the stack so that parents can make use of it.\n // Insert it as an array because multiple id container entries may exist\n let ids = parsingContext.idStack[depth];\n if (!ids) {\n ids = parsingContext.idStack[depth] = [];\n }\n // Only insert the term if it does not exist yet in the array.\n if (!ids.some((term) => term.equals(id))) {\n ids.push(id);\n }\n // Flush any pending flush buffers\n if (!await parsingContext.handlePendingContainerFlushBuffers()) {\n parsingContext.emittedStack[depth] = false; // Don't emit the predicate owning this container.\n }\n }\n}\nexports.ContainerHandlerIdentifier = ContainerHandlerIdentifier;\n//# sourceMappingURL=ContainerHandlerIdentifier.js.map\n\n//# sourceURL=webpack://bookmarks/./node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerIdentifier.js?"); /***/ }), /***/ "./node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerIndex.js": /*!********************************************************************************************!*\ !*** ./node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerIndex.js ***! \********************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ContainerHandlerIndex = void 0;\nconst jsonld_context_parser_1 = __webpack_require__(/*! jsonld-context-parser */ \"./node_modules/jsonld-context-parser/index.js\");\nconst EntryHandlerPredicate_1 = __webpack_require__(/*! ../entryhandler/EntryHandlerPredicate */ \"./node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerPredicate.js\");\nconst Util_1 = __webpack_require__(/*! ../Util */ \"./node_modules/jsonld-streaming-parser/lib/Util.js\");\n/**\n * Container handler for @index.\n *\n * This will ignore the current key and add this entry to the parent node.\n */\nclass ContainerHandlerIndex {\n canCombineWithGraph() {\n return true;\n }\n async handle(containers, parsingContext, util, keys, value, depth) {\n if (!Array.isArray(value)) {\n const graphContainer = '@graph' in containers;\n // Check if the container is a property-based container by checking if there is a valid @index.\n const context = await parsingContext.getContext(keys);\n const indexKey = keys[depth - 1];\n const indexPropertyRaw = Util_1.Util.getContextValueIndex(context, indexKey);\n if (indexPropertyRaw) {\n // Validate the @index value\n if (jsonld_context_parser_1.Util.isPotentialKeyword(indexPropertyRaw)) {\n throw new jsonld_context_parser_1.ErrorCoded(`Keywords can not be used as @index value, got: ${indexPropertyRaw}`, jsonld_context_parser_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n }\n if (typeof indexPropertyRaw !== 'string') {\n throw new jsonld_context_parser_1.ErrorCoded(`@index values must be strings, got: ${indexPropertyRaw}`, jsonld_context_parser_1.ERROR_CODES.INVALID_TERM_DEFINITION);\n }\n // When @index is used, values must be node values, unless @type: @id is defined in the context\n if (typeof value !== 'object') {\n // Error if we don't have @type: @id\n if (Util_1.Util.getContextValueType(context, indexKey) !== '@id') {\n throw new jsonld_context_parser_1.ErrorCoded(`Property-based index containers require nodes as values or strings with @type: @id, but got: ${value}`, jsonld_context_parser_1.ERROR_CODES.INVALID_VALUE_OBJECT);\n }\n // Add an @id to the stack, so our expanded @index value can make use of it\n const id = util.resourceToTerm(context, value);\n if (id) {\n parsingContext.idStack[depth + 1] = [id];\n }\n }\n // Expand the @index value\n const indexProperty = util.createVocabOrBaseTerm(context, indexPropertyRaw);\n if (indexProperty) {\n const indexValues = await util.valueToTerm(context, indexPropertyRaw, await util.getContainerKey(keys[depth], keys, depth), depth, keys);\n if (graphContainer) {\n // When we're in a graph container, attach the index to the graph identifier\n const graphId = await util.getGraphContainerValue(keys, depth + 1);\n for (const indexValue of indexValues) {\n parsingContext.emitQuad(depth, util.dataFactory.quad(graphId, indexProperty, indexValue, util.getDefaultGraph()));\n }\n }\n else {\n // Otherwise, attach the index to the node identifier\n for (const indexValue of indexValues) {\n await EntryHandlerPredicate_1.EntryHandlerPredicate.handlePredicateObject(parsingContext, util, keys, depth + 1, indexProperty, indexValue, false, false, false);\n }\n }\n }\n }\n const depthOffset = graphContainer ? 2 : 1;\n await parsingContext.newOnValueJob(keys.slice(0, keys.length - depthOffset), value, depth - depthOffset, true);\n // Flush any pending flush buffers\n await parsingContext.handlePendingContainerFlushBuffers();\n }\n parsingContext.emittedStack[depth] = false; // We have emitted a level higher\n }\n}\nexports.ContainerHandlerIndex = ContainerHandlerIndex;\n//# sourceMappingURL=ContainerHandlerIndex.js.map\n\n//# sourceURL=webpack://bookmarks/./node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerIndex.js?"); /***/ }), /***/ "./node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerLanguage.js": /*!***********************************************************************************************!*\ !*** ./node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerLanguage.js ***! \***********************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ContainerHandlerLanguage = void 0;\nconst jsonld_context_parser_1 = __webpack_require__(/*! jsonld-context-parser */ \"./node_modules/jsonld-context-parser/index.js\");\n/**\n * Container handler for @language.\n *\n * It assumes that the current key is the language of the current value.\n * This will add this value to the parent node.\n */\nclass ContainerHandlerLanguage {\n canCombineWithGraph() {\n return false;\n }\n async handle(containers, parsingContext, util, keys, value, depth) {\n const language = await util.getContainerKey(keys[depth], keys, depth);\n if (Array.isArray(value)) {\n // No type-checking needed, will be handled on each value when this handler is called recursively.\n value = value.map((subValue) => ({ '@value': subValue, '@language': language }));\n }\n else {\n if (typeof value !== 'string') {\n throw new jsonld_context_parser_1.ErrorCoded(`Got invalid language map value, got '${JSON.stringify(value)}', but expected string`, jsonld_context_parser_1.ERROR_CODES.INVALID_LANGUAGE_MAP_VALUE);\n }\n value = { '@value': value, '@language': language };\n }\n await parsingContext.newOnValueJob(keys.slice(0, keys.length - 1), value, depth - 1, true);\n parsingContext.emittedStack[depth] = false; // We have emitted a level higher\n }\n}\nexports.ContainerHandlerLanguage = ContainerHandlerLanguage;\n//# sourceMappingURL=ContainerHandlerLanguage.js.map\n\n//# sourceURL=webpack://bookmarks/./node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerLanguage.js?"); /***/ }), /***/ "./node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerType.js": /*!*******************************************************************************************!*\ !*** ./node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerType.js ***! \*******************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.ContainerHandlerType = void 0;\nconst EntryHandlerPredicate_1 = __webpack_require__(/*! ../entryhandler/EntryHandlerPredicate */ \"./node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerPredicate.js\");\nconst Util_1 = __webpack_require__(/*! ../Util */ \"./node_modules/jsonld-streaming-parser/lib/Util.js\");\n/**\n * Container handler for @type.\n *\n * This will add this entry to the parent node, and use the current key as an rdf:type value.\n */\nclass ContainerHandlerType {\n canCombineWithGraph() {\n return false;\n }\n async handle(containers, parsingContext, util, keys, value, depth) {\n if (!Array.isArray(value)) {\n if (typeof value === 'string') {\n // Determine the @type of the container\n const context = await parsingContext.getContext(keys);\n const containerTypeType = Util_1.Util.getContextValueType(context, keys[depth - 1]);\n // String values refer to node references\n const id = containerTypeType === '@vocab'\n ? await util.createVocabOrBaseTerm(context, value)\n : await util.resourceToTerm(context, value);\n if (id) {\n // Handle the value of this node as @id, which will also cause the predicate from above to be emitted.\n const subValue = { '@id': id.termType === 'NamedNode' ? id.value : value };\n await parsingContext.newOnValueJob(keys.slice(0, keys.length - 1), subValue, depth - 1, true);\n // Set the id in the stack so it can be used for the rdf:type handling later on\n parsingContext.idStack[depth + 1] = [id];\n }\n }\n else {\n // Other values are handled by handling them as a proper job\n // Check needed for cases where entries don't have an explicit @id\n const entryHasIdentifier = !!parsingContext.idStack[depth + 1];\n // Handle the value of this node, which will also cause the predicate from above to be emitted.\n if (!entryHasIdentifier) {\n delete parsingContext.idStack[depth]; // Force new (blank node) identifier\n }\n await parsingContext.newOnValueJob(keys.slice(0, keys.length - 1), value, depth - 1, true);\n if (!entryHasIdentifier) {\n parsingContext.idStack[depth + 1] = parsingContext.idStack[depth]; // Copy the id to the child node, for @type\n }\n }\n // Identify the type to emit.\n const keyOriginal = await util.getContainerKey(keys[depth], keys, depth);\n const type = keyOriginal !== null\n ? util.createVocabOrBaseTerm(await parsingContext.getContext(keys), keyOriginal)\n : null;\n if (type) {\n // Push the type to the stack using the rdf:type predicate\n await EntryHandlerPredicate_1.EntryHandlerPredicate.handlePredicateObject(parsingContext, util, keys, depth + 1, util.rdfType, type, false, false, false);\n }\n // Flush any pending flush buffers\n await parsingContext.handlePendingContainerFlushBuffers();\n }\n parsingContext.emittedStack[depth] = false; // Don't emit the predicate owning this container.\n }\n}\nexports.ContainerHandlerType = ContainerHandlerType;\n//# sourceMappingURL=ContainerHandlerType.js.map\n\n//# sourceURL=webpack://bookmarks/./node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerType.js?"); /***/ }), /***/ "./node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerArrayValue.js": /*!*****************************************************************************************!*\ !*** ./node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerArrayValue.js ***! \*****************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.EntryHandlerArrayValue = void 0;\nconst Util_1 = __webpack_require__(/*! ../Util */ \"./node_modules/jsonld-streaming-parser/lib/Util.js\");\nconst jsonld_context_parser_1 = __webpack_require__(/*! jsonld-context-parser */ \"./node_modules/jsonld-context-parser/index.js\");\n/**\n * Handles values that are part of an array.\n */\nclass EntryHandlerArrayValue {\n isPropertyHandler() {\n return false;\n }\n isStackProcessor() {\n return true;\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n return this.test(parsingContext, util, null, keys, depth);\n }\n async test(parsingContext, util, key, keys, depth) {\n return typeof keys[depth] === 'number';\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n let parentKey = await util.unaliasKeywordParent(keys, depth);\n // Check if we have an anonymous list\n if (parentKey === '@list') {\n // Our value is part of an array\n // Determine the list root key\n let listRootKey = null;\n let listRootDepth = 0;\n for (let i = depth - 2; i > 0; i--) {\n const keyOption = keys[i];\n if (typeof keyOption === 'string' || typeof keyOption === 'number') {\n listRootDepth = i;\n listRootKey = keyOption;\n break;\n }\n }\n if (listRootKey !== null) {\n // Emit the given objects as list elements\n const values = await util.valueToTerm(await parsingContext.getContext(keys), listRootKey, value, depth, keys);\n for (const object of values) {\n await this.handleListElement(parsingContext, util, object, value, depth, keys.slice(0, listRootDepth), listRootDepth);\n }\n // If no values were found, emit a falsy list element to force an empty RDF list to be emitted.\n if (values.length === 0) {\n await this.handleListElement(parsingContext, util, null, value, depth, keys.slice(0, listRootDepth), listRootDepth);\n }\n }\n }\n else if (parentKey === '@set') {\n // Our value is part of a set, so we just add it to the parent-parent\n await parsingContext.newOnValueJob(keys.slice(0, -2), value, depth - 2, false);\n }\n else if (parentKey !== undefined && parentKey !== '@type') {\n // Buffer our value using the parent key as predicate\n // Determine the first parent key that is *not* an array key\n // This is needed in case we have an @list container with nested arrays,\n // where each of them should produce nested RDF lists.\n for (let i = depth - 1; i > 0; i--) {\n if (typeof keys[i] !== 'number') {\n parentKey = await util.unaliasKeyword(keys[i], keys, i);\n break;\n }\n }\n // Check if the predicate is marked as an @list in the context\n const parentContext = await parsingContext.getContext(keys.slice(0, -1));\n if ('@list' in Util_1.Util.getContextValueContainer(parentContext, parentKey)) {\n // Our value is part of an array\n // Emit the given objects as list elements\n parsingContext.emittedStack[depth + 1] = true; // Ensure the creation of bnodes for empty nodes\n const values = await util.valueToTerm(await parsingContext.getContext(keys), parentKey, value, depth, keys);\n for (const object of values) {\n await this.handleListElement(parsingContext, util, object, value, depth, keys.slice(0, -1), depth - 1);\n }\n // If no values were found, emit a falsy list element to force an empty RDF list to be emitted.\n if (values.length === 0) {\n await this.handleListElement(parsingContext, util, null, value, depth, keys.slice(0, -1), depth - 1);\n }\n }\n else {\n // Copy the stack values up one level so that the next job can access them.\n parsingContext.shiftStack(depth, 1);\n // Execute the job one level higher\n await parsingContext.newOnValueJob(keys.slice(0, -1), value, depth - 1, false);\n // Remove any defined contexts at this level to avoid it to propagate to the next array element.\n parsingContext.contextTree.removeContext(keys.slice(0, -1));\n }\n }\n }\n async handleListElement(parsingContext, util, value, valueOriginal, depth, listRootKeys, listRootDepth) {\n // Buffer our value as an RDF list using the listRootKey as predicate\n let listPointer = parsingContext.listPointerStack[depth];\n if (valueOriginal !== null && (await util.unaliasKeywords(valueOriginal, listRootKeys, depth))['@value'] !== null) {\n if (!listPointer || !listPointer.value) {\n const linkTerm = util.dataFactory.blankNode();\n listPointer = { value: linkTerm, listRootDepth, listId: linkTerm };\n }\n else {\n // rdf:rest links are always emitted before the next element,\n // as the blank node identifier is only created at that point.\n // Because of this reason, the final rdf:nil is emitted when the stack depth is decreased.\n const newLinkTerm = util.dataFactory.blankNode();\n parsingContext.emitQuad(depth, util.dataFactory.quad(listPointer.value, util.rdfRest, newLinkTerm, util.getDefaultGraph()));\n // Update the list pointer for the next element\n listPointer.value = newLinkTerm;\n }\n // Emit a list element for the current value\n // Omit rdf:first if the value is invalid\n if (value) {\n parsingContext.emitQuad(depth, util.dataFactory.quad(listPointer.value, util.rdfFirst, value, util.getDefaultGraph()));\n }\n }\n else {\n // A falsy list element if found.\n // Mark it as an rdf:nil list until another valid list element comes in\n if (!listPointer) {\n listPointer = { listRootDepth, listId: util.rdfNil };\n }\n }\n parsingContext.listPointerStack[depth] = listPointer;\n // Error if an annotation was defined\n if (parsingContext.rdfstar && parsingContext.annotationsBuffer[depth]) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an illegal annotation inside a list`, jsonld_context_parser_1.ERROR_CODES.INVALID_ANNOTATION));\n }\n }\n}\nexports.EntryHandlerArrayValue = EntryHandlerArrayValue;\n//# sourceMappingURL=EntryHandlerArrayValue.js.map\n\n//# sourceURL=webpack://bookmarks/./node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerArrayValue.js?"); /***/ }), /***/ "./node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerContainer.js": /*!****************************************************************************************!*\ !*** ./node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerContainer.js ***! \****************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.EntryHandlerContainer = void 0;\nconst ContainerHandlerIdentifier_1 = __webpack_require__(/*! ../containerhandler/ContainerHandlerIdentifier */ \"./node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerIdentifier.js\");\nconst ContainerHandlerIndex_1 = __webpack_require__(/*! ../containerhandler/ContainerHandlerIndex */ \"./node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerIndex.js\");\nconst ContainerHandlerLanguage_1 = __webpack_require__(/*! ../containerhandler/ContainerHandlerLanguage */ \"./node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerLanguage.js\");\nconst ContainerHandlerType_1 = __webpack_require__(/*! ../containerhandler/ContainerHandlerType */ \"./node_modules/jsonld-streaming-parser/lib/containerhandler/ContainerHandlerType.js\");\nconst Util_1 = __webpack_require__(/*! ../Util */ \"./node_modules/jsonld-streaming-parser/lib/Util.js\");\n/**\n * Handles values that are part of a container type (like @index),\n * as specified by {@link IContainerHandler}.\n */\nclass EntryHandlerContainer {\n /**\n * Check fit the given container is a simple @graph container.\n * Concretely, it will check if no @index or @id is active as well.\n * @param containers A container hash.\n */\n static isSimpleGraphContainer(containers) {\n return '@graph' in containers\n && (('@set' in containers && Object.keys(containers).length === 2) || Object.keys(containers).length === 1);\n }\n /**\n * Check fit the given container is a complex @graph container.\n * Concretely, it will check if @index or @id is active as well next to @graph.\n * @param containers A container hash.\n */\n static isComplexGraphContainer(containers) {\n return '@graph' in containers\n && (('@set' in containers && Object.keys(containers).length > 2)\n || (!('@set' in containers) && Object.keys(containers).length > 1));\n }\n /**\n * Create an graph container index that can be used for identifying a graph term inside the graphContainerTermStack.\n * @param containers The applicable containers.\n * @param depth The container depth.\n * @param keys The array of keys.\n * @return The graph index.\n */\n static getContainerGraphIndex(containers, depth, keys) {\n let isSimpleGraphContainer = EntryHandlerContainer.isSimpleGraphContainer(containers);\n let index = '';\n for (let i = depth; i < keys.length; i++) {\n if (!isSimpleGraphContainer || typeof keys[i] === 'number') {\n index += ':' + keys[i];\n }\n // Only allow a second 'real' key if in a non-simple graph container.\n if (!isSimpleGraphContainer && typeof keys[i] !== 'number') {\n isSimpleGraphContainer = true;\n }\n }\n return index;\n }\n /**\n * Return the applicable container type at the given depth.\n *\n * This will ignore any arrays in the key chain.\n *\n * @param {ParsingContext} parsingContext A parsing context.\n * @param {any[]} keys The array of keys.\n * @param {number} depth The current depth.\n * @return {Promise<{ containers: {[typeName: string]: boolean}, depth: number, fallback: boolean }>}\n * All applicable containers for the given depth,\n * the `depth` of the container root (can change when arrays are in the key chain),\n * and the `fallback` flag that indicates if the default container type was returned\n * (i.e., no dedicated container type is defined).\n */\n static async getContainerHandler(parsingContext, keys, depth) {\n const fallback = {\n containers: { '@set': true },\n depth,\n fallback: true,\n };\n // A flag that is enabled when @graph container should be tested in next iteration\n let checkGraphContainer = false;\n // Iterate from deeper to higher\n const context = await parsingContext.getContext(keys, 2);\n for (let i = depth - 1; i >= 0; i--) {\n if (typeof keys[i] !== 'number') { // Skip array keys\n // @graph containers without any other types are one level less deep, and require special handling\n const containersSelf = Util_1.Util.getContextValue(context, '@container', keys[i], false);\n if (containersSelf && EntryHandlerContainer.isSimpleGraphContainer(containersSelf)) {\n return {\n containers: containersSelf,\n depth: i + 1,\n fallback: false,\n };\n }\n const containersParent = Util_1.Util.getContextValue(context, '@container', keys[i - 1], false);\n if (!containersParent) { // If we have the fallback container value\n if (checkGraphContainer) {\n // Return false if we were already expecting a @graph-@id of @graph-@index container\n return fallback;\n }\n // Check parent-parent, we may be in a @graph-@id of @graph-@index container, which have two levels\n checkGraphContainer = true;\n }\n else {\n // We had an invalid container next iteration, so we now have to check if we were in an @graph container\n const graphContainer = '@graph' in containersParent;\n // We're in a regular container\n for (const containerHandleName in EntryHandlerContainer.CONTAINER_HANDLERS) {\n if (containersParent[containerHandleName]) {\n if (graphContainer) {\n // Only accept graph containers if their combined handlers can handle them.\n if (EntryHandlerContainer.CONTAINER_HANDLERS[containerHandleName].canCombineWithGraph()) {\n return {\n containers: containersParent,\n depth: i,\n fallback: false,\n };\n }\n else {\n return fallback;\n }\n }\n else {\n // Only accept if we were not expecting a @graph-@id of @graph-@index container\n if (checkGraphContainer) {\n return fallback;\n }\n else {\n return {\n containers: containersParent,\n depth: i,\n fallback: false,\n };\n }\n }\n }\n }\n // Fail if no valid container handlers were found\n return fallback;\n }\n }\n }\n return fallback;\n }\n /**\n * Check if we are handling a value at the given depth\n * that is part of something that should be handled as a container,\n * AND if this container should be buffered, so that it can be handled by a dedicated container handler.\n *\n * For instance, any container with @graph will NOT be buffered.\n *\n * This will ignore any arrays in the key chain.\n *\n * @param {ParsingContext} parsingContext A parsing context.\n * @param {any[]} keys The array of keys.\n * @param {number} depth The current depth.\n * @return {Promise} If we are in the scope of a container handler.\n */\n static async isBufferableContainerHandler(parsingContext, keys, depth) {\n const handler = await EntryHandlerContainer.getContainerHandler(parsingContext, keys, depth);\n return !handler.fallback && !('@graph' in handler.containers);\n }\n isPropertyHandler() {\n return false;\n }\n isStackProcessor() {\n return true;\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n return !!await this.test(parsingContext, util, null, keys, depth);\n }\n async test(parsingContext, util, key, keys, depth) {\n const containers = Util_1.Util.getContextValueContainer(await parsingContext.getContext(keys, 2), keys[depth - 1]);\n for (const containerName in EntryHandlerContainer.CONTAINER_HANDLERS) {\n if (containers[containerName]) {\n return {\n containers,\n handler: EntryHandlerContainer.CONTAINER_HANDLERS[containerName],\n };\n }\n }\n return null;\n }\n async handle(parsingContext, util, key, keys, value, depth, testResult) {\n return testResult.handler.handle(testResult.containers, parsingContext, util, keys, value, depth);\n }\n}\nEntryHandlerContainer.CONTAINER_HANDLERS = {\n '@id': new ContainerHandlerIdentifier_1.ContainerHandlerIdentifier(),\n '@index': new ContainerHandlerIndex_1.ContainerHandlerIndex(),\n '@language': new ContainerHandlerLanguage_1.ContainerHandlerLanguage(),\n '@type': new ContainerHandlerType_1.ContainerHandlerType(),\n};\nexports.EntryHandlerContainer = EntryHandlerContainer;\n//# sourceMappingURL=EntryHandlerContainer.js.map\n\n//# sourceURL=webpack://bookmarks/./node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerContainer.js?"); /***/ }), /***/ "./node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerInvalidFallback.js": /*!**********************************************************************************************!*\ !*** ./node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerInvalidFallback.js ***! \**********************************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.EntryHandlerInvalidFallback = void 0;\n/**\n * A catch-all for properties, that will either emit an error or ignore,\n * depending on whether or not the `strictValues` property is set.\n */\nclass EntryHandlerInvalidFallback {\n isPropertyHandler() {\n return false;\n }\n isStackProcessor() {\n return true;\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n return false;\n }\n async test(parsingContext, util, key, keys, depth) {\n return true;\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n parsingContext.emittedStack[depth] = false;\n }\n}\nexports.EntryHandlerInvalidFallback = EntryHandlerInvalidFallback;\n//# sourceMappingURL=EntryHandlerInvalidFallback.js.map\n\n//# sourceURL=webpack://bookmarks/./node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerInvalidFallback.js?"); /***/ }), /***/ "./node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerPredicate.js": /*!****************************************************************************************!*\ !*** ./node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerPredicate.js ***! \****************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.EntryHandlerPredicate = void 0;\nconst jsonld_context_parser_1 = __webpack_require__(/*! jsonld-context-parser */ \"./node_modules/jsonld-context-parser/index.js\");\nconst Util_1 = __webpack_require__(/*! ../Util */ \"./node_modules/jsonld-streaming-parser/lib/Util.js\");\n/**\n * Interprets keys as predicates.\n * The most common case in JSON-LD processing.\n */\nclass EntryHandlerPredicate {\n /**\n * Handle the given predicate-object by either emitting it,\n * or by placing it in the appropriate stack for later emission when no @graph and/or @id has been defined.\n * @param {ParsingContext} parsingContext A parsing context.\n * @param {Util} util A utility instance.\n * @param {any[]} keys A stack of keys.\n * @param {number} depth The current depth.\n * @param {Term} predicate The predicate.\n * @param {Term} object The object.\n * @param {boolean} reverse If the property is reversed.\n * @param {boolean} isEmbedded If the property exists in an embedded node as direct child.\n * @param {boolean} isAnnotation If the property exists in an annotation object.\n * @return {Promise} A promise resolving when handling is done.\n */\n static async handlePredicateObject(parsingContext, util, keys, depth, predicate, object, reverse, isEmbedded, isAnnotation) {\n const depthProperties = await util.getPropertiesDepth(keys, depth);\n const depthOffsetGraph = await util.getDepthOffsetGraph(depth, keys);\n const depthPropertiesGraph = depth - depthOffsetGraph;\n const subjects = parsingContext.idStack[depthProperties];\n if (subjects && !isAnnotation) {\n // Emit directly if the @id was already defined\n for (const subject of subjects) {\n // Check if we're in a @graph context\n const atGraph = depthOffsetGraph >= 0;\n if (atGraph) {\n const graphs = parsingContext.idStack[depthPropertiesGraph - 1];\n if (graphs) {\n for (const graph of graphs) {\n // Emit our quad if graph @id is known\n util.emitQuadChecked(depth, subject, predicate, object, graph, reverse, isEmbedded);\n }\n }\n else {\n // Buffer our triple if graph @id is not known yet.\n if (reverse) {\n util.validateReverseSubject(object);\n parsingContext.getUnidentifiedGraphBufferSafe(depthPropertiesGraph - 1).push({ subject: object, predicate, object: subject, isEmbedded });\n }\n else {\n parsingContext.getUnidentifiedGraphBufferSafe(depthPropertiesGraph - 1)\n .push({ subject, predicate, object, isEmbedded });\n }\n }\n }\n else {\n // Emit if no @graph was applicable\n const graph = await util.getGraphContainerValue(keys, depthProperties);\n util.emitQuadChecked(depth, subject, predicate, object, graph, reverse, isEmbedded);\n }\n }\n }\n else {\n // Buffer until our @id becomes known, or we go up the stack\n if (reverse) {\n util.validateReverseSubject(object);\n }\n // Either push to the annotations or the actual value buffer\n if (isAnnotation) {\n // Only add to buffer if rdfstar is enabled\n if (parsingContext.rdfstar) {\n // Error if an @id was defined\n if (parsingContext.idStack[depth]) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an illegal @id inside an annotation: ${parsingContext.idStack[depth][0].value}`, jsonld_context_parser_1.ERROR_CODES.INVALID_ANNOTATION));\n }\n // Error if we're in an embedded node\n for (let i = 0; i < depth; i++) {\n if (await util.unaliasKeyword(keys[i], keys, i) === '@id') {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an illegal annotation inside an embedded node`, jsonld_context_parser_1.ERROR_CODES.INVALID_ANNOTATION));\n }\n }\n // Store new annotation in the buffer\n const annotationsBuffer = parsingContext.getAnnotationsBufferSafe(depthProperties);\n const newAnnotation = { predicate, object, reverse, nestedAnnotations: [], depth: depthProperties };\n annotationsBuffer.push(newAnnotation);\n // Check in the buffer if any annotations were defined at a deeper depth,\n // if so, they are considered nested annotations.\n for (let i = annotationsBuffer.length - 2; i >= 0; i--) {\n // We iterate in reverse order, to enable easy item removal from the back.\n const existingAnnotation = annotationsBuffer[i];\n if (existingAnnotation.depth > depthProperties) {\n newAnnotation.nestedAnnotations.push(existingAnnotation);\n annotationsBuffer.splice(i, 1);\n }\n }\n }\n }\n else {\n parsingContext.getUnidentifiedValueBufferSafe(depthProperties).push({ predicate, object, reverse, isEmbedded });\n }\n }\n }\n isPropertyHandler() {\n return true;\n }\n isStackProcessor() {\n return true;\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n const key = keys[depth];\n if (key) {\n const context = await parsingContext.getContext(keys);\n if (!parsingContext.jsonLiteralStack[depth] && await util.predicateToTerm(context, keys[depth])) {\n // If this valid predicate is of type @json, mark it so in the stack so that no deeper handling of nodes occurs.\n if (Util_1.Util.getContextValueType(context, key) === '@json') {\n parsingContext.jsonLiteralStack[depth + 1] = true;\n }\n return true;\n }\n }\n return false;\n }\n async test(parsingContext, util, key, keys, depth) {\n return keys[depth];\n }\n async handle(parsingContext, util, key, keys, value, depth, testResult) {\n const keyOriginal = keys[depth];\n const context = await parsingContext.getContext(keys);\n const predicate = await util.predicateToTerm(context, key);\n if (predicate) {\n const objects = await util.valueToTerm(context, key, value, depth, keys);\n if (objects.length) {\n for (let object of objects) {\n // Based on parent key, check if reverse, embedded, and annotation.\n let parentKey = await util.unaliasKeywordParent(keys, depth);\n const reverse = Util_1.Util.isPropertyReverse(context, keyOriginal, parentKey);\n let parentDepthOffset = 0;\n while (parentKey === '@reverse' || typeof parentKey === 'number') {\n // Check parent of parent when checking while we're in an array or in @reverse\n if (typeof parentKey === 'number') {\n parentDepthOffset++;\n }\n else {\n depth--;\n }\n parentKey = await util.unaliasKeywordParent(keys, depth - parentDepthOffset);\n }\n const isEmbedded = Util_1.Util.isPropertyInEmbeddedNode(parentKey);\n util.validateReverseInEmbeddedNode(key, reverse, isEmbedded);\n const isAnnotation = Util_1.Util.isPropertyInAnnotationObject(parentKey);\n if (value) {\n // Special case if our term was defined as an @list, but does not occur in an array,\n // In that case we just emit it as an RDF list with a single element.\n const listValueContainer = '@list' in Util_1.Util.getContextValueContainer(context, key);\n if (listValueContainer || value['@list']) {\n if (((listValueContainer && !Array.isArray(value) && !value['@list'])\n || (value['@list'] && !Array.isArray(value['@list'])))\n && object !== util.rdfNil) {\n const listPointer = util.dataFactory.blankNode();\n parsingContext.emitQuad(depth, util.dataFactory.quad(listPointer, util.rdfRest, util.rdfNil, util.getDefaultGraph()));\n parsingContext.emitQuad(depth, util.dataFactory.quad(listPointer, util.rdfFirst, object, util.getDefaultGraph()));\n object = listPointer;\n }\n // Lists are not allowed in @reverse'd properties\n if (reverse && !parsingContext.allowSubjectList) {\n throw new jsonld_context_parser_1.ErrorCoded(`Found illegal list value in subject position at ${key}`, jsonld_context_parser_1.ERROR_CODES.INVALID_REVERSE_PROPERTY_VALUE);\n }\n }\n }\n await EntryHandlerPredicate.handlePredicateObject(parsingContext, util, keys, depth, predicate, object, reverse, isEmbedded, isAnnotation);\n }\n }\n }\n }\n}\nexports.EntryHandlerPredicate = EntryHandlerPredicate;\n//# sourceMappingURL=EntryHandlerPredicate.js.map\n\n//# sourceURL=webpack://bookmarks/./node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerPredicate.js?"); /***/ }), /***/ "./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeyword.js": /*!**********************************************************************************************!*\ !*** ./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeyword.js ***! \**********************************************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.EntryHandlerKeyword = void 0;\n/**\n * An abstract keyword entry handler.\n */\nclass EntryHandlerKeyword {\n constructor(keyword) {\n this.keyword = keyword;\n }\n isPropertyHandler() {\n return false;\n }\n isStackProcessor() {\n return true;\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n return false;\n }\n async test(parsingContext, util, key, keys, depth) {\n return key === this.keyword;\n }\n}\nexports.EntryHandlerKeyword = EntryHandlerKeyword;\n//# sourceMappingURL=EntryHandlerKeyword.js.map\n\n//# sourceURL=webpack://bookmarks/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeyword.js?"); /***/ }), /***/ "./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordAnnotation.js": /*!********************************************************************************************************!*\ !*** ./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordAnnotation.js ***! \********************************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.EntryHandlerKeywordAnnotation = void 0;\nconst EntryHandlerKeyword_1 = __webpack_require__(/*! ./EntryHandlerKeyword */ \"./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeyword.js\");\nconst jsonld_context_parser_1 = __webpack_require__(/*! jsonld-context-parser */ \"./node_modules/jsonld-context-parser/index.js\");\n/**\n * Handles @annotation entries.\n */\nclass EntryHandlerKeywordAnnotation extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@annotation');\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n // Validate value\n if (typeof value === 'string' || (typeof value === 'object' && value['@value'])) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found illegal annotation value: ${JSON.stringify(value)}`, jsonld_context_parser_1.ERROR_CODES.INVALID_ANNOTATION));\n }\n // Rest of the processing is done as regular nodes\n }\n}\nexports.EntryHandlerKeywordAnnotation = EntryHandlerKeywordAnnotation;\n//# sourceMappingURL=EntryHandlerKeywordAnnotation.js.map\n\n//# sourceURL=webpack://bookmarks/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordAnnotation.js?"); /***/ }), /***/ "./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordContext.js": /*!*****************************************************************************************************!*\ !*** ./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordContext.js ***! \*****************************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.EntryHandlerKeywordContext = void 0;\nconst jsonld_context_parser_1 = __webpack_require__(/*! jsonld-context-parser */ \"./node_modules/jsonld-context-parser/index.js\");\nconst EntryHandlerKeyword_1 = __webpack_require__(/*! ./EntryHandlerKeyword */ \"./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeyword.js\");\n/**\n * Handles @context entries.\n */\nclass EntryHandlerKeywordContext extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@context');\n }\n isStackProcessor() {\n return false;\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n // Error if an out-of-order context was found when support is not enabled.\n if (parsingContext.streamingProfile\n && (parsingContext.processingStack[depth]\n || parsingContext.processingType[depth]\n || parsingContext.idStack[depth] !== undefined)) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded('Found an out-of-order context, while streaming is enabled.' +\n '(disable `streamingProfile`)', jsonld_context_parser_1.ERROR_CODES.INVALID_STREAMING_KEY_ORDER));\n }\n // Find the parent context to inherit from.\n // We actually request a context for the current depth (with fallback to parent)\n // because we want to take into account any property-scoped contexts that are defined for this depth.\n const parentContext = parsingContext.getContext(keys);\n // Set the context for this scope\n const context = parsingContext.parseContext(value, (await parentContext).getContextRaw());\n parsingContext.contextTree.setContext(keys.slice(0, -1), context);\n parsingContext.emitContext(value);\n await parsingContext.validateContext(await context);\n }\n}\nexports.EntryHandlerKeywordContext = EntryHandlerKeywordContext;\n//# sourceMappingURL=EntryHandlerKeywordContext.js.map\n\n//# sourceURL=webpack://bookmarks/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordContext.js?"); /***/ }), /***/ "./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordGraph.js": /*!***************************************************************************************************!*\ !*** ./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordGraph.js ***! \***************************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.EntryHandlerKeywordGraph = void 0;\nconst EntryHandlerKeyword_1 = __webpack_require__(/*! ./EntryHandlerKeyword */ \"./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeyword.js\");\n/**\n * Handles @graph entries.\n */\nclass EntryHandlerKeywordGraph extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@graph');\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n // The current identifier identifies a graph for the deeper level.\n parsingContext.graphStack[depth + 1] = true;\n }\n}\nexports.EntryHandlerKeywordGraph = EntryHandlerKeywordGraph;\n//# sourceMappingURL=EntryHandlerKeywordGraph.js.map\n\n//# sourceURL=webpack://bookmarks/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordGraph.js?"); /***/ }), /***/ "./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordId.js": /*!************************************************************************************************!*\ !*** ./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordId.js ***! \************************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.EntryHandlerKeywordId = void 0;\nconst jsonld_context_parser_1 = __webpack_require__(/*! jsonld-context-parser */ \"./node_modules/jsonld-context-parser/index.js\");\nconst EntryHandlerKeyword_1 = __webpack_require__(/*! ./EntryHandlerKeyword */ \"./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeyword.js\");\n/**\n * Handles @id entries.\n */\nclass EntryHandlerKeywordId extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@id');\n }\n isStackProcessor() {\n return false;\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n if (typeof value !== 'string') {\n // JSON-LD-star allows @id object values\n if (parsingContext.rdfstar && typeof value === 'object') {\n const valueKeys = Object.keys(value);\n if (valueKeys.length === 1 && valueKeys[0] === '@id') {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Invalid embedded node without property with @id ${value['@id']}`, jsonld_context_parser_1.ERROR_CODES.INVALID_EMBEDDED_NODE));\n }\n }\n else {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found illegal @id '${value}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_ID_VALUE));\n }\n return;\n }\n // Determine the canonical place for this id.\n // For example, @nest parents should be ignored.\n const depthProperties = await util.getPropertiesDepth(keys, depth);\n // Error if an @id for this node already existed.\n if (parsingContext.idStack[depthProperties] !== undefined) {\n if (parsingContext.idStack[depthProperties][0].listHead) {\n // Error if an @list was already defined for this node\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found illegal neighbouring entries next to @list for key: '${keys[depth - 1]}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_SET_OR_LIST_OBJECT));\n }\n else {\n // Otherwise, the previous id was just because of an @id entry.\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found duplicate @ids '${parsingContext\n .idStack[depthProperties][0].value}' and '${value}'`, jsonld_context_parser_1.ERROR_CODES.COLLIDING_KEYWORDS));\n }\n }\n // Error if an annotation was defined\n if (parsingContext.rdfstar && parsingContext.annotationsBuffer[depth]) {\n for (const annotation of parsingContext.annotationsBuffer[depth]) {\n if (annotation.depth === depth) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an illegal @id inside an annotation: ${value}`, jsonld_context_parser_1.ERROR_CODES.INVALID_ANNOTATION));\n }\n }\n }\n // Save our @id on the stack\n parsingContext.idStack[depthProperties] = util.nullableTermToArray(await util.resourceToTerm(await parsingContext.getContext(keys), value));\n }\n}\nexports.EntryHandlerKeywordId = EntryHandlerKeywordId;\n//# sourceMappingURL=EntryHandlerKeywordId.js.map\n\n//# sourceURL=webpack://bookmarks/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordId.js?"); /***/ }), /***/ "./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordIncluded.js": /*!******************************************************************************************************!*\ !*** ./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordIncluded.js ***! \******************************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.EntryHandlerKeywordIncluded = void 0;\nconst jsonld_context_parser_1 = __webpack_require__(/*! jsonld-context-parser */ \"./node_modules/jsonld-context-parser/index.js\");\nconst EntryHandlerKeyword_1 = __webpack_require__(/*! ./EntryHandlerKeyword */ \"./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeyword.js\");\n/**\n * Handles @included entries.\n */\nclass EntryHandlerKeywordIncluded extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@included');\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n if (typeof value !== 'object') {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found illegal @included '${value}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_INCLUDED_VALUE));\n }\n const valueUnliased = await util.unaliasKeywords(value, keys, depth, await parsingContext.getContext(keys));\n if ('@value' in valueUnliased) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an illegal @included @value node '${JSON.stringify(value)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_INCLUDED_VALUE));\n }\n if ('@list' in valueUnliased) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an illegal @included @list node '${JSON.stringify(value)}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_INCLUDED_VALUE));\n }\n parsingContext.emittedStack[depth] = false;\n }\n}\nexports.EntryHandlerKeywordIncluded = EntryHandlerKeywordIncluded;\n//# sourceMappingURL=EntryHandlerKeywordIncluded.js.map\n\n//# sourceURL=webpack://bookmarks/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordIncluded.js?"); /***/ }), /***/ "./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordNest.js": /*!**************************************************************************************************!*\ !*** ./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordNest.js ***! \**************************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.EntryHandlerKeywordNest = void 0;\nconst jsonld_context_parser_1 = __webpack_require__(/*! jsonld-context-parser */ \"./node_modules/jsonld-context-parser/index.js\");\nconst EntryHandlerKeyword_1 = __webpack_require__(/*! ./EntryHandlerKeyword */ \"./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeyword.js\");\n/**\n * Handles @nest entries.\n */\nclass EntryHandlerKeywordNest extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@nest');\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n if (typeof value !== 'object') {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found invalid @nest entry for '${key}': '${value}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_NEST_VALUE));\n }\n if ('@value' in await util.unaliasKeywords(value, keys, depth, await parsingContext.getContext(keys))) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found an invalid @value node for '${key}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_NEST_VALUE));\n }\n parsingContext.emittedStack[depth] = false;\n }\n}\nexports.EntryHandlerKeywordNest = EntryHandlerKeywordNest;\n//# sourceMappingURL=EntryHandlerKeywordNest.js.map\n\n//# sourceURL=webpack://bookmarks/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordNest.js?"); /***/ }), /***/ "./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordType.js": /*!**************************************************************************************************!*\ !*** ./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordType.js ***! \**************************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.EntryHandlerKeywordType = void 0;\nconst jsonld_context_parser_1 = __webpack_require__(/*! jsonld-context-parser */ \"./node_modules/jsonld-context-parser/index.js\");\nconst Util_1 = __webpack_require__(/*! ../../Util */ \"./node_modules/jsonld-streaming-parser/lib/Util.js\");\nconst EntryHandlerPredicate_1 = __webpack_require__(/*! ../EntryHandlerPredicate */ \"./node_modules/jsonld-streaming-parser/lib/entryhandler/EntryHandlerPredicate.js\");\nconst EntryHandlerKeyword_1 = __webpack_require__(/*! ./EntryHandlerKeyword */ \"./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeyword.js\");\n/**\n * Handles @graph entries.\n */\nclass EntryHandlerKeywordType extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@type');\n }\n isStackProcessor() {\n return false;\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n const keyOriginal = keys[depth];\n // The current identifier identifies an rdf:type predicate.\n // But we only emit it once the node closes,\n // as it's possible that the @type is used to identify the datatype of a literal, which we ignore here.\n const context = await parsingContext.getContext(keys);\n const predicate = util.rdfType;\n const parentKey = await util.unaliasKeywordParent(keys, depth);\n const reverse = Util_1.Util.isPropertyReverse(context, keyOriginal, parentKey);\n const isEmbedded = Util_1.Util.isPropertyInEmbeddedNode(parentKey);\n util.validateReverseInEmbeddedNode(key, reverse, isEmbedded);\n const isAnnotation = Util_1.Util.isPropertyInAnnotationObject(parentKey);\n // Handle multiple values if the value is an array\n const elements = Array.isArray(value) ? value : [value];\n for (const element of elements) {\n if (typeof element !== 'string') {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Found illegal @type '${element}'`, jsonld_context_parser_1.ERROR_CODES.INVALID_TYPE_VALUE));\n }\n const type = util.createVocabOrBaseTerm(context, element);\n if (type) {\n await EntryHandlerPredicate_1.EntryHandlerPredicate.handlePredicateObject(parsingContext, util, keys, depth, predicate, type, reverse, isEmbedded, isAnnotation);\n }\n }\n // Collect type-scoped contexts if they exist\n let scopedContext = Promise.resolve(context);\n let hasTypedScopedContext = false;\n for (const element of elements.sort()) { // Spec requires lexicographical ordering\n const typeContext = Util_1.Util.getContextValue(context, '@context', element, null);\n if (typeContext) {\n hasTypedScopedContext = true;\n scopedContext = scopedContext.then((c) => parsingContext.parseContext(typeContext, c.getContextRaw()));\n }\n }\n // Error if an out-of-order type-scoped context was found when support is not enabled.\n if (parsingContext.streamingProfile\n && (hasTypedScopedContext || !parsingContext.streamingProfileAllowOutOfOrderPlainType)\n && (parsingContext.processingStack[depth] || parsingContext.idStack[depth])) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded('Found an out-of-order type-scoped context, while streaming is enabled.' +\n '(disable `streamingProfile`)', jsonld_context_parser_1.ERROR_CODES.INVALID_STREAMING_KEY_ORDER));\n }\n // If at least least one type-scoped context applies, set them in the tree.\n if (hasTypedScopedContext) {\n // Do not propagate by default\n scopedContext = scopedContext.then((c) => {\n // Set the original context at this depth as a fallback\n // This is needed when a context was already defined at the given depth,\n // and this context needs to remain accessible from child nodes when propagation is disabled.\n if (c.getContextRaw()['@propagate'] !== true) {\n return new jsonld_context_parser_1.JsonLdContextNormalized(Object.assign(Object.assign({}, c.getContextRaw()), { '@propagate': false, '@__propagateFallback': context.getContextRaw() }));\n }\n return c;\n });\n // Set the new context in the context tree\n parsingContext.contextTree.setContext(keys.slice(0, keys.length - 1), scopedContext);\n }\n // Flag that type has been processed at this depth\n parsingContext.processingType[depth] = true;\n }\n}\nexports.EntryHandlerKeywordType = EntryHandlerKeywordType;\n//# sourceMappingURL=EntryHandlerKeywordType.js.map\n\n//# sourceURL=webpack://bookmarks/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordType.js?"); /***/ }), /***/ "./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordUnknownFallback.js": /*!*************************************************************************************************************!*\ !*** ./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordUnknownFallback.js ***! \*************************************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.EntryHandlerKeywordUnknownFallback = void 0;\nconst jsonld_context_parser_1 = __webpack_require__(/*! jsonld-context-parser */ \"./node_modules/jsonld-context-parser/index.js\");\n/**\n * A catch-all for keywords, that will either emit an error or ignore,\n * depending on whether or not the `strictValues` property is set.\n */\nclass EntryHandlerKeywordUnknownFallback {\n isPropertyHandler() {\n return false;\n }\n isStackProcessor() {\n return true;\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n const key = await util.unaliasKeyword(keys[depth], keys, depth);\n if (jsonld_context_parser_1.Util.isPotentialKeyword(key)) {\n // Don't emit anything inside free-floating lists\n if (!inProperty) {\n if (key === '@list') {\n return false;\n }\n }\n return true;\n }\n return false;\n }\n async test(parsingContext, util, key, keys, depth) {\n return jsonld_context_parser_1.Util.isPotentialKeyword(key);\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n const keywordType = EntryHandlerKeywordUnknownFallback.VALID_KEYWORDS_TYPES[key];\n if (keywordType !== undefined) {\n if (keywordType && typeof value !== keywordType.type) {\n parsingContext.emitError(new jsonld_context_parser_1.ErrorCoded(`Invalid value type for '${key}' with value '${value}'`, keywordType.errorCode));\n }\n }\n else if (parsingContext.strictValues) {\n parsingContext.emitError(new Error(`Unknown keyword '${key}' with value '${value}'`));\n }\n parsingContext.emittedStack[depth] = false;\n }\n}\nEntryHandlerKeywordUnknownFallback.VALID_KEYWORDS_TYPES = {\n '@index': { type: 'string', errorCode: jsonld_context_parser_1.ERROR_CODES.INVALID_INDEX_VALUE },\n '@list': null,\n '@reverse': { type: 'object', errorCode: jsonld_context_parser_1.ERROR_CODES.INVALID_REVERSE_VALUE },\n '@set': null,\n '@value': null,\n};\nexports.EntryHandlerKeywordUnknownFallback = EntryHandlerKeywordUnknownFallback;\n//# sourceMappingURL=EntryHandlerKeywordUnknownFallback.js.map\n\n//# sourceURL=webpack://bookmarks/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordUnknownFallback.js?"); /***/ }), /***/ "./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordValue.js": /*!***************************************************************************************************!*\ !*** ./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordValue.js ***! \***************************************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.EntryHandlerKeywordValue = void 0;\nconst EntryHandlerKeyword_1 = __webpack_require__(/*! ./EntryHandlerKeyword */ \"./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeyword.js\");\n/**\n * Handles @value entries.\n */\nclass EntryHandlerKeywordValue extends EntryHandlerKeyword_1.EntryHandlerKeyword {\n constructor() {\n super('@value');\n }\n async validate(parsingContext, util, keys, depth, inProperty) {\n // If this is @value, mark it so in the stack so that no deeper handling of nodes occurs.\n const key = keys[depth];\n if (key && !parsingContext.literalStack[depth] && await this.test(parsingContext, util, key, keys, depth)) {\n parsingContext.literalStack[depth] = true;\n }\n return super.validate(parsingContext, util, keys, depth, inProperty);\n }\n async test(parsingContext, util, key, keys, depth) {\n return await util.unaliasKeyword(keys[depth], keys.slice(0, keys.length - 1), depth - 1, true) === '@value';\n }\n async handle(parsingContext, util, key, keys, value, depth) {\n // If the value is valid, indicate that we are processing a literal.\n // The actual value will be determined at the parent level when the @value is part of an object,\n // because we may want to take into account additional entries such as @language.\n // See {@link Util.valueToTerm}\n // Indicate that we are processing a literal, and that no later predicates should be parsed at this depth.\n parsingContext.literalStack[depth] = true;\n // Void any buffers that we may have accumulated up until now\n delete parsingContext.unidentifiedValuesBuffer[depth];\n delete parsingContext.unidentifiedGraphsBuffer[depth];\n // Indicate that we have not emitted at this depth\n parsingContext.emittedStack[depth] = false;\n }\n}\nexports.EntryHandlerKeywordValue = EntryHandlerKeywordValue;\n//# sourceMappingURL=EntryHandlerKeywordValue.js.map\n\n//# sourceURL=webpack://bookmarks/./node_modules/jsonld-streaming-parser/lib/entryhandler/keyword/EntryHandlerKeywordValue.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://bookmarks/./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 */ BlankNode: () => (/* binding */ BlankNode),\n/* harmony export */ DefaultGraph: () => (/* binding */ DefaultGraph),\n/* harmony export */ Literal: () => (/* binding */ Literal),\n/* harmony export */ NamedNode: () => (/* binding */ NamedNode),\n/* harmony export */ Quad: () => (/* binding */ Quad),\n/* harmony export */ Term: () => (/* binding */ Term),\n/* harmony export */ Triple: () => (/* binding */ Quad),\n/* harmony export */ Variable: () => (/* binding */ Variable),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__),\n/* harmony export */ escapeQuotes: () => (/* binding */ escapeQuotes),\n/* harmony export */ fromQuad: () => (/* binding */ fromQuad),\n/* harmony export */ fromTerm: () => (/* binding */ fromTerm),\n/* harmony export */ termFromId: () => (/* binding */ termFromId),\n/* harmony export */ termToId: () => (/* binding */ termToId),\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// N3.js implementations of the RDF/JS core data types\n// See http://rdf.js.org/data-model-spec/\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 = /^\"(.*\".*)(?=\"[^\"]*$)/;\n\n// ## DataFactory singleton\nconst DataFactory = {\n namedNode,\n blankNode,\n variable,\n literal,\n defaultGraph,\n quad,\n triple: quad,\n fromTerm,\n fromQuad,\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 // ### Implement hashCode for Immutable.js, since we implement `equals`\n // https://immutable-js.com/docs/v4.0.0/ValueObject/#hashCode()\n hashCode() {\n return 0;\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// ### Constructs a term from the given internal string ID\n// The third 'nested' parameter of this function is to aid\n// with recursion over nested terms. It should not be used\n// by consumers of this library.\n// See https://github.com/rdfjs/N3.js/pull/311#discussion_r1061042725\nfunction termFromId(id, factory, nested) {\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 id = JSON.parse(id);\n break;\n default:\n if (!nested || !Array.isArray(id)) {\n return factory.namedNode(id);\n }\n }\n return factory.quad(\n termFromId(id[0], factory, true),\n termFromId(id[1], factory, true),\n termFromId(id[2], factory, true),\n id[3] && termFromId(id[3], factory, true),\n );\n}\n\n// ### Constructs an internal string ID from the given term or ID string\n// The third 'nested' parameter of this function is to aid\n// with recursion over nested terms. It should not be used\n// by consumers of this library.\n// See https://github.com/rdfjs/N3.js/pull/311#discussion_r1061042725\nfunction termToId(term, nested) {\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 const res = [\n termToId(term.subject, true),\n termToId(term.predicate, true),\n termToId(term.object, true),\n ];\n if (term.graph && term.graph.termType !== 'DefaultGraph') {\n res.push(termToId(term.graph, true));\n }\n return nested ? res : JSON.stringify(res);\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\nfunction fromTerm(term) {\n if (term instanceof Term)\n return term;\n\n // Term instantiated with another library\n switch (term.termType) {\n case 'NamedNode': return namedNode(term.value);\n case 'BlankNode': return blankNode(term.value);\n case 'Variable': return variable(term.value);\n case 'DefaultGraph': return DEFAULTGRAPH;\n case 'Literal': return literal(term.value, term.language || term.datatype);\n case 'Quad': return fromQuad(term);\n default: throw new Error(`Unexpected termType: ${term.termType}`);\n }\n}\n\nfunction fromQuad(inQuad) {\n if (inQuad instanceof Quad)\n return inQuad;\n\n if (inQuad.termType !== 'Quad')\n throw new Error(`Unexpected termType: ${inQuad.termType}`);\n\n return quad(fromTerm(inQuad.subject), fromTerm(inQuad.predicate), fromTerm(inQuad.object), fromTerm(inQuad.graph));\n}\n\n\n//# sourceURL=webpack://bookmarks/./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 buffer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\");\n/* harmony import */ var queue_microtask__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! queue-microtask */ \"./node_modules/queue-microtask/index.js\");\n/* harmony import */ var queue_microtask__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(queue_microtask__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _IRIs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./IRIs */ \"./node_modules/n3/src/IRIs.js\");\n// **N3Lexer** tokenizes N3 documents.\n\n\n\n\nconst { xsd } = _IRIs__WEBPACK_IMPORTED_MODULE_2__[\"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 let currentLineLength = input.length;\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 (this.comments && (comment = this._comment.exec(whiteSpaceMatch[0])))\n emitToken('comment', comment[1], '', this._line, whiteSpaceMatch[0].length);\n // Advance the input\n input = input.substr(whiteSpaceMatch[0].length, input.length);\n currentLineLength = 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 (this.comments && (comment = this._comment.exec(input)))\n emitToken('comment', comment[1], '', this._line, input.length);\n input = null;\n emitToken('eof', '', '', this._line, 0);\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 if (!this._lineMode) {\n matchLength = 1;\n type = firstChar;\n }\n break;\n case '{':\n // We need at least 2 tokens lookahead to distinguish \"{|\" and \"{ \"\n if (!this._lineMode && input.length >= 2) {\n // Try to find a quoted triple annotation start\n if (input[1] === '|')\n type = '{|', matchLength = 2;\n else\n type = firstChar, matchLength = 1;\n }\n break;\n case '|':\n // We need 2 tokens lookahead to parse \"|}\"\n // Try to find a quoted triple annotation end\n if (input.length >= 2 && input[1] === '}')\n type = '|}', matchLength = 2;\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 length = matchLength || match[0].length;\n const token = emitToken(type, value, prefix, line, length);\n this.previousToken = token;\n this._previousMarker = type;\n\n // Advance to next part to tokenize\n input = input.substr(length, input.length);\n }\n\n // Emits the token through the callback\n function emitToken(type, value, prefix, line, length) {\n const start = input ? currentLineLength - input.length : currentLineLength;\n const end = start + length;\n const token = { type, value, prefix, line, start, end };\n callback(null, token);\n return token;\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 // ### Strips off any starting UTF BOM mark.\n _readStartingBom(input) {\n return input.startsWith('\\ufeff') ? input.substr(1) : input;\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 = this._readStartingBom(input);\n // If a callback was passed, asynchronously call it\n if (typeof callback === 'function')\n queue_microtask__WEBPACK_IMPORTED_MODULE_1___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._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__WEBPACK_IMPORTED_MODULE_0__.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 // Only read a BOM at the start\n if (typeof this._input === 'undefined')\n this._input = this._readStartingBom(typeof data === 'string' ? data : data.toString());\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 (typeof this._input === 'string')\n this._tokenizeToEnd(callback, true);\n });\n input.on('error', callback);\n }\n }\n}\n\n\n//# sourceURL=webpack://bookmarks/./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 type,\n subject, predicate, object, graph,\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.value}.` : '.');\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(type, token) {\n // Obtain the previous context\n const context = this._contextStack.pop();\n if (!context || context.type !== type)\n return this._error(`Unexpected ${token.type}`, token);\n\n // Restore the quad of the previous context\n this._subject = context.subject;\n this._predicate = context.predicate;\n this._object = context.object;\n this._graph = context.graph;\n\n // Restore N3 context settings\n if (this._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._factory.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._factory.namedNode(prefix + token.value);\n break;\n // Read a blank node\n case 'blank':\n value = this._factory.blankNode(this._prefixes[token.prefix] + token.value);\n break;\n // Read a variable\n case 'var':\n value = this._factory.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._factory.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._factory.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 = '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 = '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._factory.literal(token.value, this._factory.namedNode(token.prefix));\n\n break;\n case '<<':\n if (!this._supportsRDFStar)\n return this._error('Unexpected RDF-star 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 '[':\n if (this._n3Mode) {\n // Start a new quad with a new blank node as subject\n this._saveContext('blank', this._graph, this._subject,\n this._subject = this._factory.blankNode(), null);\n return this._readBlankNodeHead;\n }\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._factory.literal(token.value, this._factory.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._factory.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._factory.blankNode());\n return this._readSubject;\n case '<<':\n if (!this._supportsRDFStar)\n return this._error('Unexpected RDF-star 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('blank', token);\n // If the blank node was the object, restore previous context and read punctuation\n if (this._object !== null)\n return this._getContextEndReader();\n // If the blank node was the predicate, continue reading the object\n else if (this._predicate !== null)\n return this._readObject;\n // If the blank node was the subject, continue reading the predicate\n else\n // If the blank node was empty, it could be a named graph label\n return empty ? this._readPredicateOrNamedGraph : this._readPredicateAfterBlank;\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._factory.blankNode(), this.RDF_FIRST,\n this._subject = item = this._factory.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._factory.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('list', token);\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._factory.literal(token.value, this._factory.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._factory.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._factory.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._factory.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._factory.literal(this._literalValue, datatype);\n token = null;\n break;\n // Create a language-tagged string\n case 'langcode':\n literal = this._factory.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('formula', token);\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 // {| means that the current triple is annotated with predicate-object pairs.\n case '{|':\n if (!this._supportsRDFStar)\n return this._error('Unexpected RDF-star syntax', token);\n // Continue using the last triple as quoted triple subject for the predicate-object pairs.\n const predicate = this._predicate, object = this._object;\n this._subject = this._factory.quad(subject, predicate, object, this.DEFAULTGRAPH);\n next = this._readPredicate;\n break;\n // |} means that the current quoted triple in annotation syntax is finalized.\n case '|}':\n if (this._subject.termType !== 'Quad')\n return this._error('Unexpected asserted triple closing', token);\n this._subject = null;\n next = this._readPunctuation;\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._factory.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._factory[this._quantifier](this._factory.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._factory.blankNode(), this.QUANTIFIERS_GRAPH);\n // Otherwise, continue the previous list\n else\n this._emit(this._subject, this.RDF_REST,\n this._subject = this._factory.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('item', token);\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._factory.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._factory.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-star quad or the end of a nested RDF-star 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-star 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._factory.quad(this._subject, this._predicate, this._object,\n this._graph || this.DEFAULTGRAPH);\n this._restoreContext('<<', token);\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._factory.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 onQuad callback.\n parse(input, quadCallback, prefixCallback) {\n // The second parameter accepts an object { onQuad: ..., onPrefix: ..., onComment: ...}\n // As a second and third parameter it still accepts a separate quadCallback and prefixCallback for backward compatibility as well\n let onQuad, onPrefix, onComment;\n if (quadCallback && (quadCallback.onQuad || quadCallback.onPrefix || quadCallback.onComment)) {\n onQuad = quadCallback.onQuad;\n onPrefix = quadCallback.onPrefix;\n onComment = quadCallback.onComment;\n }\n else {\n onQuad = quadCallback;\n onPrefix = prefixCallback;\n }\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 = onPrefix || noop;\n this._inversePredicate = false;\n this._quantified = Object.create(null);\n\n // Parse synchronously if no quad callback is given\n if (!onQuad) {\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 let processNextToken = (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 // Enable checking for comments on every token when a commentCallback has been set\n if (onComment) {\n // Enable the lexer to return comments as tokens first (disabled by default)\n this._lexer.comments = true;\n // Patch the processNextToken function\n processNextToken = (error, token) => {\n if (error !== null)\n this._callback(error), this._callback = noop;\n else if (this._readCallback) {\n if (token.type === 'comment')\n onComment(token.value);\n else\n this._readCallback = this._readCallback(token);\n }\n };\n }\n\n // Parse asynchronously otherwise, executing the read callback when a token arrives\n this._callback = onQuad;\n this._lexer.tokenize(input, processNextToken);\n }\n}\n\n// The empty function\nfunction noop() {}\n\n// Initializes the parser with the given data factory\nfunction initDataFactory(parser, factory) {\n parser._factory = factory;\n\n parser.DEFAULTGRAPH = factory.defaultGraph();\n\n // Set common named nodes\n parser.RDF_FIRST = factory.namedNode(_IRIs__WEBPACK_IMPORTED_MODULE_1__[\"default\"].rdf.first);\n parser.RDF_REST = factory.namedNode(_IRIs__WEBPACK_IMPORTED_MODULE_1__[\"default\"].rdf.rest);\n parser.RDF_NIL = factory.namedNode(_IRIs__WEBPACK_IMPORTED_MODULE_1__[\"default\"].rdf.nil);\n parser.N3_FORALL = factory.namedNode(_IRIs__WEBPACK_IMPORTED_MODULE_1__[\"default\"].r.forAll);\n parser.N3_FORSOME = factory.namedNode(_IRIs__WEBPACK_IMPORTED_MODULE_1__[\"default\"].r.forSome);\n parser.ABBREVIATIONS = {\n 'a': factory.namedNode(_IRIs__WEBPACK_IMPORTED_MODULE_1__[\"default\"].rdf.type),\n '=': factory.namedNode(_IRIs__WEBPACK_IMPORTED_MODULE_1__[\"default\"].owl.sameAs),\n '>': factory.namedNode(_IRIs__WEBPACK_IMPORTED_MODULE_1__[\"default\"].log.implies),\n };\n parser.QUANTIFIERS_GRAPH = factory.namedNode('urn:n3:quantifiers');\n}\ninitDataFactory(N3Parser.prototype, _N3DataFactory__WEBPACK_IMPORTED_MODULE_2__[\"default\"]);\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/n3/src/N3Parser.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 */ inDefaultGraph: () => (/* binding */ inDefaultGraph),\n/* harmony export */ isBlankNode: () => (/* binding */ isBlankNode),\n/* harmony export */ isDefaultGraph: () => (/* binding */ isDefaultGraph),\n/* harmony export */ isLiteral: () => (/* binding */ isLiteral),\n/* harmony export */ isNamedNode: () => (/* binding */ isNamedNode),\n/* harmony export */ isVariable: () => (/* binding */ isVariable),\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.value || 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://bookmarks/./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(other) {\n return other === this;\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._prefixIRIs = Object.create(null);\n options.prefixes && this.addPrefixes(options.prefixes);\n if (options.baseIRI) {\n this._baseMatcher = new RegExp(`^${escapeRegex(options.baseIRI)\n }${options.baseIRI.endsWith('/') ? '' : '[#?]'}`);\n this._baseLength = options.baseIRI.length;\n }\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 let quadsString = '';\n for (const quad of quads)\n quadsString += this.quadToString(quad.subject, quad.predicate, quad.object, quad.graph);\n return quadsString;\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._baseMatcher && this._baseMatcher.test(iri))\n iri = iri.substr(this._baseLength);\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-star 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 = escapeRegex(IRIlist, /[\\]\\/\\(\\)\\*\\+\\?\\.\\\\\\$]/g, '\\\\$&');\n this._prefixRegex = new RegExp(`^(?:${prefixList})[^\\/]*$|` +\n `^(${IRIlist})([_a-zA-Z0-9][\\\\-_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\nfunction escapeRegex(regex) {\n return regex.replace(/[\\]\\/\\(\\)\\*\\+\\?\\.\\\\\\$]/g, '\\\\$&');\n}\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/n3/src/N3Writer.js?"); /***/ }), /***/ "./node_modules/process/browser.js": /*!*****************************************!*\ !*** ./node_modules/process/browser.js ***! \*****************************************/ /***/ ((module) => { eval("// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/process/browser.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://bookmarks/./node_modules/queue-microtask/index.js?"); /***/ }), /***/ "./node_modules/rdf-data-factory/index.js": /*!************************************************!*\ !*** ./node_modules/rdf-data-factory/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 var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\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 }));\n__exportStar(__webpack_require__(/*! ./lib/BlankNode */ \"./node_modules/rdf-data-factory/lib/BlankNode.js\"), exports);\n__exportStar(__webpack_require__(/*! ./lib/DataFactory */ \"./node_modules/rdf-data-factory/lib/DataFactory.js\"), exports);\n__exportStar(__webpack_require__(/*! ./lib/DefaultGraph */ \"./node_modules/rdf-data-factory/lib/DefaultGraph.js\"), exports);\n__exportStar(__webpack_require__(/*! ./lib/Literal */ \"./node_modules/rdf-data-factory/lib/Literal.js\"), exports);\n__exportStar(__webpack_require__(/*! ./lib/NamedNode */ \"./node_modules/rdf-data-factory/lib/NamedNode.js\"), exports);\n__exportStar(__webpack_require__(/*! ./lib/Quad */ \"./node_modules/rdf-data-factory/lib/Quad.js\"), exports);\n__exportStar(__webpack_require__(/*! ./lib/Variable */ \"./node_modules/rdf-data-factory/lib/Variable.js\"), exports);\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://bookmarks/./node_modules/rdf-data-factory/index.js?"); /***/ }), /***/ "./node_modules/rdf-data-factory/lib/BlankNode.js": /*!********************************************************!*\ !*** ./node_modules/rdf-data-factory/lib/BlankNode.js ***! \********************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\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//# sourceURL=webpack://bookmarks/./node_modules/rdf-data-factory/lib/BlankNode.js?"); /***/ }), /***/ "./node_modules/rdf-data-factory/lib/DataFactory.js": /*!**********************************************************!*\ !*** ./node_modules/rdf-data-factory/lib/DataFactory.js ***! \**********************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.DataFactory = void 0;\nconst BlankNode_1 = __webpack_require__(/*! ./BlankNode */ \"./node_modules/rdf-data-factory/lib/BlankNode.js\");\nconst DefaultGraph_1 = __webpack_require__(/*! ./DefaultGraph */ \"./node_modules/rdf-data-factory/lib/DefaultGraph.js\");\nconst Literal_1 = __webpack_require__(/*! ./Literal */ \"./node_modules/rdf-data-factory/lib/Literal.js\");\nconst NamedNode_1 = __webpack_require__(/*! ./NamedNode */ \"./node_modules/rdf-data-factory/lib/NamedNode.js\");\nconst Quad_1 = __webpack_require__(/*! ./Quad */ \"./node_modules/rdf-data-factory/lib/Quad.js\");\nconst Variable_1 = __webpack_require__(/*! ./Variable */ \"./node_modules/rdf-data-factory/lib/Variable.js\");\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//# sourceURL=webpack://bookmarks/./node_modules/rdf-data-factory/lib/DataFactory.js?"); /***/ }), /***/ "./node_modules/rdf-data-factory/lib/DefaultGraph.js": /*!***********************************************************!*\ !*** ./node_modules/rdf-data-factory/lib/DefaultGraph.js ***! \***********************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\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//# sourceURL=webpack://bookmarks/./node_modules/rdf-data-factory/lib/DefaultGraph.js?"); /***/ }), /***/ "./node_modules/rdf-data-factory/lib/Literal.js": /*!******************************************************!*\ !*** ./node_modules/rdf-data-factory/lib/Literal.js ***! \******************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.Literal = void 0;\nconst NamedNode_1 = __webpack_require__(/*! ./NamedNode */ \"./node_modules/rdf-data-factory/lib/NamedNode.js\");\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 && this.datatype.equals(other.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//# sourceURL=webpack://bookmarks/./node_modules/rdf-data-factory/lib/Literal.js?"); /***/ }), /***/ "./node_modules/rdf-data-factory/lib/NamedNode.js": /*!********************************************************!*\ !*** ./node_modules/rdf-data-factory/lib/NamedNode.js ***! \********************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\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//# sourceURL=webpack://bookmarks/./node_modules/rdf-data-factory/lib/NamedNode.js?"); /***/ }), /***/ "./node_modules/rdf-data-factory/lib/Quad.js": /*!***************************************************!*\ !*** ./node_modules/rdf-data-factory/lib/Quad.js ***! \***************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\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//# sourceURL=webpack://bookmarks/./node_modules/rdf-data-factory/lib/Quad.js?"); /***/ }), /***/ "./node_modules/rdf-data-factory/lib/Variable.js": /*!*******************************************************!*\ !*** ./node_modules/rdf-data-factory/lib/Variable.js ***! \*******************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\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//# sourceURL=webpack://bookmarks/./node_modules/rdf-data-factory/lib/Variable.js?"); /***/ }), /***/ "./node_modules/readable-stream/lib/internal/streams/add-abort-signal.js": /*!*******************************************************************************!*\ !*** ./node_modules/readable-stream/lib/internal/streams/add-abort-signal.js ***! \*******************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nconst { SymbolDispose } = __webpack_require__(/*! ../../ours/primordials */ \"./node_modules/readable-stream/lib/ours/primordials.js\")\nconst { AbortError, codes } = __webpack_require__(/*! ../../ours/errors */ \"./node_modules/readable-stream/lib/ours/errors.js\")\nconst { isNodeStream, isWebStream, kControllerErrorFunction } = __webpack_require__(/*! ./utils */ \"./node_modules/readable-stream/lib/internal/streams/utils.js\")\nconst eos = __webpack_require__(/*! ./end-of-stream */ \"./node_modules/readable-stream/lib/internal/streams/end-of-stream.js\")\nconst { ERR_INVALID_ARG_TYPE } = codes\nlet addAbortListener\n\n// This method is inlined here for readable-stream\n// It also does not allow for signal to not exist on the stream\n// https://github.com/nodejs/node/pull/36061#discussion_r533718029\nconst validateAbortSignal = (signal, name) => {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n}\nmodule.exports.addAbortSignal = function addAbortSignal(signal, stream) {\n validateAbortSignal(signal, 'signal')\n if (!isNodeStream(stream) && !isWebStream(stream)) {\n throw new ERR_INVALID_ARG_TYPE('stream', ['ReadableStream', 'WritableStream', 'Stream'], stream)\n }\n return module.exports.addAbortSignalNoValidate(signal, stream)\n}\nmodule.exports.addAbortSignalNoValidate = function (signal, stream) {\n if (typeof signal !== 'object' || !('aborted' in signal)) {\n return stream\n }\n const onAbort = isNodeStream(stream)\n ? () => {\n stream.destroy(\n new AbortError(undefined, {\n cause: signal.reason\n })\n )\n }\n : () => {\n stream[kControllerErrorFunction](\n new AbortError(undefined, {\n cause: signal.reason\n })\n )\n }\n if (signal.aborted) {\n onAbort()\n } else {\n addAbortListener = addAbortListener || (__webpack_require__(/*! ../../ours/util */ \"./node_modules/readable-stream/lib/ours/util.js\").addAbortListener)\n const disposable = addAbortListener(signal, onAbort)\n eos(stream, disposable[SymbolDispose])\n }\n return stream\n}\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/readable-stream/lib/internal/streams/add-abort-signal.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\nconst { StringPrototypeSlice, SymbolIterator, TypedArrayPrototypeSet, Uint8Array } = __webpack_require__(/*! ../../ours/primordials */ \"./node_modules/readable-stream/lib/ours/primordials.js\")\nconst { Buffer } = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")\nconst { inspect } = __webpack_require__(/*! ../../ours/util */ \"./node_modules/readable-stream/lib/ours/util.js\")\nmodule.exports = class BufferList {\n constructor() {\n this.head = null\n this.tail = null\n this.length = 0\n }\n push(v) {\n const entry = {\n data: v,\n next: null\n }\n if (this.length > 0) this.tail.next = entry\n else this.head = entry\n this.tail = entry\n ++this.length\n }\n unshift(v) {\n const 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 shift() {\n if (this.length === 0) return\n const ret = this.head.data\n if (this.length === 1) this.head = this.tail = null\n else this.head = this.head.next\n --this.length\n return ret\n }\n clear() {\n this.head = this.tail = null\n this.length = 0\n }\n join(s) {\n if (this.length === 0) return ''\n let p = this.head\n let ret = '' + p.data\n while ((p = p.next) !== null) ret += s + p.data\n return ret\n }\n concat(n) {\n if (this.length === 0) return Buffer.alloc(0)\n const ret = Buffer.allocUnsafe(n >>> 0)\n let p = this.head\n let i = 0\n while (p) {\n TypedArrayPrototypeSet(ret, p.data, i)\n i += p.data.length\n p = p.next\n }\n return ret\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n consume(n, hasStrings) {\n const data = this.head.data\n if (n < data.length) {\n // `slice` is the same for buffers and strings.\n const slice = data.slice(0, n)\n this.head.data = data.slice(n)\n return slice\n }\n if (n === data.length) {\n // First chunk is a perfect match.\n return this.shift()\n }\n // Result spans more than one buffer.\n return hasStrings ? this._getString(n) : this._getBuffer(n)\n }\n first() {\n return this.head.data\n }\n *[SymbolIterator]() {\n for (let p = this.head; p; p = p.next) {\n yield p.data\n }\n }\n\n // Consumes a specified amount of characters from the buffered data.\n _getString(n) {\n let ret = ''\n let p = this.head\n let c = 0\n do {\n const str = p.data\n if (n > str.length) {\n ret += str\n n -= str.length\n } else {\n if (n === str.length) {\n ret += str\n ++c\n if (p.next) this.head = p.next\n else this.head = this.tail = null\n } else {\n ret += StringPrototypeSlice(str, 0, n)\n this.head = p\n p.data = StringPrototypeSlice(str, n)\n }\n break\n }\n ++c\n } while ((p = p.next) !== null)\n this.length -= c\n return ret\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n _getBuffer(n) {\n const ret = Buffer.allocUnsafe(n)\n const retLen = n\n let p = this.head\n let c = 0\n do {\n const buf = p.data\n if (n > buf.length) {\n TypedArrayPrototypeSet(ret, buf, retLen - n)\n n -= buf.length\n } else {\n if (n === buf.length) {\n TypedArrayPrototypeSet(ret, buf, retLen - n)\n ++c\n if (p.next) this.head = p.next\n else this.head = this.tail = null\n } else {\n TypedArrayPrototypeSet(ret, new Uint8Array(buf.buffer, buf.byteOffset, n), retLen - n)\n this.head = p\n p.data = buf.slice(n)\n }\n break\n }\n ++c\n } while ((p = p.next) !== null)\n this.length -= c\n return ret\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n [Symbol.for('nodejs.util.inspect.custom')](_, options) {\n return inspect(this, {\n ...options,\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n })\n }\n}\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/readable-stream/lib/internal/streams/buffer_list.js?"); /***/ }), /***/ "./node_modules/readable-stream/lib/internal/streams/compose.js": /*!**********************************************************************!*\ !*** ./node_modules/readable-stream/lib/internal/streams/compose.js ***! \**********************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nconst { pipeline } = __webpack_require__(/*! ./pipeline */ \"./node_modules/readable-stream/lib/internal/streams/pipeline.js\")\nconst Duplex = __webpack_require__(/*! ./duplex */ \"./node_modules/readable-stream/lib/internal/streams/duplex.js\")\nconst { destroyer } = __webpack_require__(/*! ./destroy */ \"./node_modules/readable-stream/lib/internal/streams/destroy.js\")\nconst {\n isNodeStream,\n isReadable,\n isWritable,\n isWebStream,\n isTransformStream,\n isWritableStream,\n isReadableStream\n} = __webpack_require__(/*! ./utils */ \"./node_modules/readable-stream/lib/internal/streams/utils.js\")\nconst {\n AbortError,\n codes: { ERR_INVALID_ARG_VALUE, ERR_MISSING_ARGS }\n} = __webpack_require__(/*! ../../ours/errors */ \"./node_modules/readable-stream/lib/ours/errors.js\")\nconst eos = __webpack_require__(/*! ./end-of-stream */ \"./node_modules/readable-stream/lib/internal/streams/end-of-stream.js\")\nmodule.exports = function compose(...streams) {\n if (streams.length === 0) {\n throw new ERR_MISSING_ARGS('streams')\n }\n if (streams.length === 1) {\n return Duplex.from(streams[0])\n }\n const orgStreams = [...streams]\n if (typeof streams[0] === 'function') {\n streams[0] = Duplex.from(streams[0])\n }\n if (typeof streams[streams.length - 1] === 'function') {\n const idx = streams.length - 1\n streams[idx] = Duplex.from(streams[idx])\n }\n for (let n = 0; n < streams.length; ++n) {\n if (!isNodeStream(streams[n]) && !isWebStream(streams[n])) {\n // TODO(ronag): Add checks for non streams.\n continue\n }\n if (\n n < streams.length - 1 &&\n !(isReadable(streams[n]) || isReadableStream(streams[n]) || isTransformStream(streams[n]))\n ) {\n throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], 'must be readable')\n }\n if (n > 0 && !(isWritable(streams[n]) || isWritableStream(streams[n]) || isTransformStream(streams[n]))) {\n throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`, orgStreams[n], 'must be writable')\n }\n }\n let ondrain\n let onfinish\n let onreadable\n let onclose\n let d\n function onfinished(err) {\n const cb = onclose\n onclose = null\n if (cb) {\n cb(err)\n } else if (err) {\n d.destroy(err)\n } else if (!readable && !writable) {\n d.destroy()\n }\n }\n const head = streams[0]\n const tail = pipeline(streams, onfinished)\n const writable = !!(isWritable(head) || isWritableStream(head) || isTransformStream(head))\n const readable = !!(isReadable(tail) || isReadableStream(tail) || isTransformStream(tail))\n\n // TODO(ronag): Avoid double buffering.\n // Implement Writable/Readable/Duplex traits.\n // See, https://github.com/nodejs/node/pull/33515.\n d = new Duplex({\n // TODO (ronag): highWaterMark?\n writableObjectMode: !!(head !== null && head !== undefined && head.writableObjectMode),\n readableObjectMode: !!(tail !== null && tail !== undefined && tail.readableObjectMode),\n writable,\n readable\n })\n if (writable) {\n if (isNodeStream(head)) {\n d._write = function (chunk, encoding, callback) {\n if (head.write(chunk, encoding)) {\n callback()\n } else {\n ondrain = callback\n }\n }\n d._final = function (callback) {\n head.end()\n onfinish = callback\n }\n head.on('drain', function () {\n if (ondrain) {\n const cb = ondrain\n ondrain = null\n cb()\n }\n })\n } else if (isWebStream(head)) {\n const writable = isTransformStream(head) ? head.writable : head\n const writer = writable.getWriter()\n d._write = async function (chunk, encoding, callback) {\n try {\n await writer.ready\n writer.write(chunk).catch(() => {})\n callback()\n } catch (err) {\n callback(err)\n }\n }\n d._final = async function (callback) {\n try {\n await writer.ready\n writer.close().catch(() => {})\n onfinish = callback\n } catch (err) {\n callback(err)\n }\n }\n }\n const toRead = isTransformStream(tail) ? tail.readable : tail\n eos(toRead, () => {\n if (onfinish) {\n const cb = onfinish\n onfinish = null\n cb()\n }\n })\n }\n if (readable) {\n if (isNodeStream(tail)) {\n tail.on('readable', function () {\n if (onreadable) {\n const cb = onreadable\n onreadable = null\n cb()\n }\n })\n tail.on('end', function () {\n d.push(null)\n })\n d._read = function () {\n while (true) {\n const buf = tail.read()\n if (buf === null) {\n onreadable = d._read\n return\n }\n if (!d.push(buf)) {\n return\n }\n }\n }\n } else if (isWebStream(tail)) {\n const readable = isTransformStream(tail) ? tail.readable : tail\n const reader = readable.getReader()\n d._read = async function () {\n while (true) {\n try {\n const { value, done } = await reader.read()\n if (!d.push(value)) {\n return\n }\n if (done) {\n d.push(null)\n return\n }\n } catch {\n return\n }\n }\n }\n }\n }\n d._destroy = function (err, callback) {\n if (!err && onclose !== null) {\n err = new AbortError()\n }\n onreadable = null\n ondrain = null\n onfinish = null\n if (onclose === null) {\n callback(err)\n } else {\n onclose = callback\n if (isNodeStream(tail)) {\n destroyer(tail, err)\n }\n }\n }\n return d\n}\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/readable-stream/lib/internal/streams/compose.js?"); /***/ }), /***/ "./node_modules/readable-stream/lib/internal/streams/destroy.js": /*!**********************************************************************!*\ !*** ./node_modules/readable-stream/lib/internal/streams/destroy.js ***! \**********************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\n/* replacement start */\n\nconst process = __webpack_require__(/*! process/ */ \"./node_modules/process/browser.js\")\n\n/* replacement end */\n\nconst {\n aggregateTwoErrors,\n codes: { ERR_MULTIPLE_CALLBACK },\n AbortError\n} = __webpack_require__(/*! ../../ours/errors */ \"./node_modules/readable-stream/lib/ours/errors.js\")\nconst { Symbol } = __webpack_require__(/*! ../../ours/primordials */ \"./node_modules/readable-stream/lib/ours/primordials.js\")\nconst { kIsDestroyed, isDestroyed, isFinished, isServerRequest } = __webpack_require__(/*! ./utils */ \"./node_modules/readable-stream/lib/internal/streams/utils.js\")\nconst kDestroy = Symbol('kDestroy')\nconst kConstruct = Symbol('kConstruct')\nfunction checkError(err, w, r) {\n if (err) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n err.stack // eslint-disable-line no-unused-expressions\n\n if (w && !w.errored) {\n w.errored = err\n }\n if (r && !r.errored) {\n r.errored = err\n }\n }\n}\n\n// Backwards compat. cb() is undocumented and unused in core but\n// unfortunately might be used by modules.\nfunction destroy(err, cb) {\n const r = this._readableState\n const w = this._writableState\n // With duplex streams we use the writable side for state.\n const s = w || r\n if ((w !== null && w !== undefined && w.destroyed) || (r !== null && r !== undefined && r.destroyed)) {\n if (typeof cb === 'function') {\n cb()\n }\n return this\n }\n\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 checkError(err, w, r)\n if (w) {\n w.destroyed = true\n }\n if (r) {\n r.destroyed = true\n }\n\n // If still constructing then defer calling _destroy.\n if (!s.constructed) {\n this.once(kDestroy, function (er) {\n _destroy(this, aggregateTwoErrors(er, err), cb)\n })\n } else {\n _destroy(this, err, cb)\n }\n return this\n}\nfunction _destroy(self, err, cb) {\n let called = false\n function onDestroy(err) {\n if (called) {\n return\n }\n called = true\n const r = self._readableState\n const w = self._writableState\n checkError(err, w, r)\n if (w) {\n w.closed = true\n }\n if (r) {\n r.closed = true\n }\n if (typeof cb === 'function') {\n cb(err)\n }\n if (err) {\n process.nextTick(emitErrorCloseNT, self, err)\n } else {\n process.nextTick(emitCloseNT, self)\n }\n }\n try {\n self._destroy(err || null, onDestroy)\n } catch (err) {\n onDestroy(err)\n }\n}\nfunction emitErrorCloseNT(self, err) {\n emitErrorNT(self, err)\n emitCloseNT(self)\n}\nfunction emitCloseNT(self) {\n const r = self._readableState\n const w = self._writableState\n if (w) {\n w.closeEmitted = true\n }\n if (r) {\n r.closeEmitted = true\n }\n if ((w !== null && w !== undefined && w.emitClose) || (r !== null && r !== undefined && r.emitClose)) {\n self.emit('close')\n }\n}\nfunction emitErrorNT(self, err) {\n const r = self._readableState\n const w = self._writableState\n if ((w !== null && w !== undefined && w.errorEmitted) || (r !== null && r !== undefined && r.errorEmitted)) {\n return\n }\n if (w) {\n w.errorEmitted = true\n }\n if (r) {\n r.errorEmitted = true\n }\n self.emit('error', err)\n}\nfunction undestroy() {\n const r = this._readableState\n const w = this._writableState\n if (r) {\n r.constructed = true\n r.closed = false\n r.closeEmitted = false\n r.destroyed = false\n r.errored = null\n r.errorEmitted = false\n r.reading = false\n r.ended = r.readable === false\n r.endEmitted = r.readable === false\n }\n if (w) {\n w.constructed = true\n w.destroyed = false\n w.closed = false\n w.closeEmitted = false\n w.errored = null\n w.errorEmitted = false\n w.finalCalled = false\n w.prefinished = false\n w.ended = w.writable === false\n w.ending = w.writable === false\n w.finished = w.writable === false\n }\n}\nfunction errorOrDestroy(stream, err, sync) {\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\n const r = stream._readableState\n const w = stream._writableState\n if ((w !== null && w !== undefined && w.destroyed) || (r !== null && r !== undefined && r.destroyed)) {\n return this\n }\n if ((r !== null && r !== undefined && r.autoDestroy) || (w !== null && w !== undefined && w.autoDestroy))\n stream.destroy(err)\n else if (err) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n err.stack // eslint-disable-line no-unused-expressions\n\n if (w && !w.errored) {\n w.errored = err\n }\n if (r && !r.errored) {\n r.errored = err\n }\n if (sync) {\n process.nextTick(emitErrorNT, stream, err)\n } else {\n emitErrorNT(stream, err)\n }\n }\n}\nfunction construct(stream, cb) {\n if (typeof stream._construct !== 'function') {\n return\n }\n const r = stream._readableState\n const w = stream._writableState\n if (r) {\n r.constructed = false\n }\n if (w) {\n w.constructed = false\n }\n stream.once(kConstruct, cb)\n if (stream.listenerCount(kConstruct) > 1) {\n // Duplex\n return\n }\n process.nextTick(constructNT, stream)\n}\nfunction constructNT(stream) {\n let called = false\n function onConstruct(err) {\n if (called) {\n errorOrDestroy(stream, err !== null && err !== undefined ? err : new ERR_MULTIPLE_CALLBACK())\n return\n }\n called = true\n const r = stream._readableState\n const w = stream._writableState\n const s = w || r\n if (r) {\n r.constructed = true\n }\n if (w) {\n w.constructed = true\n }\n if (s.destroyed) {\n stream.emit(kDestroy, err)\n } else if (err) {\n errorOrDestroy(stream, err, true)\n } else {\n process.nextTick(emitConstructNT, stream)\n }\n }\n try {\n stream._construct((err) => {\n process.nextTick(onConstruct, err)\n })\n } catch (err) {\n process.nextTick(onConstruct, err)\n }\n}\nfunction emitConstructNT(stream) {\n stream.emit(kConstruct)\n}\nfunction isRequest(stream) {\n return (stream === null || stream === undefined ? undefined : stream.setHeader) && typeof stream.abort === 'function'\n}\nfunction emitCloseLegacy(stream) {\n stream.emit('close')\n}\nfunction emitErrorCloseLegacy(stream, err) {\n stream.emit('error', err)\n process.nextTick(emitCloseLegacy, stream)\n}\n\n// Normalize destroy for legacy.\nfunction destroyer(stream, err) {\n if (!stream || isDestroyed(stream)) {\n return\n }\n if (!err && !isFinished(stream)) {\n err = new AbortError()\n }\n\n // TODO: Remove isRequest branches.\n if (isServerRequest(stream)) {\n stream.socket = null\n stream.destroy(err)\n } else if (isRequest(stream)) {\n stream.abort()\n } else if (isRequest(stream.req)) {\n stream.req.abort()\n } else if (typeof stream.destroy === 'function') {\n stream.destroy(err)\n } else if (typeof stream.close === 'function') {\n // TODO: Don't lose err?\n stream.close()\n } else if (err) {\n process.nextTick(emitErrorCloseLegacy, stream, err)\n } else {\n process.nextTick(emitCloseLegacy, stream)\n }\n if (!stream.destroyed) {\n stream[kIsDestroyed] = true\n }\n}\nmodule.exports = {\n construct,\n destroyer,\n destroy,\n undestroy,\n errorOrDestroy\n}\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/readable-stream/lib/internal/streams/destroy.js?"); /***/ }), /***/ "./node_modules/readable-stream/lib/internal/streams/duplex.js": /*!*********************************************************************!*\ !*** ./node_modules/readable-stream/lib/internal/streams/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\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototype inheritance, this class\n// prototypically inherits from Readable, and then parasitically from\n// Writable.\n\n\n\nconst {\n ObjectDefineProperties,\n ObjectGetOwnPropertyDescriptor,\n ObjectKeys,\n ObjectSetPrototypeOf\n} = __webpack_require__(/*! ../../ours/primordials */ \"./node_modules/readable-stream/lib/ours/primordials.js\")\nmodule.exports = Duplex\nconst Readable = __webpack_require__(/*! ./readable */ \"./node_modules/readable-stream/lib/internal/streams/readable.js\")\nconst Writable = __webpack_require__(/*! ./writable */ \"./node_modules/readable-stream/lib/internal/streams/writable.js\")\nObjectSetPrototypeOf(Duplex.prototype, Readable.prototype)\nObjectSetPrototypeOf(Duplex, Readable)\n{\n const keys = ObjectKeys(Writable.prototype)\n // Allow the keys array to be GC'ed.\n for (let i = 0; i < keys.length; i++) {\n const method = keys[i]\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]\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 if (options) {\n this.allowHalfOpen = options.allowHalfOpen !== false\n if (options.readable === false) {\n this._readableState.readable = false\n this._readableState.ended = true\n this._readableState.endEmitted = true\n }\n if (options.writable === false) {\n this._writableState.writable = false\n this._writableState.ending = true\n this._writableState.ended = true\n this._writableState.finished = true\n }\n } else {\n this.allowHalfOpen = true\n }\n}\nObjectDefineProperties(Duplex.prototype, {\n writable: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writable')\n },\n writableHighWaterMark: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableHighWaterMark')\n },\n writableObjectMode: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableObjectMode')\n },\n writableBuffer: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableBuffer')\n },\n writableLength: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableLength')\n },\n writableFinished: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableFinished')\n },\n writableCorked: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableCorked')\n },\n writableEnded: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableEnded')\n },\n writableNeedDrain: {\n __proto__: null,\n ...ObjectGetOwnPropertyDescriptor(Writable.prototype, 'writableNeedDrain')\n },\n destroyed: {\n __proto__: null,\n get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false\n }\n return this._readableState.destroyed && this._writableState.destroyed\n },\n set(value) {\n // Backward compatibility, the user is explicitly\n // managing destroyed.\n if (this._readableState && this._writableState) {\n this._readableState.destroyed = value\n this._writableState.destroyed = value\n }\n }\n }\n})\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nDuplex.fromWeb = function (pair, options) {\n return lazyWebStreams().newStreamDuplexFromReadableWritablePair(pair, options)\n}\nDuplex.toWeb = function (duplex) {\n return lazyWebStreams().newReadableWritablePairFromDuplex(duplex)\n}\nlet duplexify\nDuplex.from = function (body) {\n if (!duplexify) {\n duplexify = __webpack_require__(/*! ./duplexify */ \"./node_modules/readable-stream/lib/internal/streams/duplexify.js\")\n }\n return duplexify(body, 'body')\n}\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/readable-stream/lib/internal/streams/duplex.js?"); /***/ }), /***/ "./node_modules/readable-stream/lib/internal/streams/duplexify.js": /*!************************************************************************!*\ !*** ./node_modules/readable-stream/lib/internal/streams/duplexify.js ***! \************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { eval("/* replacement start */\n\nconst process = __webpack_require__(/*! process/ */ \"./node_modules/process/browser.js\")\n\n/* replacement end */\n\n;('use strict')\nconst bufferModule = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")\nconst {\n isReadable,\n isWritable,\n isIterable,\n isNodeStream,\n isReadableNodeStream,\n isWritableNodeStream,\n isDuplexNodeStream,\n isReadableStream,\n isWritableStream\n} = __webpack_require__(/*! ./utils */ \"./node_modules/readable-stream/lib/internal/streams/utils.js\")\nconst eos = __webpack_require__(/*! ./end-of-stream */ \"./node_modules/readable-stream/lib/internal/streams/end-of-stream.js\")\nconst {\n AbortError,\n codes: { ERR_INVALID_ARG_TYPE, ERR_INVALID_RETURN_VALUE }\n} = __webpack_require__(/*! ../../ours/errors */ \"./node_modules/readable-stream/lib/ours/errors.js\")\nconst { destroyer } = __webpack_require__(/*! ./destroy */ \"./node_modules/readable-stream/lib/internal/streams/destroy.js\")\nconst Duplex = __webpack_require__(/*! ./duplex */ \"./node_modules/readable-stream/lib/internal/streams/duplex.js\")\nconst Readable = __webpack_require__(/*! ./readable */ \"./node_modules/readable-stream/lib/internal/streams/readable.js\")\nconst Writable = __webpack_require__(/*! ./writable */ \"./node_modules/readable-stream/lib/internal/streams/writable.js\")\nconst { createDeferredPromise } = __webpack_require__(/*! ../../ours/util */ \"./node_modules/readable-stream/lib/ours/util.js\")\nconst from = __webpack_require__(/*! ./from */ \"./node_modules/readable-stream/lib/internal/streams/from.js\")\nconst Blob = globalThis.Blob || bufferModule.Blob\nconst isBlob =\n typeof Blob !== 'undefined'\n ? function isBlob(b) {\n return b instanceof Blob\n }\n : function isBlob(b) {\n return false\n }\nconst AbortController = globalThis.AbortController || (__webpack_require__(/*! abort-controller */ \"./node_modules/abort-controller/browser.js\").AbortController)\nconst { FunctionPrototypeCall } = __webpack_require__(/*! ../../ours/primordials */ \"./node_modules/readable-stream/lib/ours/primordials.js\")\n\n// This is needed for pre node 17.\nclass Duplexify extends Duplex {\n constructor(options) {\n super(options)\n\n // https://github.com/nodejs/node/pull/34385\n\n if ((options === null || options === undefined ? undefined : options.readable) === false) {\n this._readableState.readable = false\n this._readableState.ended = true\n this._readableState.endEmitted = true\n }\n if ((options === null || options === undefined ? undefined : options.writable) === false) {\n this._writableState.writable = false\n this._writableState.ending = true\n this._writableState.ended = true\n this._writableState.finished = true\n }\n }\n}\nmodule.exports = function duplexify(body, name) {\n if (isDuplexNodeStream(body)) {\n return body\n }\n if (isReadableNodeStream(body)) {\n return _duplexify({\n readable: body\n })\n }\n if (isWritableNodeStream(body)) {\n return _duplexify({\n writable: body\n })\n }\n if (isNodeStream(body)) {\n return _duplexify({\n writable: false,\n readable: false\n })\n }\n if (isReadableStream(body)) {\n return _duplexify({\n readable: Readable.fromWeb(body)\n })\n }\n if (isWritableStream(body)) {\n return _duplexify({\n writable: Writable.fromWeb(body)\n })\n }\n if (typeof body === 'function') {\n const { value, write, final, destroy } = fromAsyncGen(body)\n if (isIterable(value)) {\n return from(Duplexify, value, {\n // TODO (ronag): highWaterMark?\n objectMode: true,\n write,\n final,\n destroy\n })\n }\n const then = value === null || value === undefined ? undefined : value.then\n if (typeof then === 'function') {\n let d\n const promise = FunctionPrototypeCall(\n then,\n value,\n (val) => {\n if (val != null) {\n throw new ERR_INVALID_RETURN_VALUE('nully', 'body', val)\n }\n },\n (err) => {\n destroyer(d, err)\n }\n )\n return (d = new Duplexify({\n // TODO (ronag): highWaterMark?\n objectMode: true,\n readable: false,\n write,\n final(cb) {\n final(async () => {\n try {\n await promise\n process.nextTick(cb, null)\n } catch (err) {\n process.nextTick(cb, err)\n }\n })\n },\n destroy\n }))\n }\n throw new ERR_INVALID_RETURN_VALUE('Iterable, AsyncIterable or AsyncFunction', name, value)\n }\n if (isBlob(body)) {\n return duplexify(body.arrayBuffer())\n }\n if (isIterable(body)) {\n return from(Duplexify, body, {\n // TODO (ronag): highWaterMark?\n objectMode: true,\n writable: false\n })\n }\n if (\n isReadableStream(body === null || body === undefined ? undefined : body.readable) &&\n isWritableStream(body === null || body === undefined ? undefined : body.writable)\n ) {\n return Duplexify.fromWeb(body)\n }\n if (\n typeof (body === null || body === undefined ? undefined : body.writable) === 'object' ||\n typeof (body === null || body === undefined ? undefined : body.readable) === 'object'\n ) {\n const readable =\n body !== null && body !== undefined && body.readable\n ? isReadableNodeStream(body === null || body === undefined ? undefined : body.readable)\n ? body === null || body === undefined\n ? undefined\n : body.readable\n : duplexify(body.readable)\n : undefined\n const writable =\n body !== null && body !== undefined && body.writable\n ? isWritableNodeStream(body === null || body === undefined ? undefined : body.writable)\n ? body === null || body === undefined\n ? undefined\n : body.writable\n : duplexify(body.writable)\n : undefined\n return _duplexify({\n readable,\n writable\n })\n }\n const then = body === null || body === undefined ? undefined : body.then\n if (typeof then === 'function') {\n let d\n FunctionPrototypeCall(\n then,\n body,\n (val) => {\n if (val != null) {\n d.push(val)\n }\n d.push(null)\n },\n (err) => {\n destroyer(d, err)\n }\n )\n return (d = new Duplexify({\n objectMode: true,\n writable: false,\n read() {}\n }))\n }\n throw new ERR_INVALID_ARG_TYPE(\n name,\n [\n 'Blob',\n 'ReadableStream',\n 'WritableStream',\n 'Stream',\n 'Iterable',\n 'AsyncIterable',\n 'Function',\n '{ readable, writable } pair',\n 'Promise'\n ],\n body\n )\n}\nfunction fromAsyncGen(fn) {\n let { promise, resolve } = createDeferredPromise()\n const ac = new AbortController()\n const signal = ac.signal\n const value = fn(\n (async function* () {\n while (true) {\n const _promise = promise\n promise = null\n const { chunk, done, cb } = await _promise\n process.nextTick(cb)\n if (done) return\n if (signal.aborted)\n throw new AbortError(undefined, {\n cause: signal.reason\n })\n ;({ promise, resolve } = createDeferredPromise())\n yield chunk\n }\n })(),\n {\n signal\n }\n )\n return {\n value,\n write(chunk, encoding, cb) {\n const _resolve = resolve\n resolve = null\n _resolve({\n chunk,\n done: false,\n cb\n })\n },\n final(cb) {\n const _resolve = resolve\n resolve = null\n _resolve({\n done: true,\n cb\n })\n },\n destroy(err, cb) {\n ac.abort()\n cb(err)\n }\n }\n}\nfunction _duplexify(pair) {\n const r = pair.readable && typeof pair.readable.read !== 'function' ? Readable.wrap(pair.readable) : pair.readable\n const w = pair.writable\n let readable = !!isReadable(r)\n let writable = !!isWritable(w)\n let ondrain\n let onfinish\n let onreadable\n let onclose\n let d\n function onfinished(err) {\n const cb = onclose\n onclose = null\n if (cb) {\n cb(err)\n } else if (err) {\n d.destroy(err)\n }\n }\n\n // TODO(ronag): Avoid double buffering.\n // Implement Writable/Readable/Duplex traits.\n // See, https://github.com/nodejs/node/pull/33515.\n d = new Duplexify({\n // TODO (ronag): highWaterMark?\n readableObjectMode: !!(r !== null && r !== undefined && r.readableObjectMode),\n writableObjectMode: !!(w !== null && w !== undefined && w.writableObjectMode),\n readable,\n writable\n })\n if (writable) {\n eos(w, (err) => {\n writable = false\n if (err) {\n destroyer(r, err)\n }\n onfinished(err)\n })\n d._write = function (chunk, encoding, callback) {\n if (w.write(chunk, encoding)) {\n callback()\n } else {\n ondrain = callback\n }\n }\n d._final = function (callback) {\n w.end()\n onfinish = callback\n }\n w.on('drain', function () {\n if (ondrain) {\n const cb = ondrain\n ondrain = null\n cb()\n }\n })\n w.on('finish', function () {\n if (onfinish) {\n const cb = onfinish\n onfinish = null\n cb()\n }\n })\n }\n if (readable) {\n eos(r, (err) => {\n readable = false\n if (err) {\n destroyer(r, err)\n }\n onfinished(err)\n })\n r.on('readable', function () {\n if (onreadable) {\n const cb = onreadable\n onreadable = null\n cb()\n }\n })\n r.on('end', function () {\n d.push(null)\n })\n d._read = function () {\n while (true) {\n const buf = r.read()\n if (buf === null) {\n onreadable = d._read\n return\n }\n if (!d.push(buf)) {\n return\n }\n }\n }\n }\n d._destroy = function (err, callback) {\n if (!err && onclose !== null) {\n err = new AbortError()\n }\n onreadable = null\n ondrain = null\n onfinish = null\n if (onclose === null) {\n callback(err)\n } else {\n onclose = callback\n destroyer(w, err)\n destroyer(r, err)\n }\n }\n return d\n}\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/readable-stream/lib/internal/streams/duplexify.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\n\n/* replacement start */\n\nconst process = __webpack_require__(/*! process/ */ \"./node_modules/process/browser.js\")\n\n/* replacement end */\n\nconst { AbortError, codes } = __webpack_require__(/*! ../../ours/errors */ \"./node_modules/readable-stream/lib/ours/errors.js\")\nconst { ERR_INVALID_ARG_TYPE, ERR_STREAM_PREMATURE_CLOSE } = codes\nconst { kEmptyObject, once } = __webpack_require__(/*! ../../ours/util */ \"./node_modules/readable-stream/lib/ours/util.js\")\nconst { validateAbortSignal, validateFunction, validateObject, validateBoolean } = __webpack_require__(/*! ../validators */ \"./node_modules/readable-stream/lib/internal/validators.js\")\nconst { Promise, PromisePrototypeThen, SymbolDispose } = __webpack_require__(/*! ../../ours/primordials */ \"./node_modules/readable-stream/lib/ours/primordials.js\")\nconst {\n isClosed,\n isReadable,\n isReadableNodeStream,\n isReadableStream,\n isReadableFinished,\n isReadableErrored,\n isWritable,\n isWritableNodeStream,\n isWritableStream,\n isWritableFinished,\n isWritableErrored,\n isNodeStream,\n willEmitClose: _willEmitClose,\n kIsClosedPromise\n} = __webpack_require__(/*! ./utils */ \"./node_modules/readable-stream/lib/internal/streams/utils.js\")\nlet addAbortListener\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function'\n}\nconst nop = () => {}\nfunction eos(stream, options, callback) {\n var _options$readable, _options$writable\n if (arguments.length === 2) {\n callback = options\n options = kEmptyObject\n } else if (options == null) {\n options = kEmptyObject\n } else {\n validateObject(options, 'options')\n }\n validateFunction(callback, 'callback')\n validateAbortSignal(options.signal, 'options.signal')\n callback = once(callback)\n if (isReadableStream(stream) || isWritableStream(stream)) {\n return eosWeb(stream, options, callback)\n }\n if (!isNodeStream(stream)) {\n throw new ERR_INVALID_ARG_TYPE('stream', ['ReadableStream', 'WritableStream', 'Stream'], stream)\n }\n const readable =\n (_options$readable = options.readable) !== null && _options$readable !== undefined\n ? _options$readable\n : isReadableNodeStream(stream)\n const writable =\n (_options$writable = options.writable) !== null && _options$writable !== undefined\n ? _options$writable\n : isWritableNodeStream(stream)\n const wState = stream._writableState\n const rState = stream._readableState\n const onlegacyfinish = () => {\n if (!stream.writable) {\n onfinish()\n }\n }\n\n // TODO (ronag): Improve soft detection to include core modules and\n // common ecosystem modules that do properly emit 'close' but fail\n // this generic check.\n let willEmitClose =\n _willEmitClose(stream) && isReadableNodeStream(stream) === readable && isWritableNodeStream(stream) === writable\n let writableFinished = isWritableFinished(stream, false)\n const onfinish = () => {\n writableFinished = true\n // Stream should not be destroyed here. If it is that\n // means that user space is doing something differently and\n // we cannot trust willEmitClose.\n if (stream.destroyed) {\n willEmitClose = false\n }\n if (willEmitClose && (!stream.readable || readable)) {\n return\n }\n if (!readable || readableFinished) {\n callback.call(stream)\n }\n }\n let readableFinished = isReadableFinished(stream, false)\n const onend = () => {\n readableFinished = true\n // Stream should not be destroyed here. If it is that\n // means that user space is doing something differently and\n // we cannot trust willEmitClose.\n if (stream.destroyed) {\n willEmitClose = false\n }\n if (willEmitClose && (!stream.writable || writable)) {\n return\n }\n if (!writable || writableFinished) {\n callback.call(stream)\n }\n }\n const onerror = (err) => {\n callback.call(stream, err)\n }\n let closed = isClosed(stream)\n const onclose = () => {\n closed = true\n const errored = isWritableErrored(stream) || isReadableErrored(stream)\n if (errored && typeof errored !== 'boolean') {\n return callback.call(stream, errored)\n }\n if (readable && !readableFinished && isReadableNodeStream(stream, true)) {\n if (!isReadableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE())\n }\n if (writable && !writableFinished) {\n if (!isWritableFinished(stream, false)) return callback.call(stream, new ERR_STREAM_PREMATURE_CLOSE())\n }\n callback.call(stream)\n }\n const onclosed = () => {\n closed = true\n const errored = isWritableErrored(stream) || isReadableErrored(stream)\n if (errored && typeof errored !== 'boolean') {\n return callback.call(stream, errored)\n }\n callback.call(stream)\n }\n const onrequest = () => {\n stream.req.on('finish', onfinish)\n }\n if (isRequest(stream)) {\n stream.on('complete', onfinish)\n if (!willEmitClose) {\n stream.on('abort', onclose)\n }\n if (stream.req) {\n onrequest()\n } else {\n stream.on('request', onrequest)\n }\n } else if (writable && !wState) {\n // legacy streams\n stream.on('end', onlegacyfinish)\n stream.on('close', onlegacyfinish)\n }\n\n // Not all streams will emit 'close' after 'aborted'.\n if (!willEmitClose && typeof stream.aborted === 'boolean') {\n stream.on('aborted', onclose)\n }\n stream.on('end', onend)\n stream.on('finish', onfinish)\n if (options.error !== false) {\n stream.on('error', onerror)\n }\n stream.on('close', onclose)\n if (closed) {\n process.nextTick(onclose)\n } else if (\n (wState !== null && wState !== undefined && wState.errorEmitted) ||\n (rState !== null && rState !== undefined && rState.errorEmitted)\n ) {\n if (!willEmitClose) {\n process.nextTick(onclosed)\n }\n } else if (\n !readable &&\n (!willEmitClose || isReadable(stream)) &&\n (writableFinished || isWritable(stream) === false)\n ) {\n process.nextTick(onclosed)\n } else if (\n !writable &&\n (!willEmitClose || isWritable(stream)) &&\n (readableFinished || isReadable(stream) === false)\n ) {\n process.nextTick(onclosed)\n } else if (rState && stream.req && stream.aborted) {\n process.nextTick(onclosed)\n }\n const cleanup = () => {\n callback = nop\n stream.removeListener('aborted', onclose)\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 if (options.signal && !closed) {\n const abort = () => {\n // Keep it because cleanup removes it.\n const endCallback = callback\n cleanup()\n endCallback.call(\n stream,\n new AbortError(undefined, {\n cause: options.signal.reason\n })\n )\n }\n if (options.signal.aborted) {\n process.nextTick(abort)\n } else {\n addAbortListener = addAbortListener || (__webpack_require__(/*! ../../ours/util */ \"./node_modules/readable-stream/lib/ours/util.js\").addAbortListener)\n const disposable = addAbortListener(options.signal, abort)\n const originalCallback = callback\n callback = once((...args) => {\n disposable[SymbolDispose]()\n originalCallback.apply(stream, args)\n })\n }\n }\n return cleanup\n}\nfunction eosWeb(stream, options, callback) {\n let isAborted = false\n let abort = nop\n if (options.signal) {\n abort = () => {\n isAborted = true\n callback.call(\n stream,\n new AbortError(undefined, {\n cause: options.signal.reason\n })\n )\n }\n if (options.signal.aborted) {\n process.nextTick(abort)\n } else {\n addAbortListener = addAbortListener || (__webpack_require__(/*! ../../ours/util */ \"./node_modules/readable-stream/lib/ours/util.js\").addAbortListener)\n const disposable = addAbortListener(options.signal, abort)\n const originalCallback = callback\n callback = once((...args) => {\n disposable[SymbolDispose]()\n originalCallback.apply(stream, args)\n })\n }\n }\n const resolverFn = (...args) => {\n if (!isAborted) {\n process.nextTick(() => callback.apply(stream, args))\n }\n }\n PromisePrototypeThen(stream[kIsClosedPromise].promise, resolverFn, resolverFn)\n return nop\n}\nfunction finished(stream, opts) {\n var _opts\n let autoCleanup = false\n if (opts === null) {\n opts = kEmptyObject\n }\n if ((_opts = opts) !== null && _opts !== undefined && _opts.cleanup) {\n validateBoolean(opts.cleanup, 'cleanup')\n autoCleanup = opts.cleanup\n }\n return new Promise((resolve, reject) => {\n const cleanup = eos(stream, opts, (err) => {\n if (autoCleanup) {\n cleanup()\n }\n if (err) {\n reject(err)\n } else {\n resolve()\n }\n })\n })\n}\nmodule.exports = eos\nmodule.exports.finished = finished\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/readable-stream/lib/internal/streams/end-of-stream.js?"); /***/ }), /***/ "./node_modules/readable-stream/lib/internal/streams/from.js": /*!*******************************************************************!*\ !*** ./node_modules/readable-stream/lib/internal/streams/from.js ***! \*******************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\n/* replacement start */\n\nconst process = __webpack_require__(/*! process/ */ \"./node_modules/process/browser.js\")\n\n/* replacement end */\n\nconst { PromisePrototypeThen, SymbolAsyncIterator, SymbolIterator } = __webpack_require__(/*! ../../ours/primordials */ \"./node_modules/readable-stream/lib/ours/primordials.js\")\nconst { Buffer } = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")\nconst { ERR_INVALID_ARG_TYPE, ERR_STREAM_NULL_VALUES } = (__webpack_require__(/*! ../../ours/errors */ \"./node_modules/readable-stream/lib/ours/errors.js\").codes)\nfunction from(Readable, iterable, opts) {\n let iterator\n if (typeof iterable === 'string' || iterable instanceof Buffer) {\n return new Readable({\n objectMode: true,\n ...opts,\n read() {\n this.push(iterable)\n this.push(null)\n }\n })\n }\n let isAsync\n if (iterable && iterable[SymbolAsyncIterator]) {\n isAsync = true\n iterator = iterable[SymbolAsyncIterator]()\n } else if (iterable && iterable[SymbolIterator]) {\n isAsync = false\n iterator = iterable[SymbolIterator]()\n } else {\n throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable)\n }\n const readable = new Readable({\n objectMode: true,\n highWaterMark: 1,\n // TODO(ronag): What options should be allowed?\n ...opts\n })\n\n // Flag to protect against _read\n // being called before last iteration completion.\n let reading = false\n readable._read = function () {\n if (!reading) {\n reading = true\n next()\n }\n }\n readable._destroy = function (error, cb) {\n PromisePrototypeThen(\n close(error),\n () => process.nextTick(cb, error),\n // nextTick is here in case cb throws\n (e) => process.nextTick(cb, e || error)\n )\n }\n async function close(error) {\n const hadError = error !== undefined && error !== null\n const hasThrow = typeof iterator.throw === 'function'\n if (hadError && hasThrow) {\n const { value, done } = await iterator.throw(error)\n await value\n if (done) {\n return\n }\n }\n if (typeof iterator.return === 'function') {\n const { value } = await iterator.return()\n await value\n }\n }\n async function next() {\n for (;;) {\n try {\n const { value, done } = isAsync ? await iterator.next() : iterator.next()\n if (done) {\n readable.push(null)\n } else {\n const res = value && typeof value.then === 'function' ? await value : value\n if (res === null) {\n reading = false\n throw new ERR_STREAM_NULL_VALUES()\n } else if (readable.push(res)) {\n continue\n } else {\n reading = false\n }\n }\n } catch (err) {\n readable.destroy(err)\n }\n break\n }\n }\n return readable\n}\nmodule.exports = from\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/readable-stream/lib/internal/streams/from.js?"); /***/ }), /***/ "./node_modules/readable-stream/lib/internal/streams/legacy.js": /*!*********************************************************************!*\ !*** ./node_modules/readable-stream/lib/internal/streams/legacy.js ***! \*********************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nconst { ArrayIsArray, ObjectSetPrototypeOf } = __webpack_require__(/*! ../../ours/primordials */ \"./node_modules/readable-stream/lib/ours/primordials.js\")\nconst { EventEmitter: EE } = __webpack_require__(/*! events */ \"./node_modules/events/events.js\")\nfunction Stream(opts) {\n EE.call(this, opts)\n}\nObjectSetPrototypeOf(Stream.prototype, EE.prototype)\nObjectSetPrototypeOf(Stream, EE)\nStream.prototype.pipe = function (dest, options) {\n const source = this\n function ondata(chunk) {\n if (dest.writable && dest.write(chunk) === false && source.pause) {\n source.pause()\n }\n }\n source.on('data', ondata)\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume()\n }\n }\n dest.on('drain', ondrain)\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend)\n source.on('close', onclose)\n }\n let didOnEnd = false\n function onend() {\n if (didOnEnd) return\n didOnEnd = true\n dest.end()\n }\n function onclose() {\n if (didOnEnd) return\n didOnEnd = true\n if (typeof dest.destroy === 'function') dest.destroy()\n }\n\n // Don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup()\n if (EE.listenerCount(this, 'error') === 0) {\n this.emit('error', er)\n }\n }\n prependListener(source, 'error', onerror)\n prependListener(dest, 'error', onerror)\n\n // Remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata)\n dest.removeListener('drain', ondrain)\n source.removeListener('end', onend)\n source.removeListener('close', onclose)\n source.removeListener('error', onerror)\n dest.removeListener('error', onerror)\n source.removeListener('end', cleanup)\n source.removeListener('close', cleanup)\n dest.removeListener('close', cleanup)\n }\n source.on('end', cleanup)\n source.on('close', cleanup)\n dest.on('close', cleanup)\n dest.emit('pipe', source)\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest\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)\n\n // 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 if (!emitter._events || !emitter._events[event]) emitter.on(event, fn)\n else if (ArrayIsArray(emitter._events[event])) emitter._events[event].unshift(fn)\n else emitter._events[event] = [fn, emitter._events[event]]\n}\nmodule.exports = {\n Stream,\n prependListener\n}\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/readable-stream/lib/internal/streams/legacy.js?"); /***/ }), /***/ "./node_modules/readable-stream/lib/internal/streams/operators.js": /*!************************************************************************!*\ !*** ./node_modules/readable-stream/lib/internal/streams/operators.js ***! \************************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nconst AbortController = globalThis.AbortController || (__webpack_require__(/*! abort-controller */ \"./node_modules/abort-controller/browser.js\").AbortController)\nconst {\n codes: { ERR_INVALID_ARG_VALUE, ERR_INVALID_ARG_TYPE, ERR_MISSING_ARGS, ERR_OUT_OF_RANGE },\n AbortError\n} = __webpack_require__(/*! ../../ours/errors */ \"./node_modules/readable-stream/lib/ours/errors.js\")\nconst { validateAbortSignal, validateInteger, validateObject } = __webpack_require__(/*! ../validators */ \"./node_modules/readable-stream/lib/internal/validators.js\")\nconst kWeakHandler = (__webpack_require__(/*! ../../ours/primordials */ \"./node_modules/readable-stream/lib/ours/primordials.js\").Symbol)('kWeak')\nconst kResistStopPropagation = (__webpack_require__(/*! ../../ours/primordials */ \"./node_modules/readable-stream/lib/ours/primordials.js\").Symbol)('kResistStopPropagation')\nconst { finished } = __webpack_require__(/*! ./end-of-stream */ \"./node_modules/readable-stream/lib/internal/streams/end-of-stream.js\")\nconst staticCompose = __webpack_require__(/*! ./compose */ \"./node_modules/readable-stream/lib/internal/streams/compose.js\")\nconst { addAbortSignalNoValidate } = __webpack_require__(/*! ./add-abort-signal */ \"./node_modules/readable-stream/lib/internal/streams/add-abort-signal.js\")\nconst { isWritable, isNodeStream } = __webpack_require__(/*! ./utils */ \"./node_modules/readable-stream/lib/internal/streams/utils.js\")\nconst { deprecate } = __webpack_require__(/*! ../../ours/util */ \"./node_modules/readable-stream/lib/ours/util.js\")\nconst {\n ArrayPrototypePush,\n Boolean,\n MathFloor,\n Number,\n NumberIsNaN,\n Promise,\n PromiseReject,\n PromiseResolve,\n PromisePrototypeThen,\n Symbol\n} = __webpack_require__(/*! ../../ours/primordials */ \"./node_modules/readable-stream/lib/ours/primordials.js\")\nconst kEmpty = Symbol('kEmpty')\nconst kEof = Symbol('kEof')\nfunction compose(stream, options) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n if (isNodeStream(stream) && !isWritable(stream)) {\n throw new ERR_INVALID_ARG_VALUE('stream', stream, 'must be writable')\n }\n const composedStream = staticCompose(this, stream)\n if (options !== null && options !== undefined && options.signal) {\n // Not validating as we already validated before\n addAbortSignalNoValidate(options.signal, composedStream)\n }\n return composedStream\n}\nfunction map(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n let concurrency = 1\n if ((options === null || options === undefined ? undefined : options.concurrency) != null) {\n concurrency = MathFloor(options.concurrency)\n }\n let highWaterMark = concurrency - 1\n if ((options === null || options === undefined ? undefined : options.highWaterMark) != null) {\n highWaterMark = MathFloor(options.highWaterMark)\n }\n validateInteger(concurrency, 'options.concurrency', 1)\n validateInteger(highWaterMark, 'options.highWaterMark', 0)\n highWaterMark += concurrency\n return async function* map() {\n const signal = (__webpack_require__(/*! ../../ours/util */ \"./node_modules/readable-stream/lib/ours/util.js\").AbortSignalAny)(\n [options === null || options === undefined ? undefined : options.signal].filter(Boolean)\n )\n const stream = this\n const queue = []\n const signalOpt = {\n signal\n }\n let next\n let resume\n let done = false\n let cnt = 0\n function onCatch() {\n done = true\n afterItemProcessed()\n }\n function afterItemProcessed() {\n cnt -= 1\n maybeResume()\n }\n function maybeResume() {\n if (resume && !done && cnt < concurrency && queue.length < highWaterMark) {\n resume()\n resume = null\n }\n }\n async function pump() {\n try {\n for await (let val of stream) {\n if (done) {\n return\n }\n if (signal.aborted) {\n throw new AbortError()\n }\n try {\n val = fn(val, signalOpt)\n if (val === kEmpty) {\n continue\n }\n val = PromiseResolve(val)\n } catch (err) {\n val = PromiseReject(err)\n }\n cnt += 1\n PromisePrototypeThen(val, afterItemProcessed, onCatch)\n queue.push(val)\n if (next) {\n next()\n next = null\n }\n if (!done && (queue.length >= highWaterMark || cnt >= concurrency)) {\n await new Promise((resolve) => {\n resume = resolve\n })\n }\n }\n queue.push(kEof)\n } catch (err) {\n const val = PromiseReject(err)\n PromisePrototypeThen(val, afterItemProcessed, onCatch)\n queue.push(val)\n } finally {\n done = true\n if (next) {\n next()\n next = null\n }\n }\n }\n pump()\n try {\n while (true) {\n while (queue.length > 0) {\n const val = await queue[0]\n if (val === kEof) {\n return\n }\n if (signal.aborted) {\n throw new AbortError()\n }\n if (val !== kEmpty) {\n yield val\n }\n queue.shift()\n maybeResume()\n }\n await new Promise((resolve) => {\n next = resolve\n })\n }\n } finally {\n done = true\n if (resume) {\n resume()\n resume = null\n }\n }\n }.call(this)\n}\nfunction asIndexedPairs(options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n return async function* asIndexedPairs() {\n let index = 0\n for await (const val of this) {\n var _options$signal\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal = options.signal) !== null &&\n _options$signal !== undefined &&\n _options$signal.aborted\n ) {\n throw new AbortError({\n cause: options.signal.reason\n })\n }\n yield [index++, val]\n }\n }.call(this)\n}\nasync function some(fn, options = undefined) {\n for await (const unused of filter.call(this, fn, options)) {\n return true\n }\n return false\n}\nasync function every(fn, options = undefined) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n // https://en.wikipedia.org/wiki/De_Morgan%27s_laws\n return !(await some.call(\n this,\n async (...args) => {\n return !(await fn(...args))\n },\n options\n ))\n}\nasync function find(fn, options) {\n for await (const result of filter.call(this, fn, options)) {\n return result\n }\n return undefined\n}\nasync function forEach(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n async function forEachFn(value, options) {\n await fn(value, options)\n return kEmpty\n }\n // eslint-disable-next-line no-unused-vars\n for await (const unused of map.call(this, forEachFn, options));\n}\nfunction filter(fn, options) {\n if (typeof fn !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('fn', ['Function', 'AsyncFunction'], fn)\n }\n async function filterFn(value, options) {\n if (await fn(value, options)) {\n return value\n }\n return kEmpty\n }\n return map.call(this, filterFn, options)\n}\n\n// Specific to provide better error to reduce since the argument is only\n// missing if the stream has no items in it - but the code is still appropriate\nclass ReduceAwareErrMissingArgs extends ERR_MISSING_ARGS {\n constructor() {\n super('reduce')\n this.message = 'Reduce of an empty stream requires an initial value'\n }\n}\nasync function reduce(reducer, initialValue, options) {\n var _options$signal2\n if (typeof reducer !== 'function') {\n throw new ERR_INVALID_ARG_TYPE('reducer', ['Function', 'AsyncFunction'], reducer)\n }\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n let hasInitialValue = arguments.length > 1\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal2 = options.signal) !== null &&\n _options$signal2 !== undefined &&\n _options$signal2.aborted\n ) {\n const err = new AbortError(undefined, {\n cause: options.signal.reason\n })\n this.once('error', () => {}) // The error is already propagated\n await finished(this.destroy(err))\n throw err\n }\n const ac = new AbortController()\n const signal = ac.signal\n if (options !== null && options !== undefined && options.signal) {\n const opts = {\n once: true,\n [kWeakHandler]: this,\n [kResistStopPropagation]: true\n }\n options.signal.addEventListener('abort', () => ac.abort(), opts)\n }\n let gotAnyItemFromStream = false\n try {\n for await (const value of this) {\n var _options$signal3\n gotAnyItemFromStream = true\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal3 = options.signal) !== null &&\n _options$signal3 !== undefined &&\n _options$signal3.aborted\n ) {\n throw new AbortError()\n }\n if (!hasInitialValue) {\n initialValue = value\n hasInitialValue = true\n } else {\n initialValue = await reducer(initialValue, value, {\n signal\n })\n }\n }\n if (!gotAnyItemFromStream && !hasInitialValue) {\n throw new ReduceAwareErrMissingArgs()\n }\n } finally {\n ac.abort()\n }\n return initialValue\n}\nasync function toArray(options) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n const result = []\n for await (const val of this) {\n var _options$signal4\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal4 = options.signal) !== null &&\n _options$signal4 !== undefined &&\n _options$signal4.aborted\n ) {\n throw new AbortError(undefined, {\n cause: options.signal.reason\n })\n }\n ArrayPrototypePush(result, val)\n }\n return result\n}\nfunction flatMap(fn, options) {\n const values = map.call(this, fn, options)\n return async function* flatMap() {\n for await (const val of values) {\n yield* val\n }\n }.call(this)\n}\nfunction toIntegerOrInfinity(number) {\n // We coerce here to align with the spec\n // https://github.com/tc39/proposal-iterator-helpers/issues/169\n number = Number(number)\n if (NumberIsNaN(number)) {\n return 0\n }\n if (number < 0) {\n throw new ERR_OUT_OF_RANGE('number', '>= 0', number)\n }\n return number\n}\nfunction drop(number, options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n number = toIntegerOrInfinity(number)\n return async function* drop() {\n var _options$signal5\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal5 = options.signal) !== null &&\n _options$signal5 !== undefined &&\n _options$signal5.aborted\n ) {\n throw new AbortError()\n }\n for await (const val of this) {\n var _options$signal6\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal6 = options.signal) !== null &&\n _options$signal6 !== undefined &&\n _options$signal6.aborted\n ) {\n throw new AbortError()\n }\n if (number-- <= 0) {\n yield val\n }\n }\n }.call(this)\n}\nfunction take(number, options = undefined) {\n if (options != null) {\n validateObject(options, 'options')\n }\n if ((options === null || options === undefined ? undefined : options.signal) != null) {\n validateAbortSignal(options.signal, 'options.signal')\n }\n number = toIntegerOrInfinity(number)\n return async function* take() {\n var _options$signal7\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal7 = options.signal) !== null &&\n _options$signal7 !== undefined &&\n _options$signal7.aborted\n ) {\n throw new AbortError()\n }\n for await (const val of this) {\n var _options$signal8\n if (\n options !== null &&\n options !== undefined &&\n (_options$signal8 = options.signal) !== null &&\n _options$signal8 !== undefined &&\n _options$signal8.aborted\n ) {\n throw new AbortError()\n }\n if (number-- > 0) {\n yield val\n }\n\n // Don't get another item from iterator in case we reached the end\n if (number <= 0) {\n return\n }\n }\n }.call(this)\n}\nmodule.exports.streamReturningOperators = {\n asIndexedPairs: deprecate(asIndexedPairs, 'readable.asIndexedPairs will be removed in a future version.'),\n drop,\n filter,\n flatMap,\n map,\n take,\n compose\n}\nmodule.exports.promiseReturningOperators = {\n every,\n forEach,\n reduce,\n toArray,\n some,\n find\n}\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/readable-stream/lib/internal/streams/operators.js?"); /***/ }), /***/ "./node_modules/readable-stream/lib/internal/streams/passthrough.js": /*!**************************************************************************!*\ !*** ./node_modules/readable-stream/lib/internal/streams/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\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n\n\nconst { ObjectSetPrototypeOf } = __webpack_require__(/*! ../../ours/primordials */ \"./node_modules/readable-stream/lib/ours/primordials.js\")\nmodule.exports = PassThrough\nconst Transform = __webpack_require__(/*! ./transform */ \"./node_modules/readable-stream/lib/internal/streams/transform.js\")\nObjectSetPrototypeOf(PassThrough.prototype, Transform.prototype)\nObjectSetPrototypeOf(PassThrough, Transform)\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options)\n Transform.call(this, options)\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk)\n}\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/readable-stream/lib/internal/streams/passthrough.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__) => { eval("/* replacement start */\n\nconst process = __webpack_require__(/*! process/ */ \"./node_modules/process/browser.js\")\n\n/* replacement end */\n// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n;('use strict')\nconst { ArrayIsArray, Promise, SymbolAsyncIterator, SymbolDispose } = __webpack_require__(/*! ../../ours/primordials */ \"./node_modules/readable-stream/lib/ours/primordials.js\")\nconst eos = __webpack_require__(/*! ./end-of-stream */ \"./node_modules/readable-stream/lib/internal/streams/end-of-stream.js\")\nconst { once } = __webpack_require__(/*! ../../ours/util */ \"./node_modules/readable-stream/lib/ours/util.js\")\nconst destroyImpl = __webpack_require__(/*! ./destroy */ \"./node_modules/readable-stream/lib/internal/streams/destroy.js\")\nconst Duplex = __webpack_require__(/*! ./duplex */ \"./node_modules/readable-stream/lib/internal/streams/duplex.js\")\nconst {\n aggregateTwoErrors,\n codes: {\n ERR_INVALID_ARG_TYPE,\n ERR_INVALID_RETURN_VALUE,\n ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED,\n ERR_STREAM_PREMATURE_CLOSE\n },\n AbortError\n} = __webpack_require__(/*! ../../ours/errors */ \"./node_modules/readable-stream/lib/ours/errors.js\")\nconst { validateFunction, validateAbortSignal } = __webpack_require__(/*! ../validators */ \"./node_modules/readable-stream/lib/internal/validators.js\")\nconst {\n isIterable,\n isReadable,\n isReadableNodeStream,\n isNodeStream,\n isTransformStream,\n isWebStream,\n isReadableStream,\n isReadableFinished\n} = __webpack_require__(/*! ./utils */ \"./node_modules/readable-stream/lib/internal/streams/utils.js\")\nconst AbortController = globalThis.AbortController || (__webpack_require__(/*! abort-controller */ \"./node_modules/abort-controller/browser.js\").AbortController)\nlet PassThrough\nlet Readable\nlet addAbortListener\nfunction destroyer(stream, reading, writing) {\n let finished = false\n stream.on('close', () => {\n finished = true\n })\n const cleanup = eos(\n stream,\n {\n readable: reading,\n writable: writing\n },\n (err) => {\n finished = !err\n }\n )\n return {\n destroy: (err) => {\n if (finished) return\n finished = true\n destroyImpl.destroyer(stream, err || new ERR_STREAM_DESTROYED('pipe'))\n },\n cleanup\n }\n}\nfunction popCallback(streams) {\n // Streams should never be an empty array. It should always contain at least\n // a single stream. Therefore optimize for the average case instead of\n // checking for length === 0 as well.\n validateFunction(streams[streams.length - 1], 'streams[stream.length - 1]')\n return streams.pop()\n}\nfunction makeAsyncIterable(val) {\n if (isIterable(val)) {\n return val\n } else if (isReadableNodeStream(val)) {\n // Legacy streams are not Iterable.\n return fromReadable(val)\n }\n throw new ERR_INVALID_ARG_TYPE('val', ['Readable', 'Iterable', 'AsyncIterable'], val)\n}\nasync function* fromReadable(val) {\n if (!Readable) {\n Readable = __webpack_require__(/*! ./readable */ \"./node_modules/readable-stream/lib/internal/streams/readable.js\")\n }\n yield* Readable.prototype[SymbolAsyncIterator].call(val)\n}\nasync function pumpToNode(iterable, writable, finish, { end }) {\n let error\n let onresolve = null\n const resume = (err) => {\n if (err) {\n error = err\n }\n if (onresolve) {\n const callback = onresolve\n onresolve = null\n callback()\n }\n }\n const wait = () =>\n new Promise((resolve, reject) => {\n if (error) {\n reject(error)\n } else {\n onresolve = () => {\n if (error) {\n reject(error)\n } else {\n resolve()\n }\n }\n }\n })\n writable.on('drain', resume)\n const cleanup = eos(\n writable,\n {\n readable: false\n },\n resume\n )\n try {\n if (writable.writableNeedDrain) {\n await wait()\n }\n for await (const chunk of iterable) {\n if (!writable.write(chunk)) {\n await wait()\n }\n }\n if (end) {\n writable.end()\n await wait()\n }\n finish()\n } catch (err) {\n finish(error !== err ? aggregateTwoErrors(error, err) : err)\n } finally {\n cleanup()\n writable.off('drain', resume)\n }\n}\nasync function pumpToWeb(readable, writable, finish, { end }) {\n if (isTransformStream(writable)) {\n writable = writable.writable\n }\n // https://streams.spec.whatwg.org/#example-manual-write-with-backpressure\n const writer = writable.getWriter()\n try {\n for await (const chunk of readable) {\n await writer.ready\n writer.write(chunk).catch(() => {})\n }\n await writer.ready\n if (end) {\n await writer.close()\n }\n finish()\n } catch (err) {\n try {\n await writer.abort(err)\n finish(err)\n } catch (err) {\n finish(err)\n }\n }\n}\nfunction pipeline(...streams) {\n return pipelineImpl(streams, once(popCallback(streams)))\n}\nfunction pipelineImpl(streams, callback, opts) {\n if (streams.length === 1 && ArrayIsArray(streams[0])) {\n streams = streams[0]\n }\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams')\n }\n const ac = new AbortController()\n const signal = ac.signal\n const outerSignal = opts === null || opts === undefined ? undefined : opts.signal\n\n // Need to cleanup event listeners if last stream is readable\n // https://github.com/nodejs/node/issues/35452\n const lastStreamCleanup = []\n validateAbortSignal(outerSignal, 'options.signal')\n function abort() {\n finishImpl(new AbortError())\n }\n addAbortListener = addAbortListener || (__webpack_require__(/*! ../../ours/util */ \"./node_modules/readable-stream/lib/ours/util.js\").addAbortListener)\n let disposable\n if (outerSignal) {\n disposable = addAbortListener(outerSignal, abort)\n }\n let error\n let value\n const destroys = []\n let finishCount = 0\n function finish(err) {\n finishImpl(err, --finishCount === 0)\n }\n function finishImpl(err, final) {\n var _disposable\n if (err && (!error || error.code === 'ERR_STREAM_PREMATURE_CLOSE')) {\n error = err\n }\n if (!error && !final) {\n return\n }\n while (destroys.length) {\n destroys.shift()(error)\n }\n ;(_disposable = disposable) === null || _disposable === undefined ? undefined : _disposable[SymbolDispose]()\n ac.abort()\n if (final) {\n if (!error) {\n lastStreamCleanup.forEach((fn) => fn())\n }\n process.nextTick(callback, error, value)\n }\n }\n let ret\n for (let i = 0; i < streams.length; i++) {\n const stream = streams[i]\n const reading = i < streams.length - 1\n const writing = i > 0\n const end = reading || (opts === null || opts === undefined ? undefined : opts.end) !== false\n const isLastStream = i === streams.length - 1\n if (isNodeStream(stream)) {\n if (end) {\n const { destroy, cleanup } = destroyer(stream, reading, writing)\n destroys.push(destroy)\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n }\n\n // Catch stream errors that occur after pipe/pump has completed.\n function onError(err) {\n if (err && err.name !== 'AbortError' && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n finish(err)\n }\n }\n stream.on('error', onError)\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(() => {\n stream.removeListener('error', onError)\n })\n }\n }\n if (i === 0) {\n if (typeof stream === 'function') {\n ret = stream({\n signal\n })\n if (!isIterable(ret)) {\n throw new ERR_INVALID_RETURN_VALUE('Iterable, AsyncIterable or Stream', 'source', ret)\n }\n } else if (isIterable(stream) || isReadableNodeStream(stream) || isTransformStream(stream)) {\n ret = stream\n } else {\n ret = Duplex.from(stream)\n }\n } else if (typeof stream === 'function') {\n if (isTransformStream(ret)) {\n var _ret\n ret = makeAsyncIterable((_ret = ret) === null || _ret === undefined ? undefined : _ret.readable)\n } else {\n ret = makeAsyncIterable(ret)\n }\n ret = stream(ret, {\n signal\n })\n if (reading) {\n if (!isIterable(ret, true)) {\n throw new ERR_INVALID_RETURN_VALUE('AsyncIterable', `transform[${i - 1}]`, ret)\n }\n } else {\n var _ret2\n if (!PassThrough) {\n PassThrough = __webpack_require__(/*! ./passthrough */ \"./node_modules/readable-stream/lib/internal/streams/passthrough.js\")\n }\n\n // If the last argument to pipeline is not a stream\n // we must create a proxy stream so that pipeline(...)\n // always returns a stream which can be further\n // composed through `.pipe(stream)`.\n\n const pt = new PassThrough({\n objectMode: true\n })\n\n // Handle Promises/A+ spec, `then` could be a getter that throws on\n // second use.\n const then = (_ret2 = ret) === null || _ret2 === undefined ? undefined : _ret2.then\n if (typeof then === 'function') {\n finishCount++\n then.call(\n ret,\n (val) => {\n value = val\n if (val != null) {\n pt.write(val)\n }\n if (end) {\n pt.end()\n }\n process.nextTick(finish)\n },\n (err) => {\n pt.destroy(err)\n process.nextTick(finish, err)\n }\n )\n } else if (isIterable(ret, true)) {\n finishCount++\n pumpToNode(ret, pt, finish, {\n end\n })\n } else if (isReadableStream(ret) || isTransformStream(ret)) {\n const toRead = ret.readable || ret\n finishCount++\n pumpToNode(toRead, pt, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_RETURN_VALUE('AsyncIterable or Promise', 'destination', ret)\n }\n ret = pt\n const { destroy, cleanup } = destroyer(ret, false, true)\n destroys.push(destroy)\n if (isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n }\n } else if (isNodeStream(stream)) {\n if (isReadableNodeStream(ret)) {\n finishCount += 2\n const cleanup = pipe(ret, stream, finish, {\n end\n })\n if (isReadable(stream) && isLastStream) {\n lastStreamCleanup.push(cleanup)\n }\n } else if (isTransformStream(ret) || isReadableStream(ret)) {\n const toRead = ret.readable || ret\n finishCount++\n pumpToNode(toRead, stream, finish, {\n end\n })\n } else if (isIterable(ret)) {\n finishCount++\n pumpToNode(ret, stream, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_ARG_TYPE(\n 'val',\n ['Readable', 'Iterable', 'AsyncIterable', 'ReadableStream', 'TransformStream'],\n ret\n )\n }\n ret = stream\n } else if (isWebStream(stream)) {\n if (isReadableNodeStream(ret)) {\n finishCount++\n pumpToWeb(makeAsyncIterable(ret), stream, finish, {\n end\n })\n } else if (isReadableStream(ret) || isIterable(ret)) {\n finishCount++\n pumpToWeb(ret, stream, finish, {\n end\n })\n } else if (isTransformStream(ret)) {\n finishCount++\n pumpToWeb(ret.readable, stream, finish, {\n end\n })\n } else {\n throw new ERR_INVALID_ARG_TYPE(\n 'val',\n ['Readable', 'Iterable', 'AsyncIterable', 'ReadableStream', 'TransformStream'],\n ret\n )\n }\n ret = stream\n } else {\n ret = Duplex.from(stream)\n }\n }\n if (\n (signal !== null && signal !== undefined && signal.aborted) ||\n (outerSignal !== null && outerSignal !== undefined && outerSignal.aborted)\n ) {\n process.nextTick(abort)\n }\n return ret\n}\nfunction pipe(src, dst, finish, { end }) {\n let ended = false\n dst.on('close', () => {\n if (!ended) {\n // Finish if the destination closes before the source has completed.\n finish(new ERR_STREAM_PREMATURE_CLOSE())\n }\n })\n src.pipe(dst, {\n end: false\n }) // If end is true we already will have a listener to end dst.\n\n if (end) {\n // Compat. Before node v10.12.0 stdio used to throw an error so\n // pipe() did/does not end() stdio destinations.\n // Now they allow it but \"secretly\" don't close the underlying fd.\n\n function endFn() {\n ended = true\n dst.end()\n }\n if (isReadableFinished(src)) {\n // End the destination if the source has already ended.\n process.nextTick(endFn)\n } else {\n src.once('end', endFn)\n }\n } else {\n finish()\n }\n eos(\n src,\n {\n readable: true,\n writable: false\n },\n (err) => {\n const rState = src._readableState\n if (\n err &&\n err.code === 'ERR_STREAM_PREMATURE_CLOSE' &&\n rState &&\n rState.ended &&\n !rState.errored &&\n !rState.errorEmitted\n ) {\n // Some readable streams will emit 'close' before 'end'. However, since\n // this is on the readable side 'end' should still be emitted if the\n // stream has been ended and no error emitted. This should be allowed in\n // favor of backwards compatibility. Since the stream is piped to a\n // destination this should not result in any observable difference.\n // We don't need to check if this is a writable premature close since\n // eos will only fail with premature close on the reading side for\n // duplex streams.\n src.once('end', finish).once('error', finish)\n } else {\n finish(err)\n }\n }\n )\n return eos(\n dst,\n {\n readable: false,\n writable: true\n },\n finish\n )\n}\nmodule.exports = {\n pipelineImpl,\n pipeline\n}\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/readable-stream/lib/internal/streams/pipeline.js?"); /***/ }), /***/ "./node_modules/readable-stream/lib/internal/streams/readable.js": /*!***********************************************************************!*\ !*** ./node_modules/readable-stream/lib/internal/streams/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\n\n/* replacement start */\n\nconst process = __webpack_require__(/*! process/ */ \"./node_modules/process/browser.js\")\n\n/* replacement end */\n\nconst {\n ArrayPrototypeIndexOf,\n NumberIsInteger,\n NumberIsNaN,\n NumberParseInt,\n ObjectDefineProperties,\n ObjectKeys,\n ObjectSetPrototypeOf,\n Promise,\n SafeSet,\n SymbolAsyncDispose,\n SymbolAsyncIterator,\n Symbol\n} = __webpack_require__(/*! ../../ours/primordials */ \"./node_modules/readable-stream/lib/ours/primordials.js\")\nmodule.exports = Readable\nReadable.ReadableState = ReadableState\nconst { EventEmitter: EE } = __webpack_require__(/*! events */ \"./node_modules/events/events.js\")\nconst { Stream, prependListener } = __webpack_require__(/*! ./legacy */ \"./node_modules/readable-stream/lib/internal/streams/legacy.js\")\nconst { Buffer } = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")\nconst { addAbortSignal } = __webpack_require__(/*! ./add-abort-signal */ \"./node_modules/readable-stream/lib/internal/streams/add-abort-signal.js\")\nconst eos = __webpack_require__(/*! ./end-of-stream */ \"./node_modules/readable-stream/lib/internal/streams/end-of-stream.js\")\nlet debug = (__webpack_require__(/*! ../../ours/util */ \"./node_modules/readable-stream/lib/ours/util.js\").debuglog)('stream', (fn) => {\n debug = fn\n})\nconst BufferList = __webpack_require__(/*! ./buffer_list */ \"./node_modules/readable-stream/lib/internal/streams/buffer_list.js\")\nconst destroyImpl = __webpack_require__(/*! ./destroy */ \"./node_modules/readable-stream/lib/internal/streams/destroy.js\")\nconst { getHighWaterMark, getDefaultHighWaterMark } = __webpack_require__(/*! ./state */ \"./node_modules/readable-stream/lib/internal/streams/state.js\")\nconst {\n aggregateTwoErrors,\n codes: {\n ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED,\n ERR_OUT_OF_RANGE,\n ERR_STREAM_PUSH_AFTER_EOF,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT\n },\n AbortError\n} = __webpack_require__(/*! ../../ours/errors */ \"./node_modules/readable-stream/lib/ours/errors.js\")\nconst { validateObject } = __webpack_require__(/*! ../validators */ \"./node_modules/readable-stream/lib/internal/validators.js\")\nconst kPaused = Symbol('kPaused')\nconst { StringDecoder } = __webpack_require__(/*! string_decoder/ */ \"./node_modules/string_decoder/lib/string_decoder.js\")\nconst from = __webpack_require__(/*! ./from */ \"./node_modules/readable-stream/lib/internal/streams/from.js\")\nObjectSetPrototypeOf(Readable.prototype, Stream.prototype)\nObjectSetPrototypeOf(Readable, Stream)\nconst nop = () => {}\nconst { errorOrDestroy } = destroyImpl\nconst kObjectMode = 1 << 0\nconst kEnded = 1 << 1\nconst kEndEmitted = 1 << 2\nconst kReading = 1 << 3\nconst kConstructed = 1 << 4\nconst kSync = 1 << 5\nconst kNeedReadable = 1 << 6\nconst kEmittedReadable = 1 << 7\nconst kReadableListening = 1 << 8\nconst kResumeScheduled = 1 << 9\nconst kErrorEmitted = 1 << 10\nconst kEmitClose = 1 << 11\nconst kAutoDestroy = 1 << 12\nconst kDestroyed = 1 << 13\nconst kClosed = 1 << 14\nconst kCloseEmitted = 1 << 15\nconst kMultiAwaitDrain = 1 << 16\nconst kReadingMore = 1 << 17\nconst kDataEmitted = 1 << 18\n\n// TODO(benjamingr) it is likely slower to do it this way than with free functions\nfunction makeBitMapDescriptor(bit) {\n return {\n enumerable: false,\n get() {\n return (this.state & bit) !== 0\n },\n set(value) {\n if (value) this.state |= bit\n else this.state &= ~bit\n }\n }\n}\nObjectDefineProperties(ReadableState.prototype, {\n objectMode: makeBitMapDescriptor(kObjectMode),\n ended: makeBitMapDescriptor(kEnded),\n endEmitted: makeBitMapDescriptor(kEndEmitted),\n reading: makeBitMapDescriptor(kReading),\n // Stream is still being constructed and cannot be\n // destroyed until construction finished or failed.\n // Async construction is opt in, therefore we start as\n // constructed.\n constructed: makeBitMapDescriptor(kConstructed),\n // 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 sync: makeBitMapDescriptor(kSync),\n // Whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n needReadable: makeBitMapDescriptor(kNeedReadable),\n emittedReadable: makeBitMapDescriptor(kEmittedReadable),\n readableListening: makeBitMapDescriptor(kReadableListening),\n resumeScheduled: makeBitMapDescriptor(kResumeScheduled),\n // True if the error was already emitted and should not be thrown again.\n errorEmitted: makeBitMapDescriptor(kErrorEmitted),\n emitClose: makeBitMapDescriptor(kEmitClose),\n autoDestroy: makeBitMapDescriptor(kAutoDestroy),\n // Has it been destroyed.\n destroyed: makeBitMapDescriptor(kDestroyed),\n // Indicates whether the stream has finished destroying.\n closed: makeBitMapDescriptor(kClosed),\n // True if close has been emitted or would have been emitted\n // depending on emitClose.\n closeEmitted: makeBitMapDescriptor(kCloseEmitted),\n multiAwaitDrain: makeBitMapDescriptor(kMultiAwaitDrain),\n // If true, a maybeReadMore has been scheduled.\n readingMore: makeBitMapDescriptor(kReadingMore),\n dataEmitted: makeBitMapDescriptor(kDataEmitted)\n})\nfunction ReadableState(options, stream, isDuplex) {\n // 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 if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof __webpack_require__(/*! ./duplex */ \"./node_modules/readable-stream/lib/internal/streams/duplex.js\")\n\n // Bit map field to store ReadableState more effciently with 1 bit per field\n // instead of a V8 slot per field.\n this.state = kEmitClose | kAutoDestroy | kConstructed | kSync\n // Object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away.\n if (options && options.objectMode) this.state |= kObjectMode\n if (isDuplex && options && options.readableObjectMode) this.state |= kObjectMode\n\n // 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 this.highWaterMark = options\n ? getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex)\n : getDefaultHighWaterMark(false)\n\n // 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 this.buffer = new BufferList()\n this.length = 0\n this.pipes = []\n this.flowing = null\n this[kPaused] = null\n\n // Should close be emitted on destroy. Defaults to true.\n if (options && options.emitClose === false) this.state &= ~kEmitClose\n\n // Should .destroy() be called after 'end' (and potentially 'finish').\n if (options && options.autoDestroy === false) this.state &= ~kAutoDestroy\n\n // Indicates whether the stream has errored. When true no further\n // _read calls, 'data' or 'readable' events should occur. This is needed\n // since when autoDestroy is disabled we need a way to tell whether the\n // stream has failed.\n this.errored = null\n\n // 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 this.defaultEncoding = (options && options.defaultEncoding) || 'utf8'\n\n // Ref the piped dest which we need a drain event on it\n // type: null | Writable | Set.\n this.awaitDrainWriters = null\n this.decoder = null\n this.encoding = null\n if (options && options.encoding) {\n this.decoder = new StringDecoder(options.encoding)\n this.encoding = options.encoding\n }\n}\nfunction Readable(options) {\n if (!(this instanceof Readable)) return new Readable(options)\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5.\n const isDuplex = this instanceof __webpack_require__(/*! ./duplex */ \"./node_modules/readable-stream/lib/internal/streams/duplex.js\")\n this._readableState = new ReadableState(options, this, isDuplex)\n if (options) {\n if (typeof options.read === 'function') this._read = options.read\n if (typeof options.destroy === 'function') this._destroy = options.destroy\n if (typeof options.construct === 'function') this._construct = options.construct\n if (options.signal && !isDuplex) addAbortSignal(options.signal, this)\n }\n Stream.call(this, options)\n destroyImpl.construct(this, () => {\n if (this._readableState.needReadable) {\n maybeReadMore(this, this._readableState)\n }\n })\n}\nReadable.prototype.destroy = destroyImpl.destroy\nReadable.prototype._undestroy = destroyImpl.undestroy\nReadable.prototype._destroy = function (err, cb) {\n cb(err)\n}\nReadable.prototype[EE.captureRejectionSymbol] = function (err) {\n this.destroy(err)\n}\nReadable.prototype[SymbolAsyncDispose] = function () {\n let error\n if (!this.destroyed) {\n error = this.readableEnded ? null : new AbortError()\n this.destroy(error)\n }\n return new Promise((resolve, reject) => eos(this, (err) => (err && err !== error ? reject(err) : resolve(null))))\n}\n\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.\nReadable.prototype.push = function (chunk, encoding) {\n return readableAddChunk(this, chunk, encoding, false)\n}\n\n// Unshift should *always* be something directly out of read().\nReadable.prototype.unshift = function (chunk, encoding) {\n return readableAddChunk(this, chunk, encoding, true)\n}\nfunction readableAddChunk(stream, chunk, encoding, addToFront) {\n debug('readableAddChunk', chunk)\n const state = stream._readableState\n let err\n if ((state.state & kObjectMode) === 0) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding\n if (state.encoding !== encoding) {\n if (addToFront && state.encoding) {\n // When unshifting, if state.encoding is set, we have to save\n // the string in the BufferList with the state encoding.\n chunk = Buffer.from(chunk, encoding).toString(state.encoding)\n } else {\n chunk = Buffer.from(chunk, encoding)\n encoding = ''\n }\n }\n } else if (chunk instanceof Buffer) {\n encoding = ''\n } else if (Stream._isUint8Array(chunk)) {\n chunk = Stream._uint8ArrayToBuffer(chunk)\n encoding = ''\n } else if (chunk != null) {\n err = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk)\n }\n }\n if (err) {\n errorOrDestroy(stream, err)\n } else if (chunk === null) {\n state.state &= ~kReading\n onEofChunk(stream, state)\n } else if ((state.state & kObjectMode) !== 0 || (chunk && chunk.length > 0)) {\n if (addToFront) {\n if ((state.state & kEndEmitted) !== 0) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT())\n else if (state.destroyed || state.errored) return false\n 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 || state.errored) {\n return false\n } else {\n state.state &= ~kReading\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk)\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false)\n else maybeReadMore(stream, state)\n } else {\n addChunk(stream, state, chunk, false)\n }\n }\n } else if (!addToFront) {\n state.state &= ~kReading\n maybeReadMore(stream, state)\n }\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 return !state.ended && (state.length < state.highWaterMark || state.length === 0)\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync && stream.listenerCount('data') > 0) {\n // Use the guard to avoid creating `Set()` repeatedly\n // when we have multiple pipes.\n if ((state.state & kMultiAwaitDrain) !== 0) {\n state.awaitDrainWriters.clear()\n } else {\n state.awaitDrainWriters = null\n }\n state.dataEmitted = true\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)\n else state.buffer.push(chunk)\n if ((state.state & kNeedReadable) !== 0) emitReadable(stream)\n }\n maybeReadMore(stream, state)\n}\nReadable.prototype.isPaused = function () {\n const state = this._readableState\n return state[kPaused] === true || state.flowing === false\n}\n\n// Backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n const decoder = new StringDecoder(enc)\n this._readableState.decoder = decoder\n // If setEncoding(null), decoder.encoding equals utf8.\n this._readableState.encoding = this._readableState.decoder.encoding\n const buffer = this._readableState.buffer\n // Iterate over current buffer to convert already stored Buffers:\n let content = ''\n for (const data of buffer) {\n content += decoder.write(data)\n }\n buffer.clear()\n if (content !== '') buffer.push(content)\n this._readableState.length = content.length\n return this\n}\n\n// Don't raise the hwm > 1GB.\nconst MAX_HWM = 0x40000000\nfunction computeNewHighWaterMark(n) {\n if (n > MAX_HWM) {\n throw new ERR_OUT_OF_RANGE('size', '<= 1GiB', n)\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 return n\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || (state.length === 0 && state.ended)) return 0\n if ((state.state & kObjectMode) !== 0) return 1\n if (NumberIsNaN(n)) {\n // Only flow one buffer at a time.\n if (state.flowing && state.length) return state.buffer.first().length\n return state.length\n }\n if (n <= state.length) return n\n return state.ended ? state.length : 0\n}\n\n// You can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n)\n // Same as parseInt(undefined, 10), however V8 7.3 performance regressed\n // in this scenario, so we are doing it manually.\n if (n === undefined) {\n n = NaN\n } else if (!NumberIsInteger(n)) {\n n = NumberParseInt(n, 10)\n }\n const state = this._readableState\n const nOrig = n\n\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n)\n if (n !== 0) state.state &= ~kEmittedReadable\n\n // 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 if (\n n === 0 &&\n state.needReadable &&\n ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)\n ) {\n debug('read: emitReadable', state.length, state.ended)\n if (state.length === 0 && state.ended) endReadable(this)\n else emitReadable(this)\n return null\n }\n n = howMuchToRead(n, state)\n\n // If we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this)\n return null\n }\n\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\n // if we need a readable event, then we need to do some reading.\n let doRead = (state.state & kNeedReadable) !== 0\n debug('need readable', doRead)\n\n // If we currently have less than the highWaterMark, then also read some.\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true\n debug('length less than watermark', doRead)\n }\n\n // However, if we've ended, then there's no point, if we're already\n // reading, then it's unnecessary, if we're constructing we have to wait,\n // and if we're destroyed or errored, then it's not allowed,\n if (state.ended || state.reading || state.destroyed || state.errored || !state.constructed) {\n doRead = false\n debug('reading, ended or constructing', doRead)\n } else if (doRead) {\n debug('do read')\n state.state |= kReading | kSync\n // If the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.state |= kNeedReadable\n\n // Call internal read method\n try {\n this._read(state.highWaterMark)\n } catch (err) {\n errorOrDestroy(this, err)\n }\n state.state &= ~kSync\n\n // 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 if (!state.reading) n = howMuchToRead(nOrig, state)\n }\n let ret\n if (n > 0) ret = fromList(n, state)\n else ret = null\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark\n n = 0\n } else {\n state.length -= n\n if (state.multiAwaitDrain) {\n state.awaitDrainWriters.clear()\n } else {\n state.awaitDrainWriters = null\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\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this)\n }\n if (ret !== null && !state.errorEmitted && !state.closeEmitted) {\n state.dataEmitted = true\n this.emit('data', ret)\n }\n return ret\n}\nfunction onEofChunk(stream, state) {\n debug('onEofChunk')\n if (state.ended) return\n if (state.decoder) {\n const chunk = state.decoder.end()\n if (chunk && chunk.length) {\n state.buffer.push(chunk)\n state.length += state.objectMode ? 1 : chunk.length\n }\n }\n state.ended = true\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 state.emittedReadable = true\n // We have to emit readable now that we are EOF. Modules\n // in the ecosystem (e.g. dicer) rely on this event being sync.\n emitReadable_(stream)\n }\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.\nfunction emitReadable(stream) {\n const state = stream._readableState\n debug('emitReadable', state.needReadable, state.emittedReadable)\n state.needReadable = false\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing)\n state.emittedReadable = true\n process.nextTick(emitReadable_, stream)\n }\n}\nfunction emitReadable_(stream) {\n const state = stream._readableState\n debug('emitReadable_', state.destroyed, state.length, state.ended)\n if (!state.destroyed && !state.errored && (state.length || state.ended)) {\n stream.emit('readable')\n state.emittedReadable = false\n }\n\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 state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark\n flow(stream)\n}\n\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.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore && state.constructed) {\n state.readingMore = true\n process.nextTick(maybeReadMore_, stream, state)\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 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 (\n !state.reading &&\n !state.ended &&\n (state.length < state.highWaterMark || (state.flowing && state.length === 0))\n ) {\n const len = state.length\n debug('maybeReadMore read 0')\n stream.read(0)\n if (len === state.length)\n // Didn't get any data, stop spinning.\n break\n }\n state.readingMore = false\n}\n\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.\nReadable.prototype._read = function (n) {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_read()')\n}\nReadable.prototype.pipe = function (dest, pipeOpts) {\n const src = this\n const state = this._readableState\n if (state.pipes.length === 1) {\n if (!state.multiAwaitDrain) {\n state.multiAwaitDrain = true\n state.awaitDrainWriters = new SafeSet(state.awaitDrainWriters ? [state.awaitDrainWriters] : [])\n }\n }\n state.pipes.push(dest)\n debug('pipe count=%d opts=%j', state.pipes.length, pipeOpts)\n const doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr\n const endFn = doEnd ? onend : unpipe\n if (state.endEmitted) process.nextTick(endFn)\n else src.once('end', endFn)\n dest.on('unpipe', onunpipe)\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe')\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true\n cleanup()\n }\n }\n }\n function onend() {\n debug('onend')\n dest.end()\n }\n let ondrain\n let cleanedUp = false\n function cleanup() {\n debug('cleanup')\n // Cleanup event handlers once the pipe is broken.\n dest.removeListener('close', onclose)\n dest.removeListener('finish', onfinish)\n if (ondrain) {\n dest.removeListener('drain', ondrain)\n }\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\n\n // 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 if (ondrain && state.awaitDrainWriters && (!dest._writableState || dest._writableState.needDrain)) ondrain()\n }\n function pause() {\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 (!cleanedUp) {\n if (state.pipes.length === 1 && state.pipes[0] === dest) {\n debug('false write response, pause', 0)\n state.awaitDrainWriters = dest\n state.multiAwaitDrain = false\n } else if (state.pipes.length > 1 && state.pipes.includes(dest)) {\n debug('false write response, pause', state.awaitDrainWriters.size)\n state.awaitDrainWriters.add(dest)\n }\n src.pause()\n }\n if (!ondrain) {\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 ondrain = pipeOnDrain(src, dest)\n dest.on('drain', ondrain)\n }\n }\n src.on('data', ondata)\n function ondata(chunk) {\n debug('ondata')\n const ret = dest.write(chunk)\n debug('dest.write', ret)\n if (ret === false) {\n pause()\n }\n }\n\n // If the dest has an error, then stop piping into it.\n // However, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er)\n unpipe()\n dest.removeListener('error', onerror)\n if (dest.listenerCount('error') === 0) {\n const s = dest._writableState || dest._readableState\n if (s && !s.errorEmitted) {\n // User incorrectly emitted 'error' directly on the stream.\n errorOrDestroy(dest, er)\n } else {\n dest.emit('error', er)\n }\n }\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror)\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish)\n unpipe()\n }\n dest.once('close', onclose)\n function onfinish() {\n debug('onfinish')\n dest.removeListener('close', onclose)\n unpipe()\n }\n dest.once('finish', onfinish)\n function unpipe() {\n debug('unpipe')\n src.unpipe(dest)\n }\n\n // Tell the dest that it's being piped to.\n dest.emit('pipe', src)\n\n // Start the flow if it hasn't been started already.\n\n if (dest.writableNeedDrain === true) {\n pause()\n } else if (!state.flowing) {\n debug('pipe resume')\n src.resume()\n }\n return dest\n}\nfunction pipeOnDrain(src, dest) {\n return function pipeOnDrainFunctionResult() {\n const state = src._readableState\n\n // `ondrain` will call directly,\n // `this` maybe not a reference to dest,\n // so we use the real dest here.\n if (state.awaitDrainWriters === dest) {\n debug('pipeOnDrain', 1)\n state.awaitDrainWriters = null\n } else if (state.multiAwaitDrain) {\n debug('pipeOnDrain', state.awaitDrainWriters.size)\n state.awaitDrainWriters.delete(dest)\n }\n if ((!state.awaitDrainWriters || state.awaitDrainWriters.size === 0) && src.listenerCount('data')) {\n src.resume()\n }\n }\n}\nReadable.prototype.unpipe = function (dest) {\n const state = this._readableState\n const unpipeInfo = {\n hasUnpiped: false\n }\n\n // If we're not piping anywhere, then do nothing.\n if (state.pipes.length === 0) return this\n if (!dest) {\n // remove all.\n const dests = state.pipes\n state.pipes = []\n this.pause()\n for (let i = 0; i < dests.length; i++)\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n })\n return this\n }\n\n // Try to find the right one.\n const index = ArrayPrototypeIndexOf(state.pipes, dest)\n if (index === -1) return this\n state.pipes.splice(index, 1)\n if (state.pipes.length === 0) this.pause()\n dest.emit('unpipe', this, unpipeInfo)\n return this\n}\n\n// Set up data events if they are asked for\n// Ensure readable listeners eventually get something.\nReadable.prototype.on = function (ev, fn) {\n const res = Stream.prototype.on.call(this, ev, fn)\n const state = this._readableState\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\n\n // Try start flowing on next tick if stream isn't explicitly paused.\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 if (state.length) {\n emitReadable(this)\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this)\n }\n }\n }\n return res\n}\nReadable.prototype.addListener = Readable.prototype.on\nReadable.prototype.removeListener = function (ev, fn) {\n const res = Stream.prototype.removeListener.call(this, ev, fn)\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 return res\n}\nReadable.prototype.off = Readable.prototype.removeListener\nReadable.prototype.removeAllListeners = function (ev) {\n const res = Stream.prototype.removeAllListeners.apply(this, arguments)\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 return res\n}\nfunction updateReadableListening(self) {\n const state = self._readableState\n state.readableListening = self.listenerCount('readable') > 0\n if (state.resumeScheduled && state[kPaused] === false) {\n // Flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true\n\n // Crude way to check if we should resume.\n } else if (self.listenerCount('data') > 0) {\n self.resume()\n } else if (!state.readableListening) {\n state.flowing = null\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0')\n self.read(0)\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n const state = this._readableState\n if (!state.flowing) {\n debug('resume')\n // We flow only if there is no one listening\n // for readable, but we still have to call\n // resume().\n state.flowing = !state.readableListening\n resume(this, state)\n }\n state[kPaused] = false\n return this\n}\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true\n process.nextTick(resume_, stream, state)\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading)\n if (!state.reading) {\n stream.read(0)\n }\n state.resumeScheduled = false\n stream.emit('resume')\n flow(stream)\n if (state.flowing && !state.reading) stream.read(0)\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing)\n if (this._readableState.flowing !== false) {\n debug('pause')\n this._readableState.flowing = false\n this.emit('pause')\n }\n this._readableState[kPaused] = true\n return this\n}\nfunction flow(stream) {\n const state = stream._readableState\n debug('flow', state.flowing)\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.\nReadable.prototype.wrap = function (stream) {\n let paused = false\n\n // TODO (ronag): Should this.destroy(err) emit\n // 'error' on the wrapped stream? Would require\n // a static factory method, e.g. Readable.wrap(stream).\n\n stream.on('data', (chunk) => {\n if (!this.push(chunk) && stream.pause) {\n paused = true\n stream.pause()\n }\n })\n stream.on('end', () => {\n this.push(null)\n })\n stream.on('error', (err) => {\n errorOrDestroy(this, err)\n })\n stream.on('close', () => {\n this.destroy()\n })\n stream.on('destroy', () => {\n this.destroy()\n })\n this._read = () => {\n if (paused && stream.resume) {\n paused = false\n stream.resume()\n }\n }\n\n // Proxy all the other methods. Important when wrapping filters and duplexes.\n const streamKeys = ObjectKeys(stream)\n for (let j = 1; j < streamKeys.length; j++) {\n const i = streamKeys[j]\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = stream[i].bind(stream)\n }\n }\n return this\n}\nReadable.prototype[SymbolAsyncIterator] = function () {\n return streamToAsyncIterator(this)\n}\nReadable.prototype.iterator = function (options) {\n if (options !== undefined) {\n validateObject(options, 'options')\n }\n return streamToAsyncIterator(this, options)\n}\nfunction streamToAsyncIterator(stream, options) {\n if (typeof stream.read !== 'function') {\n stream = Readable.wrap(stream, {\n objectMode: true\n })\n }\n const iter = createAsyncIterator(stream, options)\n iter.stream = stream\n return iter\n}\nasync function* createAsyncIterator(stream, options) {\n let callback = nop\n function next(resolve) {\n if (this === stream) {\n callback()\n callback = nop\n } else {\n callback = resolve\n }\n }\n stream.on('readable', next)\n let error\n const cleanup = eos(\n stream,\n {\n writable: false\n },\n (err) => {\n error = err ? aggregateTwoErrors(error, err) : null\n callback()\n callback = nop\n }\n )\n try {\n while (true) {\n const chunk = stream.destroyed ? null : stream.read()\n if (chunk !== null) {\n yield chunk\n } else if (error) {\n throw error\n } else if (error === null) {\n return\n } else {\n await new Promise(next)\n }\n }\n } catch (err) {\n error = aggregateTwoErrors(error, err)\n throw error\n } finally {\n if (\n (error || (options === null || options === undefined ? undefined : options.destroyOnReturn) !== false) &&\n (error === undefined || stream._readableState.autoDestroy)\n ) {\n destroyImpl.destroyer(stream, null)\n } else {\n stream.off('readable', next)\n cleanup()\n }\n }\n}\n\n// Making it explicit these properties are not enumerable\n// because otherwise some prototype manipulation in\n// userland will fail.\nObjectDefineProperties(Readable.prototype, {\n readable: {\n __proto__: null,\n get() {\n const r = this._readableState\n // r.readable === false means that this is part of a Duplex stream\n // where the readable side was disabled upon construction.\n // Compat. The user might manually disable readable side through\n // deprecated setter.\n return !!r && r.readable !== false && !r.destroyed && !r.errorEmitted && !r.endEmitted\n },\n set(val) {\n // Backwards compat.\n if (this._readableState) {\n this._readableState.readable = !!val\n }\n }\n },\n readableDidRead: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.dataEmitted\n }\n },\n readableAborted: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return !!(\n this._readableState.readable !== false &&\n (this._readableState.destroyed || this._readableState.errored) &&\n !this._readableState.endEmitted\n )\n }\n },\n readableHighWaterMark: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark\n }\n },\n readableBuffer: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState && this._readableState.buffer\n }\n },\n readableFlowing: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return this._readableState.flowing\n },\n set: function (state) {\n if (this._readableState) {\n this._readableState.flowing = state\n }\n }\n },\n readableLength: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState.length\n }\n },\n readableObjectMode: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.objectMode : false\n }\n },\n readableEncoding: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.encoding : null\n }\n },\n errored: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.errored : null\n }\n },\n closed: {\n __proto__: null,\n get() {\n return this._readableState ? this._readableState.closed : false\n }\n },\n destroyed: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.destroyed : false\n },\n set(value) {\n // We ignore the value if the stream\n // has not been initialized yet.\n if (!this._readableState) {\n return\n }\n\n // Backward compatibility, the user is explicitly\n // managing destroyed.\n this._readableState.destroyed = value\n }\n },\n readableEnded: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._readableState ? this._readableState.endEmitted : false\n }\n }\n})\nObjectDefineProperties(ReadableState.prototype, {\n // Legacy getter for `pipesCount`.\n pipesCount: {\n __proto__: null,\n get() {\n return this.pipes.length\n }\n },\n // Legacy property for `paused`.\n paused: {\n __proto__: null,\n get() {\n return this[kPaused] !== false\n },\n set(value) {\n this[kPaused] = !!value\n }\n }\n})\n\n// Exposed for testing purposes only.\nReadable._fromList = fromList\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.\nfunction fromList(n, state) {\n // nothing buffered.\n if (state.length === 0) return null\n let ret\n if (state.objectMode) ret = state.buffer.shift()\n else if (!n || n >= state.length) {\n // Read it all, truncate the list.\n if (state.decoder) ret = state.buffer.join('')\n else if (state.buffer.length === 1) ret = state.buffer.first()\n 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}\nfunction endReadable(stream) {\n const state = stream._readableState\n debug('endReadable', state.endEmitted)\n if (!state.endEmitted) {\n state.ended = true\n process.nextTick(endReadableNT, state, stream)\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length)\n\n // Check that we didn't get one last unshift.\n if (!state.errored && !state.closeEmitted && !state.endEmitted && state.length === 0) {\n state.endEmitted = true\n stream.emit('end')\n if (stream.writable && stream.allowHalfOpen === false) {\n process.nextTick(endWritableNT, stream)\n } else 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 const wState = stream._writableState\n const autoDestroy =\n !wState ||\n (wState.autoDestroy &&\n // We don't expect the writable to ever 'finish'\n // if writable is explicitly set to false.\n (wState.finished || wState.writable === false))\n if (autoDestroy) {\n stream.destroy()\n }\n }\n }\n}\nfunction endWritableNT(stream) {\n const writable = stream.writable && !stream.writableEnded && !stream.destroyed\n if (writable) {\n stream.end()\n }\n}\nReadable.from = function (iterable, opts) {\n return from(Readable, iterable, opts)\n}\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nReadable.fromWeb = function (readableStream, options) {\n return lazyWebStreams().newStreamReadableFromReadableStream(readableStream, options)\n}\nReadable.toWeb = function (streamReadable, options) {\n return lazyWebStreams().newReadableStreamFromStreamReadable(streamReadable, options)\n}\nReadable.wrap = function (src, options) {\n var _ref, _src$readableObjectMo\n return new Readable({\n objectMode:\n (_ref =\n (_src$readableObjectMo = src.readableObjectMode) !== null && _src$readableObjectMo !== undefined\n ? _src$readableObjectMo\n : src.objectMode) !== null && _ref !== undefined\n ? _ref\n : true,\n ...options,\n destroy(err, callback) {\n destroyImpl.destroyer(src, err)\n callback(err)\n }\n }).wrap(src)\n}\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/readable-stream/lib/internal/streams/readable.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\nconst { MathFloor, NumberIsInteger } = __webpack_require__(/*! ../../ours/primordials */ \"./node_modules/readable-stream/lib/ours/primordials.js\")\nconst { validateInteger } = __webpack_require__(/*! ../validators */ \"./node_modules/readable-stream/lib/internal/validators.js\")\nconst { ERR_INVALID_ARG_VALUE } = (__webpack_require__(/*! ../../ours/errors */ \"./node_modules/readable-stream/lib/ours/errors.js\").codes)\nlet defaultHighWaterMarkBytes = 16 * 1024\nlet defaultHighWaterMarkObjectMode = 16\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null\n}\nfunction getDefaultHighWaterMark(objectMode) {\n return objectMode ? defaultHighWaterMarkObjectMode : defaultHighWaterMarkBytes\n}\nfunction setDefaultHighWaterMark(objectMode, value) {\n validateInteger(value, 'value', 0)\n if (objectMode) {\n defaultHighWaterMarkObjectMode = value\n } else {\n defaultHighWaterMarkBytes = value\n }\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n const hwm = highWaterMarkFrom(options, isDuplex, duplexKey)\n if (hwm != null) {\n if (!NumberIsInteger(hwm) || hwm < 0) {\n const name = isDuplex ? `options.${duplexKey}` : 'options.highWaterMark'\n throw new ERR_INVALID_ARG_VALUE(name, hwm)\n }\n return MathFloor(hwm)\n }\n\n // Default value\n return getDefaultHighWaterMark(state.objectMode)\n}\nmodule.exports = {\n getHighWaterMark,\n getDefaultHighWaterMark,\n setDefaultHighWaterMark\n}\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/readable-stream/lib/internal/streams/state.js?"); /***/ }), /***/ "./node_modules/readable-stream/lib/internal/streams/transform.js": /*!************************************************************************!*\ !*** ./node_modules/readable-stream/lib/internal/streams/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\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\n\nconst { ObjectSetPrototypeOf, Symbol } = __webpack_require__(/*! ../../ours/primordials */ \"./node_modules/readable-stream/lib/ours/primordials.js\")\nmodule.exports = Transform\nconst { ERR_METHOD_NOT_IMPLEMENTED } = (__webpack_require__(/*! ../../ours/errors */ \"./node_modules/readable-stream/lib/ours/errors.js\").codes)\nconst Duplex = __webpack_require__(/*! ./duplex */ \"./node_modules/readable-stream/lib/internal/streams/duplex.js\")\nconst { getHighWaterMark } = __webpack_require__(/*! ./state */ \"./node_modules/readable-stream/lib/internal/streams/state.js\")\nObjectSetPrototypeOf(Transform.prototype, Duplex.prototype)\nObjectSetPrototypeOf(Transform, Duplex)\nconst kCallback = Symbol('kCallback')\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options)\n\n // TODO (ronag): This should preferably always be\n // applied but would be semver-major. Or even better;\n // make Transform a Readable with the Writable interface.\n const readableHighWaterMark = options ? getHighWaterMark(this, options, 'readableHighWaterMark', true) : null\n if (readableHighWaterMark === 0) {\n // A Duplex will buffer both on the writable and readable side while\n // a Transform just wants to buffer hwm number of elements. To avoid\n // buffering twice we disable buffering on the writable side.\n options = {\n ...options,\n highWaterMark: null,\n readableHighWaterMark,\n // TODO (ronag): 0 is not optimal since we have\n // a \"bug\" where we check needDrain before calling _write and not after.\n // Refs: https://github.com/nodejs/node/pull/32887\n // Refs: https://github.com/nodejs/node/pull/35941\n writableHighWaterMark: options.writableHighWaterMark || 0\n }\n }\n Duplex.call(this, options)\n\n // 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 this._readableState.sync = false\n this[kCallback] = null\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform\n if (typeof options.flush === 'function') this._flush = options.flush\n }\n\n // When the writable side finishes, then flush out anything remaining.\n // Backwards compat. Some Transform streams incorrectly implement _final\n // instead of or in addition to _flush. By using 'prefinish' instead of\n // implementing _final we continue supporting this unfortunate use case.\n this.on('prefinish', prefinish)\n}\nfunction final(cb) {\n if (typeof this._flush === 'function' && !this.destroyed) {\n this._flush((er, data) => {\n if (er) {\n if (cb) {\n cb(er)\n } else {\n this.destroy(er)\n }\n return\n }\n if (data != null) {\n this.push(data)\n }\n this.push(null)\n if (cb) {\n cb()\n }\n })\n } else {\n this.push(null)\n if (cb) {\n cb()\n }\n }\n}\nfunction prefinish() {\n if (this._final !== final) {\n final.call(this)\n }\n}\nTransform.prototype._final = final\nTransform.prototype._transform = function (chunk, encoding, callback) {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_transform()')\n}\nTransform.prototype._write = function (chunk, encoding, callback) {\n const rState = this._readableState\n const wState = this._writableState\n const length = rState.length\n this._transform(chunk, encoding, (err, val) => {\n if (err) {\n callback(err)\n return\n }\n if (val != null) {\n this.push(val)\n }\n if (\n wState.ended ||\n // Backwards compat.\n length === rState.length ||\n // Backwards compat.\n rState.length < rState.highWaterMark\n ) {\n callback()\n } else {\n this[kCallback] = callback\n }\n })\n}\nTransform.prototype._read = function () {\n if (this[kCallback]) {\n const callback = this[kCallback]\n this[kCallback] = null\n callback()\n }\n}\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/readable-stream/lib/internal/streams/transform.js?"); /***/ }), /***/ "./node_modules/readable-stream/lib/internal/streams/utils.js": /*!********************************************************************!*\ !*** ./node_modules/readable-stream/lib/internal/streams/utils.js ***! \********************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nconst { SymbolAsyncIterator, SymbolIterator, SymbolFor } = __webpack_require__(/*! ../../ours/primordials */ \"./node_modules/readable-stream/lib/ours/primordials.js\")\n\n// We need to use SymbolFor to make these globally available\n// for interopt with readable-stream, i.e. readable-stream\n// and node core needs to be able to read/write private state\n// from each other for proper interoperability.\nconst kIsDestroyed = SymbolFor('nodejs.stream.destroyed')\nconst kIsErrored = SymbolFor('nodejs.stream.errored')\nconst kIsReadable = SymbolFor('nodejs.stream.readable')\nconst kIsWritable = SymbolFor('nodejs.stream.writable')\nconst kIsDisturbed = SymbolFor('nodejs.stream.disturbed')\nconst kIsClosedPromise = SymbolFor('nodejs.webstream.isClosedPromise')\nconst kControllerErrorFunction = SymbolFor('nodejs.webstream.controllerErrorFunction')\nfunction isReadableNodeStream(obj, strict = false) {\n var _obj$_readableState\n return !!(\n (\n obj &&\n typeof obj.pipe === 'function' &&\n typeof obj.on === 'function' &&\n (!strict || (typeof obj.pause === 'function' && typeof obj.resume === 'function')) &&\n (!obj._writableState ||\n ((_obj$_readableState = obj._readableState) === null || _obj$_readableState === undefined\n ? undefined\n : _obj$_readableState.readable) !== false) &&\n // Duplex\n (!obj._writableState || obj._readableState)\n ) // Writable has .pipe.\n )\n}\nfunction isWritableNodeStream(obj) {\n var _obj$_writableState\n return !!(\n (\n obj &&\n typeof obj.write === 'function' &&\n typeof obj.on === 'function' &&\n (!obj._readableState ||\n ((_obj$_writableState = obj._writableState) === null || _obj$_writableState === undefined\n ? undefined\n : _obj$_writableState.writable) !== false)\n ) // Duplex\n )\n}\nfunction isDuplexNodeStream(obj) {\n return !!(\n obj &&\n typeof obj.pipe === 'function' &&\n obj._readableState &&\n typeof obj.on === 'function' &&\n typeof obj.write === 'function'\n )\n}\nfunction isNodeStream(obj) {\n return (\n obj &&\n (obj._readableState ||\n obj._writableState ||\n (typeof obj.write === 'function' && typeof obj.on === 'function') ||\n (typeof obj.pipe === 'function' && typeof obj.on === 'function'))\n )\n}\nfunction isReadableStream(obj) {\n return !!(\n obj &&\n !isNodeStream(obj) &&\n typeof obj.pipeThrough === 'function' &&\n typeof obj.getReader === 'function' &&\n typeof obj.cancel === 'function'\n )\n}\nfunction isWritableStream(obj) {\n return !!(obj && !isNodeStream(obj) && typeof obj.getWriter === 'function' && typeof obj.abort === 'function')\n}\nfunction isTransformStream(obj) {\n return !!(obj && !isNodeStream(obj) && typeof obj.readable === 'object' && typeof obj.writable === 'object')\n}\nfunction isWebStream(obj) {\n return isReadableStream(obj) || isWritableStream(obj) || isTransformStream(obj)\n}\nfunction isIterable(obj, isAsync) {\n if (obj == null) return false\n if (isAsync === true) return typeof obj[SymbolAsyncIterator] === 'function'\n if (isAsync === false) return typeof obj[SymbolIterator] === 'function'\n return typeof obj[SymbolAsyncIterator] === 'function' || typeof obj[SymbolIterator] === 'function'\n}\nfunction isDestroyed(stream) {\n if (!isNodeStream(stream)) return null\n const wState = stream._writableState\n const rState = stream._readableState\n const state = wState || rState\n return !!(stream.destroyed || stream[kIsDestroyed] || (state !== null && state !== undefined && state.destroyed))\n}\n\n// Have been end():d.\nfunction isWritableEnded(stream) {\n if (!isWritableNodeStream(stream)) return null\n if (stream.writableEnded === true) return true\n const wState = stream._writableState\n if (wState !== null && wState !== undefined && wState.errored) return false\n if (typeof (wState === null || wState === undefined ? undefined : wState.ended) !== 'boolean') return null\n return wState.ended\n}\n\n// Have emitted 'finish'.\nfunction isWritableFinished(stream, strict) {\n if (!isWritableNodeStream(stream)) return null\n if (stream.writableFinished === true) return true\n const wState = stream._writableState\n if (wState !== null && wState !== undefined && wState.errored) return false\n if (typeof (wState === null || wState === undefined ? undefined : wState.finished) !== 'boolean') return null\n return !!(wState.finished || (strict === false && wState.ended === true && wState.length === 0))\n}\n\n// Have been push(null):d.\nfunction isReadableEnded(stream) {\n if (!isReadableNodeStream(stream)) return null\n if (stream.readableEnded === true) return true\n const rState = stream._readableState\n if (!rState || rState.errored) return false\n if (typeof (rState === null || rState === undefined ? undefined : rState.ended) !== 'boolean') return null\n return rState.ended\n}\n\n// Have emitted 'end'.\nfunction isReadableFinished(stream, strict) {\n if (!isReadableNodeStream(stream)) return null\n const rState = stream._readableState\n if (rState !== null && rState !== undefined && rState.errored) return false\n if (typeof (rState === null || rState === undefined ? undefined : rState.endEmitted) !== 'boolean') return null\n return !!(rState.endEmitted || (strict === false && rState.ended === true && rState.length === 0))\n}\nfunction isReadable(stream) {\n if (stream && stream[kIsReadable] != null) return stream[kIsReadable]\n if (typeof (stream === null || stream === undefined ? undefined : stream.readable) !== 'boolean') return null\n if (isDestroyed(stream)) return false\n return isReadableNodeStream(stream) && stream.readable && !isReadableFinished(stream)\n}\nfunction isWritable(stream) {\n if (stream && stream[kIsWritable] != null) return stream[kIsWritable]\n if (typeof (stream === null || stream === undefined ? undefined : stream.writable) !== 'boolean') return null\n if (isDestroyed(stream)) return false\n return isWritableNodeStream(stream) && stream.writable && !isWritableEnded(stream)\n}\nfunction isFinished(stream, opts) {\n if (!isNodeStream(stream)) {\n return null\n }\n if (isDestroyed(stream)) {\n return true\n }\n if ((opts === null || opts === undefined ? undefined : opts.readable) !== false && isReadable(stream)) {\n return false\n }\n if ((opts === null || opts === undefined ? undefined : opts.writable) !== false && isWritable(stream)) {\n return false\n }\n return true\n}\nfunction isWritableErrored(stream) {\n var _stream$_writableStat, _stream$_writableStat2\n if (!isNodeStream(stream)) {\n return null\n }\n if (stream.writableErrored) {\n return stream.writableErrored\n }\n return (_stream$_writableStat =\n (_stream$_writableStat2 = stream._writableState) === null || _stream$_writableStat2 === undefined\n ? undefined\n : _stream$_writableStat2.errored) !== null && _stream$_writableStat !== undefined\n ? _stream$_writableStat\n : null\n}\nfunction isReadableErrored(stream) {\n var _stream$_readableStat, _stream$_readableStat2\n if (!isNodeStream(stream)) {\n return null\n }\n if (stream.readableErrored) {\n return stream.readableErrored\n }\n return (_stream$_readableStat =\n (_stream$_readableStat2 = stream._readableState) === null || _stream$_readableStat2 === undefined\n ? undefined\n : _stream$_readableStat2.errored) !== null && _stream$_readableStat !== undefined\n ? _stream$_readableStat\n : null\n}\nfunction isClosed(stream) {\n if (!isNodeStream(stream)) {\n return null\n }\n if (typeof stream.closed === 'boolean') {\n return stream.closed\n }\n const wState = stream._writableState\n const rState = stream._readableState\n if (\n typeof (wState === null || wState === undefined ? undefined : wState.closed) === 'boolean' ||\n typeof (rState === null || rState === undefined ? undefined : rState.closed) === 'boolean'\n ) {\n return (\n (wState === null || wState === undefined ? undefined : wState.closed) ||\n (rState === null || rState === undefined ? undefined : rState.closed)\n )\n }\n if (typeof stream._closed === 'boolean' && isOutgoingMessage(stream)) {\n return stream._closed\n }\n return null\n}\nfunction isOutgoingMessage(stream) {\n return (\n typeof stream._closed === 'boolean' &&\n typeof stream._defaultKeepAlive === 'boolean' &&\n typeof stream._removedConnection === 'boolean' &&\n typeof stream._removedContLen === 'boolean'\n )\n}\nfunction isServerResponse(stream) {\n return typeof stream._sent100 === 'boolean' && isOutgoingMessage(stream)\n}\nfunction isServerRequest(stream) {\n var _stream$req\n return (\n typeof stream._consuming === 'boolean' &&\n typeof stream._dumped === 'boolean' &&\n ((_stream$req = stream.req) === null || _stream$req === undefined ? undefined : _stream$req.upgradeOrConnect) ===\n undefined\n )\n}\nfunction willEmitClose(stream) {\n if (!isNodeStream(stream)) return null\n const wState = stream._writableState\n const rState = stream._readableState\n const state = wState || rState\n return (\n (!state && isServerResponse(stream)) || !!(state && state.autoDestroy && state.emitClose && state.closed === false)\n )\n}\nfunction isDisturbed(stream) {\n var _stream$kIsDisturbed\n return !!(\n stream &&\n ((_stream$kIsDisturbed = stream[kIsDisturbed]) !== null && _stream$kIsDisturbed !== undefined\n ? _stream$kIsDisturbed\n : stream.readableDidRead || stream.readableAborted)\n )\n}\nfunction isErrored(stream) {\n var _ref,\n _ref2,\n _ref3,\n _ref4,\n _ref5,\n _stream$kIsErrored,\n _stream$_readableStat3,\n _stream$_writableStat3,\n _stream$_readableStat4,\n _stream$_writableStat4\n return !!(\n stream &&\n ((_ref =\n (_ref2 =\n (_ref3 =\n (_ref4 =\n (_ref5 =\n (_stream$kIsErrored = stream[kIsErrored]) !== null && _stream$kIsErrored !== undefined\n ? _stream$kIsErrored\n : stream.readableErrored) !== null && _ref5 !== undefined\n ? _ref5\n : stream.writableErrored) !== null && _ref4 !== undefined\n ? _ref4\n : (_stream$_readableStat3 = stream._readableState) === null || _stream$_readableStat3 === undefined\n ? undefined\n : _stream$_readableStat3.errorEmitted) !== null && _ref3 !== undefined\n ? _ref3\n : (_stream$_writableStat3 = stream._writableState) === null || _stream$_writableStat3 === undefined\n ? undefined\n : _stream$_writableStat3.errorEmitted) !== null && _ref2 !== undefined\n ? _ref2\n : (_stream$_readableStat4 = stream._readableState) === null || _stream$_readableStat4 === undefined\n ? undefined\n : _stream$_readableStat4.errored) !== null && _ref !== undefined\n ? _ref\n : (_stream$_writableStat4 = stream._writableState) === null || _stream$_writableStat4 === undefined\n ? undefined\n : _stream$_writableStat4.errored)\n )\n}\nmodule.exports = {\n isDestroyed,\n kIsDestroyed,\n isDisturbed,\n kIsDisturbed,\n isErrored,\n kIsErrored,\n isReadable,\n kIsReadable,\n kIsClosedPromise,\n kControllerErrorFunction,\n kIsWritable,\n isClosed,\n isDuplexNodeStream,\n isFinished,\n isIterable,\n isReadableNodeStream,\n isReadableStream,\n isReadableEnded,\n isReadableFinished,\n isReadableErrored,\n isNodeStream,\n isWebStream,\n isWritable,\n isWritableNodeStream,\n isWritableStream,\n isWritableEnded,\n isWritableFinished,\n isWritableErrored,\n isServerRequest,\n isServerResponse,\n willEmitClose,\n isTransformStream\n}\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/readable-stream/lib/internal/streams/utils.js?"); /***/ }), /***/ "./node_modules/readable-stream/lib/internal/streams/writable.js": /*!***********************************************************************!*\ !*** ./node_modules/readable-stream/lib/internal/streams/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\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\n\n/* replacement start */\n\nconst process = __webpack_require__(/*! process/ */ \"./node_modules/process/browser.js\")\n\n/* replacement end */\n\nconst {\n ArrayPrototypeSlice,\n Error,\n FunctionPrototypeSymbolHasInstance,\n ObjectDefineProperty,\n ObjectDefineProperties,\n ObjectSetPrototypeOf,\n StringPrototypeToLowerCase,\n Symbol,\n SymbolHasInstance\n} = __webpack_require__(/*! ../../ours/primordials */ \"./node_modules/readable-stream/lib/ours/primordials.js\")\nmodule.exports = Writable\nWritable.WritableState = WritableState\nconst { EventEmitter: EE } = __webpack_require__(/*! events */ \"./node_modules/events/events.js\")\nconst Stream = (__webpack_require__(/*! ./legacy */ \"./node_modules/readable-stream/lib/internal/streams/legacy.js\").Stream)\nconst { Buffer } = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")\nconst destroyImpl = __webpack_require__(/*! ./destroy */ \"./node_modules/readable-stream/lib/internal/streams/destroy.js\")\nconst { addAbortSignal } = __webpack_require__(/*! ./add-abort-signal */ \"./node_modules/readable-stream/lib/internal/streams/add-abort-signal.js\")\nconst { getHighWaterMark, getDefaultHighWaterMark } = __webpack_require__(/*! ./state */ \"./node_modules/readable-stream/lib/internal/streams/state.js\")\nconst {\n ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED,\n ERR_STREAM_ALREADY_FINISHED,\n ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING\n} = (__webpack_require__(/*! ../../ours/errors */ \"./node_modules/readable-stream/lib/ours/errors.js\").codes)\nconst { errorOrDestroy } = destroyImpl\nObjectSetPrototypeOf(Writable.prototype, Stream.prototype)\nObjectSetPrototypeOf(Writable, Stream)\nfunction nop() {}\nconst kOnFinished = Symbol('kOnFinished')\nfunction WritableState(options, stream, isDuplex) {\n // 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 if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof __webpack_require__(/*! ./duplex */ \"./node_modules/readable-stream/lib/internal/streams/duplex.js\")\n\n // Object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!(options && options.objectMode)\n if (isDuplex) this.objectMode = this.objectMode || !!(options && options.writableObjectMode)\n\n // 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 this.highWaterMark = options\n ? getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex)\n : getDefaultHighWaterMark(false)\n\n // if _final has been called.\n this.finalCalled = false\n\n // drain event flag.\n this.needDrain = false\n // At the start of calling end()\n this.ending = false\n // When end() has been called, and returned.\n this.ended = false\n // When 'finish' is emitted.\n this.finished = false\n\n // Has it been destroyed\n this.destroyed = false\n\n // 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 const noDecode = !!(options && options.decodeStrings === false)\n this.decodeStrings = !noDecode\n\n // 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 this.defaultEncoding = (options && options.defaultEncoding) || 'utf8'\n\n // 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 this.length = 0\n\n // A flag to see when we're in the middle of a write.\n this.writing = false\n\n // When true all writes will be buffered until .uncork() call.\n this.corked = 0\n\n // 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 this.sync = true\n\n // 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 this.bufferProcessing = false\n\n // The callback that's passed to _write(chunk, cb).\n this.onwrite = onwrite.bind(undefined, stream)\n\n // The callback that the user supplies to write(chunk, encoding, cb).\n this.writecb = null\n\n // The amount that is being written when _write is called.\n this.writelen = 0\n\n // Storage for data passed to the afterWrite() callback in case of\n // synchronous _write() completion.\n this.afterWriteTickInfo = null\n resetBuffer(this)\n\n // Number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted.\n this.pendingcb = 0\n\n // Stream is still being constructed and cannot be\n // destroyed until construction finished or failed.\n // Async construction is opt in, therefore we start as\n // constructed.\n this.constructed = true\n\n // Emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams.\n this.prefinished = false\n\n // True if the error was already emitted and should not be thrown again.\n this.errorEmitted = false\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = !options || options.emitClose !== false\n\n // Should .destroy() be called after 'finish' (and potentially 'end').\n this.autoDestroy = !options || options.autoDestroy !== false\n\n // Indicates whether the stream has errored. When true all write() calls\n // should return false. This is needed since when autoDestroy\n // is disabled we need a way to tell whether the stream has failed.\n this.errored = null\n\n // Indicates whether the stream has finished destroying.\n this.closed = false\n\n // True if close has been emitted or would have been emitted\n // depending on emitClose.\n this.closeEmitted = false\n this[kOnFinished] = []\n}\nfunction resetBuffer(state) {\n state.buffered = []\n state.bufferedIndex = 0\n state.allBuffers = true\n state.allNoop = true\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n return ArrayPrototypeSlice(this.buffered, this.bufferedIndex)\n}\nObjectDefineProperty(WritableState.prototype, 'bufferedRequestCount', {\n __proto__: null,\n get() {\n return this.buffered.length - this.bufferedIndex\n }\n})\nfunction Writable(options) {\n // 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\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\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5.\n const isDuplex = this instanceof __webpack_require__(/*! ./duplex */ \"./node_modules/readable-stream/lib/internal/streams/duplex.js\")\n if (!isDuplex && !FunctionPrototypeSymbolHasInstance(Writable, this)) return new Writable(options)\n this._writableState = new WritableState(options, this, isDuplex)\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 if (typeof options.construct === 'function') this._construct = options.construct\n if (options.signal) addAbortSignal(options.signal, this)\n }\n Stream.call(this, options)\n destroyImpl.construct(this, () => {\n const state = this._writableState\n if (!state.writing) {\n clearBuffer(this, state)\n }\n finishMaybe(this, state)\n })\n}\nObjectDefineProperty(Writable, SymbolHasInstance, {\n __proto__: null,\n value: function (object) {\n if (FunctionPrototypeSymbolHasInstance(this, object)) return true\n if (this !== Writable) return false\n return object && object._writableState instanceof WritableState\n }\n})\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE())\n}\nfunction _write(stream, chunk, encoding, cb) {\n const state = stream._writableState\n if (typeof encoding === 'function') {\n cb = encoding\n encoding = state.defaultEncoding\n } else {\n if (!encoding) encoding = state.defaultEncoding\n else if (encoding !== 'buffer' && !Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding)\n if (typeof cb !== 'function') cb = nop\n }\n if (chunk === null) {\n throw new ERR_STREAM_NULL_VALUES()\n } else if (!state.objectMode) {\n if (typeof chunk === 'string') {\n if (state.decodeStrings !== false) {\n chunk = Buffer.from(chunk, encoding)\n encoding = 'buffer'\n }\n } else if (chunk instanceof Buffer) {\n encoding = 'buffer'\n } else if (Stream._isUint8Array(chunk)) {\n chunk = Stream._uint8ArrayToBuffer(chunk)\n encoding = 'buffer'\n } else {\n throw new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk)\n }\n }\n let err\n if (state.ending) {\n err = new ERR_STREAM_WRITE_AFTER_END()\n } else if (state.destroyed) {\n err = new ERR_STREAM_DESTROYED('write')\n }\n if (err) {\n process.nextTick(cb, err)\n errorOrDestroy(stream, err, true)\n return err\n }\n state.pendingcb++\n return writeOrBuffer(stream, state, chunk, encoding, cb)\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n return _write(this, chunk, encoding, cb) === true\n}\nWritable.prototype.cork = function () {\n this._writableState.corked++\n}\nWritable.prototype.uncork = function () {\n const state = this._writableState\n if (state.corked) {\n state.corked--\n if (!state.writing) clearBuffer(this, state)\n }\n}\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = StringPrototypeToLowerCase(encoding)\n if (!Buffer.isEncoding(encoding)) throw new ERR_UNKNOWN_ENCODING(encoding)\n this._writableState.defaultEncoding = encoding\n return this\n}\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.\nfunction writeOrBuffer(stream, state, chunk, encoding, callback) {\n const len = state.objectMode ? 1 : chunk.length\n state.length += len\n\n // stream._write resets state.length\n const ret = state.length < state.highWaterMark\n // We must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true\n if (state.writing || state.corked || state.errored || !state.constructed) {\n state.buffered.push({\n chunk,\n encoding,\n callback\n })\n if (state.allBuffers && encoding !== 'buffer') {\n state.allBuffers = false\n }\n if (state.allNoop && callback !== nop) {\n state.allNoop = false\n }\n } else {\n state.writelen = len\n state.writecb = callback\n state.writing = true\n state.sync = true\n stream._write(chunk, encoding, state.onwrite)\n state.sync = false\n }\n\n // Return false if errored or destroyed in order to break\n // any synchronous while(stream.write(data)) loops.\n return ret && !state.errored && !state.destroyed\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'))\n else if (writev) stream._writev(chunk, state.onwrite)\n else stream._write(chunk, encoding, state.onwrite)\n state.sync = false\n}\nfunction onwriteError(stream, state, er, cb) {\n --state.pendingcb\n cb(er)\n // Ensure callbacks are invoked even when autoDestroy is\n // not enabled. Passing `er` here doesn't make sense since\n // it's related to one specific write, not to the buffered\n // writes.\n errorBuffer(state)\n // This can emit error, but error must always follow cb.\n errorOrDestroy(stream, er)\n}\nfunction onwrite(stream, er) {\n const state = stream._writableState\n const sync = state.sync\n const cb = state.writecb\n if (typeof cb !== 'function') {\n errorOrDestroy(stream, new ERR_MULTIPLE_CALLBACK())\n return\n }\n state.writing = false\n state.writecb = null\n state.length -= state.writelen\n state.writelen = 0\n if (er) {\n // Avoid V8 leak, https://github.com/nodejs/node/pull/34103#issuecomment-652002364\n er.stack // eslint-disable-line no-unused-expressions\n\n if (!state.errored) {\n state.errored = er\n }\n\n // In case of duplex streams we need to notify the readable side of the\n // error.\n if (stream._readableState && !stream._readableState.errored) {\n stream._readableState.errored = er\n }\n if (sync) {\n process.nextTick(onwriteError, stream, state, er, cb)\n } else {\n onwriteError(stream, state, er, cb)\n }\n } else {\n if (state.buffered.length > state.bufferedIndex) {\n clearBuffer(stream, state)\n }\n if (sync) {\n // It is a common case that the callback passed to .write() is always\n // the same. In that case, we do not schedule a new nextTick(), but\n // rather just increase a counter, to improve performance and avoid\n // memory allocations.\n if (state.afterWriteTickInfo !== null && state.afterWriteTickInfo.cb === cb) {\n state.afterWriteTickInfo.count++\n } else {\n state.afterWriteTickInfo = {\n count: 1,\n cb,\n stream,\n state\n }\n process.nextTick(afterWriteTick, state.afterWriteTickInfo)\n }\n } else {\n afterWrite(stream, state, 1, cb)\n }\n }\n}\nfunction afterWriteTick({ stream, state, count, cb }) {\n state.afterWriteTickInfo = null\n return afterWrite(stream, state, count, cb)\n}\nfunction afterWrite(stream, state, count, cb) {\n const needDrain = !state.ending && !stream.destroyed && state.length === 0 && state.needDrain\n if (needDrain) {\n state.needDrain = false\n stream.emit('drain')\n }\n while (count-- > 0) {\n state.pendingcb--\n cb()\n }\n if (state.destroyed) {\n errorBuffer(state)\n }\n finishMaybe(stream, state)\n}\n\n// If there's something in the buffer waiting, then invoke callbacks.\nfunction errorBuffer(state) {\n if (state.writing) {\n return\n }\n for (let n = state.bufferedIndex; n < state.buffered.length; ++n) {\n var _state$errored\n const { chunk, callback } = state.buffered[n]\n const len = state.objectMode ? 1 : chunk.length\n state.length -= len\n callback(\n (_state$errored = state.errored) !== null && _state$errored !== undefined\n ? _state$errored\n : new ERR_STREAM_DESTROYED('write')\n )\n }\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n var _state$errored2\n onfinishCallbacks[i](\n (_state$errored2 = state.errored) !== null && _state$errored2 !== undefined\n ? _state$errored2\n : new ERR_STREAM_DESTROYED('end')\n )\n }\n resetBuffer(state)\n}\n\n// If there's something in the buffer waiting, then process it.\nfunction clearBuffer(stream, state) {\n if (state.corked || state.bufferProcessing || state.destroyed || !state.constructed) {\n return\n }\n const { buffered, bufferedIndex, objectMode } = state\n const bufferedLength = buffered.length - bufferedIndex\n if (!bufferedLength) {\n return\n }\n let i = bufferedIndex\n state.bufferProcessing = true\n if (bufferedLength > 1 && stream._writev) {\n state.pendingcb -= bufferedLength - 1\n const callback = state.allNoop\n ? nop\n : (err) => {\n for (let n = i; n < buffered.length; ++n) {\n buffered[n].callback(err)\n }\n }\n // Make a copy of `buffered` if it's going to be used by `callback` above,\n // since `doWrite` will mutate the array.\n const chunks = state.allNoop && i === 0 ? buffered : ArrayPrototypeSlice(buffered, i)\n chunks.allBuffers = state.allBuffers\n doWrite(stream, state, true, state.length, chunks, '', callback)\n resetBuffer(state)\n } else {\n do {\n const { chunk, encoding, callback } = buffered[i]\n buffered[i++] = null\n const len = objectMode ? 1 : chunk.length\n doWrite(stream, state, false, len, chunk, encoding, callback)\n } while (i < buffered.length && !state.writing)\n if (i === buffered.length) {\n resetBuffer(state)\n } else if (i > 256) {\n buffered.splice(0, i)\n state.bufferedIndex = 0\n } else {\n state.bufferedIndex = i\n }\n }\n state.bufferProcessing = false\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n if (this._writev) {\n this._writev(\n [\n {\n chunk,\n encoding\n }\n ],\n cb\n )\n } else {\n throw new ERR_METHOD_NOT_IMPLEMENTED('_write()')\n }\n}\nWritable.prototype._writev = null\nWritable.prototype.end = function (chunk, encoding, cb) {\n const state = this._writableState\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 let err\n if (chunk !== null && chunk !== undefined) {\n const ret = _write(this, chunk, encoding)\n if (ret instanceof Error) {\n err = ret\n }\n }\n\n // .end() fully uncorks.\n if (state.corked) {\n state.corked = 1\n this.uncork()\n }\n if (err) {\n // Do nothing...\n } else if (!state.errored && !state.ending) {\n // This is forgiving in terms of unnecessary calls to end() and can hide\n // logic errors. However, usually such errors are harmless and causing a\n // hard error can be disproportionately destructive. It is not always\n // trivial for the user to determine whether end() needs to be called\n // or not.\n\n state.ending = true\n finishMaybe(this, state, true)\n state.ended = true\n } else if (state.finished) {\n err = new ERR_STREAM_ALREADY_FINISHED('end')\n } else if (state.destroyed) {\n err = new ERR_STREAM_DESTROYED('end')\n }\n if (typeof cb === 'function') {\n if (err || state.finished) {\n process.nextTick(cb, err)\n } else {\n state[kOnFinished].push(cb)\n }\n }\n return this\n}\nfunction needFinish(state) {\n return (\n state.ending &&\n !state.destroyed &&\n state.constructed &&\n state.length === 0 &&\n !state.errored &&\n state.buffered.length === 0 &&\n !state.finished &&\n !state.writing &&\n !state.errorEmitted &&\n !state.closeEmitted\n )\n}\nfunction callFinal(stream, state) {\n let called = false\n function onFinish(err) {\n if (called) {\n errorOrDestroy(stream, err !== null && err !== undefined ? err : ERR_MULTIPLE_CALLBACK())\n return\n }\n called = true\n state.pendingcb--\n if (err) {\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n onfinishCallbacks[i](err)\n }\n errorOrDestroy(stream, err, state.sync)\n } else if (needFinish(state)) {\n state.prefinished = true\n stream.emit('prefinish')\n // Backwards compat. Don't check state.sync here.\n // Some streams assume 'finish' will be emitted\n // asynchronously relative to _final callback.\n state.pendingcb++\n process.nextTick(finish, stream, state)\n }\n }\n state.sync = true\n state.pendingcb++\n try {\n stream._final(onFinish)\n } catch (err) {\n onFinish(err)\n }\n state.sync = false\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.finalCalled = true\n callFinal(stream, state)\n } else {\n state.prefinished = true\n stream.emit('prefinish')\n }\n }\n}\nfunction finishMaybe(stream, state, sync) {\n if (needFinish(state)) {\n prefinish(stream, state)\n if (state.pendingcb === 0) {\n if (sync) {\n state.pendingcb++\n process.nextTick(\n (stream, state) => {\n if (needFinish(state)) {\n finish(stream, state)\n } else {\n state.pendingcb--\n }\n },\n stream,\n state\n )\n } else if (needFinish(state)) {\n state.pendingcb++\n finish(stream, state)\n }\n }\n }\n}\nfunction finish(stream, state) {\n state.pendingcb--\n state.finished = true\n const onfinishCallbacks = state[kOnFinished].splice(0)\n for (let i = 0; i < onfinishCallbacks.length; i++) {\n onfinishCallbacks[i]()\n }\n stream.emit('finish')\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 const rState = stream._readableState\n const autoDestroy =\n !rState ||\n (rState.autoDestroy &&\n // We don't expect the readable to ever 'end'\n // if readable is explicitly set to false.\n (rState.endEmitted || rState.readable === false))\n if (autoDestroy) {\n stream.destroy()\n }\n }\n}\nObjectDefineProperties(Writable.prototype, {\n closed: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.closed : false\n }\n },\n destroyed: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.destroyed : false\n },\n set(value) {\n // Backward compatibility, the user is explicitly managing destroyed.\n if (this._writableState) {\n this._writableState.destroyed = value\n }\n }\n },\n writable: {\n __proto__: null,\n get() {\n const w = this._writableState\n // w.writable === false means that this is part of a Duplex stream\n // where the writable side was disabled upon construction.\n // Compat. The user might manually disable writable side through\n // deprecated setter.\n return !!w && w.writable !== false && !w.destroyed && !w.errored && !w.ending && !w.ended\n },\n set(val) {\n // Backwards compatible.\n if (this._writableState) {\n this._writableState.writable = !!val\n }\n }\n },\n writableFinished: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.finished : false\n }\n },\n writableObjectMode: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.objectMode : false\n }\n },\n writableBuffer: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.getBuffer()\n }\n },\n writableEnded: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.ending : false\n }\n },\n writableNeedDrain: {\n __proto__: null,\n get() {\n const wState = this._writableState\n if (!wState) return false\n return !wState.destroyed && !wState.ending && wState.needDrain\n }\n },\n writableHighWaterMark: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.highWaterMark\n }\n },\n writableCorked: {\n __proto__: null,\n get() {\n return this._writableState ? this._writableState.corked : 0\n }\n },\n writableLength: {\n __proto__: null,\n get() {\n return this._writableState && this._writableState.length\n }\n },\n errored: {\n __proto__: null,\n enumerable: false,\n get() {\n return this._writableState ? this._writableState.errored : null\n }\n },\n writableAborted: {\n __proto__: null,\n enumerable: false,\n get: function () {\n return !!(\n this._writableState.writable !== false &&\n (this._writableState.destroyed || this._writableState.errored) &&\n !this._writableState.finished\n )\n }\n }\n})\nconst destroy = destroyImpl.destroy\nWritable.prototype.destroy = function (err, cb) {\n const state = this._writableState\n\n // Invoke pending callbacks.\n if (!state.destroyed && (state.bufferedIndex < state.buffered.length || state[kOnFinished].length)) {\n process.nextTick(errorBuffer, state)\n }\n destroy.call(this, err, cb)\n return this\n}\nWritable.prototype._undestroy = destroyImpl.undestroy\nWritable.prototype._destroy = function (err, cb) {\n cb(err)\n}\nWritable.prototype[EE.captureRejectionSymbol] = function (err) {\n this.destroy(err)\n}\nlet webStreamsAdapters\n\n// Lazy to avoid circular references\nfunction lazyWebStreams() {\n if (webStreamsAdapters === undefined) webStreamsAdapters = {}\n return webStreamsAdapters\n}\nWritable.fromWeb = function (writableStream, options) {\n return lazyWebStreams().newStreamWritableFromWritableStream(writableStream, options)\n}\nWritable.toWeb = function (streamWritable) {\n return lazyWebStreams().newWritableStreamFromStreamWritable(streamWritable)\n}\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/readable-stream/lib/internal/streams/writable.js?"); /***/ }), /***/ "./node_modules/readable-stream/lib/internal/validators.js": /*!*****************************************************************!*\ !*** ./node_modules/readable-stream/lib/internal/validators.js ***! \*****************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("/* eslint jsdoc/require-jsdoc: \"error\" */\n\n\n\nconst {\n ArrayIsArray,\n ArrayPrototypeIncludes,\n ArrayPrototypeJoin,\n ArrayPrototypeMap,\n NumberIsInteger,\n NumberIsNaN,\n NumberMAX_SAFE_INTEGER,\n NumberMIN_SAFE_INTEGER,\n NumberParseInt,\n ObjectPrototypeHasOwnProperty,\n RegExpPrototypeExec,\n String,\n StringPrototypeToUpperCase,\n StringPrototypeTrim\n} = __webpack_require__(/*! ../ours/primordials */ \"./node_modules/readable-stream/lib/ours/primordials.js\")\nconst {\n hideStackFrames,\n codes: { ERR_SOCKET_BAD_PORT, ERR_INVALID_ARG_TYPE, ERR_INVALID_ARG_VALUE, ERR_OUT_OF_RANGE, ERR_UNKNOWN_SIGNAL }\n} = __webpack_require__(/*! ../ours/errors */ \"./node_modules/readable-stream/lib/ours/errors.js\")\nconst { normalizeEncoding } = __webpack_require__(/*! ../ours/util */ \"./node_modules/readable-stream/lib/ours/util.js\")\nconst { isAsyncFunction, isArrayBufferView } = (__webpack_require__(/*! ../ours/util */ \"./node_modules/readable-stream/lib/ours/util.js\").types)\nconst signals = {}\n\n/**\n * @param {*} value\n * @returns {boolean}\n */\nfunction isInt32(value) {\n return value === (value | 0)\n}\n\n/**\n * @param {*} value\n * @returns {boolean}\n */\nfunction isUint32(value) {\n return value === value >>> 0\n}\nconst octalReg = /^[0-7]+$/\nconst modeDesc = 'must be a 32-bit unsigned integer or an octal string'\n\n/**\n * Parse and validate values that will be converted into mode_t (the S_*\n * constants). Only valid numbers and octal strings are allowed. They could be\n * converted to 32-bit unsigned integers or non-negative signed integers in the\n * C++ land, but any value higher than 0o777 will result in platform-specific\n * behaviors.\n * @param {*} value Values to be validated\n * @param {string} name Name of the argument\n * @param {number} [def] If specified, will be returned for invalid values\n * @returns {number}\n */\nfunction parseFileMode(value, name, def) {\n if (typeof value === 'undefined') {\n value = def\n }\n if (typeof value === 'string') {\n if (RegExpPrototypeExec(octalReg, value) === null) {\n throw new ERR_INVALID_ARG_VALUE(name, value, modeDesc)\n }\n value = NumberParseInt(value, 8)\n }\n validateUint32(value, name)\n return value\n}\n\n/**\n * @callback validateInteger\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateInteger} */\nconst validateInteger = hideStackFrames((value, name, min = NumberMIN_SAFE_INTEGER, max = NumberMAX_SAFE_INTEGER) => {\n if (typeof value !== 'number') throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n if (!NumberIsInteger(value)) throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n if (value < min || value > max) throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n})\n\n/**\n * @callback validateInt32\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateInt32} */\nconst validateInt32 = hideStackFrames((value, name, min = -2147483648, max = 2147483647) => {\n // The defaults for min and max correspond to the limits of 32-bit integers.\n if (typeof value !== 'number') {\n throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n if (!NumberIsInteger(value)) {\n throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n }\n if (value < min || value > max) {\n throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n }\n})\n\n/**\n * @callback validateUint32\n * @param {*} value\n * @param {string} name\n * @param {number|boolean} [positive=false]\n * @returns {asserts value is number}\n */\n\n/** @type {validateUint32} */\nconst validateUint32 = hideStackFrames((value, name, positive = false) => {\n if (typeof value !== 'number') {\n throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n if (!NumberIsInteger(value)) {\n throw new ERR_OUT_OF_RANGE(name, 'an integer', value)\n }\n const min = positive ? 1 : 0\n // 2 ** 32 === 4294967296\n const max = 4294967295\n if (value < min || value > max) {\n throw new ERR_OUT_OF_RANGE(name, `>= ${min} && <= ${max}`, value)\n }\n})\n\n/**\n * @callback validateString\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is string}\n */\n\n/** @type {validateString} */\nfunction validateString(value, name) {\n if (typeof value !== 'string') throw new ERR_INVALID_ARG_TYPE(name, 'string', value)\n}\n\n/**\n * @callback validateNumber\n * @param {*} value\n * @param {string} name\n * @param {number} [min]\n * @param {number} [max]\n * @returns {asserts value is number}\n */\n\n/** @type {validateNumber} */\nfunction validateNumber(value, name, min = undefined, max) {\n if (typeof value !== 'number') throw new ERR_INVALID_ARG_TYPE(name, 'number', value)\n if (\n (min != null && value < min) ||\n (max != null && value > max) ||\n ((min != null || max != null) && NumberIsNaN(value))\n ) {\n throw new ERR_OUT_OF_RANGE(\n name,\n `${min != null ? `>= ${min}` : ''}${min != null && max != null ? ' && ' : ''}${max != null ? `<= ${max}` : ''}`,\n value\n )\n }\n}\n\n/**\n * @callback validateOneOf\n * @template T\n * @param {T} value\n * @param {string} name\n * @param {T[]} oneOf\n */\n\n/** @type {validateOneOf} */\nconst validateOneOf = hideStackFrames((value, name, oneOf) => {\n if (!ArrayPrototypeIncludes(oneOf, value)) {\n const allowed = ArrayPrototypeJoin(\n ArrayPrototypeMap(oneOf, (v) => (typeof v === 'string' ? `'${v}'` : String(v))),\n ', '\n )\n const reason = 'must be one of: ' + allowed\n throw new ERR_INVALID_ARG_VALUE(name, value, reason)\n }\n})\n\n/**\n * @callback validateBoolean\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is boolean}\n */\n\n/** @type {validateBoolean} */\nfunction validateBoolean(value, name) {\n if (typeof value !== 'boolean') throw new ERR_INVALID_ARG_TYPE(name, 'boolean', value)\n}\n\n/**\n * @param {any} options\n * @param {string} key\n * @param {boolean} defaultValue\n * @returns {boolean}\n */\nfunction getOwnPropertyValueOrDefault(options, key, defaultValue) {\n return options == null || !ObjectPrototypeHasOwnProperty(options, key) ? defaultValue : options[key]\n}\n\n/**\n * @callback validateObject\n * @param {*} value\n * @param {string} name\n * @param {{\n * allowArray?: boolean,\n * allowFunction?: boolean,\n * nullable?: boolean\n * }} [options]\n */\n\n/** @type {validateObject} */\nconst validateObject = hideStackFrames((value, name, options = null) => {\n const allowArray = getOwnPropertyValueOrDefault(options, 'allowArray', false)\n const allowFunction = getOwnPropertyValueOrDefault(options, 'allowFunction', false)\n const nullable = getOwnPropertyValueOrDefault(options, 'nullable', false)\n if (\n (!nullable && value === null) ||\n (!allowArray && ArrayIsArray(value)) ||\n (typeof value !== 'object' && (!allowFunction || typeof value !== 'function'))\n ) {\n throw new ERR_INVALID_ARG_TYPE(name, 'Object', value)\n }\n})\n\n/**\n * @callback validateDictionary - We are using the Web IDL Standard definition\n * of \"dictionary\" here, which means any value\n * whose Type is either Undefined, Null, or\n * Object (which includes functions).\n * @param {*} value\n * @param {string} name\n * @see https://webidl.spec.whatwg.org/#es-dictionary\n * @see https://tc39.es/ecma262/#table-typeof-operator-results\n */\n\n/** @type {validateDictionary} */\nconst validateDictionary = hideStackFrames((value, name) => {\n if (value != null && typeof value !== 'object' && typeof value !== 'function') {\n throw new ERR_INVALID_ARG_TYPE(name, 'a dictionary', value)\n }\n})\n\n/**\n * @callback validateArray\n * @param {*} value\n * @param {string} name\n * @param {number} [minLength]\n * @returns {asserts value is any[]}\n */\n\n/** @type {validateArray} */\nconst validateArray = hideStackFrames((value, name, minLength = 0) => {\n if (!ArrayIsArray(value)) {\n throw new ERR_INVALID_ARG_TYPE(name, 'Array', value)\n }\n if (value.length < minLength) {\n const reason = `must be longer than ${minLength}`\n throw new ERR_INVALID_ARG_VALUE(name, value, reason)\n }\n})\n\n/**\n * @callback validateStringArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is string[]}\n */\n\n/** @type {validateStringArray} */\nfunction validateStringArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n validateString(value[i], `${name}[${i}]`)\n }\n}\n\n/**\n * @callback validateBooleanArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is boolean[]}\n */\n\n/** @type {validateBooleanArray} */\nfunction validateBooleanArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n validateBoolean(value[i], `${name}[${i}]`)\n }\n}\n\n/**\n * @callback validateAbortSignalArray\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is AbortSignal[]}\n */\n\n/** @type {validateAbortSignalArray} */\nfunction validateAbortSignalArray(value, name) {\n validateArray(value, name)\n for (let i = 0; i < value.length; i++) {\n const signal = value[i]\n const indexedName = `${name}[${i}]`\n if (signal == null) {\n throw new ERR_INVALID_ARG_TYPE(indexedName, 'AbortSignal', signal)\n }\n validateAbortSignal(signal, indexedName)\n }\n}\n\n/**\n * @param {*} signal\n * @param {string} [name='signal']\n * @returns {asserts signal is keyof signals}\n */\nfunction validateSignalName(signal, name = 'signal') {\n validateString(signal, name)\n if (signals[signal] === undefined) {\n if (signals[StringPrototypeToUpperCase(signal)] !== undefined) {\n throw new ERR_UNKNOWN_SIGNAL(signal + ' (signals must use all capital letters)')\n }\n throw new ERR_UNKNOWN_SIGNAL(signal)\n }\n}\n\n/**\n * @callback validateBuffer\n * @param {*} buffer\n * @param {string} [name='buffer']\n * @returns {asserts buffer is ArrayBufferView}\n */\n\n/** @type {validateBuffer} */\nconst validateBuffer = hideStackFrames((buffer, name = 'buffer') => {\n if (!isArrayBufferView(buffer)) {\n throw new ERR_INVALID_ARG_TYPE(name, ['Buffer', 'TypedArray', 'DataView'], buffer)\n }\n})\n\n/**\n * @param {string} data\n * @param {string} encoding\n */\nfunction validateEncoding(data, encoding) {\n const normalizedEncoding = normalizeEncoding(encoding)\n const length = data.length\n if (normalizedEncoding === 'hex' && length % 2 !== 0) {\n throw new ERR_INVALID_ARG_VALUE('encoding', encoding, `is invalid for data of length ${length}`)\n }\n}\n\n/**\n * Check that the port number is not NaN when coerced to a number,\n * is an integer and that it falls within the legal range of port numbers.\n * @param {*} port\n * @param {string} [name='Port']\n * @param {boolean} [allowZero=true]\n * @returns {number}\n */\nfunction validatePort(port, name = 'Port', allowZero = true) {\n if (\n (typeof port !== 'number' && typeof port !== 'string') ||\n (typeof port === 'string' && StringPrototypeTrim(port).length === 0) ||\n +port !== +port >>> 0 ||\n port > 0xffff ||\n (port === 0 && !allowZero)\n ) {\n throw new ERR_SOCKET_BAD_PORT(name, port, allowZero)\n }\n return port | 0\n}\n\n/**\n * @callback validateAbortSignal\n * @param {*} signal\n * @param {string} name\n */\n\n/** @type {validateAbortSignal} */\nconst validateAbortSignal = hideStackFrames((signal, name) => {\n if (signal !== undefined && (signal === null || typeof signal !== 'object' || !('aborted' in signal))) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n})\n\n/**\n * @callback validateFunction\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is Function}\n */\n\n/** @type {validateFunction} */\nconst validateFunction = hideStackFrames((value, name) => {\n if (typeof value !== 'function') throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n})\n\n/**\n * @callback validatePlainFunction\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is Function}\n */\n\n/** @type {validatePlainFunction} */\nconst validatePlainFunction = hideStackFrames((value, name) => {\n if (typeof value !== 'function' || isAsyncFunction(value)) throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n})\n\n/**\n * @callback validateUndefined\n * @param {*} value\n * @param {string} name\n * @returns {asserts value is undefined}\n */\n\n/** @type {validateUndefined} */\nconst validateUndefined = hideStackFrames((value, name) => {\n if (value !== undefined) throw new ERR_INVALID_ARG_TYPE(name, 'undefined', value)\n})\n\n/**\n * @template T\n * @param {T} value\n * @param {string} name\n * @param {T[]} union\n */\nfunction validateUnion(value, name, union) {\n if (!ArrayPrototypeIncludes(union, value)) {\n throw new ERR_INVALID_ARG_TYPE(name, `('${ArrayPrototypeJoin(union, '|')}')`, value)\n }\n}\n\n/*\n The rules for the Link header field are described here:\n https://www.rfc-editor.org/rfc/rfc8288.html#section-3\n\n This regex validates any string surrounded by angle brackets\n (not necessarily a valid URI reference) followed by zero or more\n link-params separated by semicolons.\n*/\nconst linkValueRegExp = /^(?:<[^>]*>)(?:\\s*;\\s*[^;\"\\s]+(?:=(\")?[^;\"\\s]*\\1)?)*$/\n\n/**\n * @param {any} value\n * @param {string} name\n */\nfunction validateLinkHeaderFormat(value, name) {\n if (typeof value === 'undefined' || !RegExpPrototypeExec(linkValueRegExp, value)) {\n throw new ERR_INVALID_ARG_VALUE(\n name,\n value,\n 'must be an array or string of format \"; rel=preload; as=style\"'\n )\n }\n}\n\n/**\n * @param {any} hints\n * @return {string}\n */\nfunction validateLinkHeaderValue(hints) {\n if (typeof hints === 'string') {\n validateLinkHeaderFormat(hints, 'hints')\n return hints\n } else if (ArrayIsArray(hints)) {\n const hintsLength = hints.length\n let result = ''\n if (hintsLength === 0) {\n return result\n }\n for (let i = 0; i < hintsLength; i++) {\n const link = hints[i]\n validateLinkHeaderFormat(link, 'hints')\n result += link\n if (i !== hintsLength - 1) {\n result += ', '\n }\n }\n return result\n }\n throw new ERR_INVALID_ARG_VALUE(\n 'hints',\n hints,\n 'must be an array or string of format \"; rel=preload; as=style\"'\n )\n}\nmodule.exports = {\n isInt32,\n isUint32,\n parseFileMode,\n validateArray,\n validateStringArray,\n validateBooleanArray,\n validateAbortSignalArray,\n validateBoolean,\n validateBuffer,\n validateDictionary,\n validateEncoding,\n validateFunction,\n validateInt32,\n validateInteger,\n validateNumber,\n validateObject,\n validateOneOf,\n validatePlainFunction,\n validatePort,\n validateSignalName,\n validateString,\n validateUint32,\n validateUndefined,\n validateUnion,\n validateAbortSignal,\n validateLinkHeaderValue\n}\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/readable-stream/lib/internal/validators.js?"); /***/ }), /***/ "./node_modules/readable-stream/lib/ours/browser.js": /*!**********************************************************!*\ !*** ./node_modules/readable-stream/lib/ours/browser.js ***! \**********************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nconst CustomStream = __webpack_require__(/*! ../stream */ \"./node_modules/readable-stream/lib/stream.js\")\nconst promises = __webpack_require__(/*! ../stream/promises */ \"./node_modules/readable-stream/lib/stream/promises.js\")\nconst originalDestroy = CustomStream.Readable.destroy\nmodule.exports = CustomStream.Readable\n\n// Explicit export naming is needed for ESM\nmodule.exports._uint8ArrayToBuffer = CustomStream._uint8ArrayToBuffer\nmodule.exports._isUint8Array = CustomStream._isUint8Array\nmodule.exports.isDisturbed = CustomStream.isDisturbed\nmodule.exports.isErrored = CustomStream.isErrored\nmodule.exports.isReadable = CustomStream.isReadable\nmodule.exports.Readable = CustomStream.Readable\nmodule.exports.Writable = CustomStream.Writable\nmodule.exports.Duplex = CustomStream.Duplex\nmodule.exports.Transform = CustomStream.Transform\nmodule.exports.PassThrough = CustomStream.PassThrough\nmodule.exports.addAbortSignal = CustomStream.addAbortSignal\nmodule.exports.finished = CustomStream.finished\nmodule.exports.destroy = CustomStream.destroy\nmodule.exports.destroy = originalDestroy\nmodule.exports.pipeline = CustomStream.pipeline\nmodule.exports.compose = CustomStream.compose\nObject.defineProperty(CustomStream, 'promises', {\n configurable: true,\n enumerable: true,\n get() {\n return promises\n }\n})\nmodule.exports.Stream = CustomStream.Stream\n\n// Allow default importing\nmodule.exports[\"default\"] = module.exports\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/readable-stream/lib/ours/browser.js?"); /***/ }), /***/ "./node_modules/readable-stream/lib/ours/errors.js": /*!*********************************************************!*\ !*** ./node_modules/readable-stream/lib/ours/errors.js ***! \*********************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nconst { format, inspect } = __webpack_require__(/*! ./util/inspect */ \"./node_modules/readable-stream/lib/ours/util/inspect.js\")\nconst { AggregateError: CustomAggregateError } = __webpack_require__(/*! ./primordials */ \"./node_modules/readable-stream/lib/ours/primordials.js\")\n\n/*\n This file is a reduced and adapted version of the main lib/internal/errors.js file defined at\n\n https://github.com/nodejs/node/blob/main/lib/internal/errors.js\n\n Don't try to replace with the original file and keep it up to date (starting from E(...) definitions)\n with the upstream file.\n*/\n\nconst AggregateError = globalThis.AggregateError || CustomAggregateError\nconst kIsNodeError = Symbol('kIsNodeError')\nconst kTypes = [\n 'string',\n 'function',\n 'number',\n 'object',\n // Accept 'Function' and 'Object' as alternative to the lower cased version.\n 'Function',\n 'Object',\n 'boolean',\n 'bigint',\n 'symbol'\n]\nconst classRegExp = /^([A-Z][a-z0-9]*)+$/\nconst nodeInternalPrefix = '__node_internal_'\nconst codes = {}\nfunction assert(value, message) {\n if (!value) {\n throw new codes.ERR_INTERNAL_ASSERTION(message)\n }\n}\n\n// Only use this for integers! Decimal numbers do not work with this function.\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}\nfunction getMessage(key, msg, args) {\n if (typeof msg === 'function') {\n assert(\n msg.length <= args.length,\n // Default options do not count.\n `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${msg.length}).`\n )\n return msg(...args)\n }\n const expectedLength = (msg.match(/%[dfijoOs]/g) || []).length\n assert(\n expectedLength === args.length,\n `Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${expectedLength}).`\n )\n if (args.length === 0) {\n return msg\n }\n return format(msg, ...args)\n}\nfunction E(code, message, Base) {\n if (!Base) {\n Base = Error\n }\n class NodeError extends Base {\n constructor(...args) {\n super(getMessage(code, message, args))\n }\n toString() {\n return `${this.name} [${code}]: ${this.message}`\n }\n }\n Object.defineProperties(NodeError.prototype, {\n name: {\n value: Base.name,\n writable: true,\n enumerable: false,\n configurable: true\n },\n toString: {\n value() {\n return `${this.name} [${code}]: ${this.message}`\n },\n writable: true,\n enumerable: false,\n configurable: true\n }\n })\n NodeError.prototype.code = code\n NodeError.prototype[kIsNodeError] = true\n codes[code] = NodeError\n}\nfunction hideStackFrames(fn) {\n // We rename the functions that will be hidden to cut off the stacktrace\n // at the outermost one\n const hidden = nodeInternalPrefix + fn.name\n Object.defineProperty(fn, 'name', {\n value: hidden\n })\n return fn\n}\nfunction aggregateTwoErrors(innerError, outerError) {\n if (innerError && outerError && innerError !== outerError) {\n if (Array.isArray(outerError.errors)) {\n // If `outerError` is already an `AggregateError`.\n outerError.errors.push(innerError)\n return outerError\n }\n const err = new AggregateError([outerError, innerError], outerError.message)\n err.code = outerError.code\n return err\n }\n return innerError || outerError\n}\nclass AbortError extends Error {\n constructor(message = 'The operation was aborted', options = undefined) {\n if (options !== undefined && typeof options !== 'object') {\n throw new codes.ERR_INVALID_ARG_TYPE('options', 'Object', options)\n }\n super(message, options)\n this.code = 'ABORT_ERR'\n this.name = 'AbortError'\n }\n}\nE('ERR_ASSERTION', '%s', Error)\nE(\n 'ERR_INVALID_ARG_TYPE',\n (name, expected, actual) => {\n assert(typeof name === 'string', \"'name' must be a string\")\n if (!Array.isArray(expected)) {\n expected = [expected]\n }\n let msg = 'The '\n if (name.endsWith(' argument')) {\n // For cases like 'first argument'\n msg += `${name} `\n } else {\n msg += `\"${name}\" ${name.includes('.') ? 'property' : 'argument'} `\n }\n msg += 'must be '\n const types = []\n const instances = []\n const other = []\n for (const value of expected) {\n assert(typeof value === 'string', 'All expected entries have to be of type string')\n if (kTypes.includes(value)) {\n types.push(value.toLowerCase())\n } else if (classRegExp.test(value)) {\n instances.push(value)\n } else {\n assert(value !== 'object', 'The value \"object\" should be written as \"Object\"')\n other.push(value)\n }\n }\n\n // Special handle `object` in case other instances are allowed to outline\n // the differences between each other.\n if (instances.length > 0) {\n const pos = types.indexOf('object')\n if (pos !== -1) {\n types.splice(types, pos, 1)\n instances.push('Object')\n }\n }\n if (types.length > 0) {\n switch (types.length) {\n case 1:\n msg += `of type ${types[0]}`\n break\n case 2:\n msg += `one of type ${types[0]} or ${types[1]}`\n break\n default: {\n const last = types.pop()\n msg += `one of type ${types.join(', ')}, or ${last}`\n }\n }\n if (instances.length > 0 || other.length > 0) {\n msg += ' or '\n }\n }\n if (instances.length > 0) {\n switch (instances.length) {\n case 1:\n msg += `an instance of ${instances[0]}`\n break\n case 2:\n msg += `an instance of ${instances[0]} or ${instances[1]}`\n break\n default: {\n const last = instances.pop()\n msg += `an instance of ${instances.join(', ')}, or ${last}`\n }\n }\n if (other.length > 0) {\n msg += ' or '\n }\n }\n switch (other.length) {\n case 0:\n break\n case 1:\n if (other[0].toLowerCase() !== other[0]) {\n msg += 'an '\n }\n msg += `${other[0]}`\n break\n case 2:\n msg += `one of ${other[0]} or ${other[1]}`\n break\n default: {\n const last = other.pop()\n msg += `one of ${other.join(', ')}, or ${last}`\n }\n }\n if (actual == null) {\n msg += `. Received ${actual}`\n } else if (typeof actual === 'function' && actual.name) {\n msg += `. Received function ${actual.name}`\n } else if (typeof actual === 'object') {\n var _actual$constructor\n if (\n (_actual$constructor = actual.constructor) !== null &&\n _actual$constructor !== undefined &&\n _actual$constructor.name\n ) {\n msg += `. Received an instance of ${actual.constructor.name}`\n } else {\n const inspected = inspect(actual, {\n depth: -1\n })\n msg += `. Received ${inspected}`\n }\n } else {\n let inspected = inspect(actual, {\n colors: false\n })\n if (inspected.length > 25) {\n inspected = `${inspected.slice(0, 25)}...`\n }\n msg += `. Received type ${typeof actual} (${inspected})`\n }\n return msg\n },\n TypeError\n)\nE(\n 'ERR_INVALID_ARG_VALUE',\n (name, value, reason = 'is invalid') => {\n let inspected = inspect(value)\n if (inspected.length > 128) {\n inspected = inspected.slice(0, 128) + '...'\n }\n const type = name.includes('.') ? 'property' : 'argument'\n return `The ${type} '${name}' ${reason}. Received ${inspected}`\n },\n TypeError\n)\nE(\n 'ERR_INVALID_RETURN_VALUE',\n (input, name, value) => {\n var _value$constructor\n const type =\n value !== null &&\n value !== undefined &&\n (_value$constructor = value.constructor) !== null &&\n _value$constructor !== undefined &&\n _value$constructor.name\n ? `instance of ${value.constructor.name}`\n : `type ${typeof value}`\n return `Expected ${input} to be returned from the \"${name}\"` + ` function but got ${type}.`\n },\n TypeError\n)\nE(\n 'ERR_MISSING_ARGS',\n (...args) => {\n assert(args.length > 0, 'At least one arg needs to be specified')\n let msg\n const len = args.length\n args = (Array.isArray(args) ? args : [args]).map((a) => `\"${a}\"`).join(' or ')\n switch (len) {\n case 1:\n msg += `The ${args[0]} argument`\n break\n case 2:\n msg += `The ${args[0]} and ${args[1]} arguments`\n break\n default:\n {\n const last = args.pop()\n msg += `The ${args.join(', ')}, and ${last} arguments`\n }\n break\n }\n return `${msg} must be specified`\n },\n TypeError\n)\nE(\n 'ERR_OUT_OF_RANGE',\n (str, range, input) => {\n assert(range, 'Missing \"range\" argument')\n let received\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 const limit = BigInt(2) ** BigInt(32)\n if (input > limit || input < -limit) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n } else {\n received = inspect(input)\n }\n return `The value of \"${str}\" is out of range. It must be ${range}. Received ${received}`\n },\n RangeError\n)\nE('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times', Error)\nE('ERR_METHOD_NOT_IMPLEMENTED', 'The %s method is not implemented', Error)\nE('ERR_STREAM_ALREADY_FINISHED', 'Cannot call %s after a stream was finished', Error)\nE('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable', Error)\nE('ERR_STREAM_DESTROYED', 'Cannot call %s after a stream was destroyed', Error)\nE('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError)\nE('ERR_STREAM_PREMATURE_CLOSE', 'Premature close', Error)\nE('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF', Error)\nE('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event', Error)\nE('ERR_STREAM_WRITE_AFTER_END', 'write after end', Error)\nE('ERR_UNKNOWN_ENCODING', 'Unknown encoding: %s', TypeError)\nmodule.exports = {\n AbortError,\n aggregateTwoErrors: hideStackFrames(aggregateTwoErrors),\n hideStackFrames,\n codes\n}\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/readable-stream/lib/ours/errors.js?"); /***/ }), /***/ "./node_modules/readable-stream/lib/ours/primordials.js": /*!**************************************************************!*\ !*** ./node_modules/readable-stream/lib/ours/primordials.js ***! \**************************************************************/ /***/ ((module) => { "use strict"; eval("\n\n/*\n This file is a reduced and adapted version of the main lib/internal/per_context/primordials.js file defined at\n\n https://github.com/nodejs/node/blob/main/lib/internal/per_context/primordials.js\n\n Don't try to replace with the original file and keep it up to date with the upstream file.\n*/\n\n// This is a simplified version of AggregateError\nclass AggregateError extends Error {\n constructor(errors) {\n if (!Array.isArray(errors)) {\n throw new TypeError(`Expected input to be an Array, got ${typeof errors}`)\n }\n let message = ''\n for (let i = 0; i < errors.length; i++) {\n message += ` ${errors[i].stack}\\n`\n }\n super(message)\n this.name = 'AggregateError'\n this.errors = errors\n }\n}\nmodule.exports = {\n AggregateError,\n ArrayIsArray(self) {\n return Array.isArray(self)\n },\n ArrayPrototypeIncludes(self, el) {\n return self.includes(el)\n },\n ArrayPrototypeIndexOf(self, el) {\n return self.indexOf(el)\n },\n ArrayPrototypeJoin(self, sep) {\n return self.join(sep)\n },\n ArrayPrototypeMap(self, fn) {\n return self.map(fn)\n },\n ArrayPrototypePop(self, el) {\n return self.pop(el)\n },\n ArrayPrototypePush(self, el) {\n return self.push(el)\n },\n ArrayPrototypeSlice(self, start, end) {\n return self.slice(start, end)\n },\n Error,\n FunctionPrototypeCall(fn, thisArgs, ...args) {\n return fn.call(thisArgs, ...args)\n },\n FunctionPrototypeSymbolHasInstance(self, instance) {\n return Function.prototype[Symbol.hasInstance].call(self, instance)\n },\n MathFloor: Math.floor,\n Number,\n NumberIsInteger: Number.isInteger,\n NumberIsNaN: Number.isNaN,\n NumberMAX_SAFE_INTEGER: Number.MAX_SAFE_INTEGER,\n NumberMIN_SAFE_INTEGER: Number.MIN_SAFE_INTEGER,\n NumberParseInt: Number.parseInt,\n ObjectDefineProperties(self, props) {\n return Object.defineProperties(self, props)\n },\n ObjectDefineProperty(self, name, prop) {\n return Object.defineProperty(self, name, prop)\n },\n ObjectGetOwnPropertyDescriptor(self, name) {\n return Object.getOwnPropertyDescriptor(self, name)\n },\n ObjectKeys(obj) {\n return Object.keys(obj)\n },\n ObjectSetPrototypeOf(target, proto) {\n return Object.setPrototypeOf(target, proto)\n },\n Promise,\n PromisePrototypeCatch(self, fn) {\n return self.catch(fn)\n },\n PromisePrototypeThen(self, thenFn, catchFn) {\n return self.then(thenFn, catchFn)\n },\n PromiseReject(err) {\n return Promise.reject(err)\n },\n PromiseResolve(val) {\n return Promise.resolve(val)\n },\n ReflectApply: Reflect.apply,\n RegExpPrototypeTest(self, value) {\n return self.test(value)\n },\n SafeSet: Set,\n String,\n StringPrototypeSlice(self, start, end) {\n return self.slice(start, end)\n },\n StringPrototypeToLowerCase(self) {\n return self.toLowerCase()\n },\n StringPrototypeToUpperCase(self) {\n return self.toUpperCase()\n },\n StringPrototypeTrim(self) {\n return self.trim()\n },\n Symbol,\n SymbolFor: Symbol.for,\n SymbolAsyncIterator: Symbol.asyncIterator,\n SymbolHasInstance: Symbol.hasInstance,\n SymbolIterator: Symbol.iterator,\n SymbolDispose: Symbol.dispose || Symbol('Symbol.dispose'),\n SymbolAsyncDispose: Symbol.asyncDispose || Symbol('Symbol.asyncDispose'),\n TypedArrayPrototypeSet(self, buf, len) {\n return self.set(buf, len)\n },\n Boolean,\n Uint8Array\n}\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/readable-stream/lib/ours/primordials.js?"); /***/ }), /***/ "./node_modules/readable-stream/lib/ours/util.js": /*!*******************************************************!*\ !*** ./node_modules/readable-stream/lib/ours/util.js ***! \*******************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nconst bufferModule = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")\nconst { format, inspect } = __webpack_require__(/*! ./util/inspect */ \"./node_modules/readable-stream/lib/ours/util/inspect.js\")\nconst {\n codes: { ERR_INVALID_ARG_TYPE }\n} = __webpack_require__(/*! ./errors */ \"./node_modules/readable-stream/lib/ours/errors.js\")\nconst { kResistStopPropagation, AggregateError, SymbolDispose } = __webpack_require__(/*! ./primordials */ \"./node_modules/readable-stream/lib/ours/primordials.js\")\nconst AbortSignal = globalThis.AbortSignal || (__webpack_require__(/*! abort-controller */ \"./node_modules/abort-controller/browser.js\").AbortSignal)\nconst AbortController = globalThis.AbortController || (__webpack_require__(/*! abort-controller */ \"./node_modules/abort-controller/browser.js\").AbortController)\nconst AsyncFunction = Object.getPrototypeOf(async function () {}).constructor\nconst Blob = globalThis.Blob || bufferModule.Blob\n/* eslint-disable indent */\nconst isBlob =\n typeof Blob !== 'undefined'\n ? function isBlob(b) {\n // eslint-disable-next-line indent\n return b instanceof Blob\n }\n : function isBlob(b) {\n return false\n }\n/* eslint-enable indent */\n\nconst validateAbortSignal = (signal, name) => {\n if (signal !== undefined && (signal === null || typeof signal !== 'object' || !('aborted' in signal))) {\n throw new ERR_INVALID_ARG_TYPE(name, 'AbortSignal', signal)\n }\n}\nconst validateFunction = (value, name) => {\n if (typeof value !== 'function') {\n throw new ERR_INVALID_ARG_TYPE(name, 'Function', value)\n }\n}\nmodule.exports = {\n AggregateError,\n kEmptyObject: Object.freeze({}),\n once(callback) {\n let called = false\n return function (...args) {\n if (called) {\n return\n }\n called = true\n callback.apply(this, args)\n }\n },\n createDeferredPromise: function () {\n let resolve\n let reject\n\n // eslint-disable-next-line promise/param-names\n const promise = new Promise((res, rej) => {\n resolve = res\n reject = rej\n })\n return {\n promise,\n resolve,\n reject\n }\n },\n promisify(fn) {\n return new Promise((resolve, reject) => {\n fn((err, ...args) => {\n if (err) {\n return reject(err)\n }\n return resolve(...args)\n })\n })\n },\n debuglog() {\n return function () {}\n },\n format,\n inspect,\n types: {\n isAsyncFunction(fn) {\n return fn instanceof AsyncFunction\n },\n isArrayBufferView(arr) {\n return ArrayBuffer.isView(arr)\n }\n },\n isBlob,\n deprecate(fn, message) {\n return fn\n },\n addAbortListener:\n (__webpack_require__(/*! events */ \"./node_modules/events/events.js\").addAbortListener) ||\n function addAbortListener(signal, listener) {\n if (signal === undefined) {\n throw new ERR_INVALID_ARG_TYPE('signal', 'AbortSignal', signal)\n }\n validateAbortSignal(signal, 'signal')\n validateFunction(listener, 'listener')\n let removeEventListener\n if (signal.aborted) {\n queueMicrotask(() => listener())\n } else {\n signal.addEventListener('abort', listener, {\n __proto__: null,\n once: true,\n [kResistStopPropagation]: true\n })\n removeEventListener = () => {\n signal.removeEventListener('abort', listener)\n }\n }\n return {\n __proto__: null,\n [SymbolDispose]() {\n var _removeEventListener\n ;(_removeEventListener = removeEventListener) === null || _removeEventListener === undefined\n ? undefined\n : _removeEventListener()\n }\n }\n },\n AbortSignalAny:\n AbortSignal.any ||\n function AbortSignalAny(signals) {\n // Fast path if there is only one signal.\n if (signals.length === 1) {\n return signals[0]\n }\n const ac = new AbortController()\n const abort = () => ac.abort()\n signals.forEach((signal) => {\n validateAbortSignal(signal, 'signals')\n signal.addEventListener('abort', abort, {\n once: true\n })\n })\n ac.signal.addEventListener(\n 'abort',\n () => {\n signals.forEach((signal) => signal.removeEventListener('abort', abort))\n },\n {\n once: true\n }\n )\n return ac.signal\n }\n}\nmodule.exports.promisify.custom = Symbol.for('nodejs.util.promisify.custom')\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/readable-stream/lib/ours/util.js?"); /***/ }), /***/ "./node_modules/readable-stream/lib/ours/util/inspect.js": /*!***************************************************************!*\ !*** ./node_modules/readable-stream/lib/ours/util/inspect.js ***! \***************************************************************/ /***/ ((module) => { "use strict"; eval("\n\n/*\n This file is a reduced and adapted version of the main lib/internal/util/inspect.js file defined at\n\n https://github.com/nodejs/node/blob/main/lib/internal/util/inspect.js\n\n Don't try to replace with the original file and keep it up to date with the upstream file.\n*/\nmodule.exports = {\n format(format, ...args) {\n // Simplified version of https://nodejs.org/api/util.html#utilformatformat-args\n return format.replace(/%([sdifj])/g, function (...[_unused, type]) {\n const replacement = args.shift()\n if (type === 'f') {\n return replacement.toFixed(6)\n } else if (type === 'j') {\n return JSON.stringify(replacement)\n } else if (type === 's' && typeof replacement === 'object') {\n const ctor = replacement.constructor !== Object ? replacement.constructor.name : ''\n return `${ctor} {}`.trim()\n } else {\n return replacement.toString()\n }\n })\n },\n inspect(value) {\n // Vastly simplified version of https://nodejs.org/api/util.html#utilinspectobject-options\n switch (typeof value) {\n case 'string':\n if (value.includes(\"'\")) {\n if (!value.includes('\"')) {\n return `\"${value}\"`\n } else if (!value.includes('`') && !value.includes('${')) {\n return `\\`${value}\\``\n }\n }\n return `'${value}'`\n case 'number':\n if (isNaN(value)) {\n return 'NaN'\n } else if (Object.is(value, -0)) {\n return String(value)\n }\n return value\n case 'bigint':\n return `${String(value)}n`\n case 'boolean':\n case 'undefined':\n return String(value)\n case 'object':\n return '{}'\n }\n }\n}\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/readable-stream/lib/ours/util/inspect.js?"); /***/ }), /***/ "./node_modules/readable-stream/lib/stream.js": /*!****************************************************!*\ !*** ./node_modules/readable-stream/lib/stream.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\n\n/* replacement start */\n\nconst { Buffer } = __webpack_require__(/*! buffer */ \"./node_modules/buffer/index.js\")\n\n/* replacement end */\n\nconst { ObjectDefineProperty, ObjectKeys, ReflectApply } = __webpack_require__(/*! ./ours/primordials */ \"./node_modules/readable-stream/lib/ours/primordials.js\")\nconst {\n promisify: { custom: customPromisify }\n} = __webpack_require__(/*! ./ours/util */ \"./node_modules/readable-stream/lib/ours/util.js\")\nconst { streamReturningOperators, promiseReturningOperators } = __webpack_require__(/*! ./internal/streams/operators */ \"./node_modules/readable-stream/lib/internal/streams/operators.js\")\nconst {\n codes: { ERR_ILLEGAL_CONSTRUCTOR }\n} = __webpack_require__(/*! ./ours/errors */ \"./node_modules/readable-stream/lib/ours/errors.js\")\nconst compose = __webpack_require__(/*! ./internal/streams/compose */ \"./node_modules/readable-stream/lib/internal/streams/compose.js\")\nconst { setDefaultHighWaterMark, getDefaultHighWaterMark } = __webpack_require__(/*! ./internal/streams/state */ \"./node_modules/readable-stream/lib/internal/streams/state.js\")\nconst { pipeline } = __webpack_require__(/*! ./internal/streams/pipeline */ \"./node_modules/readable-stream/lib/internal/streams/pipeline.js\")\nconst { destroyer } = __webpack_require__(/*! ./internal/streams/destroy */ \"./node_modules/readable-stream/lib/internal/streams/destroy.js\")\nconst eos = __webpack_require__(/*! ./internal/streams/end-of-stream */ \"./node_modules/readable-stream/lib/internal/streams/end-of-stream.js\")\nconst internalBuffer = {}\nconst promises = __webpack_require__(/*! ./stream/promises */ \"./node_modules/readable-stream/lib/stream/promises.js\")\nconst utils = __webpack_require__(/*! ./internal/streams/utils */ \"./node_modules/readable-stream/lib/internal/streams/utils.js\")\nconst Stream = (module.exports = __webpack_require__(/*! ./internal/streams/legacy */ \"./node_modules/readable-stream/lib/internal/streams/legacy.js\").Stream)\nStream.isDestroyed = utils.isDestroyed\nStream.isDisturbed = utils.isDisturbed\nStream.isErrored = utils.isErrored\nStream.isReadable = utils.isReadable\nStream.isWritable = utils.isWritable\nStream.Readable = __webpack_require__(/*! ./internal/streams/readable */ \"./node_modules/readable-stream/lib/internal/streams/readable.js\")\nfor (const key of ObjectKeys(streamReturningOperators)) {\n const op = streamReturningOperators[key]\n function fn(...args) {\n if (new.target) {\n throw ERR_ILLEGAL_CONSTRUCTOR()\n }\n return Stream.Readable.from(ReflectApply(op, this, args))\n }\n ObjectDefineProperty(fn, 'name', {\n __proto__: null,\n value: op.name\n })\n ObjectDefineProperty(fn, 'length', {\n __proto__: null,\n value: op.length\n })\n ObjectDefineProperty(Stream.Readable.prototype, key, {\n __proto__: null,\n value: fn,\n enumerable: false,\n configurable: true,\n writable: true\n })\n}\nfor (const key of ObjectKeys(promiseReturningOperators)) {\n const op = promiseReturningOperators[key]\n function fn(...args) {\n if (new.target) {\n throw ERR_ILLEGAL_CONSTRUCTOR()\n }\n return ReflectApply(op, this, args)\n }\n ObjectDefineProperty(fn, 'name', {\n __proto__: null,\n value: op.name\n })\n ObjectDefineProperty(fn, 'length', {\n __proto__: null,\n value: op.length\n })\n ObjectDefineProperty(Stream.Readable.prototype, key, {\n __proto__: null,\n value: fn,\n enumerable: false,\n configurable: true,\n writable: true\n })\n}\nStream.Writable = __webpack_require__(/*! ./internal/streams/writable */ \"./node_modules/readable-stream/lib/internal/streams/writable.js\")\nStream.Duplex = __webpack_require__(/*! ./internal/streams/duplex */ \"./node_modules/readable-stream/lib/internal/streams/duplex.js\")\nStream.Transform = __webpack_require__(/*! ./internal/streams/transform */ \"./node_modules/readable-stream/lib/internal/streams/transform.js\")\nStream.PassThrough = __webpack_require__(/*! ./internal/streams/passthrough */ \"./node_modules/readable-stream/lib/internal/streams/passthrough.js\")\nStream.pipeline = pipeline\nconst { addAbortSignal } = __webpack_require__(/*! ./internal/streams/add-abort-signal */ \"./node_modules/readable-stream/lib/internal/streams/add-abort-signal.js\")\nStream.addAbortSignal = addAbortSignal\nStream.finished = eos\nStream.destroy = destroyer\nStream.compose = compose\nStream.setDefaultHighWaterMark = setDefaultHighWaterMark\nStream.getDefaultHighWaterMark = getDefaultHighWaterMark\nObjectDefineProperty(Stream, 'promises', {\n __proto__: null,\n configurable: true,\n enumerable: true,\n get() {\n return promises\n }\n})\nObjectDefineProperty(pipeline, customPromisify, {\n __proto__: null,\n enumerable: true,\n get() {\n return promises.pipeline\n }\n})\nObjectDefineProperty(eos, customPromisify, {\n __proto__: null,\n enumerable: true,\n get() {\n return promises.finished\n }\n})\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream\nStream._isUint8Array = function isUint8Array(value) {\n return value instanceof Uint8Array\n}\nStream._uint8ArrayToBuffer = function _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength)\n}\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/readable-stream/lib/stream.js?"); /***/ }), /***/ "./node_modules/readable-stream/lib/stream/promises.js": /*!*************************************************************!*\ !*** ./node_modules/readable-stream/lib/stream/promises.js ***! \*************************************************************/ /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; eval("\n\nconst { ArrayPrototypePop, Promise } = __webpack_require__(/*! ../ours/primordials */ \"./node_modules/readable-stream/lib/ours/primordials.js\")\nconst { isIterable, isNodeStream, isWebStream } = __webpack_require__(/*! ../internal/streams/utils */ \"./node_modules/readable-stream/lib/internal/streams/utils.js\")\nconst { pipelineImpl: pl } = __webpack_require__(/*! ../internal/streams/pipeline */ \"./node_modules/readable-stream/lib/internal/streams/pipeline.js\")\nconst { finished } = __webpack_require__(/*! ../internal/streams/end-of-stream */ \"./node_modules/readable-stream/lib/internal/streams/end-of-stream.js\")\n__webpack_require__(/*! ../../lib/stream.js */ \"./node_modules/readable-stream/lib/stream.js\")\nfunction pipeline(...streams) {\n return new Promise((resolve, reject) => {\n let signal\n let end\n const lastArg = streams[streams.length - 1]\n if (\n lastArg &&\n typeof lastArg === 'object' &&\n !isNodeStream(lastArg) &&\n !isIterable(lastArg) &&\n !isWebStream(lastArg)\n ) {\n const options = ArrayPrototypePop(streams)\n signal = options.signal\n end = options.end\n }\n pl(\n streams,\n (err, value) => {\n if (err) {\n reject(err)\n } else {\n resolve(value)\n }\n },\n {\n signal,\n end\n }\n )\n })\n}\nmodule.exports = {\n finished,\n pipeline\n}\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/readable-stream/lib/stream/promises.js?"); /***/ }), /***/ "./node_modules/relative-to-absolute-iri/index.js": /*!********************************************************!*\ !*** ./node_modules/relative-to-absolute-iri/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 }));\n__exportStar(__webpack_require__(/*! ./lib/Resolve */ \"./node_modules/relative-to-absolute-iri/lib/Resolve.js\"), exports);\n//# sourceMappingURL=index.js.map\n\n//# sourceURL=webpack://bookmarks/./node_modules/relative-to-absolute-iri/index.js?"); /***/ }), /***/ "./node_modules/relative-to-absolute-iri/lib/Resolve.js": /*!**************************************************************!*\ !*** ./node_modules/relative-to-absolute-iri/lib/Resolve.js ***! \**************************************************************/ /***/ ((__unused_webpack_module, exports) => { "use strict"; eval("\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\nexports.removeDotSegmentsOfPath = exports.removeDotSegments = exports.resolve = void 0;\n/**\n * Convert the given relative IRI to an absolute IRI\n * by taking into account the given optional baseIRI.\n *\n * @param {string} relativeIRI The relative IRI to convert to an absolute IRI.\n * @param {string} baseIRI The optional base IRI.\n * @return {string} an absolute IRI.\n */\nfunction resolve(relativeIRI, baseIRI) {\n baseIRI = baseIRI || '';\n const baseFragmentPos = baseIRI.indexOf('#');\n // Ignore any fragments in the base IRI\n if (baseFragmentPos > 0) {\n baseIRI = baseIRI.substr(0, baseFragmentPos);\n }\n // Convert empty value directly to base IRI\n if (!relativeIRI.length) {\n // At this point, the baseIRI MUST be absolute, otherwise we error\n if (baseIRI.indexOf(':') < 0) {\n throw new Error(`Found invalid baseIRI '${baseIRI}' for value '${relativeIRI}'`);\n }\n return baseIRI;\n }\n // If the value starts with a query character, concat directly (but strip the existing query)\n if (relativeIRI.startsWith('?')) {\n const baseQueryPos = baseIRI.indexOf('?');\n if (baseQueryPos > 0) {\n baseIRI = baseIRI.substr(0, baseQueryPos);\n }\n return baseIRI + relativeIRI;\n }\n // If the value starts with a fragment character, concat directly\n if (relativeIRI.startsWith('#')) {\n return baseIRI + relativeIRI;\n }\n // Ignore baseIRI if it is empty\n if (!baseIRI.length) {\n const relativeColonPos = relativeIRI.indexOf(':');\n if (relativeColonPos < 0) {\n throw new Error(`Found invalid relative IRI '${relativeIRI}' for a missing baseIRI`);\n }\n return removeDotSegmentsOfPath(relativeIRI, relativeColonPos);\n }\n // Ignore baseIRI if the value is absolute\n const valueColonPos = relativeIRI.indexOf(':');\n if (valueColonPos >= 0) {\n return removeDotSegmentsOfPath(relativeIRI, valueColonPos);\n }\n // At this point, the baseIRI MUST be absolute, otherwise we error\n const baseColonPos = baseIRI.indexOf(':');\n if (baseColonPos < 0) {\n throw new Error(`Found invalid baseIRI '${baseIRI}' for value '${relativeIRI}'`);\n }\n const baseIRIScheme = baseIRI.substr(0, baseColonPos + 1);\n // Inherit the baseIRI scheme if the value starts with '//'\n if (relativeIRI.indexOf('//') === 0) {\n return baseIRIScheme + removeDotSegmentsOfPath(relativeIRI, valueColonPos);\n }\n // Check cases where '://' occurs in the baseIRI, and where there is no '/' after a ':' anymore.\n let baseSlashAfterColonPos;\n if (baseIRI.indexOf('//', baseColonPos) === baseColonPos + 1) {\n // If there is no additional '/' after the '//'.\n baseSlashAfterColonPos = baseIRI.indexOf('/', baseColonPos + 3);\n if (baseSlashAfterColonPos < 0) {\n // If something other than a '/' follows the '://', append the value after a '/',\n // otherwise, prefix the value with only the baseIRI scheme.\n if (baseIRI.length > baseColonPos + 3) {\n return baseIRI + '/' + removeDotSegmentsOfPath(relativeIRI, valueColonPos);\n }\n else {\n return baseIRIScheme + removeDotSegmentsOfPath(relativeIRI, valueColonPos);\n }\n }\n }\n else {\n // If there is not even a single '/' after the ':'\n baseSlashAfterColonPos = baseIRI.indexOf('/', baseColonPos + 1);\n if (baseSlashAfterColonPos < 0) {\n // If we don't have a '/' after the ':',\n // prefix the value with only the baseIRI scheme.\n return baseIRIScheme + removeDotSegmentsOfPath(relativeIRI, valueColonPos);\n }\n }\n // If the value starts with a '/', then prefix it with everything before the first effective slash of the base IRI.\n if (relativeIRI.indexOf('/') === 0) {\n return baseIRI.substr(0, baseSlashAfterColonPos) + removeDotSegments(relativeIRI);\n }\n let baseIRIPath = baseIRI.substr(baseSlashAfterColonPos);\n const baseIRILastSlashPos = baseIRIPath.lastIndexOf('/');\n // Ignore everything after the last '/' in the baseIRI path\n if (baseIRILastSlashPos >= 0 && baseIRILastSlashPos < baseIRIPath.length - 1) {\n baseIRIPath = baseIRIPath.substr(0, baseIRILastSlashPos + 1);\n // Also remove the first character of the relative path if it starts with '.' (and not '..' or './')\n // This change is only allowed if there is something else following the path\n if (relativeIRI[0] === '.' && relativeIRI[1] !== '.' && relativeIRI[1] !== '/' && relativeIRI[2]) {\n relativeIRI = relativeIRI.substr(1);\n }\n }\n // Prefix the value with the baseIRI path where\n relativeIRI = baseIRIPath + relativeIRI;\n // Remove dot segment from the IRI\n relativeIRI = removeDotSegments(relativeIRI);\n // Prefix our transformed value with the part of the baseIRI until the first '/' after the first ':'.\n return baseIRI.substr(0, baseSlashAfterColonPos) + relativeIRI;\n}\nexports.resolve = resolve;\n/**\n * Remove dot segments from the given path,\n * as described in https://www.ietf.org/rfc/rfc3986.txt (page 32).\n * @param {string} path An IRI path.\n * @return {string} A path, will always start with a '/'.\n */\nfunction removeDotSegments(path) {\n // Prepare a buffer with segments between each '/.\n // Each segment represents an array of characters.\n const segmentBuffers = [];\n let i = 0;\n while (i < path.length) {\n // Remove '/.' or '/..'\n switch (path[i]) {\n case '/':\n if (path[i + 1] === '.') {\n if (path[i + 2] === '.') {\n // Start a new segment if we find an invalid character after the '.'\n if (!isCharacterAllowedAfterRelativePathSegment(path[i + 3])) {\n segmentBuffers.push([]);\n i++;\n break;\n }\n // Go to parent directory,\n // so we remove a parent segment\n segmentBuffers.pop();\n // Ensure that we end with a slash if there is a trailing '/..'\n if (!path[i + 3]) {\n segmentBuffers.push([]);\n }\n i += 3;\n }\n else {\n // Start a new segment if we find an invalid character after the '.'\n if (!isCharacterAllowedAfterRelativePathSegment(path[i + 2])) {\n segmentBuffers.push([]);\n i++;\n break;\n }\n // Ensure that we end with a slash if there is a trailing '/.'\n if (!path[i + 2]) {\n segmentBuffers.push([]);\n }\n // Go to the current directory,\n // so we do nothing\n i += 2;\n }\n }\n else {\n // Start a new segment\n segmentBuffers.push([]);\n i++;\n }\n break;\n case '#':\n case '?':\n // Query and fragment string should be appended unchanged\n if (!segmentBuffers.length) {\n segmentBuffers.push([]);\n }\n segmentBuffers[segmentBuffers.length - 1].push(path.substr(i));\n // Break the while loop\n i = path.length;\n break;\n default:\n // Not a special character, just append it to our buffer\n if (!segmentBuffers.length) {\n segmentBuffers.push([]);\n }\n segmentBuffers[segmentBuffers.length - 1].push(path[i]);\n i++;\n break;\n }\n }\n return '/' + segmentBuffers.map((buffer) => buffer.join('')).join('/');\n}\nexports.removeDotSegments = removeDotSegments;\n/**\n * Removes dot segments of the given IRI.\n * @param {string} iri An IRI (or part of IRI).\n * @param {number} colonPosition The position of the first ':' in the IRI.\n * @return {string} The IRI where dot segments were removed.\n */\nfunction removeDotSegmentsOfPath(iri, colonPosition) {\n // Determine where we should start looking for the first '/' that indicates the start of the path\n let searchOffset = colonPosition + 1;\n if (colonPosition >= 0) {\n if (iri[colonPosition + 1] === '/' && iri[colonPosition + 2] === '/') {\n searchOffset = colonPosition + 3;\n }\n }\n else {\n if (iri[0] === '/' && iri[1] === '/') {\n searchOffset = 2;\n }\n }\n // Determine the path\n const pathSeparator = iri.indexOf('/', searchOffset);\n if (pathSeparator < 0) {\n return iri;\n }\n const base = iri.substr(0, pathSeparator);\n const path = iri.substr(pathSeparator);\n // Remove dot segments from the path\n return base + removeDotSegments(path);\n}\nexports.removeDotSegmentsOfPath = removeDotSegmentsOfPath;\nfunction isCharacterAllowedAfterRelativePathSegment(character) {\n return !character || character === '#' || character === '?' || character === '/';\n}\n//# sourceMappingURL=Resolve.js.map\n\n//# sourceURL=webpack://bookmarks/./node_modules/relative-to-absolute-iri/lib/Resolve.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/string_decoder/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://bookmarks/./node_modules/string_decoder/lib/string_decoder.js?"); /***/ }), /***/ "./node_modules/string_decoder/node_modules/safe-buffer/index.js": /*!***********************************************************************!*\ !*** ./node_modules/string_decoder/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://bookmarks/./node_modules/string_decoder/node_modules/safe-buffer/index.js?"); /***/ }), /***/ "./node_modules/uuid/dist/esm-browser/native.js": /*!******************************************************!*\ !*** ./node_modules/uuid/dist/esm-browser/native.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 randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ({\n randomUUID\n});\n\n//# sourceURL=webpack://bookmarks/./node_modules/uuid/dist/esm-browser/native.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://bookmarks/./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()).\nlet getRandomValues;\nconst 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.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\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://bookmarks/./node_modules/uuid/dist/esm-browser/rng.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 */ unsafeStringify: () => (/* binding */ unsafeStringify)\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\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nfunction unsafeStringify(arr, offset = 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 return 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]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // 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://bookmarks/./node_modules/uuid/dist/esm-browser/stringify.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 _native_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./native.js */ \"./node_modules/uuid/dist/esm-browser/native.js\");\n/* harmony import */ var _rng_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./rng.js */ \"./node_modules/uuid/dist/esm-browser/rng.js\");\n/* harmony import */ var _stringify_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./stringify.js */ \"./node_modules/uuid/dist/esm-browser/stringify.js\");\n\n\n\n\nfunction v4(options, buf, offset) {\n if (_native_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].randomUUID && !buf && !options) {\n return _native_js__WEBPACK_IMPORTED_MODULE_0__[\"default\"].randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || _rng_js__WEBPACK_IMPORTED_MODULE_1__[\"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 (let 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_2__.unsafeStringify)(rnds);\n}\n\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (v4);\n\n//# sourceURL=webpack://bookmarks/./node_modules/uuid/dist/esm-browser/v4.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://bookmarks/./node_modules/uuid/dist/esm-browser/validate.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 */ pim: () => (/* binding */ pim),\n/* harmony export */ rdf: () => (/* binding */ rdf),\n/* harmony export */ rdfs: () => (/* binding */ rdfs),\n/* harmony export */ security: () => (/* binding */ security),\n/* harmony export */ solid: () => (/* binding */ solid)\n/* harmony export */ });\n//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n// TODO: These should be replaced by auto-generated constants,\n// if we can ensure that unused constants will be excluded from bundles.\n/** @hidden */\nconst acl = {\n Authorization: \"http://www.w3.org/ns/auth/acl#Authorization\",\n AuthenticatedAgent: \"http://www.w3.org/ns/auth/acl#AuthenticatedAgent\",\n accessTo: \"http://www.w3.org/ns/auth/acl#accessTo\",\n agent: \"http://www.w3.org/ns/auth/acl#agent\",\n agentGroup: \"http://www.w3.org/ns/auth/acl#agentGroup\",\n agentClass: \"http://www.w3.org/ns/auth/acl#agentClass\",\n default: \"http://www.w3.org/ns/auth/acl#default\",\n defaultForNew: \"http://www.w3.org/ns/auth/acl#defaultForNew\",\n mode: \"http://www.w3.org/ns/auth/acl#mode\",\n origin: \"http://www.w3.org/ns/auth/acl#origin\",\n};\n/** @hidden */\nconst rdf = {\n type: \"http://www.w3.org/1999/02/22-rdf-syntax-ns#type\",\n};\n/** @hidden */\nconst rdfs = {\n seeAlso: \"http://www.w3.org/2000/01/rdf-schema#seeAlso\",\n};\n/** @hidden */\nconst ldp = {\n BasicContainer: \"http://www.w3.org/ns/ldp#BasicContainer\",\n Container: \"http://www.w3.org/ns/ldp#Container\",\n Resource: \"http://www.w3.org/ns/ldp#Resource\",\n contains: \"http://www.w3.org/ns/ldp#contains\",\n};\n/** @hidden */\nconst foaf = {\n Agent: \"http://xmlns.com/foaf/0.1/Agent\",\n primaryTopic: \"http://xmlns.com/foaf/0.1/primaryTopic\",\n isPrimaryTopicOf: \"http://xmlns.com/foaf/0.1/isPrimaryTopicOf\",\n};\n/** @hidden */\nconst acp = {\n AccessControlResource: \"http://www.w3.org/ns/solid/acp#AccessControlResource\",\n Policy: \"http://www.w3.org/ns/solid/acp#Policy\",\n AccessControl: \"http://www.w3.org/ns/solid/acp#AccessControl\",\n Read: \"http://www.w3.org/ns/solid/acp#Read\",\n Append: \"http://www.w3.org/ns/solid/acp#Append\",\n Write: \"http://www.w3.org/ns/solid/acp#Write\",\n /** @deprecated Removed from the ACP proposal, to be replaced by Matchers. */\n Rule: \"http://www.w3.org/ns/solid/acp#Rule\",\n Matcher: \"http://www.w3.org/ns/solid/acp#Matcher\",\n accessControl: \"http://www.w3.org/ns/solid/acp#accessControl\",\n memberAccessControl: \"http://www.w3.org/ns/solid/acp#memberAccessControl\",\n apply: \"http://www.w3.org/ns/solid/acp#apply\",\n /** @deprecated Removed from the ACP proposal, to be replaced by memberAccessControls. */\n applyMembers: \"http://www.w3.org/ns/solid/acp#applyMembers\",\n allow: \"http://www.w3.org/ns/solid/acp#allow\",\n deny: \"http://www.w3.org/ns/solid/acp#deny\",\n allOf: \"http://www.w3.org/ns/solid/acp#allOf\",\n anyOf: \"http://www.w3.org/ns/solid/acp#anyOf\",\n noneOf: \"http://www.w3.org/ns/solid/acp#noneOf\",\n access: \"http://www.w3.org/ns/solid/acp#access\",\n /** @deprecated Removed from the ACP proposal, to be replaced by memberAccessControls. */\n accessMembers: \"http://www.w3.org/ns/solid/acp#accessMembers\",\n agent: \"http://www.w3.org/ns/solid/acp#agent\",\n group: \"http://www.w3.org/ns/solid/acp#group\",\n client: \"http://www.w3.org/ns/solid/acp#client\",\n PublicAgent: \"http://www.w3.org/ns/solid/acp#PublicAgent\",\n AuthenticatedAgent: \"http://www.w3.org/ns/solid/acp#AuthenticatedAgent\",\n CreatorAgent: \"http://www.w3.org/ns/solid/acp#CreatorAgent\",\n};\n/** @hidden */\nconst solid = {\n PublicOidcClient: \"http://www.w3.org/ns/solid/terms#PublicOidcClient\",\n};\n/** @hidden */\nconst security = {\n publicKey: \"https://w3id.org/security#publicKey\",\n};\n/** @hidden */\nconst pim = {\n storage: \"http://www.w3.org/ns/pim/space#storage\",\n};\n\n\n\n\n//# sourceURL=webpack://bookmarks/./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//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n/**\n * IRIs of the XML Schema data types we support\n */\nconst xmlSchemaTypes = {\n boolean: \"http://www.w3.org/2001/XMLSchema#boolean\",\n dateTime: \"http://www.w3.org/2001/XMLSchema#dateTime\",\n date: \"http://www.w3.org/2001/XMLSchema#date\",\n time: \"http://www.w3.org/2001/XMLSchema#time\",\n decimal: \"http://www.w3.org/2001/XMLSchema#decimal\",\n integer: \"http://www.w3.org/2001/XMLSchema#integer\",\n string: \"http://www.w3.org/2001/XMLSchema#string\",\n langString: \"http://www.w3.org/1999/02/22-rdf-syntax-ns#langString\",\n};\n/**\n * @internal\n * @param value Value to serialise.\n * @returns String representation of `value`.\n * @see https://www.w3.org/TR/xmlschema-2/#boolean-lexical-representation\n */\nfunction serializeBoolean(value) {\n return value ? \"true\" : \"false\";\n}\n/**\n * @internal\n * @param value Value to deserialise.\n * @returns Deserialized boolean, or null if the given value is not a valid serialised boolean.\n * @see https://www.w3.org/TR/xmlschema-2/#boolean-lexical-representation\n */\nfunction deserializeBoolean(value) {\n if (value === \"true\" || value === \"1\") {\n return true;\n }\n if (value === \"false\" || value === \"0\") {\n return false;\n }\n return null;\n}\n/**\n * @internal\n * @param value Value to serialise.\n * @returns String representation of `value` in UTC.\n * @see https://www.w3.org/TR/xmlschema-2/#time-lexical-repr\n */\nfunction serializeTime(value) {\n let millisecondString;\n let timezoneString;\n if (value.millisecond) {\n if (value.millisecond < 10) {\n millisecondString = `00${value.millisecond}`;\n }\n else if (value.millisecond < 100) {\n millisecondString = `0${value.millisecond}`;\n }\n else {\n millisecondString = value.millisecond;\n }\n }\n if (typeof value.timezoneHourOffset === \"number\") {\n const timezoneFormatted = Math.abs(value.timezoneHourOffset) < 10\n ? `0${Math.abs(value.timezoneHourOffset)}`\n : Math.abs(value.timezoneHourOffset);\n timezoneString =\n value.timezoneHourOffset >= 0\n ? `+${timezoneFormatted}`\n : `-${timezoneFormatted}`;\n if (value.timezoneMinuteOffset) {\n timezoneString = `${timezoneString}:${value.timezoneMinuteOffset < 10\n ? `0${value.timezoneMinuteOffset}`\n : value.timezoneMinuteOffset}`;\n }\n else {\n timezoneString += \":00\";\n }\n }\n return `${value.hour < 10 ? `0${value.hour}` : value.hour}:${value.minute < 10 ? `0${value.minute}` : value.minute}:${value.second < 10 ? `0${value.second}` : value.second}${value.millisecond ? `.${millisecondString}` : \"\"}${timezoneString || \"\"}`;\n}\n/**\n * @internal\n * @param literalString Value to deserialise.\n * @returns Deserialized time, or null if the given value is not a valid serialised datetime.\n * @see https://www.w3.org/TR/xmlschema-2/#time-lexical-repr\n */\nfunction deserializeTime(literalString) {\n // Time in the format described at\n // https://www.w3.org/TR/xmlschema-2/#time-lexical-repr\n // \\d\\d:\\d\\d:\\d\\d - Two digits for the hour, minute and second, respectively, separated by a `:`.\n // Example: \"13:37:42\".\n // (\\.\\d+)? - Optionally a `.` followed by one or more digits representing milliseconds.\n // Example: \".1337\".\n // (Z|(\\+|-)\\d\\d:\\d\\d) - The letter Z indicating UTC, or a `+` or `-` followed by two digits for\n // the hour offset and two for the minute offset, separated by a `:`.\n // Example: \"+13:37\".\n const timeRegEx = /\\d\\d:\\d\\d:\\d\\d(\\.\\d+)?(Z|(\\+|-)\\d\\d:\\d\\d)?/;\n if (!timeRegEx.test(literalString)) {\n return null;\n }\n const [timeString, timezoneString] = splitTimeFromTimezone(literalString);\n const [hourString, minuteString, timeRest] = timeString.split(\":\");\n let utcHours = Number.parseInt(hourString, 10);\n let utcMinutes = Number.parseInt(minuteString, 10);\n const [secondString, optionalMillisecondString] = timeRest.split(\".\");\n const utcSeconds = Number.parseInt(secondString, 10);\n const utcMilliseconds = optionalMillisecondString\n ? Number.parseInt(optionalMillisecondString, 10)\n : undefined;\n if (utcMinutes >= 60) {\n utcHours += 1;\n utcMinutes -= 60;\n }\n const deserializedTime = {\n hour: utcHours,\n minute: utcMinutes,\n second: utcSeconds,\n };\n if (typeof utcMilliseconds === \"number\") {\n deserializedTime.millisecond = utcMilliseconds;\n }\n if (typeof timezoneString === \"string\") {\n const [hourOffset, minuteOffset] = getTimezoneOffsets(timezoneString);\n if (typeof hourOffset !== \"number\" ||\n hourOffset > 24 ||\n typeof minuteOffset !== \"number\" ||\n minuteOffset > 59) {\n return null;\n }\n deserializedTime.timezoneHourOffset = hourOffset;\n deserializedTime.timezoneMinuteOffset = minuteOffset;\n }\n return deserializedTime;\n}\n/**\n * @internal\n * @param value Value to serialise.\n * @returns String representation of `value`.\n * @see https://www.w3.org/TR/xmlschema-2/#dateTime-lexical-representation\n */\nfunction serializeDatetime(value) {\n // Although the XML Schema DateTime is not _exactly_ an ISO 8601 string\n // (see https://www.w3.org/TR/xmlschema-2/#deviantformats),\n // the deviations only affect the parsing, not the serialisation.\n // Therefore, we can just use .toISOString():\n return value.toISOString();\n}\n/**\n * @internal\n * @param value Value to deserialise.\n * @returns Deserialized datetime, or null if the given value is not a valid serialised datetime.\n * @see https://www.w3.org/TR/xmlschema-2/#dateTime-lexical-representation\n */\nfunction deserializeDatetime(literalString) {\n // DateTime in the format described at\n // https://www.w3.org/TR/xmlschema-2/#dateTime-lexical-representation\n // (without constraints on the value).\n // -? - An optional leading `-`.\n // \\d{4,}- - Four or more digits followed by a `-` representing the year. Example: \"3000-\".\n // \\d\\d-\\d\\d - Two digits representing the month and two representing the day of the month,\n // separated by a `-`. Example: \"11-03\".\n // T - The letter T, separating the date from the time.\n // \\d\\d:\\d\\d:\\d\\d - Two digits for the hour, minute and second, respectively, separated by a `:`.\n // Example: \"13:37:42\".\n // (\\.\\d+)? - Optionally a `.` followed by one or more digits representing milliseconds.\n // Example: \".1337\".\n // (Z|(\\+|-)\\d\\d:\\d\\d) - The letter Z indicating UTC, or a `+` or `-` followed by two digits for\n // the hour offset and two for the minute offset, separated by a `:`.\n // Example: \"+13:37\".\n const datetimeRegEx = /-?\\d{4,}-\\d\\d-\\d\\dT\\d\\d:\\d\\d:\\d\\d(\\.\\d+)?(Z|(\\+|-)\\d\\d:\\d\\d)?/;\n if (!datetimeRegEx.test(literalString)) {\n return null;\n }\n const [signedDateString, rest] = literalString.split(\"T\");\n // The date string can optionally be prefixed with `-`,\n // in which case the year is negative:\n const [yearMultiplier, dateString] = signedDateString.charAt(0) === \"-\"\n ? [-1, signedDateString.substring(1)]\n : [1, signedDateString];\n const [yearString, monthString, dayString] = dateString.split(\"-\");\n const utcFullYear = Number.parseInt(yearString, 10) * yearMultiplier;\n const utcMonth = Number.parseInt(monthString, 10) - 1;\n const utcDate = Number.parseInt(dayString, 10);\n const [timeString, timezoneString] = splitTimeFromTimezone(rest);\n const [hourOffset, minuteOffset] = typeof timezoneString === \"string\"\n ? getTimezoneOffsets(timezoneString)\n : [0, 0];\n const [hourString, minuteString, timeRest] = timeString.split(\":\");\n const utcHours = Number.parseInt(hourString, 10) + hourOffset;\n const utcMinutes = Number.parseInt(minuteString, 10) + minuteOffset;\n const [secondString, optionalMillisecondString] = timeRest.split(\".\");\n const utcSeconds = Number.parseInt(secondString, 10);\n const utcMilliseconds = optionalMillisecondString\n ? Number.parseInt(optionalMillisecondString, 10)\n : 0;\n const date = new Date(Date.UTC(utcFullYear, utcMonth, utcDate, utcHours, utcMinutes, utcSeconds, utcMilliseconds));\n // For the year, values from 0 to 99 map to the years 1900 to 1999. Since the serialisation\n // always writes out the years fully, we should correct this to actually map to the years 0 to 99.\n // See\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/Date#Individual_date_and_time_component_values\n if (utcFullYear >= 0 && utcFullYear < 100) {\n // Note that we base it on the calculated year, rather than the year that was actually read.\n // This is because the year might actually differ from the value listed in the serialisation,\n // i.e. when moving the timezone offset to UTC pushes it into a different year:\n date.setUTCFullYear(date.getUTCFullYear() - 1900);\n }\n return date;\n}\n/**\n * @internal\n * @param value Value to serialise.\n * @returns String representation of `value`.\n * @see https://www.w3.org/TR/xmlschema-2/#date-lexical-representation\n */\nfunction serializeDate(value) {\n const year = value.getFullYear();\n const month = value.getMonth() + 1;\n const day = value.getDate();\n const [, timezone] = splitTimeFromTimezone(value.toISOString());\n return `${year}-${String(month).padStart(2, \"0\")}-${String(day).padStart(2, \"0\")}${timezone}`;\n}\n/**\n * @internal\n * @param value Value to deserialise.\n * @returns Deserialized datetime, or null if the given value is not a valid serialised datetime.\n * @see https://www.w3.org/TR/xmlschema-2/#date-lexical-representation\n */\nfunction deserializeDate(literalString) {\n // Date in the format described at\n // https://www.w3.org/TR/xmlschema-2/#date-lexical-representation\n // (without constraints on the value).\n // -? - An optional leading `-`.\n // \\d{4,}- - Four or more digits followed by a `-` representing the year. Example: \"3000-\".\n // \\d\\d-\\d\\d - Two digits representing the month and two representing the day of the month,\n // separated by a `-`. Example: \"11-03\".\n // (Z|(\\+|-)\\d\\d:\\d\\d) - Optionally, the letter Z indicating UTC, or a `+` or `-` followed by two digits for\n // the hour offset and two for the minute offset, separated by a `:`.\n // Example: \"+13:37\".\n const dateRegEx = /-?\\d{4,}-\\d\\d-\\d\\d(Z|(\\+|-)\\d\\d:\\d\\d)?/;\n if (!dateRegEx.test(literalString)) {\n return null;\n }\n const signedDateString = literalString;\n // The date string can optionally be prefixed with `-`,\n // in which case the year is negative:\n const [yearMultiplier, dateString] = signedDateString.charAt(0) === \"-\"\n ? [-1, signedDateString.substring(1)]\n : [1, signedDateString];\n const [yearString, monthString, dayAndTimezoneString] = dateString.split(\"-\");\n const dayString = dayAndTimezoneString.length > 2\n ? dayAndTimezoneString.substring(0, 2)\n : dayAndTimezoneString;\n const utcFullYear = Number.parseInt(yearString, 10) * yearMultiplier;\n const utcMonth = Number.parseInt(monthString, 10) - 1;\n const utcDate = Number.parseInt(dayString, 10);\n const hour = 12;\n // setting at 12:00 avoids all timezones\n const date = new Date(Date.UTC(utcFullYear, utcMonth, utcDate, hour));\n // For the year, values from 0 to 99 map to the years 1900 to 1999. Since the serialisation\n // always writes out the years fully, we should correct this to actually map to the years 0 to 99.\n // See\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/Date#Individual_date_and_time_component_values\n if (utcFullYear >= 0 && utcFullYear < 100) {\n date.setUTCFullYear(date.getUTCFullYear() - 1900);\n }\n return date;\n}\n/**\n * @param timeString An XML Schema time string.\n * @returns A tuple [timeString, timezoneString].\n * @see https://www.w3.org/TR/xmlschema-2/#time-lexical-repr\n */\nfunction splitTimeFromTimezone(timeString) {\n if (timeString.endsWith(\"Z\")) {\n return [timeString.substring(0, timeString.length - 1), \"Z\"];\n }\n const splitOnPlus = timeString.split(\"+\");\n const splitOnMinus = timeString.split(\"-\");\n if (splitOnPlus.length === 1 && splitOnMinus.length === 1) {\n return [splitOnPlus[0], undefined];\n }\n return splitOnPlus.length > splitOnMinus.length\n ? [splitOnPlus[0], `+${splitOnPlus[1]}`]\n : [splitOnMinus[0], `-${splitOnMinus[1]}`];\n}\n/**\n * @param timezoneString Lexical representation of a time zone in XML Schema.\n * @returns A tuple of the hour and minute offset of the time zone.\n * @see https://www.w3.org/TR/xmlschema-2/#dateTime-timezones\n */\nfunction getTimezoneOffsets(timezoneString) {\n if (timezoneString === \"Z\") {\n return [0, 0];\n }\n const multiplier = timezoneString.charAt(0) === \"+\" ? 1 : -1;\n const [hourString, minuteString] = timezoneString.substring(1).split(\":\");\n const hours = Number.parseInt(hourString, 10);\n const minutes = Number.parseInt(minuteString, 10);\n return [hours * multiplier, minutes * multiplier];\n}\n/**\n * @internal\n * @param value Value to serialise.\n * @returns String representation of `value`.\n * @see https://www.w3.org/TR/xmlschema-2/#decimal-lexical-representation\n */\nfunction serializeDecimal(value) {\n return value.toString();\n}\n/**\n * @internal\n * @param value Value to deserialise.\n * @returns Deserialized decimal, or null if the given value is not a valid serialised decimal.\n * @see https://www.w3.org/TR/xmlschema-2/#decimal-lexical-representation\n */\nfunction deserializeDecimal(literalString) {\n const deserialized = Number.parseFloat(literalString);\n if (Number.isNaN(deserialized)) {\n return null;\n }\n return deserialized;\n}\n/**\n * @internal\n * @param value Value to serialise.\n * @returns String representation of `value`.\n */\nfunction serializeInteger(value) {\n return value.toString();\n}\n/**\n * @internal\n * @param value Value to deserialise.\n * @returns Deserialized integer, or null if the given value is not a valid serialised integer.\n */\nfunction deserializeInteger(literalString) {\n const deserialized = Number.parseInt(literalString, 10);\n if (Number.isNaN(deserialized)) {\n return null;\n }\n return deserialized;\n}\n/**\n * @internal\n * @param locale Locale to transform into a consistent format.\n */\nfunction normalizeLocale(locale) {\n return locale.toLowerCase();\n}\n/**\n * @internal Library users shouldn't need to be exposed to raw NamedNodes.\n * @param value The value that might or might not be a Named Node.\n * @returns Whether `value` is a Named Node.\n */\nfunction isNamedNode(value) {\n return isTerm(value) && value.termType === \"NamedNode\";\n}\n/**\n * @internal Library users shouldn't need to be exposed to raw Literals.\n * @param value The value that might or might not be a Literal.\n * @returns Whether `value` is a Literal.\n */\nfunction isLiteral(value) {\n return isTerm(value) && value.termType === \"Literal\";\n}\n/**\n * @internal Library users shouldn't need to be exposed to raw Terms.\n * @param value The value that might or might not be a Term.\n * @returns Whether `value` is a Term.\n */\nfunction isTerm(value) {\n return (value !== null &&\n typeof value === \"object\" &&\n typeof value.termType === \"string\" &&\n typeof value.value === \"string\" &&\n typeof value.equals === \"function\");\n}\n/**\n * @internal Library users shouldn't need to be exposed to LocalNodes.\n * @param value The value that might or might not be a Node with no known IRI yet.\n * @returns Whether `value` is a Node with no known IRI yet.\n */\nfunction isLocalNode(value) {\n return isNamedNode(value) && (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.isLocalNodeIri)(value.value);\n}\n/**\n * Ensure that a given value is a valid URL.\n *\n * @internal Library users shouldn't need to be exposed to raw URLs.\n * @param iri The value of which to verify that it is a valid URL.\n */\nfunction internal_isValidUrl(iri) {\n const iriString = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_toIriString)(iri);\n // If the runtime environment supports URL, instantiate one.\n // If the given IRI is not a valid URL, it will throw an error.\n // See: https://developer.mozilla.org/en-US/docs/Web/API/URL\n /* istanbul ignore if [URL is available in our testing environment, so we cannot test the alternative] */\n if (typeof URL !== \"function\") {\n // If we can't validate the URL, do not throw an error:\n return true;\n }\n try {\n // eslint-disable-next-line no-new\n new URL(iriString);\n return true;\n }\n catch (_a) {\n return false;\n }\n}\n/**\n * @internal Utility method; library users should not need to interact with LocalNodes directly.\n * @param localNode The LocalNode to resolve to a NamedNode.\n * @param resourceIri The Resource in which the Node will be saved.\n */\nfunction resolveIriForLocalNode(localNode, resourceIri) {\n return _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.DataFactory.namedNode(resolveLocalIri((0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.getLocalNodeName)(localNode.value), resourceIri));\n}\n/**\n * @internal API for internal use only.\n * @param name The name identifying a Thing.\n * @param resourceIri The Resource in which the Thing can be found.\n */\nfunction resolveLocalIri(name, resourceIri) {\n /* istanbul ignore if [The URL interface is available in the testing environment, so we cannot test this] */\n if (typeof URL !== \"function\") {\n throw new Error(\"The URL interface is not available, so an IRI cannot be determined.\");\n }\n const thingIri = new URL(resourceIri);\n thingIri.hash = name;\n return thingIri.href;\n}\n\n\n\n\n//# sourceURL=webpack://bookmarks/./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/* harmony import */ var _inrupt_universal_fetch__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @inrupt/universal-fetch */ \"./node_modules/@inrupt/universal-fetch/dist/index-browser.mjs\");\n\n\n//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n// Make sure fetch can't be rebound, because it can cause errors in the browser.\n// Namely, it causes the issue discussed in https://stackoverflow.com/questions/71822422/uncaught-in-promise-typeerror-fetch-called-on-an-object-that-does-not-imple.\n// @see https://github.com/inrupt/solid-client-js/pull/1884#discussion_r1153872418\nconst fetch = _inrupt_universal_fetch__WEBPACK_IMPORTED_MODULE_0__.fetch.bind(globalThis);\n\n\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/@inrupt/solid-client/dist/fetcher.mjs?"); /***/ }), /***/ "./node_modules/@inrupt/solid-client/dist/formats/jsonLd.mjs": /*!*******************************************************************!*\ !*** ./node_modules/@inrupt/solid-client/dist/formats/jsonLd.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 */ getJsonLdParser: () => (/* binding */ getJsonLdParser)\n/* harmony export */ });\n/* harmony import */ var jsonld_streaming_parser__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! jsonld-streaming-parser */ \"./node_modules/jsonld-streaming-parser/index.js\");\n/* harmony import */ var jsonld_context_parser__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! jsonld-context-parser */ \"./node_modules/jsonld-context-parser/index.js\");\n/* harmony import */ var _resource_resource_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../resource/resource.mjs */ \"./node_modules/@inrupt/solid-client/dist/resource/resource.mjs\");\n/* harmony import */ var _fetcher_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../fetcher.mjs */ \"./node_modules/@inrupt/solid-client/dist/fetcher.mjs\");\n\n\n\n\n\n//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n/**\n * ```{note} This function is still experimental and subject to change, even\n * in a non-major release.\n * ```\n * This returns a parser that transforms a JSON-LD string into a set of RDFJS quads.\n *\n * @returns A Parser object.\n * @since 1.15.0\n */\nconst getJsonLdParser = () => {\n const onQuadCallbacks = [];\n const onCompleteCallbacks = [];\n const onErrorCallbacks = [];\n return {\n onQuad: (callback) => {\n onQuadCallbacks.push(callback);\n },\n onError: (callback) => {\n onErrorCallbacks.push(callback);\n },\n onComplete: (callback) => {\n onCompleteCallbacks.push(callback);\n },\n // The following returns a Promise that can be awaited, which is undocumented\n // behavior that doesn't match the type signature. It prevents a potentially\n // breaking change, and will be updated on the next major release.\n parse: async (source, resourceInfo) => new Promise((res) => {\n const parser = new jsonld_streaming_parser__WEBPACK_IMPORTED_MODULE_0__.JsonLdParser({\n baseIRI: (0,_resource_resource_mjs__WEBPACK_IMPORTED_MODULE_1__.getSourceUrl)(resourceInfo),\n documentLoader: new jsonld_context_parser__WEBPACK_IMPORTED_MODULE_2__.FetchDocumentLoader(_fetcher_mjs__WEBPACK_IMPORTED_MODULE_3__.fetch),\n });\n let endCalled = false;\n function end() {\n if (!endCalled) {\n endCalled = true;\n onCompleteCallbacks.forEach((callback) => callback());\n res();\n }\n }\n parser.on(\"end\", end);\n parser.on(\"error\", (err) => {\n onErrorCallbacks.forEach((callback) => callback(err));\n end();\n });\n onQuadCallbacks.forEach((callback) => parser.on(\"data\", callback));\n parser.write(source);\n parser.end();\n }),\n };\n};\n\n\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/@inrupt/solid-client/dist/formats/jsonLd.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 n3__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! n3 */ \"./node_modules/n3/src/N3Parser.js\");\n/* harmony import */ var n3__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! n3 */ \"./node_modules/n3/src/N3Writer.js\");\n/* harmony import */ var _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_3__ = __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\n//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n/**\n * ```{note} This function is still experimental and subject to change, even\n * in a non-major release.\n * ```\n * This returns a parser that transforms a JSON-LD string into a set of RDFJS quads.\n *\n * @returns A Parser object.\n * @since 1.15.0\n */\nconst getTurtleParser = () => {\n const onQuadCallbacks = [];\n const onCompleteCallbacks = [];\n const onErrorCallbacks = [];\n return {\n onQuad: (callback) => {\n onQuadCallbacks.push(callback);\n },\n onError: (callback) => {\n onErrorCallbacks.push(callback);\n },\n onComplete: (callback) => {\n onCompleteCallbacks.push(callback);\n },\n parse: async (source, resourceInfo) => {\n const parser = await getParser((0,_resource_resource_mjs__WEBPACK_IMPORTED_MODULE_0__.getSourceUrl)(resourceInfo));\n parser.parse(source, (error, quad) => {\n if (error) {\n onErrorCallbacks.forEach((callback) => callback(error));\n }\n else if (quad) {\n onQuadCallbacks.forEach((callback) => callback(quad));\n }\n else {\n onCompleteCallbacks.forEach((callback) => callback());\n }\n });\n },\n };\n};\nasync function getParser(baseIri) {\n return new n3__WEBPACK_IMPORTED_MODULE_1__[\"default\"]({ format: \"text/turtle\", baseIRI: baseIri });\n}\n/**\n * @param quads Triples that should be serialised to Turtle\n * @internal Utility method for internal use; not part of the public API.\n */\nasync function triplesToTurtle(quads, options) {\n const format = \"text/turtle\";\n const writer = new n3__WEBPACK_IMPORTED_MODULE_2__[\"default\"]({ format, prefixes: options === null || options === void 0 ? void 0 : options.prefixes });\n // Remove any potentially lingering references to Named Graphs in Quads;\n // they'll be determined by the URL the Turtle will be sent to:\n const triples = quads.map((quad) => _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.DataFactory.quad(quad.subject, quad.predicate, quad.object, undefined));\n writer.addQuads(triples);\n const writePromise = new Promise((resolve, reject) => {\n writer.end((error, result) => {\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] */\n if (error) {\n reject(error);\n }\n else {\n resolve(result);\n }\n });\n });\n const rawTurtle = await writePromise;\n return rawTurtle;\n}\n\n\n\n\n//# sourceURL=webpack://bookmarks/./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//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n/** @internal */\nfunction internal_toIriString(iri) {\n return typeof iri === \"string\" ? iri : iri.value;\n}\n\n\n\n\n//# sourceURL=webpack://bookmarks/./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//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n/**\n * Verify whether a given SolidDataset includes metadata about where it was sent to.\n *\n * @param dataset A [[SolidDataset]] that may have metadata attached about the Resource it was retrieved from.\n * @returns True if `dataset` includes metadata about the Resource it was sent to, false if not.\n * @since 0.2.0\n */\nfunction hasResourceInfo(resource) {\n const potentialResourceInfo = resource;\n return (typeof potentialResourceInfo === \"object\" &&\n typeof potentialResourceInfo.internal_resourceInfo === \"object\");\n}\n/**\n * Verify whether a given SolidDataset includes metadata about where it was retrieved from.\n *\n * @param dataset A [[SolidDataset]] that may have metadata attached about the Resource it was retrieved from.\n * @returns True if `dataset` includes metadata about the Resource it was retrieved from, false if not.\n * @since 0.6.0\n */\nfunction hasServerResourceInfo(resource) {\n const potentialResourceInfo = resource;\n return (typeof potentialResourceInfo === \"object\" &&\n typeof potentialResourceInfo.internal_resourceInfo === \"object\" &&\n typeof potentialResourceInfo.internal_resourceInfo.linkedResources ===\n \"object\");\n}\n/** @internal */\nfunction hasChangelog(dataset) {\n const potentialChangeLog = dataset;\n return (typeof potentialChangeLog.internal_changeLog === \"object\" &&\n Array.isArray(potentialChangeLog.internal_changeLog.additions) &&\n Array.isArray(potentialChangeLog.internal_changeLog.deletions));\n}\n/**\n * Errors thrown by solid-client extend this class, and can thereby be distinguished from errors\n * thrown in lower-level libraries.\n * @since 1.2.0\n */\nclass SolidClientError extends Error {\n}\n\n\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/@inrupt/solid-client/dist/interfaces.mjs?"); /***/ }), /***/ "./node_modules/@inrupt/solid-client/dist/profile/webid.mjs": /*!******************************************************************!*\ !*** ./node_modules/@inrupt/solid-client/dist/profile/webid.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 */ getAltProfileUrlAllFrom: () => (/* binding */ getAltProfileUrlAllFrom),\n/* harmony export */ getPodUrlAll: () => (/* binding */ getPodUrlAll),\n/* harmony export */ getPodUrlAllFrom: () => (/* binding */ getPodUrlAllFrom),\n/* harmony export */ getProfileAll: () => (/* binding */ getProfileAll),\n/* harmony export */ getWebIdDataset: () => (/* binding */ getWebIdDataset)\n/* harmony export */ });\n/* harmony import */ var _resource_resource_mjs__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../resource/resource.mjs */ \"./node_modules/@inrupt/solid-client/dist/resource/resource.mjs\");\n/* harmony import */ var _fetcher_mjs__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../fetcher.mjs */ \"./node_modules/@inrupt/solid-client/dist/fetcher.mjs\");\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 http_link_header__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! http-link-header */ \"./node_modules/http-link-header/lib/link.js\");\n/* harmony import */ var _resource_solidDataset_mjs__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../resource/solidDataset.mjs */ \"./node_modules/@inrupt/solid-client/dist/resource/solidDataset.mjs\");\n/* harmony import */ var _thing_thing_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../thing/thing.mjs */ \"./node_modules/@inrupt/solid-client/dist/thing/thing.mjs\");\n/* harmony import */ var _thing_get_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../thing/get.mjs */ \"./node_modules/@inrupt/solid-client/dist/thing/get.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\n\n\n\n\n\n\n\n\n\n//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n/**\n * List all the alternative profiles IRI found in a given WebID profile.\n *\n * Note that some of these profiles may be private, and you may not have access to\n * the resulting resource.\n *\n * @param webId The WebID of the user's whose alternative profiles you are discovering.\n * @param webIdProfile The WebID profile obtained dereferencing the provided WebID.\n * @returns A list of URLs of the user's alternative profiles.\n * @since 1.20.0\n */\nfunction getAltProfileUrlAllFrom(webId, webIdProfile) {\n const webIdThing = (0,_thing_thing_mjs__WEBPACK_IMPORTED_MODULE_2__.getThing)(webIdProfile, webId);\n const altProfileUrlAll = (0,_thing_thing_mjs__WEBPACK_IMPORTED_MODULE_2__.getThingAll)(webIdProfile)\n .filter((thing) => (0,_thing_get_mjs__WEBPACK_IMPORTED_MODULE_3__.getIriAll)(thing, _constants_mjs__WEBPACK_IMPORTED_MODULE_4__.foaf.primaryTopic).length > 0)\n .map(_thing_thing_mjs__WEBPACK_IMPORTED_MODULE_2__.asIri)\n .concat(webIdThing ? (0,_thing_get_mjs__WEBPACK_IMPORTED_MODULE_3__.getIriAll)(webIdThing, _constants_mjs__WEBPACK_IMPORTED_MODULE_4__.rdfs.seeAlso) : [])\n .concat(webIdThing ? (0,_thing_get_mjs__WEBPACK_IMPORTED_MODULE_3__.getIriAll)(webIdThing, _constants_mjs__WEBPACK_IMPORTED_MODULE_4__.foaf.isPrimaryTopicOf) : [])\n .filter((profileIri) => profileIri !== (0,_resource_resource_mjs__WEBPACK_IMPORTED_MODULE_5__.getSourceIri)(webIdProfile));\n // Deduplicate the results.\n return Array.from(new Set(altProfileUrlAll));\n}\nasync function getProfileAll(webId, options = _resource_resource_mjs__WEBPACK_IMPORTED_MODULE_5__.internal_defaultFetchOptions) {\n var _a, _b;\n const authFetch = (_a = options.fetch) !== null && _a !== void 0 ? _a : _fetcher_mjs__WEBPACK_IMPORTED_MODULE_6__.fetch;\n const webIdProfile = (_b = options.webIdProfile) !== null && _b !== void 0 ? _b : (await (0,_resource_solidDataset_mjs__WEBPACK_IMPORTED_MODULE_7__.getSolidDataset)(webId, {\n // This should always use an unauthenticated fetch.\n fetch: _fetcher_mjs__WEBPACK_IMPORTED_MODULE_6__.fetch,\n }));\n const altProfileAll = (await Promise.allSettled(getAltProfileUrlAllFrom(webId, webIdProfile).map((uniqueProfileIri) => (0,_resource_solidDataset_mjs__WEBPACK_IMPORTED_MODULE_7__.getSolidDataset)(uniqueProfileIri, { fetch: authFetch }))))\n // Ignore the alternative profiles lookup which failed.\n .filter((result) => result.status === \"fulfilled\")\n .map((successfulResult) => successfulResult.value);\n return {\n webIdProfile,\n altProfileAll,\n };\n}\n/**\n * Discover the Pods an agent advertises for in their profile resources. Both the\n * agent's WebID and alternative profiles are fetched. Note that this function will\n * only return URLs of Pods linked to using the `pim:storage`, i.e. a triple\n * looking like should appear in the profile\n * resources.\n *\n * @param webId The WebID of the agent whose Pods should be discovered\n * @param options Optional parameter\n * - `options.fetch`: An alternative `fetch` function to make the HTTP request,\n * compatible with the browser-native [fetch API](https://developer.mozilla.org/docs/Web/API/WindowOrWorkerGlobalScope/fetch#parameters).\n * @returns a Promise resolving to an array containing the URLs of all the Pods\n * linked from the agent's profile resource using the `pim:storage` predicate.\n * @since 1.18.0\n */\nasync function getPodUrlAll(webId, options = _resource_resource_mjs__WEBPACK_IMPORTED_MODULE_5__.internal_defaultFetchOptions) {\n const profiles = await getProfileAll(webId, options);\n return getPodUrlAllFrom(profiles, webId);\n}\n/**\n * Discover the Pods advertised for in the provided profile resources. Note that\n * this function will only return URLs of Pods linked to using the `pim:storage`\n * predicate, i.e. a triple looking like \n * should appear in the profile resources.\n *\n * @param profiles The profile resources in which the Pods should be discovered\n * @param webId The WebID of the agent whose Pods should be discovered\n * @returns An array containing the URLs of all the Pods linked from the agent's\n * profile resource using the `pim:storage` predicate.\n * @since 1.18.0\n */\nfunction getPodUrlAllFrom(profiles, webId) {\n const result = new Set();\n [profiles.webIdProfile, ...profiles.altProfileAll].forEach((profileResource) => {\n const webIdThing = (0,_thing_thing_mjs__WEBPACK_IMPORTED_MODULE_2__.getThing)(profileResource, webId);\n if (webIdThing !== null) {\n (0,_thing_get_mjs__WEBPACK_IMPORTED_MODULE_3__.getIriAll)(webIdThing, _constants_mjs__WEBPACK_IMPORTED_MODULE_4__.pim.storage).forEach((podIri) => result.add(podIri));\n }\n });\n return Array.from(result);\n}\n/**\n * Get the WebID Profile document dataset.\n *\n * @example\n * ```\n * const webId = \"https://example.org/people/me\";\n * const profile = await getWebIdDataset(webId);\n * const podRoot = getPodUrlAllFrom({ webIdProfile: profile, altProfileAll: [] }, webId);\n * const profileThing = getThing(profile, webId);\n * const name = getStringNoLocale(profileThing, FOAF.name);\n * ```\n *\n * @param webId The WebID of the agent whose WebID Profile dataset is to be fetched.\n * @returns a SolidDataset for the WebID Profile document.\n * @since 1.24.0\n */\nasync function getWebIdDataset(webId) {\n return (0,_resource_solidDataset_mjs__WEBPACK_IMPORTED_MODULE_7__.getSolidDataset)(webId, { fetch: _fetcher_mjs__WEBPACK_IMPORTED_MODULE_6__.fetch });\n}\n\n\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/@inrupt/solid-client/dist/profile/webid.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//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n// @rdfjs/dataset is a CommonJS module, so named imports break in Node.\n// Thus, import the default export, then obtain the `dataset` property from there.\n_rdfjs_dataset__WEBPACK_IMPORTED_MODULE_0__.dataset;\nconst localNodeSkolemPrefix = \"https://inrupt.com/.well-known/sdk-local-node/\";\n/**\n * Runtime freezing might be too much overhead;\n * if so, this function allows us to replace it by a function\n * that merely marks its input as Readonly<> for static analysis.\n */\nconst { freeze } = Object;\nfunction isLocalNodeIri(iri) {\n return (iri.substring(0, localNodeSkolemPrefix.length) === localNodeSkolemPrefix);\n}\nfunction getLocalNodeName(localNodeIri) {\n return localNodeIri.substring(localNodeSkolemPrefix.length);\n}\nfunction getLocalNodeIri(localNodeName) {\n return `${localNodeSkolemPrefix}${localNodeName}`;\n}\nfunction isBlankNodeId(value) {\n return typeof value === \"string\" && value.substring(0, 2) === \"_:\";\n}\nfunction getBlankNodeValue(blankNodeId) {\n return blankNodeId.substring(2);\n}\nfunction getBlankNodeId(blankNode) {\n return `_:${blankNode.value}`;\n}\n\n\n\n\n//# sourceURL=webpack://bookmarks/./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//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\nconst DataFactory = _rdfjs_data_model__WEBPACK_IMPORTED_MODULE_0__;\nfunction addRdfJsQuadToDataset(dataset, quad, quadParseOptions = {}) {\n var _a;\n const supportedGraphTypes = [\n \"NamedNode\",\n \"DefaultGraph\",\n ];\n if (!supportedGraphTypes.includes(quad.graph.termType)) {\n throw new Error(`Cannot parse Quads with nodes of type [${quad.graph.termType}] as their Graph node.`);\n }\n const graphId = quad.graph.termType === \"DefaultGraph\" ? \"default\" : quad.graph.value;\n const graph = (_a = dataset.graphs[graphId]) !== null && _a !== void 0 ? _a : {};\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.freeze)({\n ...dataset,\n graphs: (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.freeze)({\n ...dataset.graphs,\n [graphId]: addRdfJsQuadToGraph(graph, quad, quadParseOptions),\n }),\n });\n}\nfunction addRdfJsQuadToGraph(graph, quad, quadParseOptions) {\n var _a;\n const supportedSubjectTypes = [\n \"NamedNode\",\n \"BlankNode\",\n ];\n if (!supportedSubjectTypes.includes(quad.subject.termType)) {\n throw new Error(`Cannot parse Quads with nodes of type [${quad.subject.termType}] as their Subject node.`);\n }\n const subjectIri = quad.subject.termType === \"BlankNode\"\n ? `_:${quad.subject.value}`\n : quad.subject.value;\n const subject = (_a = graph[subjectIri]) !== null && _a !== void 0 ? _a : {\n type: \"Subject\",\n url: subjectIri,\n predicates: {},\n };\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.freeze)({\n ...graph,\n [subjectIri]: addRdfJsQuadToSubject(subject, quad, quadParseOptions),\n });\n}\nfunction addRdfJsQuadToSubject(subject, quad, quadParseOptions) {\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.freeze)({\n ...subject,\n predicates: addRdfJsQuadToPredicates(subject.predicates, quad, quadParseOptions),\n });\n}\nfunction addRdfJsQuadToPredicates(predicates, quad, quadParseOptions) {\n var _a;\n const supportedPredicateTypes = [\n \"NamedNode\",\n ];\n if (!supportedPredicateTypes.includes(quad.predicate.termType)) {\n throw new Error(`Cannot parse Quads with nodes of type [${quad.predicate.termType}] as their Predicate node.`);\n }\n const predicateIri = quad.predicate.value;\n const objects = (_a = predicates[predicateIri]) !== null && _a !== void 0 ? _a : {};\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.freeze)({\n ...predicates,\n [predicateIri]: addRdfJsQuadToObjects(objects, quad, quadParseOptions),\n });\n}\nfunction addRdfJsQuadToObjects(objects, quad, quadParseOptions) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n if (quad.object.termType === \"NamedNode\") {\n const namedNodes = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.freeze)([\n ...((_a = objects.namedNodes) !== null && _a !== void 0 ? _a : []),\n quad.object.value,\n ]);\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.freeze)({\n ...objects,\n namedNodes,\n });\n }\n if (quad.object.termType === \"Literal\") {\n if (quad.object.datatype.value === _datatypes_mjs__WEBPACK_IMPORTED_MODULE_2__.xmlSchemaTypes.langString) {\n const locale = quad.object.language.toLowerCase();\n const thisLocaleStrings = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.freeze)([\n ...((_c = (_b = objects.langStrings) === null || _b === void 0 ? void 0 : _b[locale]) !== null && _c !== void 0 ? _c : []),\n quad.object.value,\n ]);\n const langStrings = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.freeze)({\n ...((_d = objects.langStrings) !== null && _d !== void 0 ? _d : {}),\n [locale]: thisLocaleStrings,\n });\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.freeze)({\n ...objects,\n langStrings,\n });\n }\n // If the Object is a non-langString Literal\n const thisTypeValues = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.freeze)([\n ...((_f = (_e = objects.literals) === null || _e === void 0 ? void 0 : _e[quad.object.datatype.value]) !== null && _f !== void 0 ? _f : []),\n quad.object.value,\n ]);\n const literals = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.freeze)({\n ...((_g = objects.literals) !== null && _g !== void 0 ? _g : {}),\n [quad.object.datatype.value]: thisTypeValues,\n });\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.freeze)({\n ...objects,\n literals,\n });\n }\n if (quad.object.termType === \"BlankNode\") {\n const blankNodePredicates = getPredicatesForBlankNode(quad.object, quadParseOptions);\n const blankNodes = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.freeze)([\n ...((_h = objects.blankNodes) !== null && _h !== void 0 ? _h : []),\n blankNodePredicates,\n ]);\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.freeze)({\n ...objects,\n blankNodes,\n });\n }\n throw new Error(`Objects of type [${quad.object.termType}] are not supported.`);\n}\nfunction getPredicatesForBlankNode(node, quadParseOptions) {\n var _a, _b;\n const chainBlankNodes = (_a = quadParseOptions.chainBlankNodes) !== null && _a !== void 0 ? _a : [];\n if (chainBlankNodes.find((chainBlankNode) => chainBlankNode.equals(node)) ===\n undefined) {\n // If this Blank Node is not used to provide nested values for another Subject,\n // just return its identifier.\n // That identifier will also be listed among the Subjects in the Graph.\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.getBlankNodeId)(node);\n }\n /* istanbul ignore next: If there are chain nodes, there will always be other Quads, so the `?? []` can't be reached: */\n const quads = (_b = quadParseOptions.otherQuads) !== null && _b !== void 0 ? _b : [];\n const quadsWithNodeAsSubject = quads.filter((quad) => quad.subject.equals(node));\n // First add the Quads with regular Objects\n const predicates = quadsWithNodeAsSubject\n .filter((quad) => !isBlankNode(quad.object))\n .reduce((predicatesAcc, quad) => {\n var _a;\n const supportedPredicateTypes = [\n \"NamedNode\",\n ];\n if (!supportedPredicateTypes.includes(quad.predicate.termType)) {\n throw new Error(`Cannot parse Quads with nodes of type [${quad.predicate.termType}] as their Predicate node.`);\n }\n const objects = (_a = predicatesAcc[quad.predicate.value]) !== null && _a !== void 0 ? _a : {};\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.freeze)({\n ...predicatesAcc,\n [quad.predicate.value]: addRdfJsQuadToObjects(objects, quad, quadParseOptions),\n });\n }, {});\n // And then also add the Quads that have another Blank Node as the Object\n // in addition to the Blank Node `node` as the Subject:\n const blankNodeObjectQuads = quadsWithNodeAsSubject.filter((quad) => isBlankNode(quad.object));\n return blankNodeObjectQuads.reduce((predicatesAcc, quad) => {\n var _a, _b;\n const supportedPredicateTypes = [\n \"NamedNode\",\n ];\n if (!supportedPredicateTypes.includes(quad.predicate.termType)) {\n throw new Error(`Cannot parse Quads with nodes of type [${quad.predicate.termType}] as their Predicate node.`);\n }\n /* istanbul ignore next: The `?? {}` doesn't get hit; presumably it's initialised above. */\n const objects = (_a = predicatesAcc[quad.predicate.value]) !== null && _a !== void 0 ? _a : {};\n /* istanbul ignore next: The `?? []` doesn't get hit; presumably it's initialised above. */\n const blankNodes = (_b = objects.blankNodes) !== null && _b !== void 0 ? _b : [];\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.freeze)({\n ...predicatesAcc,\n // The BlankNode assertions are valid because we filtered on BlankNodes above:\n [quad.predicate.value]: {\n ...objects,\n blankNodes: [\n ...blankNodes,\n getPredicatesForBlankNode(quad.object, quadParseOptions),\n ],\n },\n });\n }, predicates);\n}\n/**\n * Given an array of Quads, returns all Blank Nodes that are used in a single chain of Nodes.\n *\n * This allows you to obtain which Blank Nodes are involved in e.g. RDF lists.\n * This is useful because those can be represented as nested data that will have\n * a deterministic structure, whereas a representation of Blank Nodes that\n * create a cycle or are re-used will need ad-hoc, non-deterministic identifiers\n * to allow for representation without inifinite nesting.\n */\nfunction getChainBlankNodes(quads) {\n // All Blank Nodes that occur in Subject position:\n const blankNodeSubjects = quads\n .map((quad) => quad.subject)\n .filter(isBlankNode);\n // All Blank Nodes that occur in Object position:\n const blankNodeObjects = quads.map((quad) => quad.object).filter(isBlankNode);\n // Makes sure that all given Nodes are the same,\n // which will be used to verify that a set of Quads all have the same Subject:\n function everyNodeTheSame(nodes) {\n // This could potentially be made more performant by mapping every term\n // to their value and using native JS comparisons, assuming every node is\n // either a Blank or a Named Node.\n return nodes.every((otherNode) => nodes.every((anotherNode) => otherNode.equals(anotherNode)));\n }\n // Get all Blank Nodes that are part of a cycle in the graph:\n const cycleBlankNodes = [];\n blankNodeObjects.forEach((blankNodeObject) => {\n cycleBlankNodes.push(...getCycleBlankNodes(blankNodeObject, quads));\n });\n // Get Blank Nodes that are used to provide nested values for a single Subject,\n // which we'll represent as nested values as well\n // (this allows us to avoid generating a non-deterministic, ad-hoc identifier\n // for those Blank Nodes).\n // We'll do this by taking all Blank Nodes in the given Quads...\n const chainBlankNodes = blankNodeSubjects\n .concat(blankNodeObjects)\n .filter((blankNode) => {\n // ....removing those Blank Nodes that are part of a cycle...\n if (cycleBlankNodes.some((cycleBlankNode) => cycleBlankNode.equals(blankNode))) {\n return false;\n }\n // ...and then returning only those Blank Nodes that only occur in the\n // Object position for a single Subject, i.e. that are part of a single\n // chain:\n const subjectsWithThisNodeAsObject = quads\n .filter((quad) => quad.object.equals(blankNode))\n .map((quad) => quad.subject);\n return (subjectsWithThisNodeAsObject.length > 0 &&\n everyNodeTheSame(subjectsWithThisNodeAsObject));\n });\n return chainBlankNodes;\n}\nfunction toRdfJsQuads(dataset, options = {}) {\n var _a;\n const quads = [];\n const dataFactory = (_a = options.dataFactory) !== null && _a !== void 0 ? _a : _rdfjs_data_model__WEBPACK_IMPORTED_MODULE_0__;\n Object.keys(dataset.graphs).forEach((graphIri) => {\n const graph = dataset.graphs[graphIri];\n const graphNode = graphIri === \"default\"\n ? dataFactory.defaultGraph()\n : dataFactory.namedNode(graphIri);\n Object.keys(graph).forEach((subjectIri) => {\n const { predicates } = graph[subjectIri];\n const subjectNode = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.isBlankNodeId)(subjectIri)\n ? dataFactory.blankNode((0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.getBlankNodeValue)(subjectIri))\n : dataFactory.namedNode(subjectIri);\n quads.push(...subjectToRdfJsQuads(predicates, subjectNode, graphNode, options));\n });\n });\n return quads;\n}\nfunction subjectToRdfJsQuads(predicates, subjectNode, graphNode, options = {}) {\n var _a;\n const quads = [];\n const dataFactory = (_a = options.dataFactory) !== null && _a !== void 0 ? _a : _rdfjs_data_model__WEBPACK_IMPORTED_MODULE_0__;\n Object.keys(predicates).forEach((predicateIri) => {\n var _a, _b, _c, _d;\n const predicateNode = dataFactory.namedNode(predicateIri);\n const langStrings = (_a = predicates[predicateIri].langStrings) !== null && _a !== void 0 ? _a : {};\n const namedNodes = (_b = predicates[predicateIri].namedNodes) !== null && _b !== void 0 ? _b : [];\n const literals = (_c = predicates[predicateIri].literals) !== null && _c !== void 0 ? _c : {};\n const blankNodes = (_d = predicates[predicateIri].blankNodes) !== null && _d !== void 0 ? _d : [];\n const literalTypes = Object.keys(literals);\n literalTypes.forEach((typeIri) => {\n const typeNode = dataFactory.namedNode(typeIri);\n const literalValues = literals[typeIri];\n literalValues.forEach((value) => {\n const literalNode = dataFactory.literal(value, typeNode);\n quads.push(dataFactory.quad(subjectNode, predicateNode, literalNode, graphNode));\n });\n });\n const locales = Object.keys(langStrings);\n locales.forEach((locale) => {\n const localeValues = langStrings[locale];\n localeValues.forEach((value) => {\n const langStringNode = dataFactory.literal(value, locale);\n quads.push(dataFactory.quad(subjectNode, predicateNode, langStringNode, graphNode));\n });\n });\n namedNodes.forEach((namedNodeIri) => {\n const node = dataFactory.namedNode(namedNodeIri);\n quads.push(dataFactory.quad(subjectNode, predicateNode, node, graphNode));\n });\n blankNodes.forEach((blankNodeIdOrPredicates) => {\n if ((0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.isBlankNodeId)(blankNodeIdOrPredicates)) {\n const blankNode = dataFactory.blankNode((0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.getBlankNodeValue)(blankNodeIdOrPredicates));\n quads.push(dataFactory.quad(subjectNode, predicateNode, blankNode, graphNode));\n }\n else {\n const node = dataFactory.blankNode();\n const blankNodeObjectQuad = dataFactory.quad(subjectNode, predicateNode, node, graphNode);\n const blankNodeSubjectQuads = subjectToRdfJsQuads(blankNodeIdOrPredicates, node, graphNode);\n quads.push(blankNodeObjectQuad);\n quads.push(...blankNodeSubjectQuads);\n }\n });\n });\n return quads;\n}\n/**\n * A recursive function that finds all Blank Nodes in an array of Quads that create a cycle in the graph.\n *\n * This function will traverse the graph starting from `currentNode`, keeping\n * track of all the Blank Nodes it encounters twice while doing so, and\n * returning those.\n */\nfunction getCycleBlankNodes(currentNode, quads, traversedBlankNodes = []) {\n // If we've encountered `currentNode` before, all the Blank Nodes we've\n // encountered so far are part of a cycle. Return those.\n if (traversedBlankNodes.find((traversedBlankNode) => traversedBlankNode.equals(currentNode)) !== undefined) {\n return traversedBlankNodes;\n }\n // Find all Blank Nodes that are connected to `currentNode`:\n const blankNodeObjects = quads\n .filter((quad) => quad.subject.equals(currentNode) && isBlankNode(quad.object))\n .map((quad) => quad.object);\n // If no Blank Nodes are connected to `currentNode`, and `currentNode` is not\n // part of a cycle, we're done; the currently traversed Nodes do not form a\n // cycle:\n if (blankNodeObjects.length === 0) {\n return [];\n }\n // Store that we've traversed `currentNode`, then move on to all the Blank\n // Nodes connected to it, which will then take up the role of `currentNode`:\n const nextTraversedNodes = [...traversedBlankNodes, currentNode];\n const cycleBlankNodeArrays = blankNodeObjects.map((nextNode) => getCycleBlankNodes(nextNode, quads, nextTraversedNodes));\n // Collect all the cycle Blank Nodes found in those traverals,\n // then return them:\n const allCycleBlankNodes = [];\n for (const cycleBlankNodes of cycleBlankNodeArrays) {\n allCycleBlankNodes.push(...cycleBlankNodes);\n }\n return allCycleBlankNodes;\n}\nfunction isBlankNode(term) {\n return term.termType === \"BlankNode\";\n}\n\n\n\n\n//# sourceURL=webpack://bookmarks/./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//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n/**\n * This function normalizes IRIs as managed by the server to ease accurate comparison.\n * @param iri\n * @hidden\n */\nfunction normalizeServerSideIri(iri) {\n const iriObj = new URL(iri);\n iriObj.hash = \"\";\n return iriObj.href;\n}\n\n\n\n\n//# sourceURL=webpack://bookmarks/./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_isAuthenticationFailureResponse: () => (/* binding */ internal_isAuthenticationFailureResponse),\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//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n/**\n * @internal\n */\nfunction internal_parseResourceInfo(response) {\n var _a, _b, _c, _d, _e;\n const contentTypeParts = (_b = (_a = response.headers.get(\"Content-Type\")) === null || _a === void 0 ? void 0 : _a.split(\";\")) !== null && _b !== void 0 ? _b : [];\n // If the server offers a Turtle or JSON-LD serialisation on its own accord,\n // that tells us whether it is RDF data that the server can understand\n // (and hence can be updated with a PATCH request with SPARQL INSERT and DELETE statements),\n // in which case our SolidDataset-related functions should handle it.\n // For more context, see https://github.com/inrupt/solid-client-js/pull/214.\n const isSolidDataset = contentTypeParts.length > 0 &&\n [\"text/turtle\", \"application/ld+json\"].includes(contentTypeParts[0]);\n const resourceInfo = {\n sourceIri: response.url,\n isRawData: !isSolidDataset,\n contentLocation: (_c = response.headers.get(\"Content-Location\")) !== null && _c !== void 0 ? _c : undefined,\n contentType: (_d = response.headers.get(\"Content-Type\")) !== null && _d !== void 0 ? _d : undefined,\n linkedResources: {},\n location: (_e = response.headers.get(\"Location\")) !== null && _e !== void 0 ? _e : undefined,\n };\n const linkHeader = response.headers.get(\"Link\");\n if (linkHeader) {\n const parsedLinks = http_link_header__WEBPACK_IMPORTED_MODULE_0__.parse(linkHeader);\n // Set ACL link\n const aclLinks = parsedLinks.get(\"rel\", \"acl\");\n if (aclLinks.length === 1) {\n resourceInfo.aclUrl = new URL(aclLinks[0].uri, resourceInfo.sourceIri).href;\n }\n // Parse all link headers and expose them in a standard way\n // (this can replace the parsing of the ACL link above):\n resourceInfo.linkedResources = parsedLinks.refs.reduce((rels, ref) => {\n var _a;\n var _b;\n (_a = rels[_b = ref.rel]) !== null && _a !== void 0 ? _a : (rels[_b] = []);\n rels[ref.rel].push(new URL(ref.uri, resourceInfo.sourceIri).href);\n return rels;\n }, resourceInfo.linkedResources);\n }\n const wacAllowHeader = response.headers.get(\"WAC-Allow\");\n if (wacAllowHeader) {\n resourceInfo.permissions = parseWacAllowHeader(wacAllowHeader);\n }\n return resourceInfo;\n}\n/**\n * Parse a WAC-Allow header into user and public access booleans.\n *\n * @param wacAllowHeader A WAC-Allow header in the format `user=\"read append write control\",public=\"read\"`\n * @see https://github.com/solid/solid-spec/blob/cb1373a369398d561b909009bd0e5a8c3fec953b/api-rest.md#wac-allow-headers\n */\nfunction parseWacAllowHeader(wacAllowHeader) {\n function parsePermissionStatement(permissionStatement) {\n const permissions = permissionStatement.split(\" \");\n const writePermission = permissions.includes(\"write\");\n return writePermission\n ? {\n read: permissions.includes(\"read\"),\n append: true,\n write: true,\n control: permissions.includes(\"control\"),\n }\n : {\n read: permissions.includes(\"read\"),\n append: permissions.includes(\"append\"),\n write: false,\n control: permissions.includes(\"control\"),\n };\n }\n function getStatementFor(header, scope) {\n const relevantEntries = header\n .split(\",\")\n .map((rawEntry) => rawEntry.split(\"=\"))\n .filter((parts) => parts.length === 2 && parts[0].trim() === scope);\n // There should only be one statement with the given scope:\n if (relevantEntries.length !== 1) {\n return \"\";\n }\n const relevantStatement = relevantEntries[0][1].trim();\n // The given statement should be wrapped in double quotes to be valid:\n if (relevantStatement.charAt(0) !== '\"' ||\n relevantStatement.charAt(relevantStatement.length - 1) !== '\"') {\n return \"\";\n }\n // Return the statment without the wrapping quotes, e.g.: read append write control\n return relevantStatement.substring(1, relevantStatement.length - 1);\n }\n return {\n user: parsePermissionStatement(getStatementFor(wacAllowHeader, \"user\")),\n public: parsePermissionStatement(getStatementFor(wacAllowHeader, \"public\")),\n };\n}\n/** @hidden Used to instantiate a separate instance from input parameters */\nfunction internal_cloneResource(resource) {\n let clonedResource;\n if (typeof resource.slice === \"function\") {\n // If given Resource is a File:\n clonedResource = Object.assign(resource.slice(), { ...resource });\n }\n else {\n // If it is just a plain object containing metadata:\n clonedResource = { ...resource };\n }\n return clonedResource;\n}\n/** @internal */\nfunction internal_isUnsuccessfulResponse(response) {\n return !response.ok;\n}\nfunction internal_isAuthenticationFailureResponse(response) {\n return response.status === 401 || response.status === 403;\n}\n\n\n\n\n//# sourceURL=webpack://bookmarks/./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//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n/** @ignore For internal use only. */\nconst internal_defaultFetchOptions = {\n fetch: _fetcher_mjs__WEBPACK_IMPORTED_MODULE_0__.fetch,\n};\n/**\n * Retrieve the information about a resource (e.g. access permissions) without\n * fetching the resource itself.\n *\n * @param url URL to fetch Resource metadata from.\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).\n * @returns Promise resolving to the metadata describing the given Resource, or rejecting if fetching it failed.\n * @since 0.4.0\n */\nasync function getResourceInfo(url, options = { ...internal_defaultFetchOptions, ignoreAuthenticationErrors: false }) {\n var _a;\n const config = {\n ...internal_defaultFetchOptions,\n ...options,\n };\n const response = await config.fetch(url, { method: \"HEAD\" });\n return responseToResourceInfo(response, {\n ignoreAuthenticationErrors: (_a = options.ignoreAuthenticationErrors) !== null && _a !== void 0 ? _a : false,\n });\n}\n/**\n * Parse Solid metadata from a Response obtained by fetching a Resource from a Solid Pod,\n *\n * @param response A Fetch API Response. See {@link https://developer.mozilla.org/en-US/docs/Web/API/Response MDN}.\n * @returns Resource metadata readable by functions such as [[getSourceUrl]].\n * @hidden This interface is not exposed yet until we've tried it out in practice.\n */\nfunction responseToResourceInfo(response, options = { ignoreAuthenticationErrors: false }) {\n if ((0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isUnsuccessfulResponse)(response) &&\n (!(0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isAuthenticationFailureResponse)(response) ||\n !options.ignoreAuthenticationErrors)) {\n throw new FetchError(`Fetching the metadata of the Resource at [${response.url}] failed: [${response.status}] [${response.statusText}].`, response);\n }\n const resourceInfo = (0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_parseResourceInfo)(response);\n return { internal_resourceInfo: resourceInfo };\n}\n/**\n * @param resource Resource for which to check whether it is a Container.\n * @returns Whether `resource` is a Container.\n */\nfunction isContainer(resource) {\n const containerUrl = (0,_interfaces_mjs__WEBPACK_IMPORTED_MODULE_2__.hasResourceInfo)(resource)\n ? getSourceUrl(resource)\n : (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.internal_toIriString)(resource);\n return containerUrl.endsWith(\"/\");\n}\n/**\n * This function will tell you whether a given Resource contains raw data, or a SolidDataset.\n *\n * @param resource Resource for which to check whether it contains raw data.\n * @return Whether `resource` contains raw data.\n */\nfunction isRawData(resource) {\n return resource.internal_resourceInfo.isRawData;\n}\n/**\n * @param resource Resource for which to determine the Content Type.\n * @returns The Content Type, if known, or null if not known.\n */\nfunction getContentType(resource) {\n var _a;\n return (_a = resource.internal_resourceInfo.contentType) !== null && _a !== void 0 ? _a : null;\n}\nfunction getSourceUrl(resource) {\n if ((0,_interfaces_mjs__WEBPACK_IMPORTED_MODULE_2__.hasResourceInfo)(resource)) {\n return resource.internal_resourceInfo.sourceIri;\n }\n return null;\n}\n/** @hidden Alias of getSourceUrl for those who prefer to use IRI terminology. */\nconst getSourceIri = getSourceUrl;\n/**\n * Given a Resource that exposes information about the owner of the Pod it is in, returns the WebID of that owner.\n *\n * Data about the owner of the Pod is exposed when the following conditions hold:\n * - The Pod server supports exposing the Pod owner\n * - The current user is allowed to see who the Pod owner is.\n *\n * If one or more of those conditions are false, this function will return `null`.\n *\n * @param resource A Resource that contains information about the owner of the Pod it is in.\n * @returns The WebID of the owner of the Pod the Resource is in, if provided, or `null` if not.\n * @since 0.6.0\n */\nfunction getPodOwner(resource) {\n var _a;\n if (!(0,_interfaces_mjs__WEBPACK_IMPORTED_MODULE_2__.hasServerResourceInfo)(resource)) {\n return null;\n }\n const podOwners = (_a = getLinkedResourceUrlAll(resource)[\"http://www.w3.org/ns/solid/terms#podOwner\"]) !== null && _a !== void 0 ? _a : [];\n return podOwners.length === 1 ? podOwners[0] : null;\n}\n/**\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.\n *\n * Data about the owner of the Pod is exposed when the following conditions hold:\n * - The Pod server supports exposing the Pod owner\n * - The current user is allowed to see who the Pod owner is.\n *\n * If one or more of those conditions are false, this function will return `null`.\n *\n * @param webId The WebID of which to check whether it is the Pod Owner's.\n * @param resource A Resource that contains information about the owner of the Pod it is in.\n * @returns Whether the given WebID is the Pod Owner's, if the Pod Owner is exposed, or `null` if it is not exposed.\n * @since 0.6.0\n */\nfunction isPodOwner(webId, resource) {\n const podOwner = getPodOwner(resource);\n if (typeof podOwner !== \"string\") {\n return null;\n }\n return podOwner === webId;\n}\n/**\n * Get the URLs of Resources linked to the given Resource.\n *\n * Solid servers can link Resources to each other. For example, in servers\n * implementing Web Access Control, Resources can have an Access Control List\n * Resource linked to it via the `acl` relation.\n *\n * @param resource A Resource fetched from a Solid Pod.\n * @returns The URLs of Resources linked to the given Resource, indexed by the key that links them.\n * @since 1.7.0\n */\nfunction getLinkedResourceUrlAll(resource) {\n return resource.internal_resourceInfo.linkedResources;\n}\n/**\n * Get what access the current user has to the given Resource.\n *\n * This function can tell you what access the current user has for the given\n * Resource, allowing you to e.g. determine that changes to it will be rejected\n * before attempting to do so.\n * Additionally, for servers adhering to the Web Access Control specification,\n * it will tell you what access unauthenticated users have to the given Resource.\n *\n * @param resource A Resource fetched from a Solid Pod.\n * @returns What access the current user and, if supported by the server, unauthenticated users have to the given Resource.\n * @since 1.7.0\n */\nfunction getEffectiveAccess(resource) {\n var _a, _b, _c, _d, _e, _f, _g;\n if (typeof resource.internal_resourceInfo.permissions === \"object\") {\n return {\n user: {\n read: resource.internal_resourceInfo.permissions.user.read,\n append: resource.internal_resourceInfo.permissions.user.append,\n write: resource.internal_resourceInfo.permissions.user.write,\n },\n public: {\n read: resource.internal_resourceInfo.permissions.public.read,\n append: resource.internal_resourceInfo.permissions.public.append,\n write: resource.internal_resourceInfo.permissions.public.write,\n },\n };\n }\n const linkedResourceUrls = getLinkedResourceUrlAll(resource);\n return {\n user: {\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,\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)) ||\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,\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,\n },\n };\n}\n/**\n * Extends the regular JavaScript error object with access to the status code and status message.\n * @since 1.2.0\n */\nclass FetchError extends _interfaces_mjs__WEBPACK_IMPORTED_MODULE_2__.SolidClientError {\n get statusCode() {\n return this.response.status;\n }\n get statusText() {\n return this.response.statusText;\n }\n constructor(message, errorResponse) {\n super(message);\n this.response = errorResponse;\n }\n}\n\n\n\n\n//# sourceURL=webpack://bookmarks/./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 */ getWellKnownSolid: () => (/* binding */ getWellKnownSolid),\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 */ validateContainedResourceAll: () => (/* binding */ validateContainedResourceAll)\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_jsonLd_mjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../formats/jsonLd.mjs */ \"./node_modules/@inrupt/solid-client/dist/formats/jsonLd.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/* harmony import */ var _fetcher_mjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../fetcher.mjs */ \"./node_modules/@inrupt/solid-client/dist/fetcher.mjs\");\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n/**\n * Initialise a new [[SolidDataset]] in memory.\n *\n * @returns An empty [[SolidDataset]].\n */\nfunction createSolidDataset() {\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.freeze)({\n type: \"Dataset\",\n graphs: {\n default: {},\n },\n });\n}\n/**\n * @hidden This interface is not exposed yet until we've tried it out in practice.\n */\nasync function responseToSolidDataset(response, parseOptions = {}) {\n if ((0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isUnsuccessfulResponse)(response)) {\n throw new _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.FetchError(`Fetching the SolidDataset at [${response.url}] failed: [${response.status}] [${response.statusText}] ${await response.text()}.`, response);\n }\n const resourceInfo = (0,_resource_mjs__WEBPACK_IMPORTED_MODULE_2__.responseToResourceInfo)(response);\n const parsers = {\n \"text/turtle\": (0,_formats_turtle_mjs__WEBPACK_IMPORTED_MODULE_3__.getTurtleParser)(),\n ...parseOptions.parsers,\n };\n const contentType = (0,_resource_mjs__WEBPACK_IMPORTED_MODULE_2__.getContentType)(resourceInfo);\n if (contentType === null) {\n throw new Error(`Could not determine the content type of the Resource at [${(0,_resource_mjs__WEBPACK_IMPORTED_MODULE_2__.getSourceUrl)(resourceInfo)}].`);\n }\n const mimeType = contentType.split(\";\")[0];\n const parser = parsers[mimeType];\n if (typeof parser === \"undefined\") {\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(\", \")}].`);\n }\n const data = await response.text();\n const parsingPromise = new Promise((resolve, reject) => {\n let solidDataset = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.freeze)({\n graphs: (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.freeze)({ default: (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.freeze)({}) }),\n type: \"Dataset\",\n });\n // While Quads without Blank Nodes can be added to the SolidDataset as we\n // encounter them, to parse Quads with Blank Nodes, we'll have to wait until\n // we've seen all the Quads, so that we can reconcile equal Blank Nodes.\n const quadsWithBlankNodes = [];\n const allQuads = [];\n parser.onError((error) => {\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}`));\n });\n parser.onQuad((quad) => {\n allQuads.push(quad);\n if (quad.subject.termType === \"BlankNode\" ||\n quad.object.termType === \"BlankNode\") {\n // Quads with Blank Nodes will be parsed when all Quads are known,\n // so that equal Blank Nodes can be reconciled:\n quadsWithBlankNodes.push(quad);\n }\n else {\n solidDataset = (0,_rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.addRdfJsQuadToDataset)(solidDataset, quad);\n }\n });\n parser.onComplete(async () => {\n // If a Resource contains more than this number of Blank Nodes,\n // we consider the detection of chains (O(n^2), I think) to be too\n // expensive, and just incorporate them as regular Blank Nodes with\n // non-deterministic, ad-hoc identifiers into the SolidDataset:\n const maxBlankNodesToDetectChainsFor = 20;\n // Some Blank Nodes only serve to use a set of Quads as the Object for a\n // single Subject. Those Quads will be added to the SolidDataset when\n // their Subject's Blank Node is encountered in the Object position.\n const chainBlankNodes = quadsWithBlankNodes.length <= maxBlankNodesToDetectChainsFor\n ? (0,_rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.getChainBlankNodes)(quadsWithBlankNodes)\n : [];\n const quadsWithoutChainBlankNodeSubjects = quadsWithBlankNodes.filter((quad) => chainBlankNodes.every((chainBlankNode) => !chainBlankNode.equals(quad.subject)));\n solidDataset = quadsWithoutChainBlankNodeSubjects.reduce((datasetAcc, quad) => (0,_rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.addRdfJsQuadToDataset)(datasetAcc, quad, {\n otherQuads: allQuads,\n chainBlankNodes,\n }), solidDataset);\n const solidDatasetWithResourceInfo = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.freeze)({\n ...solidDataset,\n ...resourceInfo,\n });\n resolve(solidDatasetWithResourceInfo);\n });\n parser.parse(data, resourceInfo);\n });\n return parsingPromise;\n}\n/**\n * Fetch a SolidDataset from the given URL. Currently requires the SolidDataset to be available as [Turtle](https://www.w3.org/TR/turtle/).\n *\n * Note that the URL of a container ends with a [trailing slash \"/\"](https://solidproject.org/TR/protocol#uri).\n * If it is missing, some libraries will add it automatically, which may result in additional round-trips, possibly including\n * authentication errors ([more information](https://github.com/inrupt/solid-client-js/issues/1216#issuecomment-904703695)).\n *\n * @param url URL to fetch a [[SolidDataset]] from.\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).\n * @returns Promise resolving to a [[SolidDataset]] containing the data at the given Resource, or rejecting if fetching it failed.\n */\nasync function getSolidDataset(url, options = _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_defaultFetchOptions) {\n var _a;\n url = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.internal_toIriString)(url);\n const config = {\n ..._resource_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_defaultFetchOptions,\n ...options,\n };\n const parserContentTypes = Object.keys((_a = options.parsers) !== null && _a !== void 0 ? _a : {});\n const acceptedContentTypes = parserContentTypes.length > 0\n ? parserContentTypes.join(\", \")\n : \"text/turtle\";\n const response = await config.fetch(url, {\n headers: {\n Accept: acceptedContentTypes,\n },\n });\n if ((0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isUnsuccessfulResponse)(response)) {\n throw new _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.FetchError(`Fetching the Resource at [${url}] failed: [${response.status}] [${response.statusText}] ${await response.text()}.`, response);\n }\n const solidDataset = await responseToSolidDataset(response, options);\n return solidDataset;\n}\n/**\n * Create a SPARQL UPDATE Patch request from a [[SolidDataset]] with a changelog.\n * @param solidDataset the [[SolidDataset]] that has been locally updated, and that should be persisted.\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.\n * @hidden\n */\nasync function prepareSolidDatasetUpdate(solidDataset) {\n const deleteStatement = solidDataset.internal_changeLog.deletions.length > 0\n ? `DELETE DATA {${(await (0,_formats_turtle_mjs__WEBPACK_IMPORTED_MODULE_3__.triplesToTurtle)(solidDataset.internal_changeLog.deletions.map(getNamedNodesForLocalNodes))).trim()}};`\n : \"\";\n const insertStatement = solidDataset.internal_changeLog.additions.length > 0\n ? `INSERT DATA {${(await (0,_formats_turtle_mjs__WEBPACK_IMPORTED_MODULE_3__.triplesToTurtle)(solidDataset.internal_changeLog.additions.map(getNamedNodesForLocalNodes))).trim()}};`\n : \"\";\n return {\n method: \"PATCH\",\n body: `${deleteStatement} ${insertStatement}`,\n headers: {\n \"Content-Type\": \"application/sparql-update\",\n },\n };\n}\n/**\n * Create a Put request to write a locally created [[SolidDataset]] to a Pod.\n * @param solidDataset the [[SolidDataset]] that has been locally updated, and that should be persisted.\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]].\n * @hidden\n */\nasync function prepareSolidDatasetCreation(solidDataset, options) {\n return {\n method: \"PUT\",\n body: await (0,_formats_turtle_mjs__WEBPACK_IMPORTED_MODULE_3__.triplesToTurtle)((0,_rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.toRdfJsQuads)(solidDataset).map(getNamedNodesForLocalNodes), options),\n headers: {\n \"Content-Type\": \"text/turtle\",\n \"If-None-Match\": \"*\",\n Link: `<${_constants_mjs__WEBPACK_IMPORTED_MODULE_6__.ldp.Resource}>; rel=\"type\"`,\n },\n };\n}\n/**\n * Given a SolidDataset, store it in a Solid Pod (overwriting the existing data at the given URL).\n *\n * A SolidDataset keeps track of the data changes compared to the data in the Pod; i.e.,\n * the changelog tracks both the old value and new values of the property being modified. This\n * function applies the changes to the current SolidDataset. If the old value specified in the\n * changelog does not correspond to the value currently in the Pod, this function will throw an\n * error (common issues are listed in [the documentation](https://docs.inrupt.com/developer-tools/javascript/client-libraries/reference/error-codes/)).\n *\n * The SolidDataset returned by this function will contain the data sent to the Pod, and a ChangeLog\n * up-to-date with the saved data. Note that if the data on the server was modified in between the\n * first fetch and saving it, the updated data will not be reflected in the returned SolidDataset.\n * To make sure you have the latest data, call [[getSolidDataset]] again after saving the data.\n *\n * The Solid server will create any intermediary Containers that do not exist yet, so they do not\n * need to be created in advance. For example, if the target URL is\n * https://example.pod/container/resource and https://example.pod/container/ does not exist yet,\n * it will exist after this function resolves successfully.\n *\n * @param url URL to save `solidDataset` to.\n * @param solidDataset The [[SolidDataset]] to save.\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).\n * `options.prefixes`: A prefix map to customize the serialization. Only applied on resource creation if the serialization allows it.\n * @returns A Promise resolving to a [[SolidDataset]] containing the stored data, or rejecting if saving it failed.\n */\nasync function saveSolidDatasetAt(url, solidDataset, options = _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_defaultFetchOptions) {\n url = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.internal_toIriString)(url);\n const config = {\n ..._resource_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_defaultFetchOptions,\n ...options,\n };\n const datasetWithChangelog = (0,_thing_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_7__.internal_withChangeLog)(solidDataset);\n const requestInit = isUpdate(datasetWithChangelog, url)\n ? await prepareSolidDatasetUpdate(datasetWithChangelog)\n : await prepareSolidDatasetCreation(datasetWithChangelog, options);\n const response = await config.fetch(url, requestInit);\n if ((0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isUnsuccessfulResponse)(response)) {\n const diagnostics = isUpdate(datasetWithChangelog, url)\n ? `The changes that were sent to the Pod are listed below.\\n\\n${changeLogAsMarkdown(datasetWithChangelog)}`\n : `The SolidDataset that was sent to the Pod is listed below.\\n\\n${solidDatasetAsMarkdown(datasetWithChangelog)}`;\n throw new _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.FetchError(`Storing the Resource at [${url}] failed: [${response.status}] [${response.statusText}] ${await response.text()}.\\n\\n${diagnostics}`, response);\n }\n const resourceInfo = {\n ...(0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_parseResourceInfo)(response),\n isRawData: false,\n };\n const storedDataset = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.freeze)({\n ...solidDataset,\n internal_changeLog: { additions: [], deletions: [] },\n internal_resourceInfo: resourceInfo,\n });\n const storedDatasetWithResolvedIris = resolveLocalIrisInSolidDataset(storedDataset);\n return storedDatasetWithResolvedIris;\n}\n/**\n * Deletes the SolidDataset at a given URL.\n *\n * If operating on a container, the container must be empty otherwise a 409 CONFLICT will be raised.\n *\n * @param solidDataset The URL of the SolidDataset to delete or the SolidDataset itself (if it has ResourceInfo).\n * @since 0.6.0\n */\nasync function deleteSolidDataset(solidDataset, options = _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_defaultFetchOptions) {\n const config = {\n ..._resource_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_defaultFetchOptions,\n ...options,\n };\n const url = (0,_interfaces_mjs__WEBPACK_IMPORTED_MODULE_8__.hasResourceInfo)(solidDataset)\n ? (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.internal_toIriString)((0,_resource_mjs__WEBPACK_IMPORTED_MODULE_2__.getSourceUrl)(solidDataset))\n : (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.internal_toIriString)(solidDataset);\n const response = await config.fetch(url, { method: \"DELETE\" });\n if ((0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isUnsuccessfulResponse)(response)) {\n throw new _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.FetchError(`Deleting the SolidDataset at [${url}] failed: [${response.status}] [${response.statusText}] ${await response.text()}.`, response);\n }\n}\n/**\n * Create a Container at the given URL. Some content may optionally be specified,\n * e.g. to add metadata describing the container.\n *\n * Throws an error if creating the Container failed, e.g. because the current user does not have\n * permissions to, or because the Container already exists.\n *\n * Note that a Solid server will automatically create the necessary Containers when storing a\n * Resource; i.e. there is no need to call this function if it is immediately followed by\n * [[saveSolidDatasetAt]] or [[overwriteFile]].\n *\n * @param url URL of the empty Container that is to be created.\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).\n * @param solidDataset Optional parameter - if provided we use this dataset as the body of the HTT request, meaning it's data is included in the Container resource.\n * @since 0.2.0\n */\nasync function createContainerAt(url, options = _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_defaultFetchOptions) {\n var _a;\n url = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.internal_toIriString)(url);\n url = url.endsWith(\"/\") ? url : `${url}/`;\n const config = {\n ..._resource_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_defaultFetchOptions,\n ...options,\n };\n const response = await config.fetch(url, {\n method: \"PUT\",\n body: config.initialContent\n ? await (0,_formats_turtle_mjs__WEBPACK_IMPORTED_MODULE_3__.triplesToTurtle)((0,_rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.toRdfJsQuads)(config.initialContent).map(getNamedNodesForLocalNodes))\n : undefined,\n headers: {\n Accept: \"text/turtle\",\n \"Content-Type\": \"text/turtle\",\n \"If-None-Match\": \"*\",\n // This header should not be required to create a Container,\n // but ESS currently expects it:\n Link: `<${_constants_mjs__WEBPACK_IMPORTED_MODULE_6__.ldp.BasicContainer}>; rel=\"type\"`,\n },\n });\n if ((0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isUnsuccessfulResponse)(response)) {\n const containerType = config.initialContent === undefined ? \"empty\" : \"non-empty\";\n throw new _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.FetchError(`Creating the ${containerType} Container at [${url}] failed: [${response.status}] [${response.statusText}] ${await response.text()}.`, response);\n }\n const resourceInfo = (0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_parseResourceInfo)(response);\n const containerDataset = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.freeze)({\n ...((_a = options.initialContent) !== null && _a !== void 0 ? _a : createSolidDataset()),\n internal_changeLog: { additions: [], deletions: [] },\n internal_resourceInfo: resourceInfo,\n });\n return containerDataset;\n}\nfunction isSourceIriEqualTo(dataset, iri) {\n return ((0,_iri_internal_mjs__WEBPACK_IMPORTED_MODULE_9__.normalizeServerSideIri)(dataset.internal_resourceInfo.sourceIri) ===\n (0,_iri_internal_mjs__WEBPACK_IMPORTED_MODULE_9__.normalizeServerSideIri)(iri));\n}\nfunction isUpdate(solidDataset, url) {\n return ((0,_interfaces_mjs__WEBPACK_IMPORTED_MODULE_8__.hasChangelog)(solidDataset) &&\n (0,_interfaces_mjs__WEBPACK_IMPORTED_MODULE_8__.hasResourceInfo)(solidDataset) &&\n typeof solidDataset.internal_resourceInfo.sourceIri === \"string\" &&\n isSourceIriEqualTo(solidDataset, url));\n}\n/**\n * Given a SolidDataset, store it in a Solid Pod in a new Resource inside a Container.\n *\n * The Container at the given URL should already exist; if it does not, you can initialise it first\n * using [[createContainerAt]], or directly save the SolidDataset at the desired location using\n * [[saveSolidDatasetAt]].\n *\n * This function is primarily useful if the current user does not have access to change existing files in\n * a Container, but is allowed to add new files; in other words, they have Append, but not Write\n * access to a Container. This is useful in situations where someone wants to allow others to,\n * for example, send notifications to their Pod, but not to view or delete existing notifications.\n * You can pass a suggestion for the new Resource's name, but the server may decide to give it\n * another name — for example, if a Resource with that name already exists inside the given\n * Container.\n * If the user does have access to write directly to a given location, [[saveSolidDatasetAt]]\n * will do the job just fine, and does not require the parent Container to exist in advance.\n *\n * @param containerUrl URL of the Container in which to create a new Resource.\n * @param solidDataset The [[SolidDataset]] to save to a new Resource in the given Container.\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).\n * @returns A Promise resolving to a [[SolidDataset]] containing the saved data. The Promise rejects if the save failed.\n */\nasync function saveSolidDatasetInContainer(containerUrl, solidDataset, options = _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_defaultFetchOptions) {\n const config = {\n ..._resource_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_defaultFetchOptions,\n ...options,\n };\n containerUrl = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.internal_toIriString)(containerUrl);\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));\n const headers = {\n \"Content-Type\": \"text/turtle\",\n Link: `<${_constants_mjs__WEBPACK_IMPORTED_MODULE_6__.ldp.Resource}>; rel=\"type\"`,\n };\n if (options.slugSuggestion) {\n headers.slug = options.slugSuggestion;\n }\n const response = await config.fetch(containerUrl, {\n method: \"POST\",\n body: rawTurtle,\n headers,\n });\n if ((0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isUnsuccessfulResponse)(response)) {\n throw new _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.FetchError(`Storing the Resource in the Container at [${containerUrl}] failed: [${response.status}] [${response.statusText}] ${await response.text()}.\\n\\n` +\n `The SolidDataset that was sent to the Pod is listed below.\\n\\n${solidDatasetAsMarkdown(solidDataset)}`, response);\n }\n const internalResourceInfo = (0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_parseResourceInfo)(response);\n if (!internalResourceInfo.location) {\n throw new Error(\"Could not determine the location of the newly saved SolidDataset.\");\n }\n let resourceIri;\n try {\n // Try to parse the location header as a URL (safe if it's an absolute URL)``\n // This should help determine the container URL if normalisation happened on the server side.\n resourceIri = new URL(internalResourceInfo.location).href;\n }\n catch (e) {\n // If it's a relative URL then, rely on the response.url to construct the sourceIri\n resourceIri = new URL(internalResourceInfo.location, response.url).href;\n }\n const resourceInfo = {\n internal_resourceInfo: {\n isRawData: false,\n sourceIri: resourceIri,\n },\n };\n const resourceWithResourceInfo = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.freeze)({\n ...solidDataset,\n ...resourceInfo,\n });\n const resourceWithResolvedIris = resolveLocalIrisInSolidDataset(resourceWithResourceInfo);\n return resourceWithResolvedIris;\n}\n/**\n * Create an empty Container inside the Container at the given URL.\n *\n * Throws an error if creating the Container failed, e.g. because the current user does not have\n * permissions to.\n *\n * The Container in which to create the new Container should itself already exist.\n *\n * This function is primarily useful if the current user does not have access to change existing files in\n * a Container, but is allowed to add new files; in other words, they have Append, but not Write\n * access to a Container. This is useful in situations where someone wants to allow others to,\n * for example, send notifications to their Pod, but not to view or delete existing notifications.\n * You can pass a suggestion for the new Resource's name, but the server may decide to give it\n * another name — for example, if a Resource with that name already exists inside the given\n * Container.\n * If the user does have access to write directly to a given location, [[createContainerAt]]\n * will do the job just fine, and does not require the parent Container to exist in advance.\n *\n * @param containerUrl URL of the Container in which the empty Container is to\n * be created.\n * @param options Optional parameter `options.fetch`: An alternative `fetch`\n * function to make the HTTP request, compatible with the browser-native [fetch\n * API](https://developer.mozilla.org/docs/Web/API/WindowOrWorkerGlobalScope/fetch#parameters).`options.slugSuggestion`\n * accepts a string for your new Container's name.\n * @returns A promise that resolves to a SolidDataset with ResourceInfo if\n * successful, and that rejects otherwise.\n * @since 0.2.0\n */\nasync function createContainerInContainer(containerUrl, options = _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_defaultFetchOptions) {\n containerUrl = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.internal_toIriString)(containerUrl);\n const config = {\n ..._resource_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_defaultFetchOptions,\n ...options,\n };\n const headers = {\n \"Content-Type\": \"text/turtle\",\n Link: `<${_constants_mjs__WEBPACK_IMPORTED_MODULE_6__.ldp.BasicContainer}>; rel=\"type\"`,\n };\n if (options.slugSuggestion) {\n headers.slug = options.slugSuggestion;\n }\n const response = await config.fetch(containerUrl, {\n method: \"POST\",\n headers,\n });\n if ((0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isUnsuccessfulResponse)(response)) {\n throw new _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.FetchError(`Creating an empty Container in the Container at [${containerUrl}] failed: [${response.status}] [${response.statusText}] ${await response.text()}.`, response);\n }\n const internalResourceInfo = (0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_parseResourceInfo)(response);\n if (!internalResourceInfo.location) {\n throw new Error(\"Could not determine the location of the newly created Container.\");\n }\n try {\n // Try to parse the location header as a URL (safe if it's an absolute URL)``\n // This should help determine the container URL if normalisation happened on the server side.\n const sourceIri = new URL(internalResourceInfo.location).toString();\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.freeze)({\n ...createSolidDataset(),\n internal_resourceInfo: {\n ...internalResourceInfo,\n sourceIri,\n },\n });\n }\n catch (e) {\n // If it's a relative URL then, rely on the response.url to construct the sourceIri\n }\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.freeze)({\n ...createSolidDataset(),\n internal_resourceInfo: {\n ...internalResourceInfo,\n sourceIri: new URL(internalResourceInfo.location, response.url).href,\n },\n });\n}\n/**\n * Deletes the Container at a given URL.\n *\n * @param container The URL of the Container to delete or the Container Dataset itself (if it has ResourceInfo).\n * @since 0.6.0\n */\nasync function deleteContainer(container, options = _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_defaultFetchOptions) {\n const url = (0,_interfaces_mjs__WEBPACK_IMPORTED_MODULE_8__.hasResourceInfo)(container)\n ? (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.internal_toIriString)((0,_resource_mjs__WEBPACK_IMPORTED_MODULE_2__.getSourceUrl)(container))\n : (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.internal_toIriString)(container);\n if (!(0,_resource_mjs__WEBPACK_IMPORTED_MODULE_2__.isContainer)(container)) {\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?`);\n }\n const config = {\n ..._resource_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_defaultFetchOptions,\n ...options,\n };\n const response = await config.fetch(url, { method: \"DELETE\" });\n if ((0,_resource_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isUnsuccessfulResponse)(response)) {\n throw new _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.FetchError(`Deleting the Container at [${url}] failed: [${response.status}] [${response.statusText}] ${await response.text()}.`, response);\n }\n}\nfunction isChildResource(a, b) {\n const parent = new URL(b);\n const child = new URL(a);\n // Explicitly test on the whole URL to enforce similar origins.\n const isAncestor = child.href.startsWith(parent.href);\n const relativePath = child.pathname\n .substring(parent.pathname.length, child.pathname.length)\n .replace(/(^\\/)|(\\/$)/g, \"\");\n // The child path component that isn't present in the parent should only\n // potentially include slashes at the end (if it is a container).\n return isAncestor && relativePath.length >= 1 && !relativePath.includes(\"/\");\n}\n/**\n * Given a [[SolidDataset]] representing a Container (see [[isContainer]]), fetch the URLs of all\n * contained resources that respect [slash semantics](https://solidproject.org/TR/protocol#uri-slash-semantics)\n * (see {@link validateContainedResourceAll}).\n * If the solidDataset given is not a container, or is missing resourceInfo, throw an error.\n *\n * @param solidDataset The container from which to fetch all contained Resource URLs.\n * @returns A list of URLs, each of which points to a contained Resource of the given SolidDataset.\n * @since 1.3.0\n */\nfunction getContainedResourceUrlAll(solidDataset) {\n const containerUrl = (0,_resource_mjs__WEBPACK_IMPORTED_MODULE_2__.getSourceUrl)(solidDataset);\n const container = (0,_thing_thing_mjs__WEBPACK_IMPORTED_MODULE_10__.getThing)(solidDataset, containerUrl);\n if (container === null) {\n return [];\n }\n // See https://www.w3.org/TR/2015/REC-ldp-20150226/#h-ldpc-http_post:\n // > a containment triple MUST be added to the state of the LDPC whose subject is the LDPC URI,\n // > whose predicate is ldp:contains and whose object is the URI for the newly created document\n return ((0,_thing_get_mjs__WEBPACK_IMPORTED_MODULE_11__.getIriAll)(container, _constants_mjs__WEBPACK_IMPORTED_MODULE_6__.ldp.contains)\n // See https://solidproject.org/TR/protocol#resource-containment\n .filter((childUrl) => isChildResource(childUrl, containerUrl)));\n}\n/**\n * Given a {@link SolidDataset} representing a [Container](https://solidproject.org/TR/protocol#resource-containment)\n * (see {@link isContainer}), verify that all its containment claims are valid. Containment of a resource is valid if\n * it respects [slash semantics](https://solidproject.org/TR/protocol#uri-slash-semantics).\n *\n * For the example, given a container at https://example.org/container/:\n * - The following resources are valid:\n * - https://example.org/container/resource\n * - https://example.org/container/subcontainer/\n * - The following resources are invalid:\n * - https://example.org/container/resource/invalid (not a direct child resource)\n * - https://example.org/container2 (not a child resource)\n * - https://domain2.example.org/container/resource (not a direct child resource)\n *\n * If a component claim is invalid, {@link validateContainedResourceAll} returns the invalid component's URL\n * as part of its return object.\n *\n * Note: It is recommended that this function always be used before calling\n * {@link getContainedResourceUrlAll} since {@link getContainedResourceUrlAll} does not\n * return Resources for which containment is invalid. Using the function in conjunction\n * with {@link getContainedResourceUrlAll} allows for the detection of unexpected behaviour from servers,\n * including malicious containment triples that could appear. Because ESS conforms to the Solid Protocol,\n * i.e., respects slash semantics for its containment triples, validateContainedResourceAll returns true for\n * containers fetched from ESS.\n *\n * @param solidDataset The container from which containment claims are validated.\n * @returns A validation report, including the offending contained resources URL if any.\n * @since unreleased\n */\nfunction validateContainedResourceAll(solidDataset) {\n const containerUrl = (0,_resource_mjs__WEBPACK_IMPORTED_MODULE_2__.getSourceUrl)(solidDataset);\n const container = (0,_thing_thing_mjs__WEBPACK_IMPORTED_MODULE_10__.getThing)(solidDataset, containerUrl);\n if (container === null) {\n return { isValid: true, invalidContainedResources: [] };\n }\n // See https://www.w3.org/TR/2015/REC-ldp-20150226/#h-ldpc-http_post:\n // > a containment triple MUST be added to the state of the LDPC whose subject is the LDPC URI,\n // > whose predicate is ldp:contains and whose object is the URI for the newly created document\n const invalidChildren = (0,_thing_get_mjs__WEBPACK_IMPORTED_MODULE_11__.getIriAll)(container, _constants_mjs__WEBPACK_IMPORTED_MODULE_6__.ldp.contains)\n // See https://solidproject.org/TR/protocol#resource-containment\n .filter((childUrl) => !isChildResource(childUrl, containerUrl));\n if (invalidChildren.length > 0) {\n return { isValid: false, invalidContainedResources: invalidChildren };\n }\n return { isValid: true, invalidContainedResources: [] };\n}\n/**\n * Gets a human-readable representation of the given SolidDataset to aid debugging.\n *\n * Note that changes to the exact format of the return value are not considered a breaking change;\n * it is intended to aid in debugging, not as a serialisation method that can be reliably parsed.\n *\n * @param solidDataset The [[SolidDataset]] to get a human-readable representation of.\n * @since 0.3.0\n */\nfunction solidDatasetAsMarkdown(solidDataset) {\n let readableSolidDataset = \"\";\n if ((0,_interfaces_mjs__WEBPACK_IMPORTED_MODULE_8__.hasResourceInfo)(solidDataset)) {\n readableSolidDataset += `# SolidDataset: ${(0,_resource_mjs__WEBPACK_IMPORTED_MODULE_2__.getSourceUrl)(solidDataset)}\\n`;\n }\n else {\n readableSolidDataset += `# SolidDataset (no URL yet)\\n`;\n }\n const things = (0,_thing_thing_mjs__WEBPACK_IMPORTED_MODULE_10__.getThingAll)(solidDataset);\n if (things.length === 0) {\n readableSolidDataset += \"\\n\\n\";\n }\n else {\n things.forEach((thing) => {\n readableSolidDataset += `\\n${(0,_thing_thing_mjs__WEBPACK_IMPORTED_MODULE_10__.thingAsMarkdown)(thing)}`;\n if ((0,_interfaces_mjs__WEBPACK_IMPORTED_MODULE_8__.hasChangelog)(solidDataset)) {\n readableSolidDataset += `\\n${getReadableChangeLogSummary(solidDataset, thing)}\\n`;\n }\n });\n }\n return readableSolidDataset;\n}\n/**\n * Gets a human-readable representation of the local changes to a Resource to aid debugging.\n *\n * Note that changes to the exact format of the return value are not considered a breaking change;\n * it is intended to aid in debugging, not as a serialisation method that can be reliably parsed.\n *\n * @param solidDataset The Resource of which to get a human-readable representation of the changes applied to it locally.\n * @since 0.3.0\n */\nfunction changeLogAsMarkdown(solidDataset) {\n if (!(0,_interfaces_mjs__WEBPACK_IMPORTED_MODULE_8__.hasResourceInfo)(solidDataset)) {\n return \"This is a newly initialized SolidDataset, so there is no source to compare it to.\";\n }\n if (!(0,_interfaces_mjs__WEBPACK_IMPORTED_MODULE_8__.hasChangelog)(solidDataset) ||\n (solidDataset.internal_changeLog.additions.length === 0 &&\n solidDataset.internal_changeLog.deletions.length === 0)) {\n return (`## Changes compared to ${(0,_resource_mjs__WEBPACK_IMPORTED_MODULE_2__.getSourceUrl)(solidDataset)}\\n\\n` +\n `This SolidDataset has not been modified since it was fetched from ${(0,_resource_mjs__WEBPACK_IMPORTED_MODULE_2__.getSourceUrl)(solidDataset)}.\\n`);\n }\n let readableChangeLog = `## Changes compared to ${(0,_resource_mjs__WEBPACK_IMPORTED_MODULE_2__.getSourceUrl)(solidDataset)}\\n`;\n const changeLogsByThingAndProperty = sortChangeLogByThingAndProperty(solidDataset);\n Object.keys(changeLogsByThingAndProperty).forEach((thingUrl) => {\n readableChangeLog += `\\n### Thing: ${thingUrl}\\n`;\n const changeLogByProperty = changeLogsByThingAndProperty[thingUrl];\n Object.keys(changeLogByProperty).forEach((propertyUrl) => {\n readableChangeLog += `\\nProperty: ${propertyUrl}\\n`;\n const { deleted } = changeLogByProperty[propertyUrl];\n const { added } = changeLogByProperty[propertyUrl];\n if (deleted.length > 0) {\n readableChangeLog += \"- Removed:\\n\";\n readableChangeLog += deleted.reduce((acc, deletedValue) => {\n return `${acc} - ${(0,_thing_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_7__.internal_getReadableValue)(deletedValue)}\\n`;\n }, \"\");\n }\n if (added.length > 0) {\n readableChangeLog += \"- Added:\\n\";\n readableChangeLog += added.reduce((acc, addedValue) => {\n return `${acc} - ${(0,_thing_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_7__.internal_getReadableValue)(addedValue)}\\n`;\n }, \"\");\n }\n });\n });\n return readableChangeLog;\n}\nfunction sortChangeLogByThingAndProperty(solidDataset) {\n const changeLogsByThingAndProperty = Object.create(null);\n solidDataset.internal_changeLog.deletions.forEach((deletion) => {\n var _a, _b;\n var _c;\n const subjectNode = (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_12__.isLocalNode)(deletion.subject)\n ? /* istanbul ignore next: Unsaved deletions should be removed from the additions list instead, so this code path shouldn't be hit: */\n (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_12__.resolveIriForLocalNode)(deletion.subject, (0,_resource_mjs__WEBPACK_IMPORTED_MODULE_2__.getSourceUrl)(solidDataset))\n : deletion.subject;\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_12__.isNamedNode)(subjectNode) || !(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_12__.isNamedNode)(deletion.predicate)) {\n return;\n }\n const thingUrl = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.internal_toIriString)(subjectNode);\n const propertyUrl = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.internal_toIriString)(deletion.predicate);\n (_a = changeLogsByThingAndProperty[thingUrl]) !== null && _a !== void 0 ? _a : (changeLogsByThingAndProperty[thingUrl] = Object.create(null));\n (_b = (_c = changeLogsByThingAndProperty[thingUrl])[propertyUrl]) !== null && _b !== void 0 ? _b : (_c[propertyUrl] = {\n added: [],\n deleted: [],\n });\n changeLogsByThingAndProperty[thingUrl][propertyUrl].deleted.push(deletion.object);\n });\n solidDataset.internal_changeLog.additions.forEach((addition) => {\n var _a, _b;\n var _c;\n const subjectNode = (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_12__.isLocalNode)(addition.subject)\n ? /* istanbul ignore next: setThing already resolves local Subjects when adding them, so this code path should never be hit. */\n (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_12__.resolveIriForLocalNode)(addition.subject, (0,_resource_mjs__WEBPACK_IMPORTED_MODULE_2__.getSourceUrl)(solidDataset))\n : addition.subject;\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_12__.isNamedNode)(subjectNode) || !(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_12__.isNamedNode)(addition.predicate)) {\n return;\n }\n const thingUrl = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.internal_toIriString)(subjectNode);\n const propertyUrl = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.internal_toIriString)(addition.predicate);\n (_a = changeLogsByThingAndProperty[thingUrl]) !== null && _a !== void 0 ? _a : (changeLogsByThingAndProperty[thingUrl] = Object.create(null));\n (_b = (_c = changeLogsByThingAndProperty[thingUrl])[propertyUrl]) !== null && _b !== void 0 ? _b : (_c[propertyUrl] = {\n added: [],\n deleted: [],\n });\n changeLogsByThingAndProperty[thingUrl][propertyUrl].added.push(addition.object);\n });\n return changeLogsByThingAndProperty;\n}\nfunction getReadableChangeLogSummary(solidDataset, thing) {\n const subject = _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.DataFactory.namedNode(thing.url);\n const nrOfAdditions = solidDataset.internal_changeLog.additions.reduce((count, addition) => (addition.subject.equals(subject) ? count + 1 : count), 0);\n const nrOfDeletions = solidDataset.internal_changeLog.deletions.reduce((count, deletion) => (deletion.subject.equals(subject) ? count + 1 : count), 0);\n const additionString = nrOfAdditions === 1\n ? \"1 new value added\"\n : `${nrOfAdditions} new values added`;\n const deletionString = nrOfDeletions === 1 ? \"1 value removed\" : `${nrOfDeletions} values removed`;\n return `(${additionString} / ${deletionString})`;\n}\nfunction getNamedNodesForLocalNodes(quad) {\n const subject = (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_12__.isNamedNode)(quad.subject)\n ? getNamedNodeFromLocalNode(quad.subject)\n : /* istanbul ignore next: We don't allow non-NamedNodes as the Subject, so this code path should never be hit: */\n quad.subject;\n const object = (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_12__.isNamedNode)(quad.object)\n ? getNamedNodeFromLocalNode(quad.object)\n : quad.object;\n return _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.DataFactory.quad(subject, quad.predicate, object, quad.graph);\n}\nfunction getNamedNodeFromLocalNode(node) {\n if ((0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.isLocalNodeIri)(node.value)) {\n return _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.DataFactory.namedNode(`#${(0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.getLocalNodeName)(node.value)}`);\n }\n return node;\n}\nfunction resolveLocalIrisInSolidDataset(solidDataset) {\n const resourceIri = (0,_resource_mjs__WEBPACK_IMPORTED_MODULE_2__.getSourceUrl)(solidDataset);\n const defaultGraph = solidDataset.graphs.default;\n const thingIris = Object.keys(defaultGraph);\n const updatedDefaultGraph = thingIris.reduce((graphAcc, thingIri) => {\n const resolvedThing = resolveLocalIrisInThing(graphAcc[thingIri], resourceIri);\n const resolvedThingIri = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.isLocalNodeIri)(thingIri)\n ? `${resourceIri}#${(0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.getLocalNodeName)(thingIri)}`\n : thingIri;\n const updatedGraph = { ...graphAcc };\n delete updatedGraph[thingIri];\n updatedGraph[resolvedThingIri] = resolvedThing;\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.freeze)(updatedGraph);\n }, defaultGraph);\n const updatedGraphs = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.freeze)({\n ...solidDataset.graphs,\n default: updatedDefaultGraph,\n });\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.freeze)({\n ...solidDataset,\n graphs: updatedGraphs,\n });\n}\nfunction resolveLocalIrisInThing(thing, baseIri) {\n const predicateIris = Object.keys(thing.predicates);\n const updatedPredicates = predicateIris.reduce((predicatesAcc, predicateIri) => {\n var _a;\n const namedNodes = (_a = predicatesAcc[predicateIri].namedNodes) !== null && _a !== void 0 ? _a : [];\n if (namedNodes.every((namedNode) => !(0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.isLocalNodeIri)(namedNode))) {\n // This Predicate has no local node Objects, so return it unmodified:\n return predicatesAcc;\n }\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)\n ? `${baseIri}#${(0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.getLocalNodeName)(namedNode)}`\n : namedNode));\n const updatedPredicate = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.freeze)({\n ...predicatesAcc[predicateIri],\n namedNodes: updatedNamedNodes,\n });\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.freeze)({\n ...predicatesAcc,\n [predicateIri]: updatedPredicate,\n });\n }, thing.predicates);\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.freeze)({\n ...thing,\n predicates: updatedPredicates,\n url: (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.isLocalNodeIri)(thing.url)\n ? `${baseIri}#${(0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.getLocalNodeName)(thing.url)}`\n : thing.url,\n });\n}\n/**\n * @hidden\n *\n * Fetch a SolidDataset containing information about the capabilities of the\n * storage server that hosts the given resource URL. For more information,\n * please see the [ESS\n * Documentation](https://docs.inrupt.com/ess/latest/services/discovery-endpoint/#well-known-solid).\n *\n * **Note:** The data contained in this dataset has changed between ESS 1.1 and\n * ESS 2.0, as such you will need to check for multiple predicates to support\n * both versions.\n *\n * ```typescript\n * const wellKnown = await getWellKnownSolid(resource);\n *\n * // The wellKnown dataset uses a blank node for the subject all of it’s predicates,\n * // such that we need to call getThingAll with acceptBlankNodes set to true to\n * // retrieve back predicates contained within the dataset\n * const wellKnownSubjects = getThingAll(wellKnown, {\n * acceptBlankNodes: true,\n * });\n * const wellKnownSubject = wellKnownSubjects[0];\n *\n * // Retrieve a value from the wellKnown dataset:\n * let notificationGateway = getIri(\n * wellKnownSubject,\n * \"http://www.w3.org/ns/solid/terms#notificationGateway\"\n * );\n * ```\n *\n *\n * @param url URL of a Resource.\n * @param options Optional parameter `options.fetch`: An alternative `fetch`\n * function to make the HTTP request, compatible with the browser-native [fetch\n * API](https://developer.mozilla.org/docs/Web/API/WindowOrWorkerGlobalScope/fetch#parameters).\n * @returns Promise resolving to a [[SolidDataset]] containing the data at\n * '.well-known/solid' for the given Resource, or rejecting if fetching it\n * failed.\n * @since 1.12.0\n */\nasync function getWellKnownSolid(url, options = _resource_mjs__WEBPACK_IMPORTED_MODULE_2__.internal_defaultFetchOptions) {\n const urlString = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.internal_toIriString)(url);\n // Try to fetch the well-known solid dataset from the server's root\n try {\n const wellKnownSolidUrl = new URL(\"/.well-known/solid\", new URL(urlString).origin).href;\n return await getSolidDataset(wellKnownSolidUrl, {\n fetch: _fetcher_mjs__WEBPACK_IMPORTED_MODULE_13__.fetch,\n });\n }\n catch (e) {\n // In case of error, do nothing and try to discover the .well-known\n // at the pod's root.\n }\n // 1.1s implementation:\n const resourceMetadata = await (0,_resource_mjs__WEBPACK_IMPORTED_MODULE_2__.getResourceInfo)(urlString, {\n fetch: options.fetch,\n // Discovering the .well-known/solid document is useful even for resources\n // we don't have access to.\n ignoreAuthenticationErrors: true,\n });\n const linkedResources = (0,_resource_mjs__WEBPACK_IMPORTED_MODULE_2__.getLinkedResourceUrlAll)(resourceMetadata);\n const rootResources = linkedResources[_constants_mjs__WEBPACK_IMPORTED_MODULE_6__.pim.storage];\n const rootResource = (rootResources === null || rootResources === void 0 ? void 0 : rootResources.length) === 1 ? rootResources[0] : null;\n // If pod root (storage) was advertised, retrieve well known solid from pod's root\n if (rootResource !== null) {\n const wellKnownSolidUrl = new URL(\".well-known/solid\", rootResource.endsWith(\"/\") ? rootResource : `${rootResource}/`).href;\n return getSolidDataset(wellKnownSolidUrl, {\n ...options,\n parsers: {\n \"application/ld+json\": (0,_formats_jsonLd_mjs__WEBPACK_IMPORTED_MODULE_14__.getJsonLdParser)(),\n },\n });\n }\n throw new Error(\"Could not determine storage root or well-known solid resource.\");\n}\n\n\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/@inrupt/solid-client/dist/resource/solidDataset.mjs?"); /***/ }), /***/ "./node_modules/@inrupt/solid-client/dist/thing/add.mjs": /*!**************************************************************!*\ !*** ./node_modules/@inrupt/solid-client/dist/thing/add.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 */ addBoolean: () => (/* binding */ addBoolean),\n/* harmony export */ addDate: () => (/* binding */ addDate),\n/* harmony export */ addDatetime: () => (/* binding */ addDatetime),\n/* harmony export */ addDecimal: () => (/* binding */ addDecimal),\n/* harmony export */ addInteger: () => (/* binding */ addInteger),\n/* harmony export */ addIri: () => (/* binding */ addIri),\n/* harmony export */ addLiteral: () => (/* binding */ addLiteral),\n/* harmony export */ addNamedNode: () => (/* binding */ addNamedNode),\n/* harmony export */ addStringEnglish: () => (/* binding */ addStringEnglish),\n/* harmony export */ addStringNoLocale: () => (/* binding */ addStringNoLocale),\n/* harmony export */ addStringWithLocale: () => (/* binding */ addStringWithLocale),\n/* harmony export */ addTerm: () => (/* binding */ addTerm),\n/* harmony export */ addTime: () => (/* binding */ addTime),\n/* harmony export */ addUrl: () => (/* binding */ addUrl)\n/* harmony export */ });\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 _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../datatypes.mjs */ \"./node_modules/@inrupt/solid-client/dist/datatypes.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\n\n\n\n\n\n//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n/**\n * Create a new Thing with a URL added for a Property.\n *\n * This preserves existing values for the given Property. To replace them, see [[setUrl]].\n *\n * The original `thing` is not modified; this function returns a cloned Thing with updated values.\n *\n * @param thing Thing to add a URL value to.\n * @param property Property for which to add the given URL value.\n * @param url URL to add to `thing` for the given `property`.\n * @returns A new Thing equal to the input Thing with the given value added for the given Property.\n */\nconst addUrl = (thing, property, url) => {\n var _a, _b;\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isValidUrl)(property)) {\n throw new _thing_mjs__WEBPACK_IMPORTED_MODULE_2__.ValidPropertyUrlExpectedError(property);\n }\n if (!(0,_thing_mjs__WEBPACK_IMPORTED_MODULE_2__.isThing)(url) && !(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isValidUrl)(url)) {\n throw new _thing_mjs__WEBPACK_IMPORTED_MODULE_2__.ValidValueUrlExpectedError(url);\n }\n const predicateIri = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.internal_toIriString)(property);\n const existingPredicate = (_a = thing.predicates[predicateIri]) !== null && _a !== void 0 ? _a : {};\n const existingNamedNodes = (_b = existingPredicate.namedNodes) !== null && _b !== void 0 ? _b : [];\n let iriToAdd;\n if ((0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.isNamedNode)(url)) {\n iriToAdd = url.value;\n }\n else if (typeof url === \"string\") {\n iriToAdd = url;\n }\n else if ((0,_thing_mjs__WEBPACK_IMPORTED_MODULE_2__.isThingLocal)(url)) {\n iriToAdd = url.url;\n }\n else {\n iriToAdd = (0,_thing_mjs__WEBPACK_IMPORTED_MODULE_2__.asIri)(url);\n }\n const updatedNamedNodes = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)(existingNamedNodes.concat((0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.internal_toIriString)(iriToAdd)));\n const updatedPredicate = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)({\n ...existingPredicate,\n namedNodes: updatedNamedNodes,\n });\n const updatedPredicates = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)({\n ...thing.predicates,\n [predicateIri]: updatedPredicate,\n });\n const updatedThing = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)({\n ...thing,\n predicates: updatedPredicates,\n });\n return updatedThing;\n};\n/** @hidden Alias for [[addUrl]] for those who prefer IRI terminology. */\nconst addIri = addUrl;\n/**\n * Create a new Thing with a boolean added for a Property.\n *\n * This preserves existing values for the given Property. To replace them, see [[setBoolean]].\n *\n * The original `thing` is not modified; this function returns a cloned Thing with updated values.\n *\n * @param thing Thing to add a boolean value to.\n * @param property Property for which to add the given boolean value.\n * @param value Boolean to add to `thing` for the given `property`.\n * @returns A new Thing equal to the input Thing with the given value added for the given Property.\n */\nconst addBoolean = (thing, property, value) => {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n return addLiteralOfType(thing, property, (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.serializeBoolean)(value), _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.boolean);\n};\n/**\n * Create a new Thing with a datetime added for a Property.\n *\n * This preserves existing values for the given Property. To replace them, see [[setDatetime]].\n *\n * The original `thing` is not modified; this function returns a cloned Thing with updated values.\n *\n * @param thing Thing to add a datetime value to.\n * @param property Property for which to add the given datetime value.\n * @param value Datetime to add to `thing` for the given `property`.\n * @returns A new Thing equal to the input Thing with the given value added for the given Property.\n */\nconst addDatetime = (thing, property, value) => {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n return addLiteralOfType(thing, property, (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.serializeDatetime)(value), _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.dateTime);\n};\n/**\n * Create a new Thing with a date added for a Property.\n *\n * This preserves existing values for the given Property. To replace them, see [[setDate]].\n *\n * The original `thing` is not modified; this function returns a cloned Thing with updated values.\n *\n * @param thing Thing to add a date value to.\n * @param property Property for which to add the given date value.\n * @param value Date to add to `thing` for the given `property`.\n * @returns A new Thing equal to the input Thing with the given value added for the given Property.\n * @since 1.10.0\n */\nconst addDate = (thing, property, value) => {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n return addLiteralOfType(thing, property, (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.serializeDate)(value), _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.date);\n};\n/**\n * Create a new Thing with a time added for a Property.\n *\n * This preserves existing values for the given Property. To replace them, see [[setDatetime]].\n *\n * The original `thing` is not modified; this function returns a cloned Thing with updated values.\n *\n * @param thing Thing to add a datetime value to.\n * @param property Property for which to add the given datetime value.\n * @param value time to add to `thing` for the given `property`.\n * @returns A new Thing equal to the input Thing with the given value added for the given Property.\n * @since 1.10.0\n */\nconst addTime = (thing, property, value) => {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n return addLiteralOfType(thing, property, (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.serializeTime)(value), _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.time);\n};\n/**\n * Create a new Thing with a decimal added for a Property.\n *\n * This preserves existing values for the given Property. To replace them, see [[setDecimal]].\n *\n * The original `thing` is not modified; this function returns a cloned Thing with updated values.\n *\n * @param thing Thing to add a decimal value to.\n * @param property Property for which to add the given decimal value.\n * @param value Decimal to add to `thing` for the given `property`.\n * @returns A new Thing equal to the input Thing with the given value added for the given Property.\n */\nconst addDecimal = (thing, property, value) => {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n return addLiteralOfType(thing, property, (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.serializeDecimal)(value), _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.decimal);\n};\n/**\n * Create a new Thing with an integer added for a Property.\n *\n * This preserves existing values for the given Property. To replace them, see [[setInteger]].\n *\n * The original `thing` is not modified; this function returns a cloned Thing with updated values.\n *\n * @param thing Thing to add an integer value to.\n * @param property Property for which to add the given integer value.\n * @param value Integer to add to `thing` for the given `property`.\n * @returns A new Thing equal to the input Thing with the given value added for the given Property.\n */\nconst addInteger = (thing, property, value) => {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n return addLiteralOfType(thing, property, (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.serializeInteger)(value), _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.integer);\n};\n/**\n * Create a new Thing with an English string added for a Property.\n *\n * This preserves existing values for the given Property. To replace them, see [[setStringEnglish]].\n *\n * The original `thing` is not modified; this function returns a cloned Thing with updated values.\n *\n * @param thing Thing to add a localised string value to.\n * @param property Property for which to add the given string value.\n * @param value String to add to `thing` for the given `property`.\n * @returns A new Thing equal to the input Thing with the given value added for the given Property.\n * @since 1.13.0\n */\nfunction addStringEnglish(thing, property, value) {\n return addStringWithLocale(thing, property, value, \"en\");\n}\n/**\n * Create a new Thing with a localised string added for a Property.\n *\n * This preserves existing values for the given Property. To replace them, see [[setStringWithLocale]].\n *\n * The original `thing` is not modified; this function returns a cloned Thing with updated values.\n *\n * @param thing Thing to add a localised string value to.\n * @param property Property for which to add the given string value.\n * @param value String to add to `thing` for the given `property`.\n * @param locale Locale of the added string.\n * @returns A new Thing equal to the input Thing with the given value added for the given Property.\n */\nfunction addStringWithLocale(thing, property, value, locale) {\n var _a, _b, _c;\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isValidUrl)(property)) {\n throw new _thing_mjs__WEBPACK_IMPORTED_MODULE_2__.ValidPropertyUrlExpectedError(property);\n }\n const predicateIri = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.internal_toIriString)(property);\n const normalizedLocale = (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.normalizeLocale)(locale);\n const existingPredicate = (_a = thing.predicates[predicateIri]) !== null && _a !== void 0 ? _a : {};\n const existingLangStrings = (_b = existingPredicate.langStrings) !== null && _b !== void 0 ? _b : {};\n const existingStringsInLocale = (_c = existingLangStrings[normalizedLocale]) !== null && _c !== void 0 ? _c : [];\n const updatedStringsInLocale = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)(existingStringsInLocale.concat(value));\n const updatedLangStrings = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)({\n ...existingLangStrings,\n [normalizedLocale]: updatedStringsInLocale,\n });\n const updatedPredicate = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)({\n ...existingPredicate,\n langStrings: updatedLangStrings,\n });\n const updatedPredicates = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)({\n ...thing.predicates,\n [predicateIri]: updatedPredicate,\n });\n const updatedThing = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)({\n ...thing,\n predicates: updatedPredicates,\n });\n return updatedThing;\n}\n/**\n * Create a new Thing with an unlocalised string added for a Property.\n *\n * This preserves existing values for the given Property. To replace them, see [[setStringNoLocale]].\n *\n * The original `thing` is not modified; this function returns a cloned Thing with updated values.\n *\n * @param thing Thing to add an unlocalised string value to.\n * @param property Property for which to add the given string value.\n * @param value String to add to `thing` for the given `property`.\n * @returns A new Thing equal to the input Thing with the given value added for the given Property.\n */\nconst addStringNoLocale = (thing, property, value) => {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n return addLiteralOfType(thing, property, value, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.string);\n};\n/**\n * Create a new Thing with a Named Node added for a Property.\n *\n * This preserves existing values for the given Property. To replace them, see [[setNamedNode]].\n *\n * The original `thing` is not modified; this function returns a cloned Thing with updated values.\n *\n * @ignore This should not be needed due to the other add*() functions. If you do find yourself needing it, please file a feature request for your use case.\n * @param thing The [[Thing]] to add a Named Node to.\n * @param property Property for which to add a value.\n * @param value The Named Node to add.\n * @returns A new Thing equal to the input Thing with the given value added for the given Property.\n */\nfunction addNamedNode(thing, property, value) {\n return addUrl(thing, property, value.value);\n}\n/**\n * Create a new Thing with a Literal added for a Property.\n *\n * This preserves existing values for the given Property. To replace them, see [[setLiteral]].\n *\n * The original `thing` is not modified; this function returns a cloned Thing with updated values.\n *\n * @ignore This should not be needed due to the other add*() functions. If you do find yourself needing it, please file a feature request for your use case.\n * @param thing The [[Thing]] to add a Literal to.\n * @param property Property for which to add a value.\n * @param value The Literal to add.\n * @returns A new Thing equal to the input Thing with the given value added for the given Property.\n */\nfunction addLiteral(thing, property, value) {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isValidUrl)(property)) {\n throw new _thing_mjs__WEBPACK_IMPORTED_MODULE_2__.ValidPropertyUrlExpectedError(property);\n }\n const typeIri = value.datatype.value;\n if (typeIri === _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.langString) {\n return addStringWithLocale(thing, property, value.value, value.language);\n }\n return addLiteralOfType(thing, property, value.value, value.datatype.value);\n}\n/**\n * Creates a new Thing with a Term added for a Property.\n *\n * This preserves existing values for the given Property. To replace them, see [[setTerm]].\n *\n * The original `thing` is not modified; this function returns a cloned Thing with updated values.\n *\n * @ignore This should not be needed due to the other add*() functions. If you do find yourself needing it, please file a feature request for your use case.\n * @param thing The [[Thing]] to add a Term to.\n * @param property Property for which to add a value.\n * @param value The Term to add.\n * @returns A new Thing equal to the input Thing with the given value added for the given Property.\n * @since 0.3.0\n */\nfunction addTerm(thing, property, value) {\n var _a, _b;\n if (value.termType === \"NamedNode\") {\n return addNamedNode(thing, property, value);\n }\n if (value.termType === \"Literal\") {\n return addLiteral(thing, property, value);\n }\n if (value.termType === \"BlankNode\") {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isValidUrl)(property)) {\n throw new _thing_mjs__WEBPACK_IMPORTED_MODULE_2__.ValidPropertyUrlExpectedError(property);\n }\n const predicateIri = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.internal_toIriString)(property);\n const existingPredicate = (_a = thing.predicates[predicateIri]) !== null && _a !== void 0 ? _a : {};\n const existingBlankNodes = (_b = existingPredicate.blankNodes) !== null && _b !== void 0 ? _b : [];\n const updatedBlankNodes = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)(existingBlankNodes.concat((0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.getBlankNodeId)(value)));\n const updatedPredicate = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)({\n ...existingPredicate,\n blankNodes: updatedBlankNodes,\n });\n const updatedPredicates = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)({\n ...thing.predicates,\n [predicateIri]: updatedPredicate,\n });\n const updatedThing = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)({\n ...thing,\n predicates: updatedPredicates,\n });\n return updatedThing;\n }\n throw new Error(`Term type [${value.termType}] is not supported by @inrupt/solid-client.`);\n}\nfunction addLiteralOfType(thing, property, value, type) {\n var _a, _b, _c;\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isValidUrl)(property)) {\n throw new _thing_mjs__WEBPACK_IMPORTED_MODULE_2__.ValidPropertyUrlExpectedError(property);\n }\n const predicateIri = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.internal_toIriString)(property);\n const existingPredicate = (_a = thing.predicates[predicateIri]) !== null && _a !== void 0 ? _a : {};\n const existingLiterals = (_b = existingPredicate.literals) !== null && _b !== void 0 ? _b : {};\n const existingValuesOfType = (_c = existingLiterals[type]) !== null && _c !== void 0 ? _c : [];\n const updatedValuesOfType = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)(existingValuesOfType.concat(value));\n const updatedLiterals = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)({\n ...existingLiterals,\n [type]: updatedValuesOfType,\n });\n const updatedPredicate = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)({\n ...existingPredicate,\n literals: updatedLiterals,\n });\n const updatedPredicates = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)({\n ...thing.predicates,\n [predicateIri]: updatedPredicate,\n });\n const updatedThing = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)({\n ...thing,\n predicates: updatedPredicates,\n });\n return updatedThing;\n}\n\n\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/@inrupt/solid-client/dist/thing/add.mjs?"); /***/ }), /***/ "./node_modules/@inrupt/solid-client/dist/thing/build.mjs": /*!****************************************************************!*\ !*** ./node_modules/@inrupt/solid-client/dist/thing/build.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 */ buildThing: () => (/* binding */ buildThing)\n/* harmony export */ });\n/* harmony import */ var _add_mjs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./add.mjs */ \"./node_modules/@inrupt/solid-client/dist/thing/add.mjs\");\n/* harmony import */ var _remove_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./remove.mjs */ \"./node_modules/@inrupt/solid-client/dist/thing/remove.mjs\");\n/* harmony import */ var _set_mjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./set.mjs */ \"./node_modules/@inrupt/solid-client/dist/thing/set.mjs\");\n/* harmony import */ var _thing_mjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./thing.mjs */ \"./node_modules/@inrupt/solid-client/dist/thing/thing.mjs\");\n\n\n\n\n\n//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n/**\n * Create or modify a [[Thing]], setting multiple properties in a single expresssion.\n *\n * For example, you can create a new Thing and initialise several properties as follows:\n *\n * const me = buildThing()\n * .addUrl(rdf.type, schema.Person)\n * .addStringNoLocale(schema.givenName, \"Vincent\")\n * .build();\n *\n * Take note of the final call to `.build()` to obtain the actual Thing.\n *\n * @param init Optionally pass an existing [[Thing]] to modify the properties of. If left empty, `buildThing` will initialise a new Thing.\n * @returns a [[ThingBuilder]], a Fluent API that allows you to set multiple properties in a single expression.\n * @since 1.9.0\n */\nfunction buildThing(init = (0,_thing_mjs__WEBPACK_IMPORTED_MODULE_0__.createThing)()) {\n let thing = (0,_thing_mjs__WEBPACK_IMPORTED_MODULE_0__.isThing)(init) ? init : (0,_thing_mjs__WEBPACK_IMPORTED_MODULE_0__.createThing)(init);\n function getAdder(adder) {\n return (property, value) => {\n thing = adder(thing, property, value);\n return builder;\n };\n }\n function getSetter(setter) {\n return (property, value) => {\n thing = setter(thing, property, value);\n return builder;\n };\n }\n function getRemover(remover) {\n return (property, value) => {\n thing = remover(thing, property, value);\n return builder;\n };\n }\n const builder = {\n build: () => thing,\n addUrl: getAdder(_add_mjs__WEBPACK_IMPORTED_MODULE_1__.addUrl),\n addIri: getAdder(_add_mjs__WEBPACK_IMPORTED_MODULE_1__.addIri),\n addBoolean: getAdder(_add_mjs__WEBPACK_IMPORTED_MODULE_1__.addBoolean),\n addDatetime: getAdder(_add_mjs__WEBPACK_IMPORTED_MODULE_1__.addDatetime),\n addDate: getAdder(_add_mjs__WEBPACK_IMPORTED_MODULE_1__.addDate),\n addTime: getAdder(_add_mjs__WEBPACK_IMPORTED_MODULE_1__.addTime),\n addDecimal: getAdder(_add_mjs__WEBPACK_IMPORTED_MODULE_1__.addDecimal),\n addInteger: getAdder(_add_mjs__WEBPACK_IMPORTED_MODULE_1__.addInteger),\n addStringNoLocale: getAdder(_add_mjs__WEBPACK_IMPORTED_MODULE_1__.addStringNoLocale),\n addStringEnglish: (property, value) => {\n thing = (0,_add_mjs__WEBPACK_IMPORTED_MODULE_1__.addStringWithLocale)(thing, property, value, \"en\");\n return builder;\n },\n addStringWithLocale: (property, value, locale) => {\n thing = (0,_add_mjs__WEBPACK_IMPORTED_MODULE_1__.addStringWithLocale)(thing, property, value, locale);\n return builder;\n },\n addNamedNode: getAdder(_add_mjs__WEBPACK_IMPORTED_MODULE_1__.addNamedNode),\n addLiteral: getAdder(_add_mjs__WEBPACK_IMPORTED_MODULE_1__.addLiteral),\n addTerm: getAdder(_add_mjs__WEBPACK_IMPORTED_MODULE_1__.addTerm),\n setUrl: getSetter(_set_mjs__WEBPACK_IMPORTED_MODULE_2__.setUrl),\n setIri: getSetter(_set_mjs__WEBPACK_IMPORTED_MODULE_2__.setIri),\n setBoolean: getSetter(_set_mjs__WEBPACK_IMPORTED_MODULE_2__.setBoolean),\n setDatetime: getSetter(_set_mjs__WEBPACK_IMPORTED_MODULE_2__.setDatetime),\n setDate: getSetter(_set_mjs__WEBPACK_IMPORTED_MODULE_2__.setDate),\n setTime: getSetter(_set_mjs__WEBPACK_IMPORTED_MODULE_2__.setTime),\n setDecimal: getSetter(_set_mjs__WEBPACK_IMPORTED_MODULE_2__.setDecimal),\n setInteger: getSetter(_set_mjs__WEBPACK_IMPORTED_MODULE_2__.setInteger),\n setStringNoLocale: getSetter(_set_mjs__WEBPACK_IMPORTED_MODULE_2__.setStringNoLocale),\n setStringEnglish: (property, value) => {\n thing = (0,_set_mjs__WEBPACK_IMPORTED_MODULE_2__.setStringWithLocale)(thing, property, value, \"en\");\n return builder;\n },\n setStringWithLocale: (property, value, locale) => {\n thing = (0,_set_mjs__WEBPACK_IMPORTED_MODULE_2__.setStringWithLocale)(thing, property, value, locale);\n return builder;\n },\n setNamedNode: getSetter(_set_mjs__WEBPACK_IMPORTED_MODULE_2__.setNamedNode),\n setLiteral: getSetter(_set_mjs__WEBPACK_IMPORTED_MODULE_2__.setLiteral),\n setTerm: getSetter(_set_mjs__WEBPACK_IMPORTED_MODULE_2__.setTerm),\n removeAll: (property) => {\n thing = (0,_remove_mjs__WEBPACK_IMPORTED_MODULE_3__.removeAll)(thing, property);\n return builder;\n },\n removeUrl: getRemover(_remove_mjs__WEBPACK_IMPORTED_MODULE_3__.removeUrl),\n removeIri: getRemover(_remove_mjs__WEBPACK_IMPORTED_MODULE_3__.removeIri),\n removeBoolean: getRemover(_remove_mjs__WEBPACK_IMPORTED_MODULE_3__.removeBoolean),\n removeDatetime: getRemover(_remove_mjs__WEBPACK_IMPORTED_MODULE_3__.removeDatetime),\n removeDate: getRemover(_remove_mjs__WEBPACK_IMPORTED_MODULE_3__.removeDate),\n removeTime: getRemover(_remove_mjs__WEBPACK_IMPORTED_MODULE_3__.removeTime),\n removeDecimal: getRemover(_remove_mjs__WEBPACK_IMPORTED_MODULE_3__.removeDecimal),\n removeInteger: getRemover(_remove_mjs__WEBPACK_IMPORTED_MODULE_3__.removeInteger),\n removeStringNoLocale: getRemover(_remove_mjs__WEBPACK_IMPORTED_MODULE_3__.removeStringNoLocale),\n removeStringEnglish: (property, value) => buildThing((0,_remove_mjs__WEBPACK_IMPORTED_MODULE_3__.removeStringWithLocale)(thing, property, value, \"en\")),\n removeStringWithLocale: (property, value, locale) => buildThing((0,_remove_mjs__WEBPACK_IMPORTED_MODULE_3__.removeStringWithLocale)(thing, property, value, locale)),\n removeNamedNode: getRemover(_remove_mjs__WEBPACK_IMPORTED_MODULE_3__.removeNamedNode),\n removeLiteral: getRemover(_remove_mjs__WEBPACK_IMPORTED_MODULE_3__.removeLiteral),\n };\n return builder;\n}\n\n\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/@inrupt/solid-client/dist/thing/build.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 */ getStringEnglish: () => (/* binding */ getStringEnglish),\n/* harmony export */ getStringEnglishAll: () => (/* binding */ getStringEnglishAll),\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//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n/**\n * Returns the URLs of all Properties that the given [[Thing ]]has values for.b\n *\n * @param thing The [[Thing]] of which to get that Property URLs that have a value.\n * @returns The URLs of the Properties for which values are defined for the given Thing.\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.\n */\nfunction getPropertyAll(thing) {\n return Object.keys(thing.predicates).filter((predicate) => getTerm(thing, predicate) !== null);\n}\n/**\n * Returns the URL value of the specified Property from a [[Thing]].\n * If the Property is not present or its value is not of type URL, returns null.\n * If the Property has multiple URL values, returns one of its URL values.\n *\n * @param thing The [[Thing]] to read a URL value from.\n * @param property The Property whose URL value to return.\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.\n */\nfunction getUrl(thing, property) {\n var _a, _b, _c;\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isValidUrl)(property)) {\n throw new _thing_mjs__WEBPACK_IMPORTED_MODULE_2__.ValidPropertyUrlExpectedError(property);\n }\n const predicateUrl = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.internal_toIriString)(property);\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;\n if (firstUrl === null) {\n return null;\n }\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.isLocalNodeIri)(firstUrl) ? `#${(0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.getLocalNodeName)(firstUrl)}` : firstUrl;\n}\n/** @hidden Alias of [[getUrl]] for those who prefer IRI terminology. */\nconst getIri = getUrl;\n/**\n * Returns the URL values of the specified Property from a [[Thing]].\n * If the Property is not present, returns an empty array.\n * If the Property's value is not of type URL, omits that value in the array.\n *\n * @param thing The [[Thing]] to read the URL values from.\n * @param property The Property whose URL values to return.\n * @returns An array of URL values for the given Property.\n */\nfunction getUrlAll(thing, property) {\n var _a, _b, _c;\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isValidUrl)(property)) {\n throw new _thing_mjs__WEBPACK_IMPORTED_MODULE_2__.ValidPropertyUrlExpectedError(property);\n }\n const predicateUrl = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.internal_toIriString)(property);\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 : []);\n}\n/** @hidden Alias of [[getUrlAll]] for those who prefer IRI terminology. */\nconst getIriAll = getUrlAll;\n/**\n * Returns the boolean value of the specified Property from a [[Thing]].\n * If the Property is not present or its value is not of type boolean, returns null.\n * If the Property has multiple boolean values, returns one of its values.\n *\n * @param thing The [[Thing]] to read a boolean value from.\n * @param property The Property whose boolean value to return.\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.\n */\nfunction getBoolean(thing, property) {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n const literalString = getLiteralOfType(thing, property, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.boolean);\n if (literalString === null) {\n return null;\n }\n return (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.deserializeBoolean)(literalString);\n}\n/**\n * Returns the boolean values of the specified Property from a [[Thing]].\n * If the Property is not present, returns an empty array.\n * If the Property's value is not of type boolean, omits that value in the array.\n *\n * @param thing The [[Thing]] to read the boolean values from.\n * @param property The Property whose boolean values to return.\n * @returns An array of boolean values for the given Property.\n */\nfunction getBooleanAll(thing, property) {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n const literalStrings = getLiteralAllOfType(thing, property, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.boolean);\n return literalStrings\n .map(_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.deserializeBoolean)\n .filter((possibleBoolean) => possibleBoolean !== null);\n}\n/**\n * Returns the datetime value of the specified Property from a [[Thing]].\n * If the Property is not present or its value is not of type datetime, returns null.\n * If the Property has multiple datetime values, returns one of its values.\n *\n * @param thing The [[Thing]] to read a datetime value from.\n * @param property The Property whose datetime value to return.\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.\n */\nfunction getDatetime(thing, property) {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n const literalString = getLiteralOfType(thing, property, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.dateTime);\n if (literalString === null) {\n return null;\n }\n return (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.deserializeDatetime)(literalString);\n}\n/**\n * Returns the datetime values of the specified Property from a [[Thing]].\n * If the Property is not present, returns an empty array.\n * If the Property's value is not of type datetime, omits that value in the array.\n *\n * @param thing The [[Thing]] to read the datetime values from.\n * @param property The Property whose datetime values to return.\n * @returns An array of datetime values for the given Property.\n */\nfunction getDatetimeAll(thing, property) {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n const literalStrings = getLiteralAllOfType(thing, property, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.dateTime);\n return literalStrings\n .map(_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.deserializeDatetime)\n .filter((potentialDatetime) => potentialDatetime !== null);\n}\n/**\n * Returns the date value of the specified Property from a [[Thing]].\n * If the Property is not present or its value is not of type date, returns null.\n * If the Property has multiple date values, returns one of its values.\n *\n * @param thing The [[Thing]] to read a date value from.\n * @param property The Property whose date value to return.\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.\n * @since 1.10.0\n */\nfunction getDate(thing, property) {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n const literalString = getLiteralOfType(thing, property, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.date);\n if (literalString === null) {\n return null;\n }\n return (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.deserializeDate)(literalString);\n}\n/**\n * Returns the date values of the specified Property from a [[Thing]].\n * If the Property is not present, returns an empty array.\n * If the Property's value is not of type date, omits that value in the array.\n *\n * @param thing The [[Thing]] to read the date values from.\n * @param property The Property whose date values to return.\n * @returns An array of date values for the given Property.\n * @since 1.10.0\n */\nfunction getDateAll(thing, property) {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n const literalStrings = getLiteralAllOfType(thing, property, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.date);\n return literalStrings\n .map(_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.deserializeDate)\n .filter((potentialDate) => potentialDate !== null);\n}\n/**\n * Returns the time value of the specified Property from a [[Thing]].\n * If the Property is not present or its value is not of type time, returns null.\n * If the Property has multiple time values, returns one of its values.\n *\n * @param thing The [[Thing]] to read a time value from.\n * @param property The Property whose time value to return.\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.\n * @since 1.10.0\n */\nfunction getTime(thing, property) {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n const literalString = getLiteralOfType(thing, property, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.time);\n if (literalString === null) {\n return null;\n }\n return (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.deserializeTime)(literalString);\n}\n/**\n * Returns the time values of the specified Property from a [[Thing]].\n * If the Property is not present, returns an empty array.\n * If the Property's value is not of type time, omits that value in the array.\n *\n * @param thing The [[Thing]] to read the time values from.\n * @param property The Property whose time values to return.\n * @returns An array of time values for the given Property.\n * @since 1.10.0\n */\nfunction getTimeAll(thing, property) {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n const literalStrings = getLiteralAllOfType(thing, property, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.time);\n return literalStrings\n .map(_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.deserializeTime)\n .filter((potentialTime) => potentialTime !== null);\n}\n/**\n * Returns the decimal value of the specified Property from a [[Thing]].\n * If the Property is not present or its value is not of type decimal, returns null.\n * If the Property has multiple decimal values, returns one of its values.\n *\n * @param thing The [[Thing]] to read a decimal value from.\n * @param property The Property whose decimal value to return.\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.\n */\nfunction getDecimal(thing, property) {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n const literalString = getLiteralOfType(thing, property, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.decimal);\n if (literalString === null) {\n return null;\n }\n return (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.deserializeDecimal)(literalString);\n}\n/**\n * Returns the decimal values of the specified Property from a [[Thing]].\n * If the Property is not present, returns an empty array.\n * If the Property's value is not of type decimal, omits that value in the array.\n *\n * @param thing The [[Thing]] to read the decimal values from.\n * @param property The Property whose decimal values to return.\n * @returns An array of decimal values for the given Property.\n */\nfunction getDecimalAll(thing, property) {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n const literalStrings = getLiteralAllOfType(thing, property, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.decimal);\n return literalStrings\n .map((literalString) => (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.deserializeDecimal)(literalString))\n .filter((potentialDecimal) => potentialDecimal !== null);\n}\n/**\n * Returns the integer value of the specified Property from a [[Thing]].\n * If the Property is not present or its value is not of type integer, returns null.\n * If the Property has multiple integer values, returns one of its values.\n *\n * @param thing The [[Thing]] to read an integer value from.\n * @param property The Property whose integer value to return.\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.\n */\nfunction getInteger(thing, property) {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n const literalString = getLiteralOfType(thing, property, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.integer);\n if (literalString === null) {\n return null;\n }\n return (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.deserializeInteger)(literalString);\n}\n/**\n * Returns the integer values of the specified Property from a [[Thing]].\n * If the Property is not present, returns an empty array.\n * If the Property's value is not of type integer, omits that value in the array.\n *\n * @param thing The [[Thing]] to read the integer values from.\n * @param property The Property whose integer values to return.\n * @returns An array of integer values for the given Property.\n */\nfunction getIntegerAll(thing, property) {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n const literalStrings = getLiteralAllOfType(thing, property, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.integer);\n return literalStrings\n .map((literalString) => (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.deserializeInteger)(literalString))\n .filter((potentialInteger) => potentialInteger !== null);\n}\n/**\n * Returns the English (language tag \"en\") string value of the specified Property from a [[Thing]].\n * If the Property is not present as a string in English, returns null.\n * If the Property has multiple English string values, returns one of its values.\n *\n * @param thing The [[Thing]] to read a localised string value from.\n * @param property The Property whose localised string value to return.\n * @returns An English string value for the given Property if present, or null otherwise.\n * @since 1.13.0\n */\nfunction getStringEnglish(thing, property) {\n return getStringWithLocale(thing, property, \"en\");\n}\n/**\n * Returns the localized string value of the specified Property from a [[Thing]].\n * If the Property is not present as a string in the specified locale, returns null.\n * If the Property has multiple string values for the specified locale, returns one of its values.\n *\n * @param thing The [[Thing]] to read a localised string value from.\n * @param property The Property whose localised string value to return.\n * @param locale The desired locale for the string value.\n * @returns A localised string value for the given Property if present in the specified `locale`, or null otherwise.\n */\nfunction getStringWithLocale(thing, property, locale) {\n var _a, _b;\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isValidUrl)(property)) {\n throw new _thing_mjs__WEBPACK_IMPORTED_MODULE_2__.ValidPropertyUrlExpectedError(property);\n }\n const predicateIri = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.internal_toIriString)(property);\n const langStrings = (_b = (_a = thing.predicates[predicateIri]) === null || _a === void 0 ? void 0 : _a.langStrings) !== null && _b !== void 0 ? _b : {};\n const existingLocales = Object.keys(langStrings);\n const matchingLocale = existingLocales.find((existingLocale) => existingLocale.toLowerCase() === locale.toLowerCase() &&\n Array.isArray(langStrings[existingLocale]) &&\n langStrings[existingLocale].length > 0);\n return typeof matchingLocale === \"string\"\n ? langStrings[matchingLocale][0]\n : null;\n}\n/**\n * Returns the English (language tag \"en\") string values of the specified Property from a [[Thing]].\n * If the Property is not present, returns an empty array.\n * If the Property's value is not an English string, omits that value in the array.\n *\n * @param thing The [[Thing]] to read a localised string value from.\n * @param property The Property whose localised string value to return.\n * @returns An array of English string values for the given Property.\n */\nfunction getStringEnglishAll(thing, property) {\n return getStringWithLocaleAll(thing, property, \"en\");\n}\n/**\n * Returns the localized string values of the specified Property from a [[Thing]].\n * If the Property is not present, returns an empty array.\n * If the Property's value is not a string of the specified locale, omits that value in the array.\n *\n * @param thing The [[Thing]] to read the localised string values from.\n * @param property The Property whose localised string values to return.\n * @param locale The desired locale for the string values.\n * @returns An array of localised string values for the given Property.\n */\nfunction getStringWithLocaleAll(thing, property, locale) {\n var _a, _b;\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isValidUrl)(property)) {\n throw new _thing_mjs__WEBPACK_IMPORTED_MODULE_2__.ValidPropertyUrlExpectedError(property);\n }\n const predicateIri = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.internal_toIriString)(property);\n const langStrings = (_b = (_a = thing.predicates[predicateIri]) === null || _a === void 0 ? void 0 : _a.langStrings) !== null && _b !== void 0 ? _b : {};\n const existingLocales = Object.keys(langStrings);\n const matchingLocale = existingLocales.find((existingLocale) => existingLocale.toLowerCase() === locale.toLowerCase() &&\n Array.isArray(langStrings[existingLocale]) &&\n langStrings[existingLocale].length > 0);\n return typeof matchingLocale === \"string\"\n ? [...langStrings[matchingLocale]]\n : [];\n}\n/**\n * Returns all localized string values mapped by the locales for the specified property from the\n * specified [[Thing]] (explicitly filters out non-language string literals).\n *\n * @param thing The [[Thing]] to read the localised string values from.\n * @param property The Property whose localised string values to return.\n * @returns A Map of objects, keyed on locale with the value an array of string values (for that locale).\n */\nfunction getStringByLocaleAll(thing, property) {\n var _a, _b;\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isValidUrl)(property)) {\n throw new _thing_mjs__WEBPACK_IMPORTED_MODULE_2__.ValidPropertyUrlExpectedError(property);\n }\n const predicateIri = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.internal_toIriString)(property);\n const stringsByLocale = (_b = (_a = thing.predicates[predicateIri]) === null || _a === void 0 ? void 0 : _a.langStrings) !== null && _b !== void 0 ? _b : {};\n return new Map(Object.entries(stringsByLocale).map(([locale, values]) => [\n locale,\n [...values],\n ]));\n}\n/**\n * Returns the string value of the specified Property from a [[Thing]].\n * If the Property is not present or its value is not of type string, returns null.\n * If the Property has multiple string values, returns one of its values.\n *\n * @param thing The [[Thing]] to read a string value from.\n * @param property The Property whose string value to return.\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.\n */\nfunction getStringNoLocale(thing, property) {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n const literalString = getLiteralOfType(thing, property, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.string);\n return literalString;\n}\n/**\n * Returns the string values of the specified Property from a [[Thing]].\n * If the Property is not present, returns an empty array.\n * If the Property's value is not of type string, omits that value in the array.\n *\n * @param thing The [[Thing]] to read the string values from.\n * @param property The Property whose string values to return.\n * @returns An array of string values for the given Property.\n */\nfunction getStringNoLocaleAll(thing, property) {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n const literalStrings = getLiteralAllOfType(thing, property, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.string);\n return literalStrings;\n}\n/**\n * @param thing The [[Thing]] to read a NamedNode value from.\n * @param property The given Property for which you want the NamedNode value.\n * @returns A NamedNode value for the given Property, if present, or null otherwise.\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.\n * @see https://rdf.js.org/data-model-spec/#namednode-interface\n */\nfunction getNamedNode(thing, property) {\n const iriString = getIri(thing, property);\n if (iriString === null) {\n return null;\n }\n return _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.DataFactory.namedNode(iriString);\n}\n/**\n * @param thing The [[Thing]] to read the NamedNode values from.\n * @param property The given Property for which you want the NamedNode values.\n * @returns The NamedNode values for the given Property.\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.\n * @see https://rdf.js.org/data-model-spec/#namednode-interface\n */\nfunction getNamedNodeAll(thing, property) {\n const iriStrings = getIriAll(thing, property);\n return iriStrings.map((iriString) => _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.DataFactory.namedNode(iriString));\n}\n/**\n * @param thing The [[Thing]] to read a Literal value from.\n * @param property The given Property for which you want the Literal value.\n * @returns A Literal value for the given Property, if present, or null otherwise.\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.\n * @see https://rdf.js.org/data-model-spec/#literal-interface\n */\nfunction getLiteral(thing, property) {\n var _a, _b, _c, _d;\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isValidUrl)(property)) {\n throw new _thing_mjs__WEBPACK_IMPORTED_MODULE_2__.ValidPropertyUrlExpectedError(property);\n }\n const predicateIri = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.internal_toIriString)(property);\n const langStrings = (_b = (_a = thing.predicates[predicateIri]) === null || _a === void 0 ? void 0 : _a.langStrings) !== null && _b !== void 0 ? _b : {};\n const locales = Object.keys(langStrings);\n if (locales.length > 0) {\n const nonEmptyLocale = locales.find((locale) => Array.isArray(langStrings[locale]) && langStrings[locale].length > 0);\n if (typeof nonEmptyLocale === \"string\") {\n return _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.DataFactory.literal(langStrings[nonEmptyLocale][0], nonEmptyLocale);\n }\n }\n const otherLiterals = (_d = (_c = thing.predicates[predicateIri]) === null || _c === void 0 ? void 0 : _c.literals) !== null && _d !== void 0 ? _d : {};\n const dataTypes = Object.keys(otherLiterals);\n if (dataTypes.length > 0) {\n const nonEmptyDataType = dataTypes.find((dataType) => Array.isArray(otherLiterals[dataType]) &&\n otherLiterals[dataType].length > 0);\n if (typeof nonEmptyDataType === \"string\") {\n return _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.DataFactory.literal(otherLiterals[nonEmptyDataType][0], _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.DataFactory.namedNode(nonEmptyDataType));\n }\n }\n return null;\n}\n/**\n * @param thing The [[Thing]] to read the Literal values from.\n * @param property The given Property for which you want the Literal values.\n * @returns The Literal values for the given Property.\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.\n * @see https://rdf.js.org/data-model-spec/#literal-interface\n */\nfunction getLiteralAll(thing, property) {\n var _a, _b, _c, _d;\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isValidUrl)(property)) {\n throw new _thing_mjs__WEBPACK_IMPORTED_MODULE_2__.ValidPropertyUrlExpectedError(property);\n }\n const predicateIri = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.internal_toIriString)(property);\n let literals = [];\n const langStrings = (_b = (_a = thing.predicates[predicateIri]) === null || _a === void 0 ? void 0 : _a.langStrings) !== null && _b !== void 0 ? _b : {};\n const locales = Object.keys(langStrings);\n for (const locale of locales) {\n const stringsInLocale = langStrings[locale];\n const localeLiterals = stringsInLocale.map((langString) => _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.DataFactory.literal(langString, locale));\n literals = literals.concat(localeLiterals);\n }\n const otherLiterals = (_d = (_c = thing.predicates[predicateIri]) === null || _c === void 0 ? void 0 : _c.literals) !== null && _d !== void 0 ? _d : {};\n const dataTypes = Object.keys(otherLiterals);\n for (const dataType of dataTypes) {\n const values = otherLiterals[dataType];\n const typeNode = _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.DataFactory.namedNode(dataType);\n const dataTypeLiterals = values.map((value) => _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.DataFactory.literal(value, typeNode));\n literals = literals.concat(dataTypeLiterals);\n }\n return literals;\n}\n/**\n * @param thing The [[Thing]] to read a raw RDF/JS value from.\n * @param property The given Property for which you want the raw value.\n * @returns A Term for the given Property, if present, or null otherwise.\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.\n * @see https://rdf.js.org/data-model-spec/\n * @since 0.3.0\n */\nfunction getTerm(thing, property) {\n var _a, _b;\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n const namedNode = getNamedNode(thing, property);\n if (namedNode !== null) {\n return namedNode;\n }\n const literal = getLiteral(thing, property);\n if (literal !== null) {\n return literal;\n }\n const predicateIri = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.internal_toIriString)(property);\n const blankNodes = (_b = (_a = thing.predicates[predicateIri]) === null || _a === void 0 ? void 0 : _a.blankNodes) !== null && _b !== void 0 ? _b : [];\n if (blankNodes.length > 0) {\n const blankNodeValue = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.isBlankNodeId)(blankNodes[0])\n ? (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.getBlankNodeValue)(blankNodes[0])\n : undefined;\n return _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.DataFactory.blankNode(blankNodeValue);\n }\n return null;\n}\n/**\n * @param thing The [[Thing]] to read the raw RDF/JS values from.\n * @param property The given Property for which you want the raw values.\n * @returns The Terms for the given Property.\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.\n * @see https://rdf.js.org/data-model-spec/\n * @since 0.3.0\n */\nfunction getTermAll(thing, property) {\n var _a, _b;\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n const namedNodes = getNamedNodeAll(thing, property);\n const literals = getLiteralAll(thing, property);\n const predicateIri = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.internal_toIriString)(property);\n const blankNodeValues = (_b = (_a = thing.predicates[predicateIri]) === null || _a === void 0 ? void 0 : _a.blankNodes) !== null && _b !== void 0 ? _b : [];\n const blankNodes = blankNodeValues.map((rawBlankNode) => {\n const blankNodeName = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.isBlankNodeId)(rawBlankNode)\n ? (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.getBlankNodeValue)(rawBlankNode)\n : undefined;\n return _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.DataFactory.blankNode(blankNodeName);\n });\n const terms = namedNodes\n .concat(literals)\n .concat(blankNodes);\n return terms;\n}\n/**\n * @param thing The [Thing]] to read a Literal of the given type from.\n * @param property The given Property for which you want the Literal value.\n * @param literalType Set type of the Literal data.\n * @returns The stringified value for the given Property and type, if present, or null otherwise.\n */\nfunction getLiteralOfType(thing, property, literalType) {\n var _a, _b, _c, _d;\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isValidUrl)(property)) {\n throw new _thing_mjs__WEBPACK_IMPORTED_MODULE_2__.ValidPropertyUrlExpectedError(property);\n }\n const predicateIri = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.internal_toIriString)(property);\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;\n}\n/**\n * @param thing The [Thing]] to read the Literals of the given type from.\n * @param property The given Property for which you want the Literal values.\n * @param literalType Set type of the Literal data.\n * @returns The stringified values for the given Property and type.\n */\nfunction getLiteralAllOfType(thing, property, literalType) {\n var _a, _b, _c;\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isValidUrl)(property)) {\n throw new _thing_mjs__WEBPACK_IMPORTED_MODULE_2__.ValidPropertyUrlExpectedError(property);\n }\n const predicateIri = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.internal_toIriString)(property);\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 : [];\n return [...literalsOfType];\n}\n\n\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/@inrupt/solid-client/dist/thing/get.mjs?"); /***/ }), /***/ "./node_modules/@inrupt/solid-client/dist/thing/remove.mjs": /*!*****************************************************************!*\ !*** ./node_modules/@inrupt/solid-client/dist/thing/remove.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 */ removeAll: () => (/* binding */ removeAll),\n/* harmony export */ removeBoolean: () => (/* binding */ removeBoolean),\n/* harmony export */ removeDate: () => (/* binding */ removeDate),\n/* harmony export */ removeDatetime: () => (/* binding */ removeDatetime),\n/* harmony export */ removeDecimal: () => (/* binding */ removeDecimal),\n/* harmony export */ removeInteger: () => (/* binding */ removeInteger),\n/* harmony export */ removeIri: () => (/* binding */ removeIri),\n/* harmony export */ removeLiteral: () => (/* binding */ removeLiteral),\n/* harmony export */ removeNamedNode: () => (/* binding */ removeNamedNode),\n/* harmony export */ removeStringEnglish: () => (/* binding */ removeStringEnglish),\n/* harmony export */ removeStringNoLocale: () => (/* binding */ removeStringNoLocale),\n/* harmony export */ removeStringWithLocale: () => (/* binding */ removeStringWithLocale),\n/* harmony export */ removeTime: () => (/* binding */ removeTime),\n/* harmony export */ removeUrl: () => (/* binding */ removeUrl)\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\n\n\n\n\n\n//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\nfunction removeAll(thing, property) {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isValidUrl)(property)) {\n throw new _thing_mjs__WEBPACK_IMPORTED_MODULE_2__.ValidPropertyUrlExpectedError(property);\n }\n const predicateIri = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.internal_toIriString)(property);\n const newPredicates = { ...thing.predicates };\n delete newPredicates[predicateIri];\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)({\n ...thing,\n predicates: (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)(newPredicates),\n });\n}\n/**\n * Create a new Thing with the given URL removed for the given Property.\n *\n * The original `thing` is not modified; this function returns a cloned Thing with updated values.\n *\n * @param thing Thing to remove a URL value from.\n * @param property Property for which to remove the given URL value.\n * @param value URL to remove from `thing` for the given `Property`.\n * @returns A new Thing equal to the input Thing with the given value removed for the given Property.\n */\nconst removeUrl = (thing, property, value) => {\n var _a, _b, _c;\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isValidUrl)(property)) {\n throw new _thing_mjs__WEBPACK_IMPORTED_MODULE_2__.ValidPropertyUrlExpectedError(property);\n }\n const predicateIri = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.internal_toIriString)(property);\n if (!(0,_thing_mjs__WEBPACK_IMPORTED_MODULE_2__.isThing)(value) && !(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isValidUrl)(value)) {\n throw new _thing_mjs__WEBPACK_IMPORTED_MODULE_2__.ValidValueUrlExpectedError(value);\n }\n const iriToRemove = (0,_thing_mjs__WEBPACK_IMPORTED_MODULE_2__.isThing)(value)\n ? (0,_thing_mjs__WEBPACK_IMPORTED_MODULE_2__.asIri)(value)\n : (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.internal_toIriString)(value);\n const updatedNamedNodes = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)((_c = (_b = (_a = thing.predicates[predicateIri]) === null || _a === void 0 ? void 0 : _a.namedNodes) === null || _b === void 0 ? void 0 : _b.filter((namedNode) => namedNode.toLowerCase() !== iriToRemove.toLowerCase())) !== null && _c !== void 0 ? _c : []);\n const updatedPredicate = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)({\n ...thing.predicates[predicateIri],\n namedNodes: updatedNamedNodes,\n });\n const updatedPredicates = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)({\n ...thing.predicates,\n [predicateIri]: updatedPredicate,\n });\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)({\n ...thing,\n predicates: updatedPredicates,\n });\n};\n/** @hidden Alias of [[removeUrl]] for those who prefer IRI terminology. */\nconst removeIri = removeUrl;\n/**\n * Create a new Thing with the given boolean removed for the given Property.\n *\n * The original `thing` is not modified; this function returns a cloned Thing with updated values.\n *\n * @param thing Thing to remove a boolean value from.\n * @param property Property for which to remove the given boolean value.\n * @param value Boolean to remove from `thing` for the given `property`.\n * @returns A new Thing equal to the input Thing with the given value removed for the given Property.\n */\nconst removeBoolean = (thing, property, value) => {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n return removeLiteralMatching(thing, property, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.boolean, (foundBoolean) => (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.deserializeBoolean)(foundBoolean) === value);\n};\n/**\n * Create a new Thing with the given datetime removed for the given Property.\n *\n * The original `thing` is not modified; this function returns a cloned Thing with updated values.\n *\n * @param thing Thing to remove a datetime value from.\n * @param property Property for which to remove the given datetime value.\n * @param value Datetime to remove from `thing` for the given `property`.\n * @returns A new Thing equal to the input Thing with the given value removed for the given Property.\n */\nconst removeDatetime = (thing, property, value) => {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n return removeLiteralMatching(thing, property, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.dateTime, (foundDatetime) => { var _a; return ((_a = (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.deserializeDatetime)(foundDatetime)) === null || _a === void 0 ? void 0 : _a.getTime()) === value.getTime(); });\n};\n/**\n * Create a new Thing with the given date removed for the given Property.\n *\n * The original `thing` is not modified; this function returns a cloned Thing with updated values.\n *\n * @param thing Thing to remove a date value from.\n * @param property Property for which to remove the given date value.\n * @param value Date to remove from `thing` for the given `property`.\n * @returns A new Thing equal to the input Thing with the given value removed for the given Property.\n * @since 1.10.0\n */\nconst removeDate = (thing, property, value) => {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n return removeLiteralMatching(thing, property, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.date, function (foundDate) {\n const deserializedDate = (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.deserializeDate)(foundDate);\n if (deserializedDate) {\n return (deserializedDate.getFullYear() === value.getFullYear() &&\n deserializedDate.getMonth() === value.getMonth() &&\n deserializedDate.getUTCDate() === value.getUTCDate());\n }\n return false;\n });\n};\n/**\n * Create a new Thing with the given datetime removed for the given Property.\n *\n * The original `thing` is not modified; this function returns a cloned Thing with updated values.\n *\n * @param thing Thing to remove a datetime value from.\n * @param property Property for which to remove the given datetime value.\n * @param value Time to remove from `thing` for the given `property`.\n * @returns A new Thing equal to the input Thing with the given value removed for the given Property.\n * @since 1.10.0\n */\nconst removeTime = (thing, property, value) => {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n return removeLiteralMatching(thing, property, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.time, function (foundTime) {\n const deserializedTime = (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.deserializeTime)(foundTime);\n if (deserializedTime) {\n return (deserializedTime.hour === value.hour &&\n deserializedTime.minute === value.minute &&\n deserializedTime.second === value.second &&\n deserializedTime.millisecond === value.millisecond &&\n deserializedTime.timezoneHourOffset === value.timezoneHourOffset &&\n deserializedTime.timezoneMinuteOffset === value.timezoneMinuteOffset);\n }\n return false;\n });\n};\n/**\n * Create a new Thing with the given decimal removed for the given Property.\n *\n * The original `thing` is not modified; this function returns a cloned Thing with updated values.\n *\n * @param thing Thing to remove a decimal value from.\n * @param property Property for which to remove the given decimal value.\n * @param value Decimal to remove from `thing` for the given `property`.\n * @returns A new Thing equal to the input Thing with the given value removed for the given Property.\n */\nconst removeDecimal = (thing, property, value) => {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n return removeLiteralMatching(thing, property, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.decimal, (foundDecimal) => (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.deserializeDecimal)(foundDecimal) === value);\n};\n/**\n * Create a new Thing with the given integer removed for the given Property.\n *\n * The original `thing` is not modified; this function returns a cloned Thing with updated values.\n *\n * @param thing Thing to remove an integer value from.\n * @param property Property for which to remove the given integer value.\n * @param value Integer to remove from `thing` for the given `property`.\n * @returns A new Thing equal to the input Thing with the given value removed for the given Property.\n */\nconst removeInteger = (thing, property, value) => {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n return removeLiteralMatching(thing, property, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.integer, (foundInteger) => (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.deserializeInteger)(foundInteger) === value);\n};\n/**\n * Create a new Thing with the given English string removed for the given Property.\n *\n * The original `thing` is not modified; this function returns a cloned Thing with updated values.\n *\n * @param thing Thing to remove a localised string value from.\n * @param property Property for which to remove the given localised string value.\n * @param value String to remove from `thing` for the given `property`.\n * @returns A new Thing equal to the input Thing with the given value removed for the given Property.\n * @since 1.13.0\n */\nfunction removeStringEnglish(thing, property, value) {\n return removeStringWithLocale(thing, property, value, \"en\");\n}\n/**\n * Create a new Thing with the given localised string removed for the given Property.\n *\n * The original `thing` is not modified; this function returns a cloned Thing with updated values.\n *\n * @param thing Thing to remove a localised string value from.\n * @param property Property for which to remove the given localised string value.\n * @param value String to remove from `thing` for the given `property`.\n * @param locale Locale of the string to remove.\n * @returns A new Thing equal to the input Thing with the given value removed for the given Property.\n */\nfunction removeStringWithLocale(thing, property, value, locale) {\n var _a, _b;\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isValidUrl)(property)) {\n throw new _thing_mjs__WEBPACK_IMPORTED_MODULE_2__.ValidPropertyUrlExpectedError(property);\n }\n const predicateIri = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.internal_toIriString)(property);\n const existingLangStrings = (_b = (_a = thing.predicates[predicateIri]) === null || _a === void 0 ? void 0 : _a.langStrings) !== null && _b !== void 0 ? _b : {};\n const matchingLocale = Object.keys(existingLangStrings).find((existingLocale) => (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.normalizeLocale)(existingLocale) === (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.normalizeLocale)(locale) &&\n Array.isArray(existingLangStrings[existingLocale]) &&\n existingLangStrings[existingLocale].length > 0);\n if (typeof matchingLocale !== \"string\") {\n // Nothing to remove.\n return thing;\n }\n const existingStringsInLocale = existingLangStrings[matchingLocale];\n const updatedStringsInLocale = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)(existingStringsInLocale.filter((existingString) => existingString !== value));\n const updatedLangStrings = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)({\n ...existingLangStrings,\n [matchingLocale]: updatedStringsInLocale,\n });\n const updatedPredicate = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)({\n ...thing.predicates[predicateIri],\n langStrings: updatedLangStrings,\n });\n const updatedPredicates = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)({\n ...thing.predicates,\n [predicateIri]: updatedPredicate,\n });\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)({\n ...thing,\n predicates: updatedPredicates,\n });\n}\n/**\n * Create a new Thing with the given unlocalised string removed for the given Property.\n *\n * The original `thing` is not modified; this function returns a cloned Thing with updated values.\n *\n * @param thing Thing to remove an unlocalised string value from.\n * @param property Property for which to remove the given string value.\n * @param value String to remove from `thing` for the given `property`.\n * @returns A new Thing equal to the input Thing with the given value removed for the given Property.\n */\nconst removeStringNoLocale = (thing, property, value) => {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n return removeLiteralMatching(thing, property, _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.string, (foundString) => foundString === value);\n};\n/**\n * @ignore This should not be needed due to the other remove*() functions. If you do find yourself needing it, please file a feature request for your use case.\n * @param thing Thing to remove a NamedNode value from.\n * @param property Property for which to remove the given NamedNode value.\n * @param value NamedNode to remove from `thing` for the given `property`.\n * @returns A new Thing equal to the input Thing with the given value removed for the given Property.\n */\nfunction removeNamedNode(thing, property, value) {\n return removeUrl(thing, property, value.value);\n}\n/**\n * @ignore This should not be needed due to the other remove*() functions. If you do find yourself needing it, please file a feature request for your use case.\n * @param thing Thing to remove a Literal value from.\n * @param property Property for which to remove the given Literal value.\n * @param value Literal to remove from `thing` for the given `property`.\n * @returns A new Thing equal to the input Thing with the given value removed for the given Property.\n */\nfunction removeLiteral(thing, property, value) {\n var _a, _b, _c;\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isValidUrl)(property)) {\n throw new _thing_mjs__WEBPACK_IMPORTED_MODULE_2__.ValidPropertyUrlExpectedError(property);\n }\n const typeIri = value.datatype.value;\n if (typeIri === _datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.xmlSchemaTypes.langString) {\n return removeStringWithLocale(thing, property, value.value, value.language);\n }\n const predicateIri = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.internal_toIriString)(property);\n const existingPredicateValues = (_a = thing.predicates[predicateIri]) !== null && _a !== void 0 ? _a : {};\n const existingLiterals = (_b = existingPredicateValues.literals) !== null && _b !== void 0 ? _b : {};\n const existingValuesOfType = (_c = existingLiterals[typeIri]) !== null && _c !== void 0 ? _c : [];\n const updatedValues = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)(existingValuesOfType.filter((existingValue) => existingValue !== value.value));\n const updatedLiterals = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)({\n ...existingLiterals,\n [typeIri]: updatedValues,\n });\n const updatedPredicate = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)({\n ...existingPredicateValues,\n literals: updatedLiterals,\n });\n const updatedPredicates = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)({\n ...thing.predicates,\n [predicateIri]: updatedPredicate,\n });\n const updatedThing = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)({\n ...thing,\n predicates: updatedPredicates,\n });\n return updatedThing;\n}\n/**\n * @param thing Thing to remove a Literal value from.\n * @param property Property for which to remove the given Literal value.\n * @param type Data type that the Literal should be stored as.\n * @param matcher Function that returns true if the given value is an equivalent serialisation of the value to remove. For example, when removing a `false` boolean, the matcher should return true for both \"0\" and \"false\".\n */\nfunction removeLiteralMatching(thing, property, type, matcher) {\n var _a, _b, _c;\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isValidUrl)(property)) {\n throw new _thing_mjs__WEBPACK_IMPORTED_MODULE_2__.ValidPropertyUrlExpectedError(property);\n }\n const predicateIri = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.internal_toIriString)(property);\n const existingPredicateValues = (_a = thing.predicates[predicateIri]) !== null && _a !== void 0 ? _a : {};\n const existingLiterals = (_b = existingPredicateValues.literals) !== null && _b !== void 0 ? _b : {};\n const existingValuesOfType = (_c = existingLiterals[type]) !== null && _c !== void 0 ? _c : [];\n const updatedValues = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)(existingValuesOfType.filter((existingValue) => !matcher(existingValue)));\n const updatedLiterals = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)({\n ...existingLiterals,\n [type]: updatedValues,\n });\n const updatedPredicate = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)({\n ...existingPredicateValues,\n literals: updatedLiterals,\n });\n const updatedPredicates = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)({\n ...thing.predicates,\n [predicateIri]: updatedPredicate,\n });\n const updatedThing = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_4__.freeze)({\n ...thing,\n predicates: updatedPredicates,\n });\n return updatedThing;\n}\n\n\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/@inrupt/solid-client/dist/thing/remove.mjs?"); /***/ }), /***/ "./node_modules/@inrupt/solid-client/dist/thing/set.mjs": /*!**************************************************************!*\ !*** ./node_modules/@inrupt/solid-client/dist/thing/set.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 */ setBoolean: () => (/* binding */ setBoolean),\n/* harmony export */ setDate: () => (/* binding */ setDate),\n/* harmony export */ setDatetime: () => (/* binding */ setDatetime),\n/* harmony export */ setDecimal: () => (/* binding */ setDecimal),\n/* harmony export */ setInteger: () => (/* binding */ setInteger),\n/* harmony export */ setIri: () => (/* binding */ setIri),\n/* harmony export */ setLiteral: () => (/* binding */ setLiteral),\n/* harmony export */ setNamedNode: () => (/* binding */ setNamedNode),\n/* harmony export */ setStringNoLocale: () => (/* binding */ setStringNoLocale),\n/* harmony export */ setStringWithLocale: () => (/* binding */ setStringWithLocale),\n/* harmony export */ setTerm: () => (/* binding */ setTerm),\n/* harmony export */ setTime: () => (/* binding */ setTime),\n/* harmony export */ setUrl: () => (/* binding */ setUrl)\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 _remove_mjs__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./remove.mjs */ \"./node_modules/@inrupt/solid-client/dist/thing/remove.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 _add_mjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./add.mjs */ \"./node_modules/@inrupt/solid-client/dist/thing/add.mjs\");\n\n\n\n\n\n\n//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n/**\n * Create a new Thing with existing values replaced by the given URL for the given Property.\n *\n * To preserve existing values, see [[addUrl]].\n *\n * The original `thing` is not modified; this function returns a cloned Thing with updated values.\n *\n * @param thing Thing to set a URL value on.\n * @param property Property for which to set the given URL value.\n * @param url URL to set on `thing` for the given `property`.\n * @returns A new Thing equal to the input Thing with existing values replaced by the given value for the given Property.\n */\nconst setUrl = (thing, property, url) => {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isValidUrl)(property)) {\n throw new _thing_mjs__WEBPACK_IMPORTED_MODULE_2__.ValidPropertyUrlExpectedError(property);\n }\n if (!(0,_thing_mjs__WEBPACK_IMPORTED_MODULE_2__.isThing)(url) && !(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isValidUrl)(url)) {\n throw new _thing_mjs__WEBPACK_IMPORTED_MODULE_2__.ValidValueUrlExpectedError(url);\n }\n return (0,_add_mjs__WEBPACK_IMPORTED_MODULE_3__.addUrl)((0,_remove_mjs__WEBPACK_IMPORTED_MODULE_4__.removeAll)(thing, property), property, url);\n};\n/** @hidden Alias of [[setUrl]] for those who prefer IRI terminology. */\nconst setIri = setUrl;\n/**\n * Create a new Thing with existing values replaced by the given boolean for the given Property.\n *\n * To preserve existing values, see [[addBoolean]].\n *\n * The original `thing` is not modified; this function returns a cloned Thing with updated values.\n *\n * @param thing Thing to set a boolean value on.\n * @param property Property for which to set the given boolean value.\n * @param value Boolean to set on `thing` for the given `property`.\n * @returns A new Thing equal to the input Thing with existing values replaced by the given value for the given Property.\n */\nconst setBoolean = (thing, property, value) => {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n return (0,_add_mjs__WEBPACK_IMPORTED_MODULE_3__.addBoolean)((0,_remove_mjs__WEBPACK_IMPORTED_MODULE_4__.removeAll)(thing, property), property, value);\n};\n/**\n * Create a new Thing with existing values replaced by the given datetime for the given Property.\n *\n * To preserve existing values, see [[addDatetime]].\n *\n * The original `thing` is not modified; this function returns a cloned Thing with updated values.\n *\n * @param thing Thing to set an datetime value on.\n * @param property Property for which to set the given datetime value.\n * @param value Datetime to set on `thing` for the given `property`.\n * @returns A new Thing equal to the input Thing with existing values replaced by the given value for the given Property.\n */\nconst setDatetime = (thing, property, value) => {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n return (0,_add_mjs__WEBPACK_IMPORTED_MODULE_3__.addDatetime)((0,_remove_mjs__WEBPACK_IMPORTED_MODULE_4__.removeAll)(thing, property), property, value);\n};\n/**\n * Create a new Thing with existing values replaced by the given date for the given Property.\n *\n * To preserve existing values, see [[addDate]].\n *\n * The original `thing` is not modified; this function returns a cloned Thing with updated values.\n *\n * @param thing Thing to set an date value on.\n * @param property Property for which to set the given date value.\n * @param value Date to set on `thing` for the given `property`.\n * @returns A new Thing equal to the input Thing with existing values replaced by the given value for the given Property.\n * @since 1.10.0\n */\nconst setDate = (thing, property, value) => {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n return (0,_add_mjs__WEBPACK_IMPORTED_MODULE_3__.addDate)((0,_remove_mjs__WEBPACK_IMPORTED_MODULE_4__.removeAll)(thing, property), property, value);\n};\n/**\n * Create a new Thing with existing values replaced by the given time for the given Property.\n *\n * To preserve existing values, see [[addTime]].\n *\n * The original `thing` is not modified; this function returns a cloned Thing with updated values.\n *\n * @param thing Thing to set an time value on.\n * @param property Property for which to set the given time value.\n * @param value time to set on `thing` for the given `property`.\n * @returns A new Thing equal to the input Thing with existing values replaced by the given value for the given Property.\n * @since 1.10.0\n */\nconst setTime = (thing, property, value) => {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n return (0,_add_mjs__WEBPACK_IMPORTED_MODULE_3__.addTime)((0,_remove_mjs__WEBPACK_IMPORTED_MODULE_4__.removeAll)(thing, property), property, value);\n};\n/**\n * Create a new Thing with existing values replaced by the given decimal for the given Property.\n *\n * To preserve existing values, see [[addDecimal]].\n *\n * The original `thing` is not modified; this function returns a cloned Thing with updated values.\n *\n * @param thing Thing to set a decimal value on.\n * @param property Property for which to set the given decimal value.\n * @param value Decimal to set on `thing` for the given `property`.\n * @returns A new Thing equal to the input Thing with existing values replaced by the given value for the given Property.\n */\nconst setDecimal = (thing, property, value) => {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n return (0,_add_mjs__WEBPACK_IMPORTED_MODULE_3__.addDecimal)((0,_remove_mjs__WEBPACK_IMPORTED_MODULE_4__.removeAll)(thing, property), property, value);\n};\n/**\n * Create a new Thing with existing values replaced by the given integer for the given Property.\n *\n * To preserve existing values, see [[addInteger]].\n *\n * The original `thing` is not modified; this function returns a cloned Thing with updated values.\n *\n * @param thing Thing to set an integer value on.\n * @param property Property for which to set the given integer value.\n * @param value Integer to set on `thing` for the given `property`.\n * @returns A new Thing equal to the input Thing with existing values replaced by the given value for the given Property.\n */\nconst setInteger = (thing, property, value) => {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n return (0,_add_mjs__WEBPACK_IMPORTED_MODULE_3__.addInteger)((0,_remove_mjs__WEBPACK_IMPORTED_MODULE_4__.removeAll)(thing, property), property, value);\n};\n/**\n * Create a new Thing with existing values replaced by the given localised string for the given Property.\n *\n * To preserve existing values, see [[addStringWithLocale]].\n *\n * The original `thing` is not modified; this function returns a cloned Thing with updated values.\n *\n * @param thing Thing to set a localised string value on.\n * @param property Property for which to set the given localised string value.\n * @param value Localised string to set on `thing` for the given `property`.\n * @param locale Locale of the added string.\n * @returns A new Thing equal to the input Thing with existing values replaced by the given value for the given Property.\n */\nfunction setStringWithLocale(thing, property, value, locale) {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n return (0,_add_mjs__WEBPACK_IMPORTED_MODULE_3__.addStringWithLocale)((0,_remove_mjs__WEBPACK_IMPORTED_MODULE_4__.removeAll)(thing, property), property, value, locale);\n}\n/**\n * Create a new Thing with existing values replaced by the given unlocalised string for the given Property.\n *\n * To preserve existing values, see [[addStringNoLocale]].\n *\n * The original `thing` is not modified; this function returns a cloned Thing with updated values.\n *\n * @param thing Thing to set an unlocalised string value on.\n * @param property Property for which to set the given unlocalised string value.\n * @param value Unlocalised string to set on `thing` for the given `property`.\n * @returns A new Thing equal to the input Thing with existing values replaced by the given value for the given Property.\n */\nconst setStringNoLocale = (thing, property, value) => {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n return (0,_add_mjs__WEBPACK_IMPORTED_MODULE_3__.addStringNoLocale)((0,_remove_mjs__WEBPACK_IMPORTED_MODULE_4__.removeAll)(thing, property), property, value);\n};\n/**\n * Create a new Thing with existing values replaced by the given Named Node for the given Property.\n *\n * This replaces existing values for the given Property. To preserve them, see [[addNamedNode]].\n *\n * The original `thing` is not modified; this function returns a cloned Thing with updated values.\n *\n * @ignore This should not be needed due to the other set*() functions. If you do find yourself needing it, please file a feature request for your use case.\n * @param thing The [[Thing]] to set a NamedNode on.\n * @param property Property for which to set the value.\n * @param value The NamedNode to set on `thing` for the given `property`.\n * @returns A new Thing equal to the input Thing with existing values replaced by the given value for the given Property.\n */\nfunction setNamedNode(thing, property, value) {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n return (0,_add_mjs__WEBPACK_IMPORTED_MODULE_3__.addNamedNode)((0,_remove_mjs__WEBPACK_IMPORTED_MODULE_4__.removeAll)(thing, property), property, value);\n}\n/**\n * Create a new Thing with existing values replaced by the given Literal for the given Property.\n *\n * This replaces existing values for the given Property. To preserve them, see [[addLiteral]].\n *\n * The original `thing` is not modified; this function returns a cloned Thing with updated values.\n *\n * @ignore This should not be needed due to the other set*() functions. If you do find yourself needing it, please file a feature request for your use case.\n * @param thing The [[Thing]] to set a Literal on.\n * @param property Property for which to set the value.\n * @param value The Literal to set on `thing` for the given `property`.\n * @returns A new Thing equal to the input Thing with existing values replaced by the given value for the given Property.\n */\nfunction setLiteral(thing, property, value) {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n return (0,_add_mjs__WEBPACK_IMPORTED_MODULE_3__.addLiteral)((0,_remove_mjs__WEBPACK_IMPORTED_MODULE_4__.removeAll)(thing, property), property, value);\n}\n/**\n * Creates a new Thing with existing values replaced by the given Term for the given Property.\n *\n * This replaces existing values for the given Property. To preserve them, see [[addTerm]].\n *\n * The original `thing` is not modified; this function returns a cloned Thing with updated values.\n *\n * @ignore This should not be needed due to the other set*() functions. If you do find yourself needing it, please file a feature request for your use case.\n * @param thing The [[Thing]] to set a Term on.\n * @param property Property for which to set the value.\n * @param value The raw RDF/JS value to set on `thing` for the given `property`.\n * @returns A new Thing equal to the input Thing with existing values replaced by the given value for the given Property.\n * @since 0.3.0\n */\nfunction setTerm(thing, property, value) {\n (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_throwIfNotThing)(thing);\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_isValidUrl)(property)) {\n throw new _thing_mjs__WEBPACK_IMPORTED_MODULE_2__.ValidPropertyUrlExpectedError(property);\n }\n return (0,_add_mjs__WEBPACK_IMPORTED_MODULE_3__.addTerm)((0,_remove_mjs__WEBPACK_IMPORTED_MODULE_4__.removeAll)(thing, property), property, value);\n}\n\n\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/@inrupt/solid-client/dist/thing/set.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//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n/** @hidden For internal use only. */\nfunction internal_getReadableValue(value) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n if ((0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.isNamedNode)(value)) {\n return `<${value.value}> (URL)`;\n }\n if ((0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.isLiteral)(value)) {\n /* istanbul ignore if: thingAsMarkdown always instantiates a NamedNode, so we can't hit this code path in tests. */\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.isNamedNode)(value.datatype)) {\n return `[${value.value}] (RDF/JS Literal of unknown type)`;\n }\n let val;\n switch (value.datatype.value) {\n case _datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.xmlSchemaTypes.boolean:\n val =\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}\\``;\n return `${val} (boolean)`;\n case _datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.xmlSchemaTypes.dateTime:\n val =\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}\\``;\n return `${val} (datetime)`;\n case _datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.xmlSchemaTypes.decimal:\n val =\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}\\``;\n return `${val} (decimal)`;\n case _datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.xmlSchemaTypes.integer:\n val =\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}\\``;\n return `${val} (integer)`;\n case _datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.xmlSchemaTypes.langString:\n return `\"${value.value}\" (${value.language} string)`;\n case _datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.xmlSchemaTypes.string:\n return `\"${value.value}\" (string)`;\n default:\n return `[${value.value}] (RDF/JS Literal of type: \\`${value.datatype.value}\\`)`;\n }\n }\n /* istanbul ignore else: thingAsMarkdown doesn't generate other Nodes, so we can't hit this path in tests. */\n if (value.termType === \"BlankNode\") {\n return `[${value.value}] (RDF/JS BlankNode)`;\n }\n /* istanbul ignore next: thingAsMarkdown doesn't generate Quad Nodes, so we can't hit this path in tests. */\n if (value.termType === \"Quad\") {\n return `??? (nested RDF* Quad)`;\n }\n /* istanbul ignore else: The if statements are exhaustive; if not, TypeScript will complain. */\n /* istanbul ignore next: thingAsMarkdown doesn't generate Variable Nodes, so we can't hit this path in tests. */\n if (value.termType === \"Variable\") {\n return `?${value.value} (RDF/JS Variable)`;\n }\n /* istanbul ignore next: The if statements are exhaustive; if not, TypeScript will complain. */\n return value;\n}\n/**\n * @hidden\n */\nfunction internal_throwIfNotThing(thing) {\n if (!(0,_thing_mjs__WEBPACK_IMPORTED_MODULE_1__.isThing)(thing)) {\n throw new _thing_mjs__WEBPACK_IMPORTED_MODULE_1__.ThingExpectedError(thing);\n }\n}\n/**\n * @hidden\n * @param solidDataset\n */\nfunction internal_addAdditionsToChangeLog(solidDataset, additions) {\n const changeLog = (0,_interfaces_mjs__WEBPACK_IMPORTED_MODULE_2__.hasChangelog)(solidDataset)\n ? solidDataset.internal_changeLog\n : /* istanbul ignore next: This function always gets called after addDeletionsToChangeLog, so the ChangeLog always already exists in tests: */\n { additions: [], deletions: [] };\n const [newAdditions, newDeletions] = additions\n .filter((addition) => !containsBlankNode(addition))\n .reduce(([additionsAcc, deletionsAcc], addition) => {\n const existingDeletion = deletionsAcc.find((deletion) => deletion.equals(addition));\n if (typeof existingDeletion !== \"undefined\") {\n return [\n additionsAcc,\n deletionsAcc.filter((deletion) => !deletion.equals(addition)),\n ];\n }\n return [additionsAcc.concat(addition), deletionsAcc];\n }, [changeLog.additions, changeLog.deletions]);\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.freeze)({\n ...solidDataset,\n internal_changeLog: {\n additions: newAdditions,\n deletions: newDeletions,\n },\n });\n}\n/**\n * @hidden\n * @param solidDataset\n */\nfunction internal_addDeletionsToChangeLog(solidDataset, deletions) {\n const changeLog = (0,_interfaces_mjs__WEBPACK_IMPORTED_MODULE_2__.hasChangelog)(solidDataset)\n ? solidDataset.internal_changeLog\n : { additions: [], deletions: [] };\n const [newAdditions, newDeletions] = deletions\n .filter((deletion) => !containsBlankNode(deletion))\n .reduce(([additionsAcc, deletionsAcc], deletion) => {\n const existingAddition = additionsAcc.find((addition) => addition.equals(deletion));\n if (typeof existingAddition !== \"undefined\") {\n return [\n additionsAcc.filter((addition) => !addition.equals(deletion)),\n deletionsAcc,\n ];\n }\n return [additionsAcc, deletionsAcc.concat(deletion)];\n }, [changeLog.additions, changeLog.deletions]);\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.freeze)({\n ...solidDataset,\n internal_changeLog: {\n additions: newAdditions,\n deletions: newDeletions,\n },\n });\n}\n/**\n * Enforces the presence of a Changelog for a given dataset. If a changelog is\n * already present, it is unchanged. Otherwise, an empty changelog is created.\n * @hidden\n * @param solidDataset\n */\nfunction internal_withChangeLog(solidDataset) {\n const newSolidDataset = (0,_interfaces_mjs__WEBPACK_IMPORTED_MODULE_2__.hasChangelog)(solidDataset)\n ? solidDataset\n : (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_3__.freeze)({\n ...solidDataset,\n internal_changeLog: { additions: [], deletions: [] },\n });\n return newSolidDataset;\n}\n/**\n * We don't currently support reading and writing Blank Nodes, so this function can be used to skip those Quads.\n *\n * This is needed because we cannot reconcile Blank Nodes in additions and\n * deletions. Down the road, we should do a diff before saving a SolidDataset\n * against a saved copy of the originally-fetched one, based on our own data\n * structures, which should make it easier to reconcile.\n */\nfunction containsBlankNode(quad) {\n return (quad.subject.termType === \"BlankNode\" ||\n quad.object.termType === \"BlankNode\");\n}\n\n\n\n\n//# sourceURL=webpack://bookmarks/./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 uuid__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! uuid */ \"./node_modules/uuid/dist/esm-browser/v4.js\");\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\n//\n// Copyright Inrupt Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal in\n// the Software without restriction, including without limitation the rights to use,\n// copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the\n// Software, and to permit persons to whom the Software is furnished to do so,\n// subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n// PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\n// HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n//\n/**\n * Extract Quads with a given Subject from a [[SolidDataset]] into a [[Thing]].\n *\n * @param solidDataset The [[SolidDataset]] to extract the [[Thing]] from.\n * @param thingUrl The URL of the desired [[Thing]].\n * @param options Not yet implemented.\n */\nfunction getThing(solidDataset, thingUrl, options = {}) {\n var _a;\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_isValidUrl)(thingUrl)) {\n throw new ValidThingUrlExpectedError(thingUrl);\n }\n const graph = typeof options.scope !== \"undefined\"\n ? (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_toIriString)(options.scope)\n : \"default\";\n const thingsByIri = (_a = solidDataset.graphs[graph]) !== null && _a !== void 0 ? _a : {};\n const thingIri = (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_toIriString)(thingUrl);\n const resolvedThingIri = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.isLocalNodeIri)(thingIri) && (0,_interfaces_mjs__WEBPACK_IMPORTED_MODULE_3__.hasServerResourceInfo)(solidDataset)\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))\n : thingIri;\n const thing = thingsByIri[resolvedThingIri];\n if (typeof thing === \"undefined\") {\n return null;\n }\n return thing;\n}\n/**\n * Get all [[Thing]]s in a [[SolidDataset]].\n *\n * @param solidDataset The [[SolidDataset]] to extract the [[Thing]]s from.\n * @param options Not yet implemented.\n */\nfunction getThingAll(solidDataset, options = { acceptBlankNodes: false }) {\n var _a;\n const graph = typeof options.scope !== \"undefined\"\n ? (0,_interfaces_internal_mjs__WEBPACK_IMPORTED_MODULE_1__.internal_toIriString)(options.scope)\n : \"default\";\n const thingsByIri = (_a = solidDataset.graphs[graph]) !== null && _a !== void 0 ? _a : {};\n return Object.values(thingsByIri).filter((thing) => !(0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.isBlankNodeId)(thing.url) || options.acceptBlankNodes);\n}\n/**\n * Insert a [[Thing]] into a [[SolidDataset]], replacing previous instances of that Thing.\n *\n * @param solidDataset The SolidDataset to insert a Thing into.\n * @param thing The Thing to insert into the given SolidDataset.\n * @returns A new SolidDataset equal to the given SolidDataset, but with the given Thing.\n */\nfunction setThing(solidDataset, thing) {\n var _a;\n const thingIri = isThingLocal(thing) && (0,_interfaces_mjs__WEBPACK_IMPORTED_MODULE_3__.hasServerResourceInfo)(solidDataset)\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))\n : thing.url;\n const defaultGraph = solidDataset.graphs.default;\n const updatedDefaultGraph = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.freeze)({\n ...defaultGraph,\n [thingIri]: (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.freeze)({ ...thing, url: thingIri }),\n });\n const updatedGraphs = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.freeze)({\n ...solidDataset.graphs,\n default: updatedDefaultGraph,\n });\n const subjectNode = _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.DataFactory.namedNode(thingIri);\n const deletedThingPredicates = (_a = solidDataset.graphs.default[thingIri]) === null || _a === void 0 ? void 0 : _a.predicates;\n const deletions = typeof deletedThingPredicates !== \"undefined\"\n ? (0,_rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.subjectToRdfJsQuads)(deletedThingPredicates, subjectNode, _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.DataFactory.defaultGraph())\n : [];\n const additions = (0,_rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.subjectToRdfJsQuads)(thing.predicates, subjectNode, _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.DataFactory.defaultGraph());\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)({\n ...solidDataset,\n graphs: updatedGraphs,\n }), deletions), additions);\n}\n/**\n * Remove a Thing from a SolidDataset.\n *\n * @param solidDataset The SolidDataset to remove a Thing from.\n * @param thing The Thing to remove from `solidDataset`.\n * @returns A new [[SolidDataset]] equal to the input SolidDataset, excluding the given Thing.\n */\nfunction removeThing(solidDataset, thing) {\n var _a;\n let thingIri;\n if ((0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.isNamedNode)(thing)) {\n thingIri = thing.value;\n }\n else if (typeof thing === \"string\") {\n thingIri =\n (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.isLocalNodeIri)(thing) && (0,_interfaces_mjs__WEBPACK_IMPORTED_MODULE_3__.hasServerResourceInfo)(solidDataset)\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))\n : thing;\n }\n else if (isThingLocal(thing)) {\n thingIri = thing.url;\n }\n else {\n thingIri = asIri(thing);\n }\n const defaultGraph = solidDataset.graphs.default;\n const updatedDefaultGraph = { ...defaultGraph };\n delete updatedDefaultGraph[thingIri];\n const updatedGraphs = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.freeze)({\n ...solidDataset.graphs,\n default: (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.freeze)(updatedDefaultGraph),\n });\n const subjectNode = _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.DataFactory.namedNode(thingIri);\n const deletedThingPredicates = (_a = solidDataset.graphs.default[thingIri]) === null || _a === void 0 ? void 0 : _a.predicates;\n const deletions = typeof deletedThingPredicates !== \"undefined\"\n ? (0,_rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.subjectToRdfJsQuads)(deletedThingPredicates, subjectNode, _rdfjs_internal_mjs__WEBPACK_IMPORTED_MODULE_5__.DataFactory.defaultGraph())\n : [];\n return (0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_6__.internal_addDeletionsToChangeLog)((0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.freeze)({\n ...solidDataset,\n graphs: updatedGraphs,\n }), deletions);\n}\nfunction createThing(options = {}) {\n var _a;\n if (typeof options.url !== \"undefined\") {\n const { url } = options;\n if (!(0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.internal_isValidUrl)(url)) {\n throw new ValidThingUrlExpectedError(url);\n }\n const thing = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.freeze)({\n type: \"Subject\",\n predicates: (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.freeze)({}),\n url,\n });\n return thing;\n }\n const name = (_a = options.name) !== null && _a !== void 0 ? _a : generateName();\n const localNodeIri = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.getLocalNodeIri)(name);\n const thing = (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.freeze)({\n type: \"Subject\",\n predicates: (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.freeze)({}),\n url: localNodeIri,\n });\n return thing;\n}\n/**\n * @param input An value that might be a [[Thing]].\n * @returns Whether `input` is a Thing.\n * @since 0.2.0\n */\nfunction isThing(input) {\n return (typeof input === \"object\" &&\n input !== null &&\n typeof input.type === \"string\" &&\n input.type === \"Subject\");\n}\nfunction asUrl(thing, baseUrl) {\n if (isThingLocal(thing)) {\n if (typeof baseUrl === \"undefined\") {\n throw new Error(\"The URL of a Thing that has not been persisted cannot be determined without a base URL.\");\n }\n return (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.resolveLocalIri)((0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.getLocalNodeName)(thing.url), baseUrl);\n }\n return thing.url;\n}\n/** @hidden Alias of [[asUrl]] for those who prefer IRI terminology. */\nconst asIri = asUrl;\n/**\n * Gets a human-readable representation of the given Thing to aid debugging.\n *\n * Note that changes to the exact format of the return value are not considered a breaking change;\n * it is intended to aid in debugging, not as a serialisation method that can be reliably parsed.\n *\n * @param thing The Thing to get a human-readable representation of.\n * @since 0.3.0\n */\nfunction thingAsMarkdown(thing) {\n let thingAsMarkdown = \"\";\n if (isThingLocal(thing)) {\n thingAsMarkdown += `## Thing (no URL yet — identifier: \\`#${(0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.getLocalNodeName)(thing.url)}\\`)\\n`;\n }\n else {\n thingAsMarkdown += `## Thing: ${thing.url}\\n`;\n }\n const predicateIris = Object.keys(thing.predicates);\n if (predicateIris.length === 0) {\n thingAsMarkdown += \"\\n\\n\";\n }\n else {\n for (const predicate of predicateIris) {\n thingAsMarkdown += `\\nProperty: ${predicate}\\n`;\n const values = (0,_get_mjs__WEBPACK_IMPORTED_MODULE_7__.getTermAll)(thing, predicate);\n thingAsMarkdown += values.reduce((acc, value) => {\n return `${acc}- ${(0,_thing_internal_mjs__WEBPACK_IMPORTED_MODULE_6__.internal_getReadableValue)(value)}\\n`;\n }, \"\");\n }\n }\n return thingAsMarkdown;\n}\n/**\n * @param thing The [[Thing]] of which a URL might or might not be known.\n * @return `true` if `thing` has no known URL yet.\n * @since 1.7.0\n */\nfunction isThingLocal(thing) {\n return (0,_rdf_internal_mjs__WEBPACK_IMPORTED_MODULE_2__.isLocalNodeIri)(thing.url);\n}\n/**\n * This error is thrown when a function expected to receive a [[Thing]] but received something else.\n * @since 1.2.0\n */\nclass ThingExpectedError extends _interfaces_mjs__WEBPACK_IMPORTED_MODULE_3__.SolidClientError {\n constructor(receivedValue) {\n const message = `Expected a Thing, but received: [${receivedValue}].`;\n super(message);\n this.receivedValue = receivedValue;\n }\n}\n/**\n * This error is thrown when a function expected to receive a valid URL to identify a property but received something else.\n */\nclass ValidPropertyUrlExpectedError extends _interfaces_mjs__WEBPACK_IMPORTED_MODULE_3__.SolidClientError {\n constructor(receivedValue) {\n const value = (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.isNamedNode)(receivedValue)\n ? receivedValue.value\n : receivedValue;\n const message = `Expected a valid URL to identify a property, but received: [${value}].`;\n super(message);\n this.receivedProperty = value;\n }\n}\n/**\n * This error is thrown when a function expected to receive a valid URL value but received something else.\n */\nclass ValidValueUrlExpectedError extends _interfaces_mjs__WEBPACK_IMPORTED_MODULE_3__.SolidClientError {\n constructor(receivedValue) {\n const value = (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.isNamedNode)(receivedValue)\n ? receivedValue.value\n : receivedValue;\n const message = `Expected a valid URL value, but received: [${value}].`;\n super(message);\n this.receivedValue = value;\n }\n}\n/**\n * This error is thrown when a function expected to receive a valid URL to identify a [[Thing]] but received something else.\n */\nclass ValidThingUrlExpectedError extends _interfaces_mjs__WEBPACK_IMPORTED_MODULE_3__.SolidClientError {\n constructor(receivedValue) {\n const value = (0,_datatypes_mjs__WEBPACK_IMPORTED_MODULE_0__.isNamedNode)(receivedValue)\n ? receivedValue.value\n : receivedValue;\n const message = `Expected a valid URL to identify a Thing, but received: [${value}].`;\n super(message);\n this.receivedValue = value;\n }\n}\n/**\n * Generate a string that can be used as the unique identifier for a Thing\n *\n * This function works by starting with a date string (so that Things can be\n * sorted chronologically), followed by a random number generated by taking a\n * random number between 0 and 1, and cutting off the `0.`.\n *\n * @internal\n * @returns An string that's likely to be unique\n */\nconst generateName = () => {\n return (0,uuid__WEBPACK_IMPORTED_MODULE_8__[\"default\"])();\n};\n\n\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/@inrupt/solid-client/dist/thing/thing.mjs?"); /***/ }), /***/ "./node_modules/@inrupt/universal-fetch/dist/index-browser.mjs": /*!*********************************************************************!*\ !*** ./node_modules/@inrupt/universal-fetch/dist/index-browser.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 */ Headers: () => (/* binding */ Headers),\n/* harmony export */ Request: () => (/* binding */ Request),\n/* harmony export */ Response: () => (/* binding */ Response),\n/* harmony export */ \"default\": () => (/* binding */ indexBrowser),\n/* harmony export */ fetch: () => (/* binding */ fetch)\n/* harmony export */ });\nvar indexBrowser = globalThis.fetch;\nconst { fetch, Response, Request, Headers } = globalThis;\n\n\n\n\n//# sourceURL=webpack://bookmarks/./node_modules/@inrupt/universal-fetch/dist/index-browser.mjs?"); /***/ }) /******/ }); /************************************************************************/ /******/ // 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; /******/ } /******/ /************************************************************************/ /******/ /* 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/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/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/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 }); /******/ }; /******/ })(); /******/ /************************************************************************/ /******/ /******/ // 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__("./dist/src/index.js"); /******/ bookmarks = __webpack_exports__; /******/ /******/ })() ;