Commit b73cc26c authored by Grant's avatar Grant
Browse files

add files for npm i

parent 6981cd35
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
dist
node_modules
 No newline at end of file

dist/ShadowAPI.d.ts

0 → 100644
+33 −0
Original line number Diff line number Diff line
import EventEmitter from "eventemitter3";
import { UnbanEvent } from "./events/UnbanEvent";
import { BanEvent } from "./events/BanEvent";
import { ShadowEvent } from "./events";
interface Events {
    ban: (info: BanEvent) => void;
    unban: (info: UnbanEvent) => void;
}
export declare class ShadowAPI extends EventEmitter<Events> {
    private ready;
    private shadow_host;
    private redis_sub;
    private RedisEvents;
    private constructor();
    /**
     * Check shadow_host to make sure it's a shadow endpoint
     * @returns
     */
    probeHost(): Promise<boolean>;
    connectToRedis(): Promise<void>;
    connect(): Promise<void>;
    setupRedisSubscriptions(): void;
    /**
     * Create shadow instance
     * @param shadow_host
     * @param redis_uri
     * @returns
     */
    static create(shadow_host: string, redis_uri: string): ShadowAPI;
    static getAllEvents(): ShadowEvent[];
}
export {};
//# sourceMappingURL=ShadowAPI.d.ts.map
 No newline at end of file
+1 −0
Original line number Diff line number Diff line
{"version":3,"file":"ShadowAPI.d.ts","sourceRoot":"","sources":["../src/ShadowAPI.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,UAAU,MAAM;IACd,GAAG,EAAE,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC9B,KAAK,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;CACnC;AAED,qBAAa,SAAU,SAAQ,YAAY,CAAC,MAAM,CAAC;IACjD,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAkB;IAEnC,OAAO,CAAC,WAAW,CAAmC;IAEtD,OAAO;IAQP;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAK7B,cAAc;IAKd,OAAO;IASb,uBAAuB;IAiBvB;;;;;OAKG;IACH,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS;IAKhE,MAAM,CAAC,YAAY,IAAI,WAAW,EAAE;CAGrC"}
 No newline at end of file

dist/ShadowAPI.js

0 → 100644
+82 −0
Original line number Diff line number Diff line
"use strict";
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 __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ShadowAPI = void 0;
const eventemitter3_1 = __importDefault(require("eventemitter3"));
const UnbanEvent_1 = require("./events/UnbanEvent");
const BanEvent_1 = require("./events/BanEvent");
const redis_1 = require("redis");
class ShadowAPI extends eventemitter3_1.default {
    constructor(shadow_host, redis_uri) {
        super();
        this.ready = false;
        this.RedisEvents = [BanEvent_1.BanEvent, UnbanEvent_1.UnbanEvent];
        this.shadow_host = shadow_host;
        this.redis_sub = (0, redis_1.createClient)({ url: redis_uri });
    }
    /**
     * Check shadow_host to make sure it's a shadow endpoint
     * @returns
     */
    probeHost() {
        return __awaiter(this, void 0, void 0, function* () {
            // TODO: check shadow host and verify it's running & is a shadow endpoint
            return true;
        });
    }
    connectToRedis() {
        return __awaiter(this, void 0, void 0, function* () {
            yield this.redis_sub.connect();
            this.setupRedisSubscriptions();
        });
    }
    connect() {
        return __awaiter(this, void 0, void 0, function* () {
            if (this.ready)
                return;
            yield this.probeHost();
            yield this.connectToRedis();
            this.ready = true;
        });
    }
    setupRedisSubscriptions() {
        // TODO: maybe dynamically create this?
        // or the Events interface?
        const classMapping = [
            [BanEvent_1.BanEvent, "ban"],
            [UnbanEvent_1.UnbanEvent, "unban"],
        ];
        const prefix = "shadow:";
        for (const [eventcl, emit] of classMapping) {
            this.redis_sub.subscribe(prefix + eventcl.getChannel(), (data) => {
                this.emit(emit, eventcl.fromString(data));
            });
        }
    }
    /**
     * Create shadow instance
     * @param shadow_host
     * @param redis_uri
     * @returns
     */
    static create(shadow_host, redis_uri) {
        const shadow = new this(shadow_host, redis_uri);
        return shadow;
    }
    static getAllEvents() {
        return [BanEvent_1.BanEvent, UnbanEvent_1.UnbanEvent];
    }
}
exports.ShadowAPI = ShadowAPI;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2hhZG93QVBJLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1NoYWRvd0FQSS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBQSxrRUFBeUM7QUFDekMsb0RBQWlEO0FBQ2pELGdEQUE2QztBQUM3QyxpQ0FBc0Q7QUFRdEQsTUFBYSxTQUFVLFNBQVEsdUJBQW9CO0lBT2pELFlBQW9CLFdBQW1CLEVBQUUsU0FBaUI7UUFDeEQsS0FBSyxFQUFFLENBQUM7UUFQRixVQUFLLEdBQVksS0FBSyxDQUFDO1FBSXZCLGdCQUFXLEdBQUcsQ0FBQyxtQkFBUSxFQUFFLHVCQUFVLENBQVUsQ0FBQztRQUtwRCxJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztRQUUvQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUEsb0JBQVksRUFBQyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRDs7O09BR0c7SUFDRyxTQUFTOztZQUNiLHlFQUF5RTtZQUN6RSxPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7S0FBQTtJQUVLLGNBQWM7O1lBQ2xCLE1BQU0sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUNqQyxDQUFDO0tBQUE7SUFFSyxPQUFPOztZQUNYLElBQUksSUFBSSxDQUFDLEtBQUs7Z0JBQUUsT0FBTztZQUV2QixNQUFNLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN2QixNQUFNLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUU1QixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUNwQixDQUFDO0tBQUE7SUFFRCx1QkFBdUI7UUFDckIsdUNBQXVDO1FBQ3ZDLDJCQUEyQjtRQUMzQixNQUFNLFlBQVksR0FBd0Q7WUFDeEUsQ0FBQyxtQkFBUSxFQUFFLEtBQUssQ0FBQztZQUNqQixDQUFDLHVCQUFVLEVBQUUsT0FBTyxDQUFDO1NBQ3RCLENBQUM7UUFFRixNQUFNLE1BQU0sR0FBRyxTQUFTLENBQUM7UUFFekIsS0FBSyxNQUFNLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEVBQUUsRUFBRTtnQkFDL0QsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQVEsQ0FBQyxDQUFDO1lBQ25ELENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBbUIsRUFBRSxTQUFpQjtRQUNsRCxNQUFNLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDaEQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxZQUFZO1FBQ2pCLE9BQU8sQ0FBQyxtQkFBUSxFQUFFLHVCQUFVLENBQUMsQ0FBQztJQUNoQyxDQUFDO0NBQ0Y7QUFyRUQsOEJBcUVDIn0=
 No newline at end of file
+12 −0
Original line number Diff line number Diff line
import { IBroadcastable } from "..";
export declare class BanEvent implements IBroadcastable {
    private sub;
    private expiresAt;
    private public_reason?;
    constructor(sub: string, expiresAt: Date, public_reason?: string);
    static getChannel(): string;
    static fromString(data: string): BanEvent;
    getChannel(): string;
    getMessage(): string;
}
//# sourceMappingURL=BanEvent.d.ts.map
 No newline at end of file
Loading