UNPKG

jsonld

Version:

A JSON-LD Processor and API implementation in JavaScript.

179 lines (159 loc) 1.23 MB
(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(); else if(typeof define === 'function' && define.amd) define([], factory); else if(typeof exports === 'object') exports["jsonld"] = factory(); else root["jsonld"] = factory(); })(window, function() { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 0); /******/ }) /************************************************************************/ /******/ ({ /***/ "./lib/ContextResolver.js": /*!********************************!*\ !*** ./lib/ContextResolver.js ***! \********************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/*\n * Copyright (c) 2019 Digital Bazaar, Inc. All rights reserved.\n */\n\n\n__webpack_require__(/*! core-js/modules/es.symbol.js */ \"./node_modules/core-js/modules/es.symbol.js\");\n__webpack_require__(/*! core-js/modules/es.symbol.description.js */ \"./node_modules/core-js/modules/es.symbol.description.js\");\n__webpack_require__(/*! core-js/modules/es.symbol.iterator.js */ \"./node_modules/core-js/modules/es.symbol.iterator.js\");\n__webpack_require__(/*! core-js/modules/es.array.from.js */ \"./node_modules/core-js/modules/es.array.from.js\");\n__webpack_require__(/*! core-js/modules/es.array.slice.js */ \"./node_modules/core-js/modules/es.array.slice.js\");\n__webpack_require__(/*! core-js/modules/es.function.name.js */ \"./node_modules/core-js/modules/es.function.name.js\");\n__webpack_require__(/*! core-js/modules/es.regexp.exec.js */ \"./node_modules/core-js/modules/es.regexp.exec.js\");\n__webpack_require__(/*! core-js/modules/es.regexp.test.js */ \"./node_modules/core-js/modules/es.regexp.test.js\");\n__webpack_require__(/*! core-js/modules/es.regexp.to-string.js */ \"./node_modules/core-js/modules/es.regexp.to-string.js\");\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\"));\n__webpack_require__(/*! core-js/modules/es.array.iterator.js */ \"./node_modules/core-js/modules/es.array.iterator.js\");\n__webpack_require__(/*! core-js/modules/es.json.stringify.js */ \"./node_modules/core-js/modules/es.json.stringify.js\");\n__webpack_require__(/*! core-js/modules/es.map.js */ \"./node_modules/core-js/modules/es.map.js\");\n__webpack_require__(/*! core-js/modules/es.object.keys.js */ \"./node_modules/core-js/modules/es.object.keys.js\");\n__webpack_require__(/*! core-js/modules/es.object.to-string.js */ \"./node_modules/core-js/modules/es.object.to-string.js\");\n__webpack_require__(/*! core-js/modules/es.set.js */ \"./node_modules/core-js/modules/es.set.js\");\n__webpack_require__(/*! core-js/modules/es.string.iterator.js */ \"./node_modules/core-js/modules/es.string.iterator.js\");\n__webpack_require__(/*! core-js/modules/web.dom-collections.iterator.js */ \"./node_modules/core-js/modules/web.dom-collections.iterator.js\");\nvar _toConsumableArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toConsumableArray */ \"./node_modules/@babel/runtime/helpers/toConsumableArray.js\"));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/asyncToGenerator.js\"));\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\"));\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\"));\nfunction _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar _require = __webpack_require__(/*! ./types */ \"./lib/types.js\"),\n _isArray = _require.isArray,\n _isObject = _require.isObject,\n _isString = _require.isString;\nvar _require2 = __webpack_require__(/*! ./util */ \"./lib/util.js\"),\n _asArray = _require2.asArray;\nvar _require3 = __webpack_require__(/*! ./url */ \"./lib/url.js\"),\n prependBase = _require3.prependBase;\nvar JsonLdError = __webpack_require__(/*! ./JsonLdError */ \"./lib/JsonLdError.js\");\nvar ResolvedContext = __webpack_require__(/*! ./ResolvedContext */ \"./lib/ResolvedContext.js\");\nvar MAX_CONTEXT_URLS = 10;\nmodule.exports = /*#__PURE__*/function () {\n /**\n * Creates a ContextResolver.\n *\n * @param sharedCache a shared LRU cache with `get` and `set` APIs.\n */\n function ContextResolver(_ref) {\n var sharedCache = _ref.sharedCache;\n (0, _classCallCheck2.default)(this, ContextResolver);\n this.perOpCache = new Map();\n this.sharedCache = sharedCache;\n }\n return (0, _createClass2.default)(ContextResolver, [{\n key: \"resolve\",\n value: function () {\n var _resolve = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(_ref2) {\n var activeCtx, context, documentLoader, base, _ref2$cycles, cycles, allResolved, _iterator, _step, ctx, _resolved, key, resolved;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n activeCtx = _ref2.activeCtx, context = _ref2.context, documentLoader = _ref2.documentLoader, base = _ref2.base, _ref2$cycles = _ref2.cycles, cycles = _ref2$cycles === void 0 ? new Set() : _ref2$cycles;\n // process `@context`\n if (context && _isObject(context) && context['@context']) {\n context = context['@context'];\n }\n\n // context is one or more contexts\n context = _asArray(context);\n\n // resolve each context in the array\n allResolved = [];\n _iterator = _createForOfIteratorHelper(context);\n _context.prev = 5;\n _iterator.s();\n case 7:\n if ((_step = _iterator.n()).done) {\n _context.next = 27;\n break;\n }\n ctx = _step.value;\n if (!_isString(ctx)) {\n _context.next = 17;\n break;\n }\n // see if `ctx` has been resolved before...\n _resolved = this._get(ctx);\n if (_resolved) {\n _context.next = 15;\n break;\n }\n _context.next = 14;\n return this._resolveRemoteContext({\n activeCtx: activeCtx,\n url: ctx,\n documentLoader: documentLoader,\n base: base,\n cycles: cycles\n });\n case 14:\n _resolved = _context.sent;\n case 15:\n // add to output and continue\n if (_isArray(_resolved)) {\n allResolved.push.apply(allResolved, (0, _toConsumableArray2.default)(_resolved));\n } else {\n allResolved.push(_resolved);\n }\n return _context.abrupt(\"continue\", 25);\n case 17:\n if (!(ctx === null)) {\n _context.next = 20;\n break;\n }\n // handle `null` context, nothing to cache\n allResolved.push(new ResolvedContext({\n document: null\n }));\n return _context.abrupt(\"continue\", 25);\n case 20:\n if (!_isObject(ctx)) {\n _throwInvalidLocalContext(context);\n }\n // context is an object, get/create `ResolvedContext` for it\n key = JSON.stringify(ctx);\n resolved = this._get(key);\n if (!resolved) {\n // create a new static `ResolvedContext` and cache it\n resolved = new ResolvedContext({\n document: ctx\n });\n this._cacheResolvedContext({\n key: key,\n resolved: resolved,\n tag: 'static'\n });\n }\n allResolved.push(resolved);\n case 25:\n _context.next = 7;\n break;\n case 27:\n _context.next = 32;\n break;\n case 29:\n _context.prev = 29;\n _context.t0 = _context[\"catch\"](5);\n _iterator.e(_context.t0);\n case 32:\n _context.prev = 32;\n _iterator.f();\n return _context.finish(32);\n case 35:\n return _context.abrupt(\"return\", allResolved);\n case 36:\n case \"end\":\n return _context.stop();\n }\n }, _callee, this, [[5, 29, 32, 35]]);\n }));\n function resolve(_x) {\n return _resolve.apply(this, arguments);\n }\n return resolve;\n }()\n }, {\n key: \"_get\",\n value: function _get(key) {\n // get key from per operation cache; no `tag` is used with this cache so\n // any retrieved context will always be the same during a single operation\n var resolved = this.perOpCache.get(key);\n if (!resolved) {\n // see if the shared cache has a `static` entry for this URL\n var tagMap = this.sharedCache.get(key);\n if (tagMap) {\n resolved = tagMap.get('static');\n if (resolved) {\n this.perOpCache.set(key, resolved);\n }\n }\n }\n return resolved;\n }\n }, {\n key: \"_cacheResolvedContext\",\n value: function _cacheResolvedContext(_ref3) {\n var key = _ref3.key,\n resolved = _ref3.resolved,\n tag = _ref3.tag;\n this.perOpCache.set(key, resolved);\n if (tag !== undefined) {\n var tagMap = this.sharedCache.get(key);\n if (!tagMap) {\n tagMap = new Map();\n this.sharedCache.set(key, tagMap);\n }\n tagMap.set(tag, resolved);\n }\n return resolved;\n }\n }, {\n key: \"_resolveRemoteContext\",\n value: function () {\n var _resolveRemoteContext2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee2(_ref4) {\n var activeCtx, url, documentLoader, base, cycles, _yield$this$_fetchCon, context, remoteDoc, resolved;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n activeCtx = _ref4.activeCtx, url = _ref4.url, documentLoader = _ref4.documentLoader, base = _ref4.base, cycles = _ref4.cycles;\n // resolve relative URL and fetch context\n url = prependBase(base, url);\n _context2.next = 4;\n return this._fetchContext({\n activeCtx: activeCtx,\n url: url,\n documentLoader: documentLoader,\n cycles: cycles\n });\n case 4:\n _yield$this$_fetchCon = _context2.sent;\n context = _yield$this$_fetchCon.context;\n remoteDoc = _yield$this$_fetchCon.remoteDoc;\n // update base according to remote document and resolve any relative URLs\n base = remoteDoc.documentUrl || url;\n _resolveContextUrls({\n context: context,\n base: base\n });\n\n // resolve, cache, and return context\n _context2.next = 11;\n return this.resolve({\n activeCtx: activeCtx,\n context: context,\n documentLoader: documentLoader,\n base: base,\n cycles: cycles\n });\n case 11:\n resolved = _context2.sent;\n this._cacheResolvedContext({\n key: url,\n resolved: resolved,\n tag: remoteDoc.tag\n });\n return _context2.abrupt(\"return\", resolved);\n case 14:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, this);\n }));\n function _resolveRemoteContext(_x2) {\n return _resolveRemoteContext2.apply(this, arguments);\n }\n return _resolveRemoteContext;\n }()\n }, {\n key: \"_fetchContext\",\n value: function () {\n var _fetchContext2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee3(_ref5) {\n var activeCtx, url, documentLoader, cycles, context, remoteDoc;\n return _regenerator.default.wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n activeCtx = _ref5.activeCtx, url = _ref5.url, documentLoader = _ref5.documentLoader, cycles = _ref5.cycles;\n if (!(cycles.size > MAX_CONTEXT_URLS)) {\n _context3.next = 3;\n break;\n }\n throw new JsonLdError('Maximum number of @context URLs exceeded.', 'jsonld.ContextUrlError', {\n code: activeCtx.processingMode === 'json-ld-1.0' ? 'loading remote context failed' : 'context overflow',\n max: MAX_CONTEXT_URLS\n });\n case 3:\n if (!cycles.has(url)) {\n _context3.next = 5;\n break;\n }\n throw new JsonLdError('Cyclical @context URLs detected.', 'jsonld.ContextUrlError', {\n code: activeCtx.processingMode === 'json-ld-1.0' ? 'recursive context inclusion' : 'context overflow',\n url: url\n });\n case 5:\n // track cycles\n cycles.add(url);\n _context3.prev = 6;\n _context3.next = 9;\n return documentLoader(url);\n case 9:\n remoteDoc = _context3.sent;\n context = remoteDoc.document || null;\n // parse string context as JSON\n if (_isString(context)) {\n context = JSON.parse(context);\n }\n _context3.next = 17;\n break;\n case 14:\n _context3.prev = 14;\n _context3.t0 = _context3[\"catch\"](6);\n throw new JsonLdError('Dereferencing a URL did not result in a valid JSON-LD object. ' + 'Possible causes are an inaccessible URL perhaps due to ' + 'a same-origin policy (ensure the server uses CORS if you are ' + 'using client-side JavaScript), too many redirects, a ' + 'non-JSON response, or more than one HTTP Link Header was ' + 'provided for a remote context. ' + \"URL: \\\"\".concat(url, \"\\\".\"), 'jsonld.InvalidUrl', {\n code: 'loading remote context failed',\n url: url,\n cause: _context3.t0\n });\n case 17:\n if (_isObject(context)) {\n _context3.next = 19;\n break;\n }\n throw new JsonLdError('Dereferencing a URL did not result in a JSON object. The ' + 'response was valid JSON, but it was not a JSON object. ' + \"URL: \\\"\".concat(url, \"\\\".\"), 'jsonld.InvalidUrl', {\n code: 'invalid remote context',\n url: url\n });\n case 19:\n // use empty context if no @context key is present\n if (!('@context' in context)) {\n context = {\n '@context': {}\n };\n } else {\n context = {\n '@context': context['@context']\n };\n }\n\n // append @context URL to context if given\n if (remoteDoc.contextUrl) {\n if (!_isArray(context['@context'])) {\n context['@context'] = [context['@context']];\n }\n context['@context'].push(remoteDoc.contextUrl);\n }\n return _context3.abrupt(\"return\", {\n context: context,\n remoteDoc: remoteDoc\n });\n case 22:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3, null, [[6, 14]]);\n }));\n function _fetchContext(_x3) {\n return _fetchContext2.apply(this, arguments);\n }\n return _fetchContext;\n }()\n }]);\n}();\nfunction _throwInvalidLocalContext(ctx) {\n throw new JsonLdError('Invalid JSON-LD syntax; @context must be an object.', 'jsonld.SyntaxError', {\n code: 'invalid local context',\n context: ctx\n });\n}\n\n/**\n * Resolve all relative `@context` URLs in the given context by inline\n * replacing them with absolute URLs.\n *\n * @param context the context.\n * @param base the base IRI to use to resolve relative IRIs.\n */\nfunction _resolveContextUrls(_ref6) {\n var context = _ref6.context,\n base = _ref6.base;\n if (!context) {\n return;\n }\n var ctx = context['@context'];\n if (_isString(ctx)) {\n context['@context'] = prependBase(base, ctx);\n return;\n }\n if (_isArray(ctx)) {\n for (var i = 0; i < ctx.length; ++i) {\n var element = ctx[i];\n if (_isString(element)) {\n ctx[i] = prependBase(base, element);\n continue;\n }\n if (_isObject(element)) {\n _resolveContextUrls({\n context: {\n '@context': element\n },\n base: base\n });\n }\n }\n return;\n }\n if (!_isObject(ctx)) {\n // no @context URLs can be found in non-object\n return;\n }\n\n // ctx is an object, resolve any context URLs in terms\n for (var term in ctx) {\n _resolveContextUrls({\n context: ctx[term],\n base: base\n });\n }\n}\n\n//# sourceURL=webpack://%5Bname%5D/./lib/ContextResolver.js?"); /***/ }), /***/ "./lib/JsonLdError.js": /*!****************************!*\ !*** ./lib/JsonLdError.js ***! \****************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/*\n * Copyright (c) 2017 Digital Bazaar, Inc. All rights reserved.\n */\n\n\n__webpack_require__(/*! core-js/modules/es.reflect.construct.js */ \"./node_modules/core-js/modules/es.reflect.construct.js\");\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n__webpack_require__(/*! core-js/modules/es.function.name.js */ \"./node_modules/core-js/modules/es.function.name.js\");\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\"));\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\"));\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\"));\nvar _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"./node_modules/@babel/runtime/helpers/getPrototypeOf.js\"));\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ \"./node_modules/@babel/runtime/helpers/inherits.js\"));\nvar _wrapNativeSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/wrapNativeSuper */ \"./node_modules/@babel/runtime/helpers/wrapNativeSuper.js\"));\nfunction _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nmodule.exports = /*#__PURE__*/function (_Error) {\n /**\n * Creates a JSON-LD Error.\n *\n * @param msg the error message.\n * @param type the error type.\n * @param details the error details.\n */\n function JsonLdError() {\n var _this;\n var message = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'An unspecified JSON-LD error occurred.';\n var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'jsonld.Error';\n var details = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n (0, _classCallCheck2.default)(this, JsonLdError);\n _this = _callSuper(this, JsonLdError, [message]);\n _this.name = name;\n _this.message = message;\n _this.details = details;\n return _this;\n }\n (0, _inherits2.default)(JsonLdError, _Error);\n return (0, _createClass2.default)(JsonLdError);\n}(/*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));\n\n//# sourceURL=webpack://%5Bname%5D/./lib/JsonLdError.js?"); /***/ }), /***/ "./lib/JsonLdProcessor.js": /*!********************************!*\ !*** ./lib/JsonLdProcessor.js ***! \********************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/*\n * Copyright (c) 2017 Digital Bazaar, Inc. All rights reserved.\n */\n\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\n__webpack_require__(/*! core-js/modules/es.object.to-string.js */ \"./node_modules/core-js/modules/es.object.to-string.js\");\n__webpack_require__(/*! core-js/modules/es.promise.js */ \"./node_modules/core-js/modules/es.promise.js\");\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\"));\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\"));\nmodule.exports = function (jsonld) {\n var JsonLdProcessor = /*#__PURE__*/function () {\n function JsonLdProcessor() {\n (0, _classCallCheck2.default)(this, JsonLdProcessor);\n }\n return (0, _createClass2.default)(JsonLdProcessor, [{\n key: \"toString\",\n value: function toString() {\n return '[object JsonLdProcessor]';\n }\n }]);\n }();\n Object.defineProperty(JsonLdProcessor, 'prototype', {\n writable: false,\n enumerable: false\n });\n Object.defineProperty(JsonLdProcessor.prototype, 'constructor', {\n writable: true,\n enumerable: false,\n configurable: true,\n value: JsonLdProcessor\n });\n\n // The Web IDL test harness will check the number of parameters defined in\n // the functions below. The number of parameters must exactly match the\n // required (non-optional) parameters of the JsonLdProcessor interface as\n // defined here:\n // https://www.w3.org/TR/json-ld-api/#the-jsonldprocessor-interface\n\n JsonLdProcessor.compact = function (input, ctx) {\n if (arguments.length < 2) {\n return Promise.reject(new TypeError('Could not compact, too few arguments.'));\n }\n return jsonld.compact(input, ctx);\n };\n JsonLdProcessor.expand = function (input) {\n if (arguments.length < 1) {\n return Promise.reject(new TypeError('Could not expand, too few arguments.'));\n }\n return jsonld.expand(input);\n };\n JsonLdProcessor.flatten = function (input) {\n if (arguments.length < 1) {\n return Promise.reject(new TypeError('Could not flatten, too few arguments.'));\n }\n return jsonld.flatten(input);\n };\n return JsonLdProcessor;\n};\n\n//# sourceURL=webpack://%5Bname%5D/./lib/JsonLdProcessor.js?"); /***/ }), /***/ "./lib/NQuads.js": /*!***********************!*\ !*** ./lib/NQuads.js ***! \***********************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/*\n * Copyright (c) 2017 Digital Bazaar, Inc. All rights reserved.\n */\n\n\n// TODO: move `NQuads` to its own package\nmodule.exports = __webpack_require__(/*! rdf-canonize */ \"./node_modules/rdf-canonize/index.js\").NQuads;\n\n//# sourceURL=webpack://%5Bname%5D/./lib/NQuads.js?"); /***/ }), /***/ "./lib/RequestQueue.js": /*!*****************************!*\ !*** ./lib/RequestQueue.js ***! \*****************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/*\n * Copyright (c) 2017-2019 Digital Bazaar, Inc. All rights reserved.\n */\n\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\"));\n__webpack_require__(/*! core-js/modules/es.object.to-string.js */ \"./node_modules/core-js/modules/es.object.to-string.js\");\n__webpack_require__(/*! core-js/modules/es.promise.js */ \"./node_modules/core-js/modules/es.promise.js\");\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/asyncToGenerator.js\"));\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\"));\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\"));\nmodule.exports = /*#__PURE__*/function () {\n /**\n * Creates a simple queue for requesting documents.\n */\n function RequestQueue() {\n (0, _classCallCheck2.default)(this, RequestQueue);\n this._requests = {};\n }\n return (0, _createClass2.default)(RequestQueue, [{\n key: \"wrapLoader\",\n value: function wrapLoader(loader) {\n var self = this;\n self._loader = loader;\n return function /* url */\n () {\n return self.add.apply(self, arguments);\n };\n }\n }, {\n key: \"add\",\n value: function () {\n var _add = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(url) {\n var promise;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n promise = this._requests[url];\n if (!promise) {\n _context.next = 3;\n break;\n }\n return _context.abrupt(\"return\", Promise.resolve(promise));\n case 3:\n // queue URL and load it\n promise = this._requests[url] = this._loader(url);\n _context.prev = 4;\n _context.next = 7;\n return promise;\n case 7:\n return _context.abrupt(\"return\", _context.sent);\n case 8:\n _context.prev = 8;\n delete this._requests[url];\n return _context.finish(8);\n case 11:\n case \"end\":\n return _context.stop();\n }\n }, _callee, this, [[4,, 8, 11]]);\n }));\n function add(_x) {\n return _add.apply(this, arguments);\n }\n return add;\n }()\n }]);\n}();\n\n//# sourceURL=webpack://%5Bname%5D/./lib/RequestQueue.js?"); /***/ }), /***/ "./lib/ResolvedContext.js": /*!********************************!*\ !*** ./lib/ResolvedContext.js ***! \********************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/*\n * Copyright (c) 2019 Digital Bazaar, Inc. All rights reserved.\n */\n\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"./node_modules/@babel/runtime/helpers/classCallCheck.js\"));\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"./node_modules/@babel/runtime/helpers/createClass.js\"));\nvar LRU = __webpack_require__(/*! lru-cache */ \"./node_modules/lru-cache/index.js\");\nvar MAX_ACTIVE_CONTEXTS = 10;\nmodule.exports = /*#__PURE__*/function () {\n /**\n * Creates a ResolvedContext.\n *\n * @param document the context document.\n */\n function ResolvedContext(_ref) {\n var document = _ref.document;\n (0, _classCallCheck2.default)(this, ResolvedContext);\n this.document = document;\n // TODO: enable customization of processed context cache\n // TODO: limit based on size of processed contexts vs. number of them\n this.cache = new LRU({\n max: MAX_ACTIVE_CONTEXTS\n });\n }\n return (0, _createClass2.default)(ResolvedContext, [{\n key: \"getProcessed\",\n value: function getProcessed(activeCtx) {\n return this.cache.get(activeCtx);\n }\n }, {\n key: \"setProcessed\",\n value: function setProcessed(activeCtx, processedCtx) {\n this.cache.set(activeCtx, processedCtx);\n }\n }]);\n}();\n\n//# sourceURL=webpack://%5Bname%5D/./lib/ResolvedContext.js?"); /***/ }), /***/ "./lib/compact.js": /*!************************!*\ !*** ./lib/compact.js ***! \************************/ /*! no static exports found */ /***/ (function(module, exports, __webpack_require__) { "use strict"; eval("/*\n * Copyright (c) 2017 Digital Bazaar, Inc. All rights reserved.\n */\n\n\n__webpack_require__(/*! core-js/modules/es.symbol.js */ \"./node_modules/core-js/modules/es.symbol.js\");\n__webpack_require__(/*! core-js/modules/es.symbol.description.js */ \"./node_modules/core-js/modules/es.symbol.description.js\");\n__webpack_require__(/*! core-js/modules/es.symbol.iterator.js */ \"./node_modules/core-js/modules/es.symbol.iterator.js\");\n__webpack_require__(/*! core-js/modules/es.array.iterator.js */ \"./node_modules/core-js/modules/es.array.iterator.js\");\n__webpack_require__(/*! core-js/modules/es.function.name.js */ \"./node_modules/core-js/modules/es.function.name.js\");\n__webpack_require__(/*! core-js/modules/es.regexp.to-string.js */ \"./node_modules/core-js/modules/es.regexp.to-string.js\");\n__webpack_require__(/*! core-js/modules/web.dom-collections.iterator.js */ \"./node_modules/core-js/modules/web.dom-collections.iterator.js\");\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ \"./node_modules/@babel/runtime/regenerator/index.js\"));\n__webpack_require__(/*! core-js/modules/es.array.concat.js */ \"./node_modules/core-js/modules/es.array.concat.js\");\n__webpack_require__(/*! core-js/modules/es.array.find.js */ \"./node_modules/core-js/modules/es.array.find.js\");\n__webpack_require__(/*! core-js/modules/es.array.from.js */ \"./node_modules/core-js/modules/es.array.from.js\");\n__webpack_require__(/*! core-js/modules/es.array.includes.js */ \"./node_modules/core-js/modules/es.array.includes.js\");\n__webpack_require__(/*! core-js/modules/es.array.map.js */ \"./node_modules/core-js/modules/es.array.map.js\");\n__webpack_require__(/*! core-js/modules/es.array.reverse.js */ \"./node_modules/core-js/modules/es.array.reverse.js\");\n__webpack_require__(/*! core-js/modules/es.array.slice.js */ \"./node_modules/core-js/modules/es.array.slice.js\");\n__webpack_require__(/*! core-js/modules/es.array.sort.js */ \"./node_modules/core-js/modules/es.array.sort.js\");\n__webpack_require__(/*! core-js/modules/es.object.keys.js */ \"./node_modules/core-js/modules/es.object.keys.js\");\n__webpack_require__(/*! core-js/modules/es.object.to-string.js */ \"./node_modules/core-js/modules/es.object.to-string.js\");\n__webpack_require__(/*! core-js/modules/es.regexp.exec.js */ \"./node_modules/core-js/modules/es.regexp.exec.js\");\n__webpack_require__(/*! core-js/modules/es.regexp.test.js */ \"./node_modules/core-js/modules/es.regexp.test.js\");\n__webpack_require__(/*! core-js/modules/es.string.includes.js */ \"./node_modules/core-js/modules/es.string.includes.js\");\n__webpack_require__(/*! core-js/modules/es.string.iterator.js */ \"./node_modules/core-js/modules/es.string.iterator.js\");\n__webpack_require__(/*! core-js/modules/es.string.replace.js */ \"./node_modules/core-js/modules/es.string.replace.js\");\n__webpack_require__(/*! core-js/modules/es.string.starts-with.js */ \"./node_modules/core-js/modules/es.string.starts-with.js\");\n__webpack_require__(/*! core-js/modules/es.string.link.js */ \"./node_modules/core-js/modules/es.string.link.js\");\n__webpack_require__(/*! core-js/modules/esnext.iterator.map.js */ \"./node_modules/core-js/modules/esnext.iterator.map.js\");\nvar _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"./node_modules/@babel/runtime/helpers/slicedToArray.js\"));\nvar _toArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/toArray */ \"./node_modules/@babel/runtime/helpers/toArray.js\"));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"./node_modules/@babel/runtime/helpers/defineProperty.js\"));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"./node_modules/@babel/runtime/helpers/asyncToGenerator.js\"));\nfunction _createForOfIteratorHelper(r, e) { var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t.return || t.return(); } finally { if (u) throw o; } } }; }\nfunction _unsupportedIterableToArray(r, a) { if (r) { if (\"string\" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }\nfunction _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }\nvar JsonLdError = __webpack_require__(/*! ./JsonLdError */ \"./lib/JsonLdError.js\");\nvar _require = __webpack_require__(/*! ./types */ \"./lib/types.js\"),\n _isArray = _require.isArray,\n _isObject = _require.isObject,\n _isString = _require.isString,\n _isUndefined = _require.isUndefined;\nvar _require2 = __webpack_require__(/*! ./graphTypes */ \"./lib/graphTypes.js\"),\n _isList = _require2.isList,\n _isValue = _require2.isValue,\n _isGraph = _require2.isGraph,\n _isSimpleGraph = _require2.isSimpleGraph,\n _isSubjectReference = _require2.isSubjectReference;\nvar _require3 = __webpack_require__(/*! ./context */ \"./lib/context.js\"),\n _expandIri = _require3.expandIri,\n _getContextValue = _require3.getContextValue,\n _isKeyword = _require3.isKeyword,\n _processContext = _require3.process,\n _processingMode = _require3.processingMode;\nvar _require4 = __webpack_require__(/*! ./url */ \"./lib/url.js\"),\n _removeBase = _require4.removeBase,\n _prependBase = _require4.prependBase;\nvar _require5 = __webpack_require__(/*! ./util */ \"./lib/util.js\"),\n REGEX_KEYWORD = _require5.REGEX_KEYWORD,\n _addValue = _require5.addValue,\n _asArray = _require5.asArray,\n _compareShortestLeast = _require5.compareShortestLeast;\nvar api = {};\nmodule.exports = api;\n\n/**\n * Recursively compacts an element using the given active context. All values\n * must be in expanded form before this method is called.\n *\n * @param activeCtx the active context to use.\n * @param activeProperty the compacted property associated with the element\n * to compact, null for none.\n * @param element the element to compact.\n * @param options the compaction options.\n *\n * @return a promise that resolves to the compacted value.\n */\napi.compact = /*#__PURE__*/function () {\n var _ref2 = (0, _asyncToGenerator2.default)(/*#__PURE__*/_regenerator.default.mark(function _callee(_ref) {\n var activeCtx, _ref$activeProperty, activeProperty, element, _ref$options, options, rval, i, compacted, container, ctx, linked, _i, _rval, _container, insideReverse, _rval2, inputCtx, propertyScopedCtx, types, typeContext, _iterator, _step, type, compactedType, _ctx, keys, _iterator2, _step2, expandedProperty, expandedValue, compactedValue, alias, _compactedValue, _alias, _container2, typeAsSet, isArray, _compactedValue2, compactedProperty, value, _container3, useArray, _alias2, _compactedValue3, _container4, _alias3, _alias4, itemActiveProperty, nestProperty, nestResult, _iterator3, _step3, expandedItem, _itemActiveProperty, _nestProperty, _nestResult, _container5, isGraph, isList, inner, compactedItem, mapObject, key, _mapObject, _key, indexKey, containerKey, others, _asArray2, _asArray3, idKey, typeKey, _types, _asArray4, _asArray5, _isArray2;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n activeCtx = _ref.activeCtx, _ref$activeProperty = _ref.activeProperty, activeProperty = _ref$activeProperty === void 0 ? null : _ref$activeProperty, element = _ref.element, _ref$options = _ref.options, options = _ref$options === void 0 ? {} : _ref$options;\n if (!_isArray(element)) {\n _context.next = 16;\n break;\n }\n rval = [];\n i = 0;\n case 4:\n if (!(i < element.length)) {\n _context.next = 14;\n break;\n }\n _context.next = 7;\n return api.compact({\n activeCtx: activeCtx,\n activeProperty: activeProperty,\n element: element[i],\n options: options\n });\n case 7:\n compacted = _context.sent;\n if (!(compacted === null)) {\n _context.next = 10;\n break;\n }\n return _context.abrupt(\"continue\", 11);\n case 10:\n rval.push(compacted);\n case 11:\n ++i;\n _context.next = 4;\n break;\n case 14:\n if (options.compactArrays && rval.length === 1) {\n // use single element if no container is specified\n container = _getContextValue(activeCtx, activeProperty, '@container') || [];\n if (container.length === 0) {\n rval = rval[0];\n }\n }\n return _context.abrupt(\"return\", rval);\n case 16:\n // use any scoped context on activeProperty\n ctx = _getContextValue(activeCtx, activeProperty, '@context');\n if (_isUndefined(ctx)) {\n _context.next = 21;\n break;\n }\n _context.next = 20;\n return _processContext({\n activeCtx: activeCtx,\n localCtx: ctx,\n propagate: true,\n overrideProtected: true,\n options: options\n });\n case 20:\n activeCtx = _context.sent;\n case 21:\n if (!_isObject(element)) {\n _context.next = 242;\n break;\n }\n if (!(options.link && '@id' in element && options.link.hasOwnProperty(element['@id']))) {\n _context.next = 31;\n break;\n }\n // check for a linked element to reuse\n linked = options.link[element['@id']];\n _i = 0;\n case 25:\n if (!(_i < linked.length)) {\n _context.next = 31;\n break;\n }\n if (!(linked[_i].expanded === element)) {\n _context.next = 28;\n break;\n }\n return _context.abrupt(\"return\", linked[_i].compacted);\n case 28:\n ++_i;\n _context.next = 25;\n break;\n case 31:\n if (!(_isValue(element) || _isSubjectReference(element))) {\n _context.next = 35;\n break;\n }\n _rval = api.compactValue({\n activeCtx: activeCtx,\n activeProperty: activeProperty,\n value: element,\n options: options\n });\n if (options.link && _isSubjectReference(element)) {\n // store linked element\n if (!options.link.hasOwnProperty(element['@id'])) {\n options.link[element['@id']] = [];\n }\n options.link[element['@id']].push({\n expanded: element,\n compacted: _rval\n });\n }\n return _context.abrupt(\"return\", _rval);\n case 35:\n if (!_isList(element)) {\n _context.next = 39;\n break;\n }\n _container = _getContextValue(activeCtx, activeProperty, '@container') || [];\n if (!_container.includes('@list')) {\n _context.next = 39;\n break;\n }\n return _context.abrupt(\"return\", api.compact({\n activeCtx: activeCtx,\n activeProperty: activeProperty,\n element: element['@list'],\n options: options\n }));\n case 39:\n // FIXME: avoid misuse of active property as an expanded property?\n insideReverse = activeProperty === '@reverse';\n _rval2 = {}; // original context before applying property-scoped and local contexts\n inputCtx = activeCtx; // revert to previous context, if there is one,\n // and element is not a value object or a node reference\n if (!_isValue(element) && !_isSubjectReference(element)) {\n activeCtx = activeCtx.revertToPreviousContext();\n }\n\n // apply property-scoped context after reverting term-scoped context\n propertyScopedCtx = _getContextValue(inputCtx, activeProperty, '@context');\n if (_isUndefined(propertyScopedCtx)) {\n _context.next = 48;\n break;\n }\n _context.next = 47;\n return _processContext({\n activeCtx: activeCtx,\n localCtx: propertyScopedCtx,\n propagate: true,\n overrideProtected: true,\n options: options\n });\n case 47:\n activeCtx = _context.sent;\n case 48:\n if (options.link && '@id' in element) {\n // store linked element\n if (!options.link.hasOwnProperty(element['@id'])) {\n options.link[element['@id']] = [];\n }\n options.link[element['@id']].push({\n expanded: element,\n compacted: _rval2\n });\n }\n\n // apply any context defined on an alias of @type\n // if key is @type and any compacted value is a term having a local\n // context, overlay that context\n types = element['@type'] || [];\n if (types.length > 1) {\n types = Array.from(types).sort();\n }\n // find all type-scoped contexts based on current context, prior to\n // updating it\n typeContext = activeCtx;\n _iterator = _createForOfIteratorHelper(types);\n _context.prev = 53;\n _iterator.s();\n