]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/helpers/custom-jsonld-signature.ts
Merge branch 'release/2.1.0' into develop
[github/Chocobozzz/PeerTube.git] / server / helpers / custom-jsonld-signature.ts
index cb07fa3b28bc7ce6c08f2cdf4ad23c14887aa8c9..749c50cb3d5c6f5de154964948d56596f493246d 100644 (file)
@@ -5,52 +5,52 @@ import { logger } from './logger'
 const CACHE = {
   'https://w3id.org/security/v1': {
     '@context': {
-      'id': '@id',
-      'type': '@type',
+      id: '@id',
+      type: '@type',
 
-      'dc': 'http://purl.org/dc/terms/',
-      'sec': 'https://w3id.org/security#',
-      'xsd': 'http://www.w3.org/2001/XMLSchema#',
+      dc: 'http://purl.org/dc/terms/',
+      sec: 'https://w3id.org/security#',
+      xsd: 'http://www.w3.org/2001/XMLSchema#',
 
-      'EcdsaKoblitzSignature2016': 'sec:EcdsaKoblitzSignature2016',
-      'Ed25519Signature2018': 'sec:Ed25519Signature2018',
-      'EncryptedMessage': 'sec:EncryptedMessage',
-      'GraphSignature2012': 'sec:GraphSignature2012',
-      'LinkedDataSignature2015': 'sec:LinkedDataSignature2015',
-      'LinkedDataSignature2016': 'sec:LinkedDataSignature2016',
-      'CryptographicKey': 'sec:Key',
+      EcdsaKoblitzSignature2016: 'sec:EcdsaKoblitzSignature2016',
+      Ed25519Signature2018: 'sec:Ed25519Signature2018',
+      EncryptedMessage: 'sec:EncryptedMessage',
+      GraphSignature2012: 'sec:GraphSignature2012',
+      LinkedDataSignature2015: 'sec:LinkedDataSignature2015',
+      LinkedDataSignature2016: 'sec:LinkedDataSignature2016',
+      CryptographicKey: 'sec:Key',
 
-      'authenticationTag': 'sec:authenticationTag',
-      'canonicalizationAlgorithm': 'sec:canonicalizationAlgorithm',
-      'cipherAlgorithm': 'sec:cipherAlgorithm',
-      'cipherData': 'sec:cipherData',
-      'cipherKey': 'sec:cipherKey',
-      'created': { '@id': 'dc:created', '@type': 'xsd:dateTime' },
-      'creator': { '@id': 'dc:creator', '@type': '@id' },
-      'digestAlgorithm': 'sec:digestAlgorithm',
-      'digestValue': 'sec:digestValue',
-      'domain': 'sec:domain',
-      'encryptionKey': 'sec:encryptionKey',
-      'expiration': { '@id': 'sec:expiration', '@type': 'xsd:dateTime' },
-      'expires': { '@id': 'sec:expiration', '@type': 'xsd:dateTime' },
-      'initializationVector': 'sec:initializationVector',
-      'iterationCount': 'sec:iterationCount',
-      'nonce': 'sec:nonce',
-      'normalizationAlgorithm': 'sec:normalizationAlgorithm',
-      'owner': { '@id': 'sec:owner', '@type': '@id' },
-      'password': 'sec:password',
-      'privateKey': { '@id': 'sec:privateKey', '@type': '@id' },
-      'privateKeyPem': 'sec:privateKeyPem',
-      'publicKey': { '@id': 'sec:publicKey', '@type': '@id' },
-      'publicKeyBase58': 'sec:publicKeyBase58',
-      'publicKeyPem': 'sec:publicKeyPem',
-      'publicKeyWif': 'sec:publicKeyWif',
-      'publicKeyService': { '@id': 'sec:publicKeyService', '@type': '@id' },
-      'revoked': { '@id': 'sec:revoked', '@type': 'xsd:dateTime' },
-      'salt': 'sec:salt',
-      'signature': 'sec:signature',
-      'signatureAlgorithm': 'sec:signingAlgorithm',
-      'signatureValue': 'sec:signatureValue'
+      authenticationTag: 'sec:authenticationTag',
+      canonicalizationAlgorithm: 'sec:canonicalizationAlgorithm',
+      cipherAlgorithm: 'sec:cipherAlgorithm',
+      cipherData: 'sec:cipherData',
+      cipherKey: 'sec:cipherKey',
+      created: { '@id': 'dc:created', '@type': 'xsd:dateTime' },
+      creator: { '@id': 'dc:creator', '@type': '@id' },
+      digestAlgorithm: 'sec:digestAlgorithm',
+      digestValue: 'sec:digestValue',
+      domain: 'sec:domain',
+      encryptionKey: 'sec:encryptionKey',
+      expiration: { '@id': 'sec:expiration', '@type': 'xsd:dateTime' },
+      expires: { '@id': 'sec:expiration', '@type': 'xsd:dateTime' },
+      initializationVector: 'sec:initializationVector',
+      iterationCount: 'sec:iterationCount',
+      nonce: 'sec:nonce',
+      normalizationAlgorithm: 'sec:normalizationAlgorithm',
+      owner: { '@id': 'sec:owner', '@type': '@id' },
+      password: 'sec:password',
+      privateKey: { '@id': 'sec:privateKey', '@type': '@id' },
+      privateKeyPem: 'sec:privateKeyPem',
+      publicKey: { '@id': 'sec:publicKey', '@type': '@id' },
+      publicKeyBase58: 'sec:publicKeyBase58',
+      publicKeyPem: 'sec:publicKeyPem',
+      publicKeyWif: 'sec:publicKeyWif',
+      publicKeyService: { '@id': 'sec:publicKeyService', '@type': '@id' },
+      revoked: { '@id': 'sec:revoked', '@type': 'xsd:dateTime' },
+      salt: 'sec:salt',
+      signature: 'sec:signature',
+      signatureAlgorithm: 'sec:signingAlgorithm',
+      signatureValue: 'sec:signatureValue'
     }
   }
 }
@@ -60,22 +60,30 @@ const nodeDocumentLoader = jsonld.documentLoaders.node()
 const lru = new AsyncLRU({
   max: 10,
   load: (url, cb) => {
-    if (CACHE[ url ] !== undefined) {
+    if (CACHE[url] !== undefined) {
       logger.debug('Using cache for JSON-LD %s.', url)
 
       return cb(null, {
         contextUrl: null,
-        document: CACHE[ url ],
+        document: CACHE[url],
         documentUrl: url
       })
     }
 
-    nodeDocumentLoader(url, cb)
+    nodeDocumentLoader(url)
+      .then(value => cb(null, value))
+      .catch(err => cb(err))
   }
 })
 
-jsonld.documentLoader = (url, cb) => {
-  lru.get(url, cb)
+jsonld.documentLoader = (url) => {
+  return new Promise((res, rej) => {
+    lru.get(url, (err, value) => {
+      if (err) return rej(err)
+
+      return res(value)
+    })
+  })
 }
 
 export { jsonld }