{"version":3,"sources":["../src/PlumeAPIError.ts","../package.json","../src/PlumeAPIREST.ts","../src/utils.ts","../src/PlumeAPI.ts"],"sourcesContent":["export default class PlumeAPIError extends Error {\n    public constructor(\n        message: string,\n        options?: ErrorOptions | undefined,\n        public res?: Response | null,\n    ) {\n        super(message, options);\n        this.res = res || null;\n    }\n}\n","{\n    \"$schema\": \"https://json.schemastore.org/package.json\",\n    \"name\": \"@sodiumlabs/plume-api\",\n    \"version\": \"1.4.1\",\n    \"description\": \"The official Plume API wrapper\",\n    \"license\": \"MIT\",\n    \"author\": \"SodiumLabs\",\n    \"scripts\": {\n        \"build\": \"tsc --noEmit && tsup\",\n        \"lint\": \"tsc --noEmit && prettier . --check\",\n        \"format\": \"prettier . --write\",\n        \"test\": \"vitest\"\n    },\n    \"exports\": {\n        \"require\": {\n            \"types\": \"./dist/index.d.ts\",\n            \"default\": \"./dist/index.js\"\n        },\n        \"import\": {\n            \"types\": \"./dist/index.d.mts\",\n            \"default\": \"./dist/index.mjs\"\n        }\n    },\n    \"types\": \"./dist/index.d.ts\",\n    \"files\": [\n        \"dist\"\n    ],\n    \"keywords\": [\n        \"api\",\n        \"discord\",\n        \"bot\",\n        \"plume\",\n        \"wrapper\",\n        \"plumeapi\",\n        \"plume-api\",\n        \"sodium\",\n        \"sodiumlabs\"\n    ],\n    \"homepage\": \"https://github.com/sodium-labs/plume-api.js#readme\",\n    \"bugs\": {\n        \"url\": \"https://github.com/sodium-labs/plume-api.js/issues\"\n    },\n    \"repository\": {\n        \"type\": \"git\",\n        \"url\": \"git+https://github.com/sodium-labs/plume-api.js.git\"\n    },\n    \"devDependencies\": {\n        \"@types/node\": \"^22.13.8\",\n        \"prettier\": \"^3.5.2\",\n        \"tsup\": \"^8.4.0\",\n        \"typescript\": \"^5.8.2\",\n        \"vitest\": \"^3.0.7\"\n    }\n}\n","import PlumeAPIError from \"./PlumeAPIError\";\nimport { version } from \"@/../package.json\";\n\nexport interface PlumeAPIRESTOptions {\n    userAgent?: string;\n}\n\nexport default class PlumeAPIREST {\n    public static readonly baseURL = \"https://plume.ptarmigan.xyz/api\";\n    public static readonly defaultUserAgent = `plume-api.js/${version}`;\n\n    public constructor(public readonly options: PlumeAPIRESTOptions = {}) {\n        this.options = options;\n    }\n\n    public async request(method: string, path: string, body?: object): Promise<Response> {\n        if (!path.startsWith(\"/\")) {\n            throw new Error(`Invalid path: ${path}`);\n        }\n\n        const headers = new Headers({\n            \"User-Agent\": `${PlumeAPIREST.defaultUserAgent} ${this.options.userAgent || \"\"}`.trim(),\n        });\n\n        const url = `${PlumeAPIREST.baseURL}${path}`;\n\n        let res;\n        try {\n            res = await fetch(url, { method, headers, body: body ? JSON.stringify(body) : undefined });\n        } catch (err) {\n            throw new PlumeAPIError(`Failed to fetch ${url}`, { cause: err });\n        }\n\n        if (!res.ok) {\n            throw new PlumeAPIError(`Invalid response ${url}: ${res.statusText}`, undefined, res);\n        }\n\n        return res;\n    }\n\n    public async get<T = unknown>(path: string): Promise<T> {\n        const res = await this.request(\"GET\", path);\n        return (await res.json()) as T;\n    }\n\n    public async file(path: string): Promise<Buffer> {\n        const res = await this.request(\"GET\", path);\n        return Buffer.from(await res.arrayBuffer());\n    }\n}\n","export const queryfy = (options: Record<string, unknown>): string => {\n    const params = new URLSearchParams(\n        Object.entries(options)\n            .filter(([, v]) => v !== undefined)\n            .map(([k, v]) => [k, `${v}`]),\n    );\n    const encoded = params.toString();\n    return encoded ? `?${encoded}` : \"\";\n};\n","import PlumeAPIREST, { PlumeAPIRESTOptions } from \"./PlumeAPIREST\";\nimport {\n    AdviceData,\n    AgifyData,\n    CryptoData,\n    DecodeData,\n    DecodeType,\n    DefinitionData,\n    EmojifyData,\n    EmojiMixData,\n    EncodeData,\n    EncodeType,\n    ExecData,\n    ExecLanguage,\n    FortniteMapData,\n    FreeGamesData,\n    FunFactData,\n    GitHubRepository,\n    GitHubUser,\n    HeightBallData,\n    InteractionData,\n    InteractionType,\n    IPInfoData,\n    ISSData,\n    JokeData,\n    MathData,\n    MemeData,\n    MinecraftIDData,\n    MinecraftNameData,\n    MinecraftSkinData,\n    NasaAPOD,\n    NPMData,\n    QuoteData,\n    RandomEmojiMixData,\n    ReverseTextData,\n    TranslateData,\n    UpsideDownTextData,\n    UrbanData,\n    UUIDData,\n    WeatherData,\n    WikipediaData,\n} from \"./routes\";\nimport { ColorData, Locale } from \"./shared\";\nimport { queryfy } from \"./utils\";\n\nexport interface PlumeAPIOptions extends PlumeAPIRESTOptions {}\n\n/**\n * The client to interact with Plume API\n */\nexport default class PlumeAPI {\n    public readonly rest: PlumeAPIREST;\n\n    public constructor(options?: PlumeAPIOptions) {\n        this.rest = new PlumeAPIREST(options);\n    }\n\n    // Fun\n\n    public async eightBall(locale?: Locale): Promise<HeightBallData> {\n        const params = queryfy({ locale });\n        return await this.rest.get(`/8ball${params}`);\n    }\n\n    public async advice(locale?: Locale): Promise<AdviceData> {\n        const params = queryfy({ locale });\n        return await this.rest.get(`/advice${params}`);\n    }\n\n    public async agify(name: string): Promise<AgifyData> {\n        const params = queryfy({ name });\n        return await this.rest.get(`/agify${params}`);\n    }\n\n    /**\n     * @deprecated Use `eightBall` instead\n     */\n    public async heightBall(locale?: Locale): Promise<HeightBallData> {\n        const params = queryfy({ locale });\n        return await this.rest.get(`/8ball${params}`);\n    }\n\n    public async emojiMix(left: string, right: string): Promise<EmojiMixData> {\n        const params = queryfy({ left, right });\n        return await this.rest.get(`/emoji-mix${params}`);\n    }\n\n    public async emojify(text: string): Promise<EmojifyData> {\n        const params = queryfy({ text });\n        return await this.rest.get(`/emojify${params}`);\n    }\n\n    public async funFact(locale?: Locale): Promise<FunFactData> {\n        const params = queryfy({ locale });\n        return await this.rest.get(`/funfact${params}`);\n    }\n\n    public async issImage(circle?: boolean): Promise<Buffer> {\n        const params = queryfy({ circle });\n        return await this.rest.file(`/iss-image${params}`);\n    }\n\n    public async iss(): Promise<ISSData> {\n        return await this.rest.get(\"/iss\");\n    }\n\n    public async joke(locale?: Locale): Promise<JokeData> {\n        const params = queryfy({ locale });\n        return await this.rest.get(`/joke${params}`);\n    }\n\n    public async math(expr: string): Promise<MathData> {\n        const params = queryfy({ expr });\n        return await this.rest.get(`/math${params}`);\n    }\n\n    public async meme(): Promise<MemeData> {\n        return await this.rest.get(\"/meme\");\n    }\n\n    public async nasaAPOD(): Promise<NasaAPOD> {\n        return await this.rest.get(\"/nasa-apod\");\n    }\n\n    public async npm(name: string): Promise<NPMData> {\n        const params = queryfy({ name });\n        return await this.rest.get(`/npm${params}`);\n    }\n\n    public async quote(locale?: Locale): Promise<QuoteData> {\n        const params = queryfy({ locale });\n        return await this.rest.get(`/quote${params}`);\n    }\n\n    public async randomEmojiMix(): Promise<RandomEmojiMixData> {\n        return await this.rest.get(\"/random-emoji-mix\");\n    }\n\n    public async upsideDown(text: string): Promise<UpsideDownTextData> {\n        const params = queryfy({ text });\n        return await this.rest.get(`/upside-down${params}`);\n    }\n\n    public async urban(word: string): Promise<UrbanData> {\n        const params = queryfy({ word });\n        return await this.rest.get(`/urban${params}`);\n    }\n\n    public async color(hex: string): Promise<ColorData> {\n        const params = queryfy({ hex });\n        return await this.rest.get(`/color${params}`);\n    }\n\n    public async colorImage(hex: string): Promise<Buffer> {\n        return await this.rest.file(`/color/image/${hex}`);\n    }\n\n    public async randomColor(): Promise<ColorData> {\n        return await this.rest.get(\"/color/random\");\n    }\n\n    public async githubRepository(name: string): Promise<GitHubRepository> {\n        const params = queryfy({ name });\n        return await this.rest.get(`/github/repository${params}`);\n    }\n\n    public async githubUser(name: string): Promise<GitHubUser> {\n        const params = queryfy({ name });\n        return await this.rest.get(`/github/user${params}`);\n    }\n\n    // Utility\n\n    public async captcha(): Promise<{ code: string; image: Buffer }> {\n        const res = await this.rest.request(\"GET\", \"/captcha\");\n\n        const code = res.headers.get(\"X-Captcha-Code\");\n        if (!code) throw new Error(\"X-Captcha-Code missing in response\");\n\n        const image = Buffer.from(await res.arrayBuffer());\n\n        return { code, image };\n    }\n\n    public async crypto(name: string, currency: \"usd\" | \"eur\"): Promise<CryptoData> {\n        const params = queryfy({ name, currency });\n        return await this.rest.get(`/crypto${params}`);\n    }\n\n    public async definition(locale: Locale, word: string): Promise<DefinitionData> {\n        const params = queryfy({ locale, word });\n        return await this.rest.get(`/definition${params}`);\n    }\n\n    public async exec(language: ExecLanguage, code: string): Promise<ExecData> {\n        const params = queryfy({ language, code });\n        return await this.rest.get(`/exec${params}`);\n    }\n\n    public async freeGames(locale?: Locale): Promise<FreeGamesData> {\n        const params = queryfy({ locale });\n        return await this.rest.get(`/free-games${params}`);\n    }\n\n    public async ipInfo(ip: string): Promise<IPInfoData> {\n        const params = queryfy({ ip });\n        return await this.rest.get(`/ipinfo${params}`);\n    }\n\n    public async qrcode(text: string): Promise<Buffer> {\n        const params = queryfy({ text });\n        return await this.rest.file(`/qrcode${params}`);\n    }\n\n    public async reverseText(text: string): Promise<ReverseTextData> {\n        const params = queryfy({ text });\n        return await this.rest.get(`/reverse-text${params}`);\n    }\n\n    public async screenshot(url: string): Promise<Buffer> {\n        const params = queryfy({ url });\n        return await this.rest.file(`/screenshot${params}`);\n    }\n\n    public async translate(text: string, to: string): Promise<TranslateData> {\n        const params = queryfy({ text, to });\n        return await this.rest.get(`/translate${params}`);\n    }\n\n    public async uuid(): Promise<UUIDData> {\n        return await this.rest.get(\"/uuid\");\n    }\n\n    public async weather(city: string): Promise<WeatherData> {\n        const params = queryfy({ city });\n        return await this.rest.get(`/weather${params}`);\n    }\n\n    public async wikipedia(page: string, locale?: Locale): Promise<WikipediaData> {\n        const params = queryfy({ page, locale });\n        return await this.rest.get(`/wikipedia${params}`);\n    }\n\n    // Animals\n\n    public async duck(): Promise<Buffer> {\n        return await this.rest.file(\"/animals/duck\");\n    }\n\n    public async fox(): Promise<Buffer> {\n        return await this.rest.file(\"/animals/fox\");\n    }\n\n    // Encode\n\n    public async encode(type: EncodeType, text: string): Promise<EncodeData> {\n        const params = queryfy({ text });\n        return await this.rest.get(`/encode/${type}${params}`);\n    }\n\n    // Decode\n\n    public async decode(type: DecodeType, text: string): Promise<DecodeData> {\n        const params = queryfy({ text });\n        return await this.rest.get(`/decode/${type}${params}`);\n    }\n\n    // Fortnite\n\n    public async fortniteMapImagePois(locale?: Locale): Promise<Buffer> {\n        const params = queryfy({ locale });\n        return await this.rest.file(`/fortnite/map/image-pois${params}`);\n    }\n\n    public async fortniteMapImage(): Promise<Buffer> {\n        return await this.rest.file(\"/fortnite/map/image\");\n    }\n\n    public async fortniteMap(locale?: Locale): Promise<FortniteMapData> {\n        const params = queryfy({ locale });\n        return await this.rest.get(`/fortnite/map${params}`);\n    }\n\n    // Minecraft\n\n    public async minecraftAvatar(name: string): Promise<Buffer> {\n        const params = queryfy({ name });\n        return await this.rest.get(`/minecraft/avatar${params}`);\n    }\n\n    public async minecraftBody(name: string): Promise<Buffer> {\n        const params = queryfy({ name });\n        return await this.rest.get(`/minecraft/body${params}`);\n    }\n\n    public async minecraftID(name: string): Promise<MinecraftIDData> {\n        const params = queryfy({ name });\n        return await this.rest.get(`/minecraft/id${params}`);\n    }\n\n    public async minecraftName(id: string): Promise<MinecraftNameData> {\n        const params = queryfy({ id });\n        return await this.rest.get(`/minecraft/name${params}`);\n    }\n\n    public async minecraftSkin(name: string): Promise<MinecraftSkinData> {\n        const params = queryfy({ name });\n        return await this.rest.get(`/minecraft/skin${params}`);\n    }\n\n    // Interactions\n\n    public async interaction(type: InteractionType): Promise<InteractionData> {\n        return await this.rest.get(`/interactions/${type}`);\n    }\n\n    // Image Creation\n\n    public async achievement(text: string): Promise<Buffer> {\n        const params = queryfy({ text });\n        return await this.rest.file(`/images/achievement${params}`);\n    }\n\n    public async alert(text: string): Promise<Buffer> {\n        const params = queryfy({ text });\n        return await this.rest.file(`/images/alert${params}`);\n    }\n\n    public async caution(text: string): Promise<Buffer> {\n        const params = queryfy({ text });\n        return await this.rest.file(`/images/caution${params}`);\n    }\n\n    public async challenge(text: string): Promise<Buffer> {\n        const params = queryfy({ text });\n        return await this.rest.file(`/images/challenge${params}`);\n    }\n\n    public async jail(avatar: string): Promise<Buffer> {\n        const params = queryfy({ avatar });\n        return await this.rest.file(`/images/jail${params}`);\n    }\n\n    public async nokia(url: string): Promise<Buffer> {\n        const params = queryfy({ url });\n        return await this.rest.file(`/images/nokia${params}`);\n    }\n\n    public async tweet(\n        avatar: string,\n        name: string,\n        username: string,\n        text: string,\n        retweets?: number,\n        quote_tweets?: number,\n        likes?: number,\n    ): Promise<Buffer> {\n        const params = queryfy({ avatar, name, username, text, retweets, quote_tweets, likes });\n        return await this.rest.file(`/images/tweet${params}`);\n    }\n\n    public async wanted(avatar: string): Promise<Buffer> {\n        const params = queryfy({ avatar });\n        return await this.rest.file(`/images/wanted${params}`);\n    }\n\n    // Image Manipulation\n\n    public async blur(url: string): Promise<Buffer> {\n        const params = queryfy({ url });\n        return await this.rest.file(`/images/blur${params}`);\n    }\n\n    public async colorify(url: string, color: string): Promise<Buffer> {\n        const params = queryfy({ url, color });\n        return await this.rest.file(`/images/colorify${params}`);\n    }\n\n    public async grayscale(url: string): Promise<Buffer> {\n        const params = queryfy({ url });\n        return await this.rest.file(`/images/grayscale${params}`);\n    }\n\n    public async invert(url: string): Promise<Buffer> {\n        const params = queryfy({ url });\n        return await this.rest.file(`/images/invert${params}`);\n    }\n\n    public async rotate(url: string, deg: number): Promise<Buffer> {\n        const params = queryfy({ url, deg });\n        return await this.rest.file(`/images/rotate${params}`);\n    }\n\n    // Meme Creation\n\n    public async changeMyMind(text: string): Promise<Buffer> {\n        const params = queryfy({ text });\n        return await this.rest.file(`/memes/changemymind${params}`);\n    }\n\n    public async didYouMean(search: string, correction: string): Promise<Buffer> {\n        const params = queryfy({ search, correction });\n        return await this.rest.file(`/memes/didyoumean${params}`);\n    }\n\n    public async drake(top: string, bottom: string): Promise<Buffer> {\n        const params = queryfy({ top, bottom });\n        return await this.rest.file(`/memes/drake${params}`);\n    }\n\n    public async duolingo(text: string): Promise<Buffer> {\n        const params = queryfy({ text });\n        return await this.rest.file(`/memes/duolingo${params}`);\n    }\n\n    public async facts(text: string): Promise<Buffer> {\n        const params = queryfy({ text });\n        return await this.rest.file(`/memes/facts${params}`);\n    }\n\n    public async fuze3(text: string): Promise<Buffer> {\n        const params = queryfy({ text });\n        return await this.rest.file(`/memes/fuze3${params}`);\n    }\n\n    public async hugo(text: string): Promise<Buffer> {\n        const params = queryfy({ text });\n        return await this.rest.file(`/memes/hugo${params}`);\n    }\n\n    public async nothing(text: string): Promise<Buffer> {\n        const params = queryfy({ text });\n        return await this.rest.file(`/memes/nothing${params}`);\n    }\n\n    public async oogway(text: string): Promise<Buffer> {\n        const params = queryfy({ text });\n        return await this.rest.file(`/memes/oogway${params}`);\n    }\n\n    public async pepeHug(avatar: string): Promise<Buffer> {\n        const params = queryfy({ avatar });\n        return await this.rest.file(`/memes/pepe-hug${params}`);\n    }\n\n    public async sadcat(top: string, bottom: string): Promise<Buffer> {\n        const params = queryfy({ top, bottom });\n        return await this.rest.file(`/memes/sadcat${params}`);\n    }\n\n    public async stonks(avatar: string, stonks?: boolean): Promise<Buffer> {\n        const params = queryfy({ avatar, stonks });\n        return await this.rest.file(`/memes/stonks${params}`);\n    }\n\n    public async tableFlip(avatar: string): Promise<Buffer> {\n        const params = queryfy({ avatar });\n        return await this.rest.file(`/memes/tableflip${params}`);\n    }\n\n    public async water(text: string): Promise<Buffer> {\n        const params = queryfy({ text });\n        return await this.rest.file(`/memes/water${params}`);\n    }\n\n    public async woosh(avatar: string): Promise<Buffer> {\n        const params = queryfy({ avatar });\n        return await this.rest.file(`/memes/woosh${params}`);\n    }\n\n    // Cards\n\n    public async boost(avatar: string, username: string, text?: string): Promise<Buffer> {\n        const params = queryfy({ avatar, username, text });\n        return await this.rest.file(`/cards/boost${params}`);\n    }\n\n    public async couple(\n        avatar1: string,\n        avatar2: string,\n        percentage?: number,\n        primary_color?: string,\n    ): Promise<Buffer> {\n        const params = queryfy({ avatar1, avatar2, percentage, primary_color });\n        return await this.rest.file(`/cards/couple${params}`);\n    }\n\n    public async rank(\n        avatar: string,\n        global_name: string,\n        username: string,\n        level: number,\n        xp: number,\n        max_xp: number,\n        rank?: number,\n        bg_url?: string,\n        bg_color?: string,\n        blur?: boolean,\n        color?: string,\n    ): Promise<Buffer> {\n        const params = queryfy({\n            avatar,\n            global_name,\n            username,\n            level,\n            xp,\n            max_xp,\n            rank,\n            bg_url,\n            bg_color,\n            blur,\n            color,\n        });\n        return await this.rest.file(`/cards/rank${params}`);\n    }\n\n    public async welcome(\n        avatar: string,\n        text1: string,\n        text2?: string,\n        text3?: string,\n        bg_url?: string,\n        bg_color?: string,\n        font_color?: string,\n        blur?: boolean,\n        avatar_border?: boolean,\n        avatar_border_color?: string,\n    ): Promise<Buffer> {\n        const params = queryfy({\n            avatar,\n            text1,\n            text2,\n            text3,\n            bg_url,\n            bg_color,\n            font_color,\n            blur,\n            avatar_border,\n            avatar_border_color,\n        });\n        return await this.rest.file(`/cards/welcome${params}`);\n    }\n}\n"],"mappings":"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","names":[]}