{ "version": 3, "sources": ["../dist-src/types.js", "../dist-src/utils.js", "../dist-src/web.js"], "sourcesContent": ["var Algorithm = /* @__PURE__ */ ((Algorithm2) => {\n Algorithm2[\"SHA1\"] = \"sha1\";\n Algorithm2[\"SHA256\"] = \"sha256\";\n return Algorithm2;\n})(Algorithm || {});\nexport {\n Algorithm\n};\n", "const getAlgorithm = (signature) => {\n return signature.startsWith(\"sha256=\") ? \"sha256\" : \"sha1\";\n};\nexport {\n getAlgorithm\n};\n", "import { Algorithm } from \"./types\";\nimport { getAlgorithm } from \"./utils\";\nconst enc = new TextEncoder();\nfunction hexToUInt8Array(string) {\n const pairs = string.match(/[\\dA-F]{2}/gi);\n const integers = pairs.map(function(s) {\n return parseInt(s, 16);\n });\n return new Uint8Array(integers);\n}\nfunction UInt8ArrayToHex(signature) {\n return Array.prototype.map.call(new Uint8Array(signature), (x) => x.toString(16).padStart(2, \"0\")).join(\"\");\n}\nfunction getHMACHashName(algorithm) {\n return {\n [Algorithm.SHA1]: \"SHA-1\",\n [Algorithm.SHA256]: \"SHA-256\"\n }[algorithm];\n}\nasync function importKey(secret, algorithm) {\n return crypto.subtle.importKey(\n \"raw\",\n // raw format of the key - should be Uint8Array\n enc.encode(secret),\n {\n // algorithm details\n name: \"HMAC\",\n hash: { name: getHMACHashName(algorithm) }\n },\n false,\n // export = false\n [\"sign\", \"verify\"]\n // what this key can do\n );\n}\nasync function sign(options, payload) {\n const { secret, algorithm } = typeof options === \"object\" ? {\n secret: options.secret,\n algorithm: options.algorithm || Algorithm.SHA256\n } : { secret: options, algorithm: Algorithm.SHA256 };\n if (!secret || !payload) {\n throw new TypeError(\n \"[@octokit/webhooks-methods] secret & payload required for sign()\"\n );\n }\n if (!Object.values(Algorithm).includes(algorithm)) {\n throw new TypeError(\n `[@octokit/webhooks] Algorithm ${algorithm} is not supported. Must be 'sha1' or 'sha256'`\n );\n }\n const signature = await crypto.subtle.sign(\n \"HMAC\",\n await importKey(secret, algorithm),\n enc.encode(payload)\n );\n return `${algorithm}=${UInt8ArrayToHex(signature)}`;\n}\nasync function verify(secret, eventPayload, signature) {\n if (!secret || !eventPayload || !signature) {\n throw new TypeError(\n \"[@octokit/webhooks-methods] secret, eventPayload & signature required\"\n );\n }\n const algorithm = getAlgorithm(signature);\n return await crypto.subtle.verify(\n \"HMAC\",\n await importKey(secret, algorithm),\n hexToUInt8Array(signature.replace(`${algorithm}=`, \"\")),\n enc.encode(eventPayload)\n );\n}\nexport {\n sign,\n verify\n};\n"], "mappings": ";AAAA,IAAI,YAA6B,kBAAC,eAAe;AAC/C,aAAW,MAAM,IAAI;AACrB,aAAW,QAAQ,IAAI;AACvB,SAAO;AACT,GAAG,aAAa,CAAC,CAAC;;;ACJlB,IAAM,eAAe,CAAC,cAAc;AAClC,SAAO,UAAU,WAAW,SAAS,IAAI,WAAW;AACtD;;;ACAA,IAAM,MAAM,IAAI,YAAY;AAC5B,SAAS,gBAAgB,QAAQ;AAC/B,QAAM,QAAQ,OAAO,MAAM,cAAc;AACzC,QAAM,WAAW,MAAM,IAAI,SAAS,GAAG;AACrC,WAAO,SAAS,GAAG,EAAE;AAAA,EACvB,CAAC;AACD,SAAO,IAAI,WAAW,QAAQ;AAChC;AACA,SAAS,gBAAgB,WAAW;AAClC,SAAO,MAAM,UAAU,IAAI,KAAK,IAAI,WAAW,SAAS,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,EAAE,KAAK,EAAE;AAC5G;AACA,SAAS,gBAAgB,WAAW;AAClC,SAAO;AAAA,IACL,CAAC,UAAU,IAAI,GAAG;AAAA,IAClB,CAAC,UAAU,MAAM,GAAG;AAAA,EACtB,EAAE,SAAS;AACb;AACA,eAAe,UAAU,QAAQ,WAAW;AAC1C,SAAO,OAAO,OAAO;AAAA,IACnB;AAAA;AAAA,IAEA,IAAI,OAAO,MAAM;AAAA,IACjB;AAAA;AAAA,MAEE,MAAM;AAAA,MACN,MAAM,EAAE,MAAM,gBAAgB,SAAS,EAAE;AAAA,IAC3C;AAAA,IACA;AAAA;AAAA,IAEA,CAAC,QAAQ,QAAQ;AAAA;AAAA,EAEnB;AACF;AACA,eAAe,KAAK,SAAS,SAAS;AACpC,QAAM,EAAE,QAAQ,UAAU,IAAI,OAAO,YAAY,WAAW;AAAA,IAC1D,QAAQ,QAAQ;AAAA,IAChB,WAAW,QAAQ,aAAa,UAAU;AAAA,EAC5C,IAAI,EAAE,QAAQ,SAAS,WAAW,UAAU,OAAO;AACnD,MAAI,CAAC,UAAU,CAAC,SAAS;AACvB,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,MAAI,CAAC,OAAO,OAAO,SAAS,EAAE,SAAS,SAAS,GAAG;AACjD,UAAM,IAAI;AAAA,MACR,iCAAiC;AAAA,IACnC;AAAA,EACF;AACA,QAAM,YAAY,MAAM,OAAO,OAAO;AAAA,IACpC;AAAA,IACA,MAAM,UAAU,QAAQ,SAAS;AAAA,IACjC,IAAI,OAAO,OAAO;AAAA,EACpB;AACA,SAAO,GAAG,aAAa,gBAAgB,SAAS;AAClD;AACA,eAAe,OAAO,QAAQ,cAAc,WAAW;AACrD,MAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,WAAW;AAC1C,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,QAAM,YAAY,aAAa,SAAS;AACxC,SAAO,MAAM,OAAO,OAAO;AAAA,IACzB;AAAA,IACA,MAAM,UAAU,QAAQ,SAAS;AAAA,IACjC,gBAAgB,UAAU,QAAQ,GAAG,cAAc,EAAE,CAAC;AAAA,IACtD,IAAI,OAAO,YAAY;AAAA,EACzB;AACF;", "names": [] }