{"version":3,"file":"apiKey.mjs","sources":["../src/apiKey.js"],"sourcesContent":["/**\n * Check an apiKey\n *\n * @function keyChecker\n * @param {url} - api keys check url\n * @return {Function} - fn({ key, permission})\n * @throws {Error} - 401 if key is invalid, 403 if permission do not match\n *\n * @example\n * const checkKey = keyChecker('https://confy.dbmx.io/apiKeys/check', 'r2HUW1kd2cqeQ');\n * checkKey({ key: 'r2HUW1kd2cqeQ', permission: 'party:parts:read' })\n */\n\nexport const keyChecker = apiKeysUrl => {\n  return async ({ key, permission }) => {\n    const headers = { 'Content-Type': 'application/json' }\n    const res = await fetch(apiKeysUrl, { method: 'POST', headers, body: JSON.stringify({ key, permission }) })\n    if (!res.ok) {\n      const err = new Error(res.statusText)\n      err.code = res.status\n      throw err\n    }\n    return res.json()\n  }\n}\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEY,MAAC,UAAU,GAAG,UAAU,IAAI;AACxC,EAAE,OAAO,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,KAAK;AACxC,IAAI,MAAM,OAAO,GAAG,EAAE,cAAc,EAAE,kBAAkB;AACxD,IAAI,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE;AAC9G,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE;AACjB,MAAM,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU;AAC1C,MAAM,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;AACrB,MAAM,MAAM;AACZ,IAAI;AACJ,IAAI,OAAO,GAAG,CAAC,IAAI;AACnB,EAAE;AACF;;;;"}