{"version":3,"sources":["jsdelivr-header.js","/npm/json-ld-context-cache@0.0.1/js/jsonldcache.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACHA,OAAO,QAAU,SAAU,GACzB,IAAI,EAAK,QAAQ,MACb,EAAO,QAAQ,QAEf,GADA,EAAU,GAAW,CAAC,EACR,CAAC,GACf,EAAM,EAAY,IAAM,EAAQ,KAAO,QAAQ,IAC/C,EAAa,EAAY,WAAa,EAAQ,WAC9C,EAAa,EAAY,WAAa,EAAQ,YAAc,aAC5D,EAAc,EAAQ,aAAe,gBACzC,EAAc,EAAY,YAAc,EAAK,KAAM,EAAY,GAC/D,EAAI,gCAAgC,KACpC,IAAI,EAAW,EAAY,SAAW,QAAQ,GAC1C,EAAc,EAAY,YAAc,CAAC,EACzC,EAAgB,EAAY,cAAgB,CAAC,EASjD,OAAO,KAAK,EAAS,UAAU,SAAQ,SAAS,GAC9C,IAAI,EAAQ,EAAS,SAAS,GAI9B,GAHM,SAAU,IACd,EAAM,KAAO,EAAM,aAEf,EAAM,OAAO,GAAc,CAC/B,IAAI,EAAO,EAAK,KAAK,EAAY,EAAM,OAd7B,SAAU,GACpB,IAEE,OADA,EAAG,WAAW,EAAS,EAAG,OACnB,CACT,CAAC,MAAM,GACL,OAAO,CACT,CACJ,CAQQ,CAAQ,GAOV,EAAI,+BAA+B,KAAO,MAN1C,EAAY,EAAM,KAAO,CACvB,KAAQ,EACR,GAAM,GAER,EAAI,sBAAsB,KAAO,KAIrC,CACF,IACA,IAAI,EAAc,SAAU,GAC1B,KAAI,KAAO,GAKN,CACH,GAAI,EACF,OAAO,EAAW,EAAI,UAEtB,MAAM,IAAI,MAAM,gCAAkC,EAEtD,CAVE,IAAI,EAAQ,EAAY,GACpB,EAAM,EAAG,aAAa,EAAM,KAAM,QACtC,EAAI,sBAAsB,KAAO,EAAM,QACvC,EAAc,GAAO,CAQzB,EAgBA,OAfA,EAAY,eAAiB,SAAU,EAAK,GAQ1C,OANI,KAAO,GACT,EAAI,mBAAmB,KACjB,EAAc,IAEd,EAAY,GAEb,EACL,KAAM,CACJ,WAAY,KACZ,SAAU,EAAc,GACxB,YAAa,GAEnB,EACO,CACT","file":"/npm/json-ld-context-cache@0.0.1/js/jsonldcache.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/json-ld-context-cache@0.0.1/js/jsonldcache.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","/*\n * node.js only json-ld document cache hack until caching supported by json-ld\n */\nmodule.exports = function( options ){\n  var fs = require('fs');\n  var path = require('path');\n  var options = options || {};\n  var jsonldcache = {};\n  var log = jsonldcache.log = options.log || console.log;\n  var nextLoader = jsonldcache.nextLoader = options.nextLoader;\n  var contextDir = jsonldcache.contextDir = options.contextDir || \"./contexts\";\n  var contextFile = options.contextFile || \"registry.json\";\n  contextFile = jsonldcache.contextFile = path.join( contextDir, contextFile );\n  log(`jsonldcache loading registry ${contextFile}`);\n  var registry = jsonldcache.registry = require(contextFile);\n  var registryUri = jsonldcache.registryUri = {};\n  var contextsCache = jsonldcache.contextxCache = {};\n  var canRead = function( filename ){\n      try{\n        fs.accessSync(filename,fs.R_OK)\n        return true;\n      }catch(e){\n        return false;\n      }\n  }\n  Object.keys(registry.contexts).forEach(function(key){\n    var entry = registry.contexts[key];\n    if( !(\"file\" in entry) ){\n      entry.file = key + \".jsonld\";\n    }\n    if( !(entry.uri in registryUri) ){\n      var file = path.join(contextDir, entry.file);\n      if( canRead(file) ){\n        registryUri[entry.uri] = {\n          \"file\": file,\n          \"id\": key\n        };\n        log(`jsonldcache entry: ${key} ${file}`);\n      }else{\n        log(`jsonldcache unable to read: ${key} ${file}` );\n      }\n    }\n  });\n  var readContext = function( url ){\n    if( url in registryUri ){\n      var entry = registryUri[url];\n      var ctx = fs.readFileSync(entry.file, 'utf8');\n      log(`jsonldcache loaded ${url} ${entry.file}`)\n      contextsCache[url] = ctx;\n    }else{\n      if( nextLoader ){\n        return nextLoader(url,callback);\n      }else{\n        throw new Error('jsonldcache Missing context: ' + url);\n      }\n    }\n  }\n  jsonldcache.documentLoader = function( url, callback ){\n    var ctx;\n    if( url in contextsCache ){\n      log(`jsonldcache hit ${url}`)\n      ctx = contextsCache[url];\n    }else{\n      ctx = readContext(url);\n    }\n    return callback(\n      null, {\n        contextUrl: null, // this is for a context via a link header\n        document: contextsCache[url], // this is the actual document that was loaded\n        documentUrl: url // this is the actual context URL after redirects\n      });\n  };\n  return jsonldcache;\n}\n"]}