First upload version 0.0.1

This commit is contained in:
Neyra
2026-02-05 15:27:49 +08:00
commit 8e9b7201ed
4182 changed files with 593136 additions and 0 deletions

View File

@@ -0,0 +1,84 @@
// pkg/dist-src/web.js
var enc = new TextEncoder();
function hexToUInt8Array(string) {
const pairs = string.match(/[\dA-F]{2}/gi);
const integers = pairs.map(function(s) {
return parseInt(s, 16);
});
return new Uint8Array(integers);
}
function UInt8ArrayToHex(signature) {
return Array.prototype.map.call(new Uint8Array(signature), (x) => x.toString(16).padStart(2, "0")).join("");
}
async function importKey(secret) {
return crypto.subtle.importKey(
"raw",
// raw format of the key - should be Uint8Array
enc.encode(secret),
{
// algorithm details
name: "HMAC",
hash: { name: "SHA-256" }
},
false,
// export = false
["sign", "verify"]
// what this key can do
);
}
async function sign(secret, payload) {
if (!secret || !payload) {
throw new TypeError(
"[@octokit/webhooks-methods] secret & payload required for sign()"
);
}
if (typeof payload !== "string") {
throw new TypeError("[@octokit/webhooks-methods] payload must be a string");
}
const algorithm = "sha256";
const signature = await crypto.subtle.sign(
"HMAC",
await importKey(secret),
enc.encode(payload)
);
return `${algorithm}=${UInt8ArrayToHex(signature)}`;
}
async function verify(secret, eventPayload, signature) {
if (!secret || !eventPayload || !signature) {
throw new TypeError(
"[@octokit/webhooks-methods] secret, eventPayload & signature required"
);
}
if (typeof eventPayload !== "string") {
throw new TypeError(
"[@octokit/webhooks-methods] eventPayload must be a string"
);
}
const algorithm = "sha256";
return await crypto.subtle.verify(
"HMAC",
await importKey(secret),
hexToUInt8Array(signature.replace(`${algorithm}=`, "")),
enc.encode(eventPayload)
);
}
async function verifyWithFallback(secret, payload, signature, additionalSecrets) {
const firstPass = await verify(secret, payload, signature);
if (firstPass) {
return true;
}
if (additionalSecrets !== void 0) {
for (const s of additionalSecrets) {
const v = await verify(s, payload, signature);
if (v) {
return v;
}
}
}
return false;
}
export {
sign,
verify,
verifyWithFallback
};

View File

@@ -0,0 +1,7 @@
{
"version": 3,
"sources": ["../dist-src/web.js"],
"sourcesContent": ["const 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}\nasync function importKey(secret) {\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: \"SHA-256\" }\n },\n false,\n // export = false\n [\"sign\", \"verify\"]\n // what this key can do\n );\n}\nasync function sign(secret, payload) {\n if (!secret || !payload) {\n throw new TypeError(\n \"[@octokit/webhooks-methods] secret & payload required for sign()\"\n );\n }\n if (typeof payload !== \"string\") {\n throw new TypeError(\"[@octokit/webhooks-methods] payload must be a string\");\n }\n const algorithm = \"sha256\";\n const signature = await crypto.subtle.sign(\n \"HMAC\",\n await importKey(secret),\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 if (typeof eventPayload !== \"string\") {\n throw new TypeError(\n \"[@octokit/webhooks-methods] eventPayload must be a string\"\n );\n }\n const algorithm = \"sha256\";\n return await crypto.subtle.verify(\n \"HMAC\",\n await importKey(secret),\n hexToUInt8Array(signature.replace(`${algorithm}=`, \"\")),\n enc.encode(eventPayload)\n );\n}\nasync function verifyWithFallback(secret, payload, signature, additionalSecrets) {\n const firstPass = await verify(secret, payload, signature);\n if (firstPass) {\n return true;\n }\n if (additionalSecrets !== void 0) {\n for (const s of additionalSecrets) {\n const v = await verify(s, payload, signature);\n if (v) {\n return v;\n }\n }\n }\n return false;\n}\nexport {\n sign,\n verify,\n verifyWithFallback\n};\n"],
"mappings": ";AAAA,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,eAAe,UAAU,QAAQ;AAC/B,SAAO,OAAO,OAAO;AAAA,IACnB;AAAA;AAAA,IAEA,IAAI,OAAO,MAAM;AAAA,IACjB;AAAA;AAAA,MAEE,MAAM;AAAA,MACN,MAAM,EAAE,MAAM,UAAU;AAAA,IAC1B;AAAA,IACA;AAAA;AAAA,IAEA,CAAC,QAAQ,QAAQ;AAAA;AAAA,EAEnB;AACF;AACA,eAAe,KAAK,QAAQ,SAAS;AACnC,MAAI,CAAC,UAAU,CAAC,SAAS;AACvB,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,MAAI,OAAO,YAAY,UAAU;AAC/B,UAAM,IAAI,UAAU,sDAAsD;AAAA,EAC5E;AACA,QAAM,YAAY;AAClB,QAAM,YAAY,MAAM,OAAO,OAAO;AAAA,IACpC;AAAA,IACA,MAAM,UAAU,MAAM;AAAA,IACtB,IAAI,OAAO,OAAO;AAAA,EACpB;AACA,SAAO,GAAG,SAAS,IAAI,gBAAgB,SAAS,CAAC;AACnD;AACA,eAAe,OAAO,QAAQ,cAAc,WAAW;AACrD,MAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,WAAW;AAC1C,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,MAAI,OAAO,iBAAiB,UAAU;AACpC,UAAM,IAAI;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,QAAM,YAAY;AAClB,SAAO,MAAM,OAAO,OAAO;AAAA,IACzB;AAAA,IACA,MAAM,UAAU,MAAM;AAAA,IACtB,gBAAgB,UAAU,QAAQ,GAAG,SAAS,KAAK,EAAE,CAAC;AAAA,IACtD,IAAI,OAAO,YAAY;AAAA,EACzB;AACF;AACA,eAAe,mBAAmB,QAAQ,SAAS,WAAW,mBAAmB;AAC/E,QAAM,YAAY,MAAM,OAAO,QAAQ,SAAS,SAAS;AACzD,MAAI,WAAW;AACb,WAAO;AAAA,EACT;AACA,MAAI,sBAAsB,QAAQ;AAChC,eAAW,KAAK,mBAAmB;AACjC,YAAM,IAAI,MAAM,OAAO,GAAG,SAAS,SAAS;AAC5C,UAAI,GAAG;AACL,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;",
"names": []
}