Skip to content

Commit

Permalink
squash!
Browse files Browse the repository at this point in the history
  • Loading branch information
NikolaRHristov committed Sep 28, 2023
1 parent 5ea9ec0 commit d8d8f31
Show file tree
Hide file tree
Showing 7 changed files with 161 additions and 83 deletions.
31 changes: 0 additions & 31 deletions Target/Index.d.ts

This file was deleted.

147 changes: 146 additions & 1 deletion Target/Index.js
Original file line number Diff line number Diff line change
@@ -1 +1,146 @@
const{default:r}=await import("./Object/Environment.js"),{Response:n}=await import("@cloudflare/workers-types");class a extends n{constructor(t,s={headers:{"content-type":"application/json;charset=UTF-8"}}){super(JSON.stringify(t),s)}}(await import("itty-router")).Router().post("/discord",async e=>{const t=await e.json();if(t.type===(await import("discord-interactions")).InteractionType.PING)return new a({type:(await import("discord-interactions")).InteractionResponseType.PONG});if(t.type===(await import("discord-interactions")).InteractionType.APPLICATION_COMMAND)switch(t.data.name.toLowerCase()){case"invite":return new a({type:4,data:{content:`https://discord.com/oauth2/authorize?client_id=${r.parse(process.env).DISCORD_APPLICATION_ID}&scope=applications.commands`,flags:64}});default:return new a({error:"Unknown Type"},{status:400})}return new a({error:"Unknown Type"},{status:400})}),(await import("itty-router")).Router().all("*",()=>new n("404 | Not Found.",{status:404}));var o={async fetch(e,{DISCORD_PUBLIC_KEY:t}=r.parse(process.env)){return e.method==="POST"&&!(await import("discord-interactions")).verifyKey(await e.clone().arrayBuffer(),e.headers.get("x-signature-ed25519")??"",e.headers.get("x-signature-timestamp")??"",t)?(console.error("Invalid Request"),new n("Bad request signature.",{status:401})):(await import("itty-router")).Router().handle(e)}};export{r as Environment,n as Response,o as default};
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __generator = (this && this.__generator) || function (thisArg, body) {
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
function verb(n) { return function (v) { return step([n, v]); }; }
function step(op) {
if (f) throw new TypeError("Generator is already executing.");
while (g && (g = 0, op[0] && (_ = 0)), _) try {
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
if (y = 0, t) op = [op[0] & 2, t.value];
switch (op[0]) {
case 0: case 1: t = op; break;
case 4: _.label++; return { value: op[1], done: false };
case 5: _.label++; y = op[1]; op = [0]; continue;
case 7: op = _.ops.pop(); _.trys.pop(); continue;
default:
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
if (t[2]) _.ops.pop();
_.trys.pop(); continue;
}
op = body.call(thisArg, _);
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
}
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Response = exports.Environment = void 0;
exports.Environment = (await Promise.resolve().then(function () { return require("./Object/Environment.js"); })).default;
exports.Response = (await Promise.resolve().then(function () { return require("@cloudflare/workers-types"); })).Response;
var JSONResponse = /** @class */ (function (_super) {
__extends(JSONResponse, _super);
function JSONResponse(
// rome-ignore lint/suspicious/noExplicitAny:
body, init) {
if (init === void 0) { init = {
headers: {
"content-type": "application/json;charset=UTF-8",
},
}; }
return _super.call(this, JSON.stringify(body), init) || this;
}
return JSONResponse;
}(exports.Response));
(await Promise.resolve().then(function () { return require("itty-router"); })).Router().post("/discord", function (Request) { return __awaiter(void 0, void 0, void 0, function () {
var Message, _a, _b, _c;
var _d;
return __generator(this, function (_e) {
switch (_e.label) {
case 0: return [4 /*yield*/, Request["json"]()];
case 1:
Message = _e.sent();
_a = Message.type;
return [4 /*yield*/, Promise.resolve().then(function () { return require("discord-interactions"); })];
case 2:
if (!(_a ===
(_e.sent()).InteractionType.PING)) return [3 /*break*/, 4];
_b = JSONResponse.bind;
_d = {};
return [4 /*yield*/, Promise.resolve().then(function () { return require("discord-interactions"); })];
case 3: return [2 /*return*/, new (_b.apply(JSONResponse, [void 0, (_d.type = (_e.sent()).InteractionResponseType
.PONG,
_d)]))()];
case 4:
_c = Message.type;
return [4 /*yield*/, Promise.resolve().then(function () { return require("discord-interactions"); })];
case 5:
if (_c ===
(_e.sent()).InteractionType
.APPLICATION_COMMAND) {
switch (Message.data.name.toLowerCase()) {
case "invite": {
return [2 /*return*/, new JSONResponse({
type: 4,
data: {
content: "https://discord.com/oauth2/authorize?client_id=".concat(exports.Environment.parse(process.env)
.DISCORD_APPLICATION_ID, "&scope=applications.commands"),
flags: 64,
},
})];
}
default:
return [2 /*return*/, new JSONResponse({ error: "Unknown Type" }, { status: 400 })];
}
}
return [2 /*return*/, new JSONResponse({ error: "Unknown Type" }, { status: 400 })];
}
});
}); });
(await Promise.resolve().then(function () { return require("itty-router"); }))
.Router()
.all("*", function () { return new exports.Response("404 | Not Found.", { status: 404 }); });
exports.default = {
fetch: function (request, _a) {
var _b, _c;
var _d = _a === void 0 ? exports.Environment.parse(process.env) : _a, DISCORD_PUBLIC_KEY = _d.DISCORD_PUBLIC_KEY;
return __awaiter(this, void 0, void 0, function () {
var isValidRequest, _e, _f;
return __generator(this, function (_g) {
switch (_g.label) {
case 0:
if (!(request.method === "POST")) return [3 /*break*/, 3];
return [4 /*yield*/, Promise.resolve().then(function () { return require("discord-interactions"); })];
case 1:
_f = (_e = (_g.sent())).verifyKey;
return [4 /*yield*/, request.clone().arrayBuffer()];
case 2:
isValidRequest = _f.apply(_e, [_g.sent(), (_b = request["headers"].get("x-signature-ed25519")) !== null && _b !== void 0 ? _b : "", (_c = request["headers"].get("x-signature-timestamp")) !== null && _c !== void 0 ? _c : "", DISCORD_PUBLIC_KEY]);
if (!isValidRequest) {
console.error("Invalid Request");
return [2 /*return*/, new exports.Response("Bad request signature.", { status: 401 })];
}
_g.label = 3;
case 3: return [4 /*yield*/, Promise.resolve().then(function () { return require("itty-router"); })];
case 4: return [2 /*return*/, (_g.sent()).Router().handle(request)];
}
});
});
},
};
21 changes: 0 additions & 21 deletions Target/Interface/Environment.d.ts

This file was deleted.

4 changes: 3 additions & 1 deletion Target/Interface/Environment.js
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
const{default:e}=await import("../Object/Environment.js");
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var _Object = (await Promise.resolve().then(function () { return require("../Object/Environment.js"); })).default;
28 changes: 0 additions & 28 deletions Target/Object/Environment.d.ts

This file was deleted.

13 changes: 12 additions & 1 deletion Target/Object/Environment.js
Original file line number Diff line number Diff line change
@@ -1 +1,12 @@
(await import("dotenv")).config();const{string:t}=await import("zod");var o=(await import("zod")).object({DISCORD_APPLICATION_ID:t().optional().default(""),DISCORD_CLIENT_ID:t().optional().default(""),DISCORD_CLIENT_SECRET:t().optional().default(""),DISCORD_PUBLIC_KEY:t().optional().default(""),DISCORD_TOKENS:t().optional().default("")});export{o as default,t as string};
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.string = void 0;
(await Promise.resolve().then(function () { return require("dotenv"); })).config();
exports.string = (await Promise.resolve().then(function () { return require("zod"); })).string;
exports.default = (await Promise.resolve().then(function () { return require("zod"); })).object({
DISCORD_APPLICATION_ID: (0, exports.string)().optional().default(""),
DISCORD_CLIENT_ID: (0, exports.string)().optional().default(""),
DISCORD_CLIENT_SECRET: (0, exports.string)().optional().default(""),
DISCORD_PUBLIC_KEY: (0, exports.string)().optional().default(""),
DISCORD_TOKENS: (0, exports.string)().optional().default(""),
});

0 comments on commit d8d8f31

Please sign in to comment.