;
- }
-
- /**
- * @property circle - Circle plugin
- * @property convolute - Convolute plugin
- * @property rectangle - Rectangle plugin
- * @property round - Round plugin
- * @property abbrev - Abbrev plugin
- * @property renderEmoji - Emoji rendering plugin
- */
- export type Plugins = {
- circle: (...params: any[]) => any;
- convolute: (...params: any[]) => any;
- rectangle: (...params: any[]) => any;
- round: (...params: any[]) => any;
- abbrev: (...params: any[]) => any;
- renderEmoji: (...params: any[]) => any;
- };
-
- /**
- * @property width - Rank card width
- * @property height - Rank card height
- * @property background - Rank card background data
- * @property [background.type = "color"] - Background type
- * @property [background.image = "#23272A"] - Background image (or color)
- * @property progressBar - Progressbar data
- * @property [progressBar.rounded = true] - If the progressbar should be rounded
- * @property [progressBar.x = 275.5] - Progressbar X
- * @property [progressBar.y = 183.75] - Progressbar Y
- * @property [progressBar.height = 37.5] - Progressbar height
- * @property [progressBar.width = 596.5] - Progressbar width
- * @property [progressBar.track] - Progressbar track
- * @property [progressBar.track.color = "#484b4E"] - Progressbar track color
- * @property [progressBar.bar] - Progressbar bar data
- * @property [progressBar.bar.type = "color"] - Progressbar bar type
- * @property [progressBar.bar.color = "#FFFFFF"] - Progressbar bar color
- * @property overlay - Progressbar overlay
- * @property [overlay.display = true] - If it should display overlay
- * @property [overlay.level = 0.5] - Overlay opacity level
- * @property [overlay.color = "#333640"] - Overlay bg color
- * @property avatar - Rank card avatar data
- * @property [avatar.source = null] - Avatar source
- * @property [avatar.x = 70] - X
- * @property [avatar.y = 50] - Y
- * @property [avatar.height = 180] - height
- * @property [avatar.width = 180] - width
- * @property status - Rank card status
- * @property [status.width = 5] - Status width
- * @property [status.type] - Status type
- * @property [status.color = "#43B581"] - Status color
- * @property [status.circle = false] - Circualr status?
- * @property rank - Rank card rank data
- * @property [rank.display = true] - If it should display rank
- * @property [rank.data = 1] - The Rank
- * @property [rank.textColor = "#FFFFFF"] - Rank text color
- * @property [rank.color = "#F3F3F3"] - Rank color
- * @property [rank.displayText = "RANK"] - Rank display text
- * @property level - Rank card level data
- * @property [level.display = true] - If it should display level
- * @property [level.data = 1] - The level
- * @property [level.textColor = "#FFFFFF"] - level text color
- * @property [level.color = "#F3F3F3"] - level color
- * @property [level.displayText = "LEVEL"] - level display text
- * @property currentXP - Rank card current xp
- * @property [currentXP.data = 0] - Current xp
- * @property [currentXP.color = "#FFFFFF"] - Rank card current xp color
- * @property requiredXP - Rank card required xp
- * @property [requiredXP.data = 0] - required xp
- * @property [requiredXP.color = "#FFFFFF"] - Rank card required xp color
- * @property discriminator - Rank card discriminator
- * @property [discriminator.discrim = null] - The discriminator
- * @property [discriminator.color = "rgba(255, 255, 255, 0.4)"] - Rank card discriminator color
- * @property username - Username Data
- * @property [username.name = null] - Rank card username
- * @property [username.color = "#FFFFFF"] - Rank card username color
- * @property [renderEmojis = false] - If it should render emojis
- */
- export type CanvacordRankData = {
- width: number;
- height: number;
- background: {
- type?: "image" | "color";
- image?: string | Buffer;
- };
- progressBar: {
- rounded?: boolean;
- x?: number;
- y?: number;
- height?: number;
- width?: number;
- track?: {
- color?: string;
- };
- bar?: {
- type?: "color" | "gradient";
- color?: string | string[];
- };
- };
- overlay: {
- display?: boolean;
- level?: number;
- color?: string;
- };
- avatar: {
- source?: string | Buffer;
- x?: number;
- y?: number;
- height?: number;
- width?: number;
- };
- status: {
- width?: number;
- type?: "online" | "dnd" | "idle" | "offline" | "streaming";
- color?: string;
- circle?: boolean;
- };
- rank: {
- display?: boolean;
- data?: number;
- textColor?: string;
- color?: string;
- displayText?: string;
- };
- level: {
- display?: boolean;
- data?: number;
- textColor?: string;
- color?: string;
- displayText?: string;
- };
- currentXP: {
- data?: number;
- color?: string;
- };
- requiredXP: {
- data?: number;
- color?: string;
- };
- discriminator: {
- discrim?: number | string;
- color?: string;
- };
- username: {
- name?: string;
- color?: string;
- };
- renderEmojis?: boolean;
- };
-
- /**
- * Creates Rank card
- * @example
- * const rank = new canvacord.Rank()
- * .setAvatar(img)
- * .setCurrentXP(203)
- * .setRequiredXP(500)
- * .setStatus("dnd")
- * .setProgressBar(["#FF0000", "#0000FF"], "GRADIENT")
- * .setUsername("Snowflake")
- * .setDiscriminator("0007");
- *
- * rank.build()
- * .then(data => {
- * canvacord.write(data, "RankCard.png");
- * })
- */
- export class Rank {
- constructor();
- /**
- * Rank card data
- */
- data: CanvacordRankData;
- /**
- * Loads font
- * @param fontArray - Font array
- */
- registerFonts(fontArray: any[]): Rank;
- /**
- * If it should render username with emojis (if any)
- * @param [apply = false] - Set it to true
to render emojis.
- */
- renderEmojis(apply?: boolean): Rank;
- /**
- * Set username
- * @param name - Username
- * @param color - Username color
- */
- setUsername(name: string, color?: string): Rank;
- /**
- * Set discriminator
- * @param discriminator - User discriminator
- * @param color - Discriminator color
- */
- setDiscriminator(discriminator: string | number, color?: string): Rank;
- /**
- * Set progressbar style
- * @param color - Progressbar Color
- * @param [fillType = COLOR] - Progressbar type
- * @param [rounded = true] - If progressbar should have rounded edges
- */
- setProgressBar(color: string | string[], fillType?: "COLOR" | "GRADIENT", rounded?: boolean): Rank;
- /**
- * Set progressbar track
- * @param color - Track color
- */
- setProgressBarTrack(color: string): Rank;
- /**
- * Set card overlay
- * @param color - Overlay color
- * @param [level = 0.5] - Opacity level
- * @param [display = true] - IF it should display overlay
- */
- setOverlay(color: string, level?: number, display?: boolean): Rank;
- /**
- * Set required xp
- * @param data - Required xp
- * @param color - Color
- */
- setRequiredXP(data: number, color?: string): Rank;
- /**
- * Set current xp
- * @param data - Current xp
- * @param color - Color
- */
- setCurrentXP(data: number, color?: string): Rank;
- /**
- * Set Rank
- * @param data - Current Rank
- * @param text - Display text
- * @param [display = true] - If it should display rank
- */
- setRank(data: number, text?: string, display?: boolean): Rank;
- /**
- * Set rank display color
- * @param text - text color
- * @param number - Number color
- */
- setRankColor(text?: string, number?: string): Rank;
- /**
- * Set level color
- * @param text - text color
- * @param number - number color
- */
- setLevelColor(text?: string, number?: string): Rank;
- /**
- * Set Level
- * @param data - Current Level
- * @param text - Display text
- * @param [display = true] - If it should display level
- */
- setLevel(data: number, text?: string, display?: boolean): Rank;
- /**
- * Set custom status color
- * @param color - Color to set
- */
- setCustomStatusColor(color: string): Rank;
- /**
- * Set status
- * @param status - User status
- * @param circle - If status icon should be circular.
- * @param width - Status width
- */
- setStatus(status: "online" | "idle" | "dnd" | "offline" | "streaming", circle: boolean, width?: number | boolean): Rank;
- /**
- * Set background image/color
- * @param type - Background type
- * @param [data] - Background color or image
- */
- setBackground(type: "COLOR" | "IMAGE", data?: string | Buffer): Rank;
- /**
- * User avatar
- * @param data - Avatar data
- */
- setAvatar(data: string | Buffer): Rank;
- /**
- * Builds rank card
- * @param ops - Fonts
- * @param [ops.fontX = "MANROPE_BOLD"] - Bold font family
- * @param [ops.fontY = "MANROPE_REGULAR"] - Regular font family
- */
- build(ops?: {
- fontX?: string;
- fontY?: string;
- }): Promise;
- }
-
- /**
- * Canvacord Util
- */
- export class Util {
- constructor();
- /**
- * Validates hex
- * @param hex - Hex code to validate
- */
- static validateHex(hex: string): boolean;
- /**
- * Converts regular timestamp to discord like time
- * @param time - Timestamp to convert
- */
- static discordTime(time: Date | number): string;
- /**
- * Formats time
- * @param time - Time to format
- */
- static formatTime(time: number): string;
- /**
- * Shorten text.
- * @param text - Text to shorten
- * @param len - Max Length
- */
- static shorten(text: string, len: number): string;
- /**
- * Converts numbers into units like 1K
, 1M
, 1B
etc.
- */
- static toAbbrev(num: number | string): void;
- /**
- * Renders text with emoji
- * @param ctx - CanvasRenderingContext2D
- * @param msg - Message
- * @param x - X
- * @param y - Y
- */
- static renderEmoji(ctx: CanvasRenderingContext2D, msg: string, x: number, y: number): Promise;
- /**
- * Returns formatted hex code
- * @param hex - Hex code to format
- * @param alt - Alt color
- */
- static formatHex(hex: string, alt?: string): string;
- /**
- * Inverts hex color
- * @param hex - Hex color code to invert
- */
- static invertColor(hex: string): string;
- /**
- * Returns acronym
- * @param name - Name to parse acronym
- */
- static getAcronym(name: string): string;
- /**
- * Returns array of lines
- * @param params - Params
- * @param text - Text
- * @param ctx - CanvasRenderingContext2D
- * @param maxWidth - Max width
- */
- static getLines(params: any, text: string, ctx: CanvasRenderingContext2D, maxWidth: number): string[];
- }
+import Canvacord from "./src/Canvacord";
+import Rank from "./src/Rank";
+import Spotify from "./src/Spotify";
+import Welcomer from "./src/Welcomer";
+import Leaver from "./src/Leaver";
+import Greeting from "./src/base/GreetingsCard";
+import Plugins from "./src/Plugins";
+import Util from "./src/Util";
+import Assets from "./src/Assets";
+
+interface MiscellaneousExtensions {
+ Brightness: typeof import("./libs/Brightness");
+ Convolute: typeof import("./libs/Convolute");
+ Darkness: typeof import("./libs/Darkness");
+ Greyscale: typeof import("./libs/Greyscale");
+ Invert: typeof import("./libs/Invert");
+ Sepia: typeof import("./libs/Sepia");
+ Threshold: typeof import("./libs/Threshold");
+ Trigger: typeof import("./libs/Trigger");
}
+
+export const ConvolutionMatrix: typeof Canvacord.CONVOLUTION_MATRIX;
+export const MSX: MiscellaneousExtensions;
+export const write: (data: Buffer, name: string) => void;
+export const author: string;
+export const version: string;
+export type CanvacordRankData = Rank.CanvacordRankData;
+
+export {
+ Canvacord,
+ Canvacord as Canvas,
+ Rank,
+ Spotify,
+ Welcomer,
+ Leaver,
+ Greeting,
+ Plugins,
+ Assets,
+ Util,
+};
\ No newline at end of file
diff --git a/typings/libs/Brightness.d.ts b/typings/libs/Brightness.d.ts
new file mode 100644
index 00000000..b633c2f7
--- /dev/null
+++ b/typings/libs/Brightness.d.ts
@@ -0,0 +1,3 @@
+declare function _exports(img: any, amount: any): Promise;
+export = _exports;
+//# sourceMappingURL=Brightness.d.ts.map
\ No newline at end of file
diff --git a/typings/libs/Brightness.d.ts.map b/typings/libs/Brightness.d.ts.map
new file mode 100644
index 00000000..2dbd455d
--- /dev/null
+++ b/typings/libs/Brightness.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"Brightness.d.ts","sourceRoot":"","sources":["../../libs/Brightness.js"],"names":[],"mappings":"AAEiB,kEAiBhB"}
\ No newline at end of file
diff --git a/typings/libs/Convolute.d.ts b/typings/libs/Convolute.d.ts
new file mode 100644
index 00000000..dbb77c74
--- /dev/null
+++ b/typings/libs/Convolute.d.ts
@@ -0,0 +1,3 @@
+declare function _exports(img: any, matrix: any, opaque: any, lvl: any): Promise;
+export = _exports;
+//# sourceMappingURL=Convolute.d.ts.map
\ No newline at end of file
diff --git a/typings/libs/Convolute.d.ts.map b/typings/libs/Convolute.d.ts.map
new file mode 100644
index 00000000..25acaeb5
--- /dev/null
+++ b/typings/libs/Convolute.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"Convolute.d.ts","sourceRoot":"","sources":["../../libs/Convolute.js"],"names":[],"mappings":"AAGiB,yFAYhB"}
\ No newline at end of file
diff --git a/typings/libs/Darkness.d.ts b/typings/libs/Darkness.d.ts
new file mode 100644
index 00000000..b2535f63
--- /dev/null
+++ b/typings/libs/Darkness.d.ts
@@ -0,0 +1,3 @@
+declare function _exports(img: any, amount: any): Promise;
+export = _exports;
+//# sourceMappingURL=Darkness.d.ts.map
\ No newline at end of file
diff --git a/typings/libs/Darkness.d.ts.map b/typings/libs/Darkness.d.ts.map
new file mode 100644
index 00000000..dfacfe1d
--- /dev/null
+++ b/typings/libs/Darkness.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"Darkness.d.ts","sourceRoot":"","sources":["../../libs/Darkness.js"],"names":[],"mappings":"AAEiB,kEAiBhB"}
\ No newline at end of file
diff --git a/typings/libs/Greyscale.d.ts b/typings/libs/Greyscale.d.ts
new file mode 100644
index 00000000..c3145918
--- /dev/null
+++ b/typings/libs/Greyscale.d.ts
@@ -0,0 +1,3 @@
+declare function _exports(img: any): Promise;
+export = _exports;
+//# sourceMappingURL=Greyscale.d.ts.map
\ No newline at end of file
diff --git a/typings/libs/Greyscale.d.ts.map b/typings/libs/Greyscale.d.ts.map
new file mode 100644
index 00000000..b7c0b3b3
--- /dev/null
+++ b/typings/libs/Greyscale.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"Greyscale.d.ts","sourceRoot":"","sources":["../../libs/Greyscale.js"],"names":[],"mappings":"AAEiB,qDAkBhB"}
\ No newline at end of file
diff --git a/typings/libs/Invert.d.ts b/typings/libs/Invert.d.ts
new file mode 100644
index 00000000..d98d8ce9
--- /dev/null
+++ b/typings/libs/Invert.d.ts
@@ -0,0 +1,3 @@
+declare function _exports(img: any): Promise;
+export = _exports;
+//# sourceMappingURL=Invert.d.ts.map
\ No newline at end of file
diff --git a/typings/libs/Invert.d.ts.map b/typings/libs/Invert.d.ts.map
new file mode 100644
index 00000000..0b87cb1e
--- /dev/null
+++ b/typings/libs/Invert.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"Invert.d.ts","sourceRoot":"","sources":["../../libs/Invert.js"],"names":[],"mappings":"AAEiB,qDAkBhB"}
\ No newline at end of file
diff --git a/typings/libs/Sepia.d.ts b/typings/libs/Sepia.d.ts
new file mode 100644
index 00000000..d698f6ec
--- /dev/null
+++ b/typings/libs/Sepia.d.ts
@@ -0,0 +1,3 @@
+declare function _exports(img: any): Promise;
+export = _exports;
+//# sourceMappingURL=Sepia.d.ts.map
\ No newline at end of file
diff --git a/typings/libs/Sepia.d.ts.map b/typings/libs/Sepia.d.ts.map
new file mode 100644
index 00000000..8a8f1019
--- /dev/null
+++ b/typings/libs/Sepia.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"Sepia.d.ts","sourceRoot":"","sources":["../../libs/Sepia.js"],"names":[],"mappings":"AAEiB,qDAiBhB"}
\ No newline at end of file
diff --git a/typings/libs/Threshold.d.ts b/typings/libs/Threshold.d.ts
new file mode 100644
index 00000000..cf12e60e
--- /dev/null
+++ b/typings/libs/Threshold.d.ts
@@ -0,0 +1,3 @@
+declare function _exports(img: any, amount?: number): Promise;
+export = _exports;
+//# sourceMappingURL=Threshold.d.ts.map
\ No newline at end of file
diff --git a/typings/libs/Threshold.d.ts.map b/typings/libs/Threshold.d.ts.map
new file mode 100644
index 00000000..3dbffe7e
--- /dev/null
+++ b/typings/libs/Threshold.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"Threshold.d.ts","sourceRoot":"","sources":["../../libs/Threshold.js"],"names":[],"mappings":"AAEiB,sEAmBhB"}
\ No newline at end of file
diff --git a/typings/libs/Trigger.d.ts b/typings/libs/Trigger.d.ts
new file mode 100644
index 00000000..8293f7b9
--- /dev/null
+++ b/typings/libs/Trigger.d.ts
@@ -0,0 +1,3 @@
+declare function _exports(image: any, TRIGGERED: any): Promise;
+export = _exports;
+//# sourceMappingURL=Trigger.d.ts.map
\ No newline at end of file
diff --git a/typings/libs/Trigger.d.ts.map b/typings/libs/Trigger.d.ts.map
new file mode 100644
index 00000000..08c901a4
--- /dev/null
+++ b/typings/libs/Trigger.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"Trigger.d.ts","sourceRoot":"","sources":["../../libs/Trigger.js"],"names":[],"mappings":"AAGiB,oEAoChB"}
\ No newline at end of file
diff --git a/typings/plugins/abbrev.d.ts b/typings/plugins/abbrev.d.ts
new file mode 100644
index 00000000..32eaf1f1
--- /dev/null
+++ b/typings/plugins/abbrev.d.ts
@@ -0,0 +1,3 @@
+declare function _exports(num: any): string;
+export = _exports;
+//# sourceMappingURL=abbrev.d.ts.map
\ No newline at end of file
diff --git a/typings/plugins/abbrev.d.ts.map b/typings/plugins/abbrev.d.ts.map
new file mode 100644
index 00000000..3adc72b3
--- /dev/null
+++ b/typings/plugins/abbrev.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"abbrev.d.ts","sourceRoot":"","sources":["../../plugins/abbrev.js"],"names":[],"mappings":"AAAiB,4CAkBhB"}
\ No newline at end of file
diff --git a/typings/plugins/circle.d.ts b/typings/plugins/circle.d.ts
new file mode 100644
index 00000000..b6cc354f
--- /dev/null
+++ b/typings/plugins/circle.d.ts
@@ -0,0 +1,3 @@
+declare function _exports(ctx: any, w: any, h: any): any;
+export = _exports;
+//# sourceMappingURL=circle.d.ts.map
\ No newline at end of file
diff --git a/typings/plugins/circle.d.ts.map b/typings/plugins/circle.d.ts.map
new file mode 100644
index 00000000..838a8a57
--- /dev/null
+++ b/typings/plugins/circle.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"circle.d.ts","sourceRoot":"","sources":["../../plugins/circle.js"],"names":[],"mappings":"AAAiB,yDAOhB"}
\ No newline at end of file
diff --git a/typings/plugins/convolute.d.ts b/typings/plugins/convolute.d.ts
new file mode 100644
index 00000000..bf07f8dc
--- /dev/null
+++ b/typings/plugins/convolute.d.ts
@@ -0,0 +1,3 @@
+declare function _exports(ctx: any, canvas: any, matrix: any, opaque: any): any;
+export = _exports;
+//# sourceMappingURL=convolute.d.ts.map
\ No newline at end of file
diff --git a/typings/plugins/convolute.d.ts.map b/typings/plugins/convolute.d.ts.map
new file mode 100644
index 00000000..d079494c
--- /dev/null
+++ b/typings/plugins/convolute.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"convolute.d.ts","sourceRoot":"","sources":["../../plugins/convolute.js"],"names":[],"mappings":"AAAiB,gFA6ChB"}
\ No newline at end of file
diff --git a/typings/plugins/rect.d.ts b/typings/plugins/rect.d.ts
new file mode 100644
index 00000000..6b920195
--- /dev/null
+++ b/typings/plugins/rect.d.ts
@@ -0,0 +1,3 @@
+declare function _exports(ctx: any, x: any, y: any, height: any, width: any, color: any, stroke?: boolean, lineWidth?: number): any;
+export = _exports;
+//# sourceMappingURL=rect.d.ts.map
\ No newline at end of file
diff --git a/typings/plugins/rect.d.ts.map b/typings/plugins/rect.d.ts.map
new file mode 100644
index 00000000..baca1d60
--- /dev/null
+++ b/typings/plugins/rect.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"rect.d.ts","sourceRoot":"","sources":["../../plugins/rect.js"],"names":[],"mappings":"AAAiB,oIAqBhB"}
\ No newline at end of file
diff --git a/typings/plugins/renderEmoji.d.ts b/typings/plugins/renderEmoji.d.ts
new file mode 100644
index 00000000..046195c3
--- /dev/null
+++ b/typings/plugins/renderEmoji.d.ts
@@ -0,0 +1,3 @@
+declare function _exports(ctx: any, message: any, x: any, y: any): Promise;
+export = _exports;
+//# sourceMappingURL=renderEmoji.d.ts.map
\ No newline at end of file
diff --git a/typings/plugins/renderEmoji.d.ts.map b/typings/plugins/renderEmoji.d.ts.map
new file mode 100644
index 00000000..1fcca1f0
--- /dev/null
+++ b/typings/plugins/renderEmoji.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"renderEmoji.d.ts","sourceRoot":"","sources":["../../plugins/renderEmoji.js"],"names":[],"mappings":"AAAiB,gFAEhB"}
\ No newline at end of file
diff --git a/typings/plugins/round.d.ts b/typings/plugins/round.d.ts
new file mode 100644
index 00000000..17d879f4
--- /dev/null
+++ b/typings/plugins/round.d.ts
@@ -0,0 +1,3 @@
+declare function _exports(ctx: any, x: any, y: any, width: any, height: any, radius: any): any;
+export = _exports;
+//# sourceMappingURL=round.d.ts.map
\ No newline at end of file
diff --git a/typings/plugins/round.d.ts.map b/typings/plugins/round.d.ts.map
new file mode 100644
index 00000000..6a7f65ef
--- /dev/null
+++ b/typings/plugins/round.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"round.d.ts","sourceRoot":"","sources":["../../plugins/round.js"],"names":[],"mappings":"AAAiB,+FAkBhB"}
\ No newline at end of file
diff --git a/typings/src/Assets.d.ts b/typings/src/Assets.d.ts
new file mode 100644
index 00000000..afd807f3
--- /dev/null
+++ b/typings/src/Assets.d.ts
@@ -0,0 +1,17 @@
+export = CanvacordAssets;
+declare class CanvacordAssets {
+ static load: typeof loadAssets;
+ static ASSETS_DIR: string;
+ static font: {
+ get(name: any): any;
+ getMetadata(name: any): any;
+ all(): {};
+ };
+ static image: {
+ get(name: any): any;
+ getMetadata(name: any): any;
+ all(): {};
+ };
+}
+declare function loadAssets(warnIfFailed?: boolean): void;
+//# sourceMappingURL=Assets.d.ts.map
\ No newline at end of file
diff --git a/typings/src/Assets.d.ts.map b/typings/src/Assets.d.ts.map
new file mode 100644
index 00000000..f96a4cbc
--- /dev/null
+++ b/typings/src/Assets.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"Assets.d.ts","sourceRoot":"","sources":["../../src/Assets.js"],"names":[],"mappings":";AAqCiB;IAIb,+BAAyB;IACzB,0BAA+B;IAC/B;;;;MAeE;IACF;;;;MAeC;CACJ;AA/DD,0DAgBC"}
\ No newline at end of file
diff --git a/typings/src/Canvacord.d.ts b/typings/src/Canvacord.d.ts
new file mode 100644
index 00000000..5496e9bb
--- /dev/null
+++ b/typings/src/Canvacord.d.ts
@@ -0,0 +1,496 @@
+export = Canvacord;
+/**
+ * Canvacord Memes Generator
+ * @example const Canvacord = require("canvacord");
+ *
+ * Canvacord.Canvas.trigger("./image.png")
+ * .then(triggered => {
+ * Canvacord.write(triggered, "triggered.gif");
+ * })
+ */
+declare class Canvacord {
+ /**
+ * This method can be used to apply Triggered effect on image.
+ * @param {string|Buffer} image Image to trigger
+ * @returns {Promise}
+ */
+ static trigger(image: string | Buffer): Promise;
+ /**
+ * Inverts color of the image
+ * @param {string|Buffer} image Img to invert
+ * @returns {Promise}
+ */
+ static invert(image: string | Buffer): Promise;
+ /**
+ * Apply sepia wash on img
+ * @param {string|Buffer} image Img
+ * @returns {Promise}
+ */
+ static sepia(image: string | Buffer): Promise;
+ /**
+ * Greyscale effect over image
+ * @param {string|Buffer} image Img
+ * @returns {Promise}
+ */
+ static greyscale(image: string | Buffer): Promise;
+ /**
+ * Edit image brightness
+ * @param {string|Buffer} image Img
+ * @param {number} amount Brightness amount
+ * @returns {Promise}
+ */
+ static brightness(image: string | Buffer, amount: number): Promise;
+ /**
+ * Edit image darkness
+ * @param {string|Buffer} image Img
+ * @param {number} amount Darkness amount
+ * @returns {Promise}
+ */
+ static darkness(image: string | Buffer, amount: number): Promise;
+ /**
+ * Image threshold
+ * @param {string|Buffer} img Image
+ * @param {number} amount Threshold amount
+ * @returns {Promise}
+ */
+ static threshold(img: string | Buffer, amount: number): Promise;
+ /**
+ * Image Convolution
+ * @param {string|Buffer} img Image
+ * @param {number[]} matrix Convolution matrix
+ * @param {boolean} opaque If convolution should be opaque
+ * @returns {Promise}
+ */
+ static convolute(img: string | Buffer, matrix: number[], opaque: boolean): Promise;
+ /**
+ * Creates Progress bar
+ * @param {object} track Progressbar track options
+ * @param {number} [track.x] The x-axis
+ * @param {number} [track.y] The y-axis
+ * @param {number} [track.width] Progressbar track width
+ * @param {number} [track.height] Progressbar track height
+ * @param {string} [track.color] Progressbar track color
+ * @param {boolean} [track.stroke] Use stroke for track
+ * @param {number} [track.lineWidth] This param will be used if `track.stroke` is set to `true`
+ * @param {object} bar Progressbar options
+ * @param {number} [bar.width] Progressbar width
+ * @param {string} [bar.color] Progressbar color
+ * @returns {Buffer}
+ */
+ static createProgressBar(track?: {
+ x?: number;
+ y?: number;
+ width?: number;
+ height?: number;
+ color?: string;
+ stroke?: boolean;
+ lineWidth?: number;
+ }, bar?: {
+ width?: number;
+ color?: string;
+ }): Buffer;
+ /**
+ * Blur an image
+ * @param {string|Buffer} image Image to blur
+ * @returns {Promise}
+ */
+ static blur(image: string | Buffer): Promise;
+ /**
+ * Pixelate
+ * @param {string|Buffer} image Image to pixelate
+ * @param {number} pixels Pixels
+ * @returns {Promise}
+ */
+ static pixelate(image: string | Buffer, pixels?: number): Promise;
+ /**
+ * Sharpen an image
+ * @param {string|Buffer} image Image to sharpen
+ * @param {number} lvl sharpness intensity
+ * @returns {Promise}
+ */
+ static sharpen(image: string | Buffer, lvl?: number): Promise;
+ /**
+ * Applies burn effect on an image
+ * @param {string|Buffer} image Image source
+ * @param {number} lvl intensity
+ * @returns {Promise}
+ */
+ static burn(image: string | Buffer, lvl?: number): Promise;
+ /**
+ * HTML5 color to image
+ * @param {string} color HTML5 color
+ * @param {boolean} displayHex If it should display hex
+ * @param {number} height Image height
+ * @param {number} width Image width
+ * @returns {Buffer}
+ */
+ static color(color?: string, displayHex?: boolean, height?: number, width?: number): Buffer;
+ /**
+ * Creates circular image
+ * @param {string|Buffer} image Image source
+ * @returns {Promise}
+ */
+ static circle(image: string | Buffer): Promise;
+ /**
+ * Creates a rectangle
+ * @param {number} x x-axis
+ * @param {number} y y-axis
+ * @param {number} width width
+ * @param {number} height height
+ * @param {string} color color
+ * @param {boolean} stroke If it should stroke
+ * @param {number} lineWidth line width
+ * @returns {Buffer}
+ */
+ static rectangle(x: number, y: number, width: number, height: number, color: string, stroke: boolean, lineWidth: number): Buffer;
+ /**
+ * Fuse two images
+ * @param {string|Buffer} image1 First image
+ * @param {string|Buffer} image2 Second image
+ * @returns {Promise}
+ */
+ static fuse(image1: string | Buffer, image2: string | Buffer): Promise;
+ /**
+ * Resize an image
+ * @param {string|Buffer} image Image source
+ * @param {number} width width
+ * @param {number} height height
+ * @returns {Promise}
+ */
+ static resize(image: string | Buffer, width: number, height: number): Promise;
+ /**
+ * Kiss each other ( ͡° ͜ʖ ͡°)
+ * @param {string|Buffer} image1 First image
+ * @param {string|Buffer} image2 Second image
+ * @returns {Promise}
+ */
+ static kiss(image1: string | Buffer, image2: string | Buffer): Promise;
+ /**
+ * Spank someone ( ͡° ͜ʖ ͡°)
+ * @param {string|Buffer} image1 First image
+ * @param {string|Buffer} image2 Second image
+ * @returns {Promise}
+ */
+ static spank(image1: string | Buffer, image2: string | Buffer): Promise;
+ /**
+ * Loads font
+ * @param {any[]} fontArray Font array
+ * @returns {Promise}
+ */
+ static registerFonts(fontArray?: any[]): Promise;
+ /**
+ * Slap someone ( ͡° ͜ʖ ͡°)
+ * @param {string|Buffer} image1 First image
+ * @param {string|Buffer} image2 Second image
+ * @returns {Promise}
+ */
+ static slap(image1: string | Buffer, image2: string | Buffer): Promise;
+ /**
+ * Oh this? This is beautiful!
+ * @param {string|Buffer} image Source image
+ * @returns {Promise}
+ */
+ static beautiful(image: string | Buffer): Promise;
+ /**
+ * facepalm
+ * @param {string|Buffer} image image
+ * @returns {Promise}
+ */
+ static facepalm(image: string | Buffer): Promise;
+ /**
+ * Rainbow ( ͡° ͜ʖ ͡°)
+ * @param {string|Buffer} image Image source
+ * @returns {Promise}
+ */
+ static rainbow(image: string | Buffer): Promise;
+ /**
+ * "F" in the chat
+ * @param {string|Buffer} image image source
+ * @returns {Promise}
+ */
+ static rip(image: string | Buffer): Promise;
+ /**
+ * Trash?
+ * @param {string|Buffer} image Image source
+ * @returns {Promise}
+ */
+ static trash(image: string | Buffer): Promise;
+ /**
+ * Worse than hitler
+ * @param {string|Buffer} image Source image
+ * @returns {Promise}
+ */
+ static hitler(image: string | Buffer): Promise;
+ /**
+ * Updates image color
+ * @param {string|Buffer} image Image source
+ * @param {string} color HTML5 color
+ * @returns {Promise}
+ */
+ static colorfy(image: string | Buffer, color: string): Promise;
+ /**
+ * whoosh
+ * @param {string|Buffer} image Image source
+ * @returns {Promise}
+ */
+ static jokeOverHead(image: string | Buffer): Promise;
+ /**
+ * Distracted boyfriend
+ * @param {string|Buffer} image1 Face for the girl in red color
+ * @param {string|Buffer} image2 Face for the boy
+ * @param {string|Buffer} image3 Face for the other girl [optional]
+ * @returns {Promise}
+ */
+ static distracted(image1: string | Buffer, image2: string | Buffer, image3?: string | Buffer): Promise;
+ /**
+ * No, it doesn't affect my baby.
+ * @param {string|Buffer} image Source image
+ * @returns {Promise}
+ */
+ static affect(image: string | Buffer): Promise;
+ /**
+ * Jail
+ * @param {string|Buffer} image Source image
+ * @param {boolean} greyscale If it should greyscale image
+ * @returns {Promise}
+ */
+ static jail(image: string | Buffer, greyscale?: boolean): Promise;
+ /**
+ * bed
+ * @param {string|Buffer} image1 First image
+ * @param {string|Buffer} image2 Second image
+ * @returns {Promise}
+ */
+ static bed(image1: string | Buffer, image2: string | Buffer): Promise;
+ /**
+ * Delete
+ * @param {string|Buffer} image Source image
+ * @param {boolean} dark If image should be in dark mode
+ * @returns {Promise}
+ */
+ static delete(image: string | Buffer, dark?: boolean): Promise;
+ /**
+ * TicTacToe
+ * @param {object} fill TicTacToe params
+ * @param {"X"|"O"} [fill.a1] a1 value
+ * @param {"X"|"O"} [fill.b1] b1 value
+ * @param {"X"|"O"} [fill.c1] c1 value
+ * @param {"X"|"O"} [fill.a2] a2 value
+ * @param {"X"|"O"} [fill.b2] b2 value
+ * @param {"X"|"O"} [fill.c2] c2 value
+ * @param {"X"|"O"} [fill.a3] a3 value
+ * @param {"X"|"O"} [fill.b3] b3 value
+ * @param {"X"|"O"} [fill.c3] c3 value
+ * @param {object} color Color params
+ * @param {string} [color.bg] Background clolor
+ * @param {string} [color.bar] TicTacToe bar color
+ * @param {string} [color.x] Color of **X**
+ * @param {string} [color.o] Color of **O**
+ * @returns {Buffer}
+ */
+ static tictactoe(fill?: {
+ a1?: "X" | "O";
+ b1?: "X" | "O";
+ c1?: "X" | "O";
+ a2?: "X" | "O";
+ b2?: "X" | "O";
+ c2?: "X" | "O";
+ a3?: "X" | "O";
+ b3?: "X" | "O";
+ c3?: "X" | "O";
+ }, color?: {
+ bg?: string;
+ bar?: string;
+ x?: string;
+ o?: string;
+ }): Buffer;
+ /**
+ * Opinion
+ * @param {string|Buffer} avatar Image
+ * @param {string} msg Message
+ * @returns {Promise}
+ */
+ static opinion(avatar: string | Buffer, msg: string): Promise;
+ /**
+ * Creates Gradient
+ * @param {string} colorFrom Starting color
+ * @param {string} colorTo Ending color
+ * @param {number} width Image width
+ * @param {number} height Image height
+ * @returns {Buffer}
+ */
+ static gradient(colorFrom: string, colorTo: string, width: number, height: number): Buffer;
+ /**
+ * Oh no! It's Stupid.
+ * @param {string} message Message
+ * @returns {Promise}
+ */
+ static ohno(message: string): Promise;
+ /**
+ * Change my mind (taken from jgoralcz/image-microservice)
+ * @param {String} text Text
+ * @see https://github.com/jgoralcz/image-microservice/blob/master/src/workers/canvas/ChangeMyMind.js
+ * @returns {Promise}
+ */
+ static changemymind(text: string): Promise;
+ /**
+ * Clyde
+ * @param {string} message Message
+ * @returns {Promise}
+ */
+ static clyde(message: string): Promise;
+ /**
+ * Fake Quote
+ * @param {object} options Options
+ * @param {Buffer|string} [options.image] Image
+ * @param {string} [options.message] Message
+ * @param {string} [options.username] Username
+ * @param {string} [options.color] Color
+ * @returns {Promise}
+ */
+ static quote(options?: {
+ image?: Buffer | string;
+ message?: string;
+ username?: string;
+ color?: string;
+ }): Promise;
+ /**
+ * PornHub Comment
+ * @param {Object} options Options
+ * @param {String} [options.username] Username
+ * @param {String} [options.message] Comment
+ * @param {String|Buffer} [options.image] Image
+ * @returns {Promise}
+ */
+ static phub(options?: {
+ username?: string;
+ message?: string;
+ image?: string | Buffer;
+ }): Promise;
+ /**
+ * Wanted
+ * @param {string|Buffer} image Source image
+ * @returns {Promise}
+ */
+ static wanted(image: string | Buffer): Promise;
+ /**
+ * Wasted
+ * @param {string|Buffer} image Source image
+ * @returns {Promise}
+ */
+ static wasted(image: string | Buffer): Promise;
+ /**
+ * YouTube comment
+ * @param {object} ops YouTube comment options
+ * @param {string} [ops.username] Comment author username
+ * @param {string} [ops.content] The comment
+ * @param {string|Buffer} [ops.avatar] Avatar source
+ * @param {boolean} [ops.dark=false] Dark mode?
+ * @returns {Promise}
+ */
+ static youtube(ops?: {
+ username?: string;
+ content?: string;
+ avatar?: string | Buffer;
+ dark?: boolean;
+ }): Promise;
+ /**
+ * Oh Shit!
+ * @param {string|Buffer} image Source image
+ * @returns {Promise}
+ */
+ static shit(image: string | Buffer): Promise;
+ /**
+ * Writes the data as file
+ * @param {Buffer} data data to write
+ * @param {string} name file name
+ * @returns {void}
+ */
+ static write(data: Buffer, name: string): void;
+ /**
+ * Returns default icon of a discord server
+ * @param {string} name Guild name
+ * @param {number} size Icon size. Valid: `16`, `32`, `64`, `128`, `256`, `512`, `1024`, `2048` & `4096`
+ * @returns {Promise}
+ */
+ static guildIcon(name: string, size?: number): Promise;
+ /**
+ * Discord Reply Clone
+ * @param {object} options Options
+ * @param {string|Buffer} [options.avatar1] Avatar of the person who replied
+ * @param {string|Buffer} [options.avatar2] Avatar of the other person
+ * @param {string} [options.user1] Username of the person who replied
+ * @param {string} [options.user2] Username of the other person
+ * @param {string} [options.hex1] Hex color of the person who replied
+ * @param {string} [options.hex2] Hex color of the other person
+ * @param {string} [options.mainText] The message
+ * @param {string} [options.replyText] The reply message
+ * @returns {Promise}
+ * @example const img = "https://cdn.discordapp.com/embed/avatars/0.png";
+ * const img2 = "https://cdn.discordapp.com/embed/avatars/4.png";
+ * canvacord.Canvas.reply({
+ * avatar1: img,
+ * avatar2: img2,
+ * user1: "Maximus",
+ * user2: "Snowflake",
+ * hex1: "#FF3300",
+ * hex2: "#7289da",
+ * mainText: "kok",
+ * replyText: "Pog"
+ * })
+ * .then(img => canvacord.write(img, "reply.png"));
+ */
+ static reply(options?: {
+ avatar1?: string | Buffer;
+ avatar2?: string | Buffer;
+ user1?: string;
+ user2?: string;
+ hex1?: string;
+ hex2?: string;
+ mainText?: string;
+ replyText?: string;
+ }): Promise;
+ /**
+ * Canvacord assets
+ * @type {CanvacordAssets}
+ * @private
+ */
+ private static get assets();
+ /**
+ * Canvacord convolution matrix
+ * @typedef {object} ConvolutionMatrix
+ * @property {number[]} EDGES Edges Matrix
+ * @property {number[]} BLUR Blur Matrix
+ * @property {number[]} SHARPEN Sharpen Matrix
+ * @property {number[]} BURN Burn Matrix
+ */
+ /**
+ * Matrix data for **Canvacord.convolute()**
+ * @type {ConvolutionMatrix}
+ */
+ static get CONVOLUTION_MATRIX(): {
+ /**
+ * Edges Matrix
+ */
+ EDGES: number[];
+ /**
+ * Blur Matrix
+ */
+ BLUR: number[];
+ /**
+ * Sharpen Matrix
+ */
+ SHARPEN: number[];
+ /**
+ * Burn Matrix
+ */
+ BURN: number[];
+ };
+ /**
+ * Canvacord utils
+ * @type {Util}
+ */
+ static get Util(): Util;
+}
+import Util = require("./Util");
+//# sourceMappingURL=Canvacord.d.ts.map
\ No newline at end of file
diff --git a/typings/src/Canvacord.d.ts.map b/typings/src/Canvacord.d.ts.map
new file mode 100644
index 00000000..4a637d03
--- /dev/null
+++ b/typings/src/Canvacord.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"Canvacord.d.ts","sourceRoot":"","sources":["../../src/Canvacord.js"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/typings/src/Leaver.d.ts b/typings/src/Leaver.d.ts
new file mode 100644
index 00000000..7c3e6790
--- /dev/null
+++ b/typings/src/Leaver.d.ts
@@ -0,0 +1,45 @@
+export = Leaver;
+declare class Leaver extends Base {
+ /**
+ * Title created with Canvacord
+ * @type {string}
+ */
+ textTitle: string;
+ /**
+ * Text message created with Canvacord
+ * @type {string}
+ */
+ textMessage: string;
+ /**
+ * Title color created with canvacord
+ * @type {string}
+ */
+ colorTitle: string;
+ /**
+ * Updates default state
+ * @returns {void}
+ * @private
+ * @ignore
+ */
+ private __updateData;
+ /**
+ * Set color
+ * @param {"title"|"title-border"|"avatar"|"username"|"username-box"|"hashtag"|"discriminator"|"discriminator-box"|"message"|"message-box"|"member-count"|"background"|"border"} id
+ * @param {string} color HTML5 color code
+ * @returns {Leaver}
+ */
+ setColor(id: "title" | "title-border" | "avatar" | "username" | "username-box" | "hashtag" | "discriminator" | "discriminator-box" | "message" | "message-box" | "member-count" | "background" | "border", color: string): Leaver;
+ /**
+ * Ser member count
+ * @param {number|string} memberCount Guild member count
+ * @returns {Leaver}
+ */
+ setMemberCount(memberCount?: number | string): Leaver;
+ /**
+ * Builds welcome image
+ * @returns {Promise}
+ */
+ build(): Promise;
+}
+import Base = require("./base/GreetingsCard");
+//# sourceMappingURL=Leaver.d.ts.map
\ No newline at end of file
diff --git a/typings/src/Leaver.d.ts.map b/typings/src/Leaver.d.ts.map
new file mode 100644
index 00000000..02870eb8
--- /dev/null
+++ b/typings/src/Leaver.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"Leaver.d.ts","sourceRoot":"","sources":["../../src/Leaver.js"],"names":[],"mappings":";AAGA;IAmBQ;;;OAGG;IACH,WAFU,MAAM,CAEU;IAE1B;;;OAGG;IACH,aAFU,MAAM,CAEsB;IAEtC;;;OAGG;IACH,YAFU,MAAM,CAEW;IAM/B;;;;;OAKG;IACH,qBAYC;IAED;;;;;OAKG;IACH,aAJW,OAAO,GAAC,cAAc,GAAC,QAAQ,GAAC,UAAU,GAAC,cAAc,GAAC,SAAS,GAAC,eAAe,GAAC,mBAAmB,GAAC,SAAS,GAAC,aAAa,GAAC,cAAc,GAAC,YAAY,GAAC,QAAQ,SACpK,MAAM,GACJ,MAAM,CAKlB;IAED;;;;OAIG;IACH,6BAHW,MAAM,GAAC,MAAM,GACX,MAAM,CAKlB;IAED;;;OAGG;IACH,SAFa,QAAQ,MAAM,CAAC,CAI3B;CAEJ"}
\ No newline at end of file
diff --git a/typings/src/Plugins.d.ts b/typings/src/Plugins.d.ts
new file mode 100644
index 00000000..96a99e20
--- /dev/null
+++ b/typings/src/Plugins.d.ts
@@ -0,0 +1,27 @@
+export type Plugins = {
+ /**
+ * Circle plugin
+ */
+ circle: Function;
+ /**
+ * Convolute plugin
+ */
+ convolute: Function;
+ /**
+ * Rectangle plugin
+ */
+ rectangle: Function;
+ /**
+ * Round plugin
+ */
+ round: Function;
+ /**
+ * Abbrev plugin
+ */
+ abbrev: Function;
+ /**
+ * Emoji rendering plugin
+ */
+ renderEmoji: Function;
+};
+//# sourceMappingURL=Plugins.d.ts.map
\ No newline at end of file
diff --git a/typings/src/Plugins.d.ts.map b/typings/src/Plugins.d.ts.map
new file mode 100644
index 00000000..35dac4de
--- /dev/null
+++ b/typings/src/Plugins.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"Plugins.d.ts","sourceRoot":"","sources":["../../src/Plugins.js"],"names":[],"mappings":""}
\ No newline at end of file
diff --git a/typings/src/Rank.d.ts b/typings/src/Rank.d.ts
new file mode 100644
index 00000000..9ccf595f
--- /dev/null
+++ b/typings/src/Rank.d.ts
@@ -0,0 +1,327 @@
+export = Rank;
+/**
+ * @typedef {object} CanvacordRankData
+ * @property {number} width Rank card width
+ * @property {number} height Rank card height
+ * @property {object} background Rank card background data
+ * @property {"image"|"color"} [background.type="color"] Background type
+ * @property {string|Buffer} [background.image="#23272A"] Background image (or color)
+ * @property {object} progressBar Progressbar data
+ * @property {boolean} [progressBar.rounded=true] If the progressbar should be rounded
+ * @property {number} [progressBar.x=275.5] Progressbar X
+ * @property {number} [progressBar.y=183.75] Progressbar Y
+ * @property {number} [progressBar.height=37.5] Progressbar height
+ * @property {number} [progressBar.width=596.5] Progressbar width
+ * @property {object} [progressBar.track] Progressbar track
+ * @property {string} [progressBar.track.color="#484b4E"] Progressbar track color
+ * @property {object} [progressBar.bar] Progressbar bar data
+ * @property {"color"|"gradient"} [progressBar.bar.type="color"] Progressbar bar type
+ * @property {string|string[]} [progressBar.bar.color="#FFFFFF"] Progressbar bar color
+ * @property {object} overlay Progressbar overlay
+ * @property {boolean} [overlay.display=true] If it should display overlay
+ * @property {number} [overlay.level=0.5] Overlay opacity level
+ * @property {string} [overlay.color="#333640"] Overlay bg color
+ * @property {object} avatar Rank card avatar data
+ * @property {string|Buffer} [avatar.source=null] Avatar source
+ * @property {number} [avatar.x=70] X
+ * @property {number} [avatar.y=50] Y
+ * @property {number} [avatar.height=180] height
+ * @property {number} [avatar.width=180] width
+ * @property {object} status Rank card status
+ * @property {number} [status.width=5] Status width
+ * @property {"online"|"dnd"|"idle"|"offline"|"streaming"} [status.type] Status type
+ * @property {string} [status.color="#43B581"] Status color
+ * @property {boolean} [status.circle=false] Circualr status?
+ * @property {object} rank Rank card rank data
+ * @property {boolean} [rank.display=true] If it should display rank
+ * @property {number} [rank.data=1] The Rank
+ * @property {string} [rank.textColor="#FFFFFF"] Rank text color
+ * @property {string} [rank.color="#F3F3F3"] Rank color
+ * @property {string} [rank.displayText="RANK"] Rank display text
+ * @property {object} level Rank card level data
+ * @property {boolean} [level.display=true] If it should display level
+ * @property {number} [level.data=1] The level
+ * @property {string} [level.textColor="#FFFFFF"] level text color
+ * @property {string} [level.color="#F3F3F3"] level color
+ * @property {string} [level.displayText="LEVEL"] level display text
+ * @property {object} currentXP Rank card current xp
+ * @property {number} [currentXP.data=0] Current xp
+ * @property {string} [currentXP.color="#FFFFFF"] Rank card current xp color
+ * @property {object} requiredXP Rank card required xp
+ * @property {number} [requiredXP.data=0] required xp
+ * @property {string} [requiredXP.color="#FFFFFF"] Rank card required xp color
+ * @property {object} discriminator Rank card discriminator
+ * @property {number|string} [discriminator.discrim=null] The discriminator
+ * @property {string} [discriminator.color="rgba(255, 255, 255, 0.4)"] Rank card discriminator color
+ * @property {object} username Username Data
+ * @property {string} [username.name=null] Rank card username
+ * @property {string} [username.color="#FFFFFF"] Rank card username color
+ * @property {boolean} [renderEmojis=false] If it should render emojis
+ */
+declare class Rank {
+ /**
+ * Rank card data
+ * @type {CanvacordRankData}
+ */
+ data: CanvacordRankData;
+ /**
+ * Loads font
+ * @param {any[]} fontArray Font array
+ * @returns {Rank}
+ */
+ registerFonts(fontArray?: any[]): Rank;
+ /**
+ * If it should render username with emojis (if any)
+ * @param {boolean} [apply=false] Set it to `true` to render emojis.
+ * @returns {Rank}
+ */
+ renderEmojis(apply?: boolean): Rank;
+ /**
+ * Set font size
+ * @param {string} size
+ * @returns {Rank}
+ */
+ setFontSize(size: string): Rank;
+ /**
+ * Set username
+ * @param {string} name Username
+ * @param {string} color Username color
+ * @returns {Rank}
+ */
+ setUsername(name: string, color?: string): Rank;
+ /**
+ * Set discriminator
+ * @param {string|number} discriminator User discriminator
+ * @param {string} color Discriminator color
+ * @returns {Rank}
+ */
+ setDiscriminator(discriminator: string | number, color?: string): Rank;
+ /**
+ * Set progressbar style
+ * @param {string|string[]} color Progressbar Color
+ * @param {"COLOR"|"GRADIENT"} [fillType] Progressbar type
+ * @param {boolean} [rounded=true] If progressbar should have rounded edges
+ * @returns {Rank}
+ */
+ setProgressBar(color: string | string[], fillType?: "COLOR" | "GRADIENT", rounded?: boolean): Rank;
+ /**
+ * Set progressbar track
+ * @param {string} color Track color
+ * @returns {Rank}
+ */
+ setProgressBarTrack(color: string): Rank;
+ /**
+ * Set card overlay
+ * @param {string} color Overlay color
+ * @param {number} [level=0.5] Opacity level
+ * @param {boolean} [display=true] IF it should display overlay
+ * @returns {Rank}
+ */
+ setOverlay(color: string, level?: number, display?: boolean): Rank;
+ /**
+ * Set required xp
+ * @param {number} data Required xp
+ * @param {string} color Color
+ * @returns {Rank}
+ */
+ setRequiredXP(data: number, color?: string): Rank;
+ /**
+ * Set current xp
+ * @param {number} data Current xp
+ * @param {string} color Color
+ * @returns {Rank}
+ */
+ setCurrentXP(data: number, color?: string): Rank;
+ /**
+ * Set Rank
+ * @param {number} data Current Rank
+ * @param {string} text Display text
+ * @param {boolean} [display=true] If it should display rank
+ * @returns {Rank}
+ */
+ setRank(data: number, text?: string, display?: boolean): Rank;
+ /**
+ * Set rank display color
+ * @param {string} text text color
+ * @param {string} number Number color
+ * @returns {Rank}
+ */
+ setRankColor(text?: string, number?: string): Rank;
+ /**
+ * Set level color
+ * @param {string} text text color
+ * @param {string} number number color
+ * @returns {Rank}
+ */
+ setLevelColor(text?: string, number?: string): Rank;
+ /**
+ * Set Level
+ * @param {number} data Current Level
+ * @param {string} text Display text
+ * @param {boolean} [display=true] If it should display level
+ * @returns {Rank}
+ */
+ setLevel(data: number, text?: string, display?: boolean): Rank;
+ /**
+ * Set custom status color
+ * @param {string} color Color to set
+ * @returns {Rank}
+ */
+ setCustomStatusColor(color: string): Rank;
+ /**
+ * Set status
+ * @param {"online"|"idle"|"dnd"|"offline"|"streaming"} status User status
+ * @param {boolean} circle If status icon should be circular.
+ * @param {number|boolean} width Status width
+ * @returns {Rank}
+ */
+ setStatus(status: "online" | "idle" | "dnd" | "offline" | "streaming", circle?: boolean, width?: number | boolean): Rank;
+ /**
+ * Set background image/color
+ * @param {"COLOR"|"IMAGE"} type Background type
+ * @param {string|Buffer} [data] Background color or image
+ * @returns {Rank}
+ */
+ setBackground(type: "COLOR" | "IMAGE", data?: string | Buffer): Rank;
+ /**
+ * User avatar
+ * @param {string|Buffer} data Avatar data
+ * @returns {Rank}
+ */
+ setAvatar(data: string | Buffer): Rank;
+ /**
+ * Builds rank card
+ * @param {object} ops Fonts
+ * @param {string} [ops.fontX="MANROPE_BOLD"] Bold font family
+ * @param {string} [ops.fontY="MANROPE_REGULAR"] Regular font family
+ * @returns {Promise}
+ */
+ build(ops?: {
+ fontX?: string;
+ fontY?: string;
+ }): Promise;
+ /**
+ * Calculates progress
+ * @type {number}
+ * @private
+ * @ignore
+ */
+ private get _calculateProgress();
+}
+declare namespace Rank {
+ export { CanvacordRankData };
+}
+type CanvacordRankData = {
+ /**
+ * Rank card width
+ */
+ width: number;
+ /**
+ * Rank card height
+ */
+ height: number;
+ /**
+ * Rank card background data
+ */
+ background: {
+ type?: "image" | "color";
+ image?: string | Buffer;
+ };
+ /**
+ * Progressbar data
+ */
+ progressBar: {
+ rounded?: boolean;
+ x?: number;
+ y?: number;
+ height?: number;
+ width?: number;
+ track?: {
+ color?: string;
+ };
+ bar?: {
+ type?: "color" | "gradient";
+ color?: string | string[];
+ };
+ };
+ /**
+ * Progressbar overlay
+ */
+ overlay: {
+ display?: boolean;
+ level?: number;
+ color?: string;
+ };
+ /**
+ * Rank card avatar data
+ */
+ avatar: {
+ source?: string | Buffer;
+ x?: number;
+ y?: number;
+ height?: number;
+ width?: number;
+ };
+ /**
+ * Rank card status
+ */
+ status: {
+ width?: number;
+ type?: "online" | "dnd" | "idle" | "offline" | "streaming";
+ color?: string;
+ circle?: boolean;
+ };
+ /**
+ * Rank card rank data
+ */
+ rank: {
+ display?: boolean;
+ data?: number;
+ textColor?: string;
+ color?: string;
+ displayText?: string;
+ };
+ /**
+ * Rank card level data
+ */
+ level: {
+ display?: boolean;
+ data?: number;
+ textColor?: string;
+ color?: string;
+ displayText?: string;
+ };
+ /**
+ * Rank card current xp
+ */
+ currentXP: {
+ data?: number;
+ color?: string;
+ };
+ /**
+ * Rank card required xp
+ */
+ requiredXP: {
+ data?: number;
+ color?: string;
+ };
+ /**
+ * Rank card discriminator
+ */
+ discriminator: {
+ discrim?: number | string;
+ color?: string;
+ };
+ /**
+ * Username Data
+ */
+ username: {
+ name?: string;
+ color?: string;
+ };
+ /**
+ * If it should render emojis
+ */
+ renderEmojis?: boolean;
+};
+//# sourceMappingURL=Rank.d.ts.map
\ No newline at end of file
diff --git a/typings/src/Rank.d.ts.map b/typings/src/Rank.d.ts.map
new file mode 100644
index 00000000..d68ae49c
--- /dev/null
+++ b/typings/src/Rank.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"Rank.d.ts","sourceRoot":"","sources":["../../src/Rank.js"],"names":[],"mappings":"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"}
\ No newline at end of file
diff --git a/typings/src/Spotify.d.ts b/typings/src/Spotify.d.ts
new file mode 100644
index 00000000..babfec1f
--- /dev/null
+++ b/typings/src/Spotify.d.ts
@@ -0,0 +1,138 @@
+export = Spotify;
+/**
+ * Spotify presence card builder
+ */
+declare class Spotify {
+ /**
+ * Song title
+ * @type {string}
+ */
+ title: string;
+ /**
+ * Thumbnail
+ * @type {string|Buffer|Canvas.Image}
+ */
+ image: string | Buffer | Canvas.Image;
+ /**
+ * Song artist
+ * @type {string}
+ */
+ artist: string;
+ /**
+ * Spotify album name
+ * @type {string}
+ */
+ album: string;
+ /**
+ * Discord presence started timestamp
+ * @type {number}
+ */
+ start: number;
+ /**
+ * Discord presence ending timestamp
+ * @type {number}
+ */
+ end: number;
+ /**
+ * @typedef {object} SpotifyDataBG
+ * @property {number} type Background type
+ * @property {string|Buffer} data Background data
+ */
+ /**
+ * Background
+ * @type {SpotifyDataBG}
+ */
+ background: {
+ /**
+ * Background type
+ */
+ type: number;
+ /**
+ * Background data
+ */
+ data: string | Buffer;
+ };
+ /**
+ * @typedef {object} SpotifyProgressBarData
+ * @property {string} bgColor Progressbar bg color
+ * @property {string} color Progressbar bg color
+ */
+ /**
+ * Progressbar details
+ * @type {SpotifyProgressBarData}
+ */
+ progressBar: {
+ /**
+ * Progressbar bg color
+ */
+ bgColor: string;
+ /**
+ * Progressbar bg color
+ */
+ color: string;
+ };
+ /**
+ * Set progressbar details
+ * @param {"TRACK"|"BAR"} type Progressbar type
+ * @param {string} color Color to set
+ * @returns {Spotify}
+ */
+ setProgressBar(type: "TRACK" | "BAR", color: string): Spotify;
+ /**
+ * Set title
+ * @param {string} title Title to set
+ * @returns {Spotify}
+ */
+ setTitle(title: string): Spotify;
+ /**
+ * Set image
+ * @param {string|Buffer|Canvas.Image} source Image source
+ * @returns {Spotify}
+ */
+ setImage(source: string | Buffer | Canvas.Image): Spotify;
+ /**
+ * Set artist name
+ * @param {string} name Artist name
+ * @returns {Spotify}
+ */
+ setAuthor(name: string): Spotify;
+ /**
+ * Set album name
+ * @param {string} name Album name
+ * @returns {Spotify}
+ */
+ setAlbum(name: string): Spotify;
+ /**
+ * Set start timestamp
+ * @param {Date|number} time Timestamp
+ * @returns {Spotify}
+ */
+ setStartTimestamp(time: Date | number): Spotify;
+ /**
+ * Set end timestamp
+ * @param {Date|number} time Timestamp
+ * @returns {Spotify}
+ */
+ setEndTimestamp(time: Date | number): Spotify;
+ /**
+ * Set background
+ * @param {"COLOR"|"IMAGE"} type Background type
+ * @param {string|Buffer|Canvas.Image} data Background data
+ * @returns {Spotify}
+ */
+ setBackground(type?: "COLOR" | "IMAGE", data?: string | Buffer | Canvas.Image): Spotify;
+ /**
+ * This function converts raw data into spotify presence card.
+ * @returns {Promise}
+ */
+ build(): Promise;
+ /**
+ * Returns progress
+ * @type {number}
+ * @private
+ * @ignore
+ */
+ private __calculateProgress;
+}
+import Canvas = require("@napi-rs/canvas");
+//# sourceMappingURL=Spotify.d.ts.map
\ No newline at end of file
diff --git a/typings/src/Spotify.d.ts.map b/typings/src/Spotify.d.ts.map
new file mode 100644
index 00000000..2bc52ecc
--- /dev/null
+++ b/typings/src/Spotify.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"Spotify.d.ts","sourceRoot":"","sources":["../../src/Spotify.js"],"names":[],"mappings":";AAIA;;GAEG;AACH;IAoBQ;;;OAGG;IACH,OAFU,MAAM,CAEC;IAEjB;;;OAGG;IACH,OAFU,MAAM,GAAC,MAAM,GAAC,YAAY,CAEnB;IAEjB;;;OAGG;IACH,QAFU,MAAM,CAEE;IAElB;;;OAGG;IACH,OAFU,MAAM,CAEC;IAEjB;;;OAGG;IACH,OAFU,MAAM,CAEC;IAEjB;;;OAGG;IACH,KAFU,MAAM,CAED;IAEf;;;;OAIG;IAEH;;;OAGG;IACH;;;;cARc,MAAM;;;;cACN,MAAM,GAAC,MAAM;MAU1B;IAED;;;;OAIG;IAEH;;;OAGG;IACH;;;;iBARc,MAAM;;;;eACN,MAAM;MAUnB;IAGL;;;;;OAKG;IACH,qBAJW,OAAO,GAAC,KAAK,SACb,MAAM,GACJ,OAAO,CAgBnB;IAED;;;;OAIG;IACH,gBAHW,MAAM,GACJ,OAAO,CAMnB;IAED;;;;OAIG;IACH,iBAHW,MAAM,GAAC,MAAM,GAAC,YAAY,GACxB,OAAO,CAMnB;IAED;;;;OAIG;IACH,gBAHW,MAAM,GACJ,OAAO,CAMnB;IAED;;;;OAIG;IACH,eAHW,MAAM,GACJ,OAAO,CAMnB;IAED;;;;OAIG;IACH,wBAHW,IAAI,GAAC,MAAM,GACT,OAAO,CAOnB;IAED;;;;OAIG;IACH,sBAHW,IAAI,GAAC,MAAM,GACT,OAAO,CAOnB;IAED;;;;;OAKG;IACH,qBAJW,OAAO,GAAC,OAAO,SACf,MAAM,GAAC,MAAM,GAAC,YAAY,GACxB,OAAO,CAkBnB;IAED;;;OAGG;IACH,SAFa,QAAQ,MAAM,CAAC,CAqE3B;IAED;;;;;OAKG;IACH,4BAKC;CAEJ"}
\ No newline at end of file
diff --git a/typings/src/Util.d.ts b/typings/src/Util.d.ts
new file mode 100644
index 00000000..142229dc
--- /dev/null
+++ b/typings/src/Util.d.ts
@@ -0,0 +1,73 @@
+export = Util;
+declare class Util {
+ /**
+ * Validates hex
+ * @param {string} hex Hex code to validate
+ * @returns {boolean}
+ */
+ static validateHex(hex: string): boolean;
+ /**
+ * Converts regular timestamp to discord like time
+ * @param {Date|number} time Timestamp to convert
+ * @returns {string}
+ */
+ static discordTime(time?: Date | number): string;
+ /**
+ * Formats time
+ * @param {number} time Time to format
+ * @returns {string}
+ */
+ static formatTime(time: number): string;
+ /**
+ * Shorten text.
+ * @param {string} text Text to shorten
+ * @param {number} len Max Length
+ * @returns {string}
+ */
+ static shorten(text: string, len: number): string;
+ /**
+ * Converts numbers into units like `1K`, `1M`, `1B` etc.
+ * @param {number|string} num
+ * @returns {string}
+ * @returns {string}
+ */
+ static toAbbrev(num: number | string): string;
+ /**
+ * Renders text with emoji
+ * @param {CanvasRenderingContext2D} ctx CanvasRenderingContext2D
+ * @param {string} msg Message
+ * @param {number} x X
+ * @param {number} y Y
+ * @returns {Promise}
+ */
+ static renderEmoji(ctx: CanvasRenderingContext2D, msg: string, x: number, y: number): Promise;
+ /**
+ * Returns formatted hex code
+ * @param {string} hex Hex code to format
+ * @param {string} alt Alt color
+ * @returns {string}
+ */
+ static formatHex(hex: string, alt?: string): string;
+ /**
+ * Inverts hex color
+ * @param {string} hex Hex color code to invert
+ * @returns {string}
+ */
+ static invertColor(hex: string): string;
+ /**
+ * Returns acronym
+ * @param {string} name Name to parse acronym
+ * @returns {string}
+ */
+ static getAcronym(name: string): string;
+ /**
+ * Returns array of lines
+ * @param {object} params Params
+ * @param {string} text Text
+ * @param {CanvasRenderingContext2D} ctx CanvasRenderingContext2D
+ * @param {number} maxWidth Max width
+ * @returns {string[]}
+ */
+ static getLines({ text, ctx, maxWidth }: object): string[];
+}
+//# sourceMappingURL=Util.d.ts.map
\ No newline at end of file
diff --git a/typings/src/Util.d.ts.map b/typings/src/Util.d.ts.map
new file mode 100644
index 00000000..7c10d481
--- /dev/null
+++ b/typings/src/Util.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"Util.d.ts","sourceRoot":"","sources":["../../src/Util.js"],"names":[],"mappings":";AAMA;IAUI;;;;OAIG;IACH,wBAHW,MAAM,GACJ,OAAO,CAKnB;IAED;;;;OAIG;IACH,0BAHW,IAAI,GAAC,MAAM,GACT,MAAM,CAOlB;IAED;;;;OAIG;IACH,wBAHW,MAAM,GACJ,MAAM,CASlB;IAED;;;;;OAKG;IACH,qBAJW,MAAM,OACN,MAAM,GACJ,MAAM,CAMlB;IAED;;;;;OAKG;IACH,qBAJW,MAAM,GAAC,MAAM,GACX,MAAM,CAKlB;IAED;;;;;;;OAOG;IACH,wBANW,wBAAwB,OACxB,MAAM,KACN,MAAM,KACN,MAAM,GACJ,QAAQ,IAAI,CAAC,CAIzB;IAED;;;;;OAKG;IACH,sBAJW,MAAM,QACN,MAAM,GACJ,MAAM,CASlB;IAED;;;;OAIG;IACH,wBAHW,MAAM,GACJ,MAAM,CAwBlB;IAED;;;;OAIG;IACH,wBAHW,MAAM,GACJ,MAAM,CAQlB;IAED;;;;;;;OAOG;IACH,yCANW,MAAM,GAIJ,MAAM,EAAE,CAmBpB;CAEJ"}
\ No newline at end of file
diff --git a/typings/src/Welcomer.d.ts b/typings/src/Welcomer.d.ts
new file mode 100644
index 00000000..07b0613f
--- /dev/null
+++ b/typings/src/Welcomer.d.ts
@@ -0,0 +1,44 @@
+export = Welcomer;
+declare class Welcomer extends Base {
+ /**
+ * Title created with Canvacord
+ * @type {string}
+ */
+ textTitle: string;
+ /**
+ * Text message created with Canvacord
+ * @type {string}
+ */
+ textMessage: string;
+ /**
+ * Title color created with canvacord
+ * @type {string}
+ */
+ colorTitle: string;
+ /**
+ * Updates default state
+ * @private
+ * @ignore
+ */
+ private __updateData;
+ /**
+ * Set color
+ * @param {"title"|"title-border"|"avatar"|"username"|"username-box"|"hashtag"|"discriminator"|"discriminator-box"|"message"|"message-box"|"member-count"|"background"|"border"} id
+ * @param {string} color HTML5 color code
+ * @returns {Welcomer}
+ */
+ setColor(id: "title" | "title-border" | "avatar" | "username" | "username-box" | "hashtag" | "discriminator" | "discriminator-box" | "message" | "message-box" | "member-count" | "background" | "border", color: string): Welcomer;
+ /**
+ * Ser member count
+ * @param {number|string} memberCount Guild member count
+ * @returns {Welcomer}
+ */
+ setMemberCount(memberCount?: number | string): Welcomer;
+ /**
+ * Builds welcome image
+ * @returns {Promise}
+ */
+ build(): Promise;
+}
+import Base = require("./base/GreetingsCard");
+//# sourceMappingURL=Welcomer.d.ts.map
\ No newline at end of file
diff --git a/typings/src/Welcomer.d.ts.map b/typings/src/Welcomer.d.ts.map
new file mode 100644
index 00000000..f493096a
--- /dev/null
+++ b/typings/src/Welcomer.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"Welcomer.d.ts","sourceRoot":"","sources":["../../src/Welcomer.js"],"names":[],"mappings":";AAGA;IAmBQ;;;OAGG;IACH,WAFU,MAAM,CAEU;IAE1B;;;OAGG;IACH,aAFU,MAAM,CAEwB;IAExC;;;OAGG;IACH,YAFU,MAAM,CAEW;IAM/B;;;;OAIG;IACH,qBAYC;IAED;;;;;OAKG;IACH,aAJW,OAAO,GAAC,cAAc,GAAC,QAAQ,GAAC,UAAU,GAAC,cAAc,GAAC,SAAS,GAAC,eAAe,GAAC,mBAAmB,GAAC,SAAS,GAAC,aAAa,GAAC,cAAc,GAAC,YAAY,GAAC,QAAQ,SACpK,MAAM,GACJ,QAAQ,CAKpB;IAED;;;;OAIG;IACH,6BAHW,MAAM,GAAC,MAAM,GACX,QAAQ,CAKpB;IAED;;;OAGG;IACH,SAFa,QAAQ,MAAM,CAAC,CAI3B;CAEJ"}
\ No newline at end of file
diff --git a/typings/src/base/GreetingsCard.d.ts b/typings/src/base/GreetingsCard.d.ts
new file mode 100644
index 00000000..31b09656
--- /dev/null
+++ b/typings/src/base/GreetingsCard.d.ts
@@ -0,0 +1,86 @@
+export = Greeting;
+declare class Greeting {
+ username: string;
+ guildName: string;
+ colorTitleBorder: string;
+ colorMemberCount: string;
+ textMemberCount: string;
+ memberCount: number;
+ backgroundImage: string;
+ avatar: string | Buffer;
+ opacityBorder: number;
+ colorBorder: string;
+ colorUsername: string;
+ colorUsernameBox: string;
+ opacityUsernameBox: number;
+ discriminator: string;
+ colorDiscriminator: string;
+ opacityDiscriminatorBox: number;
+ colorDiscriminatorBox: string;
+ colorMessage: string;
+ colorHashtag: string;
+ colorBackground: string;
+ /**
+ * Set avatar
+ * @param {string|Buffer} value The avatar
+ * @returns {Greeting}
+ */
+ setAvatar(value: string | Buffer): Greeting;
+ /**
+ * Sets discriminator
+ * @param {string} value the discriminator
+ * @returns {Greeting}
+ */
+ setDiscriminator(value: string): Greeting;
+ /**
+ * Set username
+ * @param {string} value The username
+ * @returns {Greeting}
+ */
+ setUsername(value: string): Greeting;
+ /**
+ * Set guild name
+ * @param {string} value The guild name
+ * @returns {Greeting}
+ */
+ setGuildName(value: string): Greeting;
+ /**
+ * Sets member count
+ * @param {number} value The member count
+ * @returns {Greeting}
+ */
+ setMemberCount(value: number): Greeting;
+ /**
+ * Set background image
+ * @param {string|Buffer} value The background image
+ * @returns {Greeting}
+ */
+ setBackground(value: string | Buffer): Greeting;
+ /**
+ * Sets color
+ * @param {string} variable The variable to set the color at
+ * @param {string} value The color
+ * @returns {Greeting}
+ */
+ setColor(variable: string, value: string): Greeting;
+ /**
+ * Sets text
+ * @param {string} variable The variable to set the text at
+ * @param {string} value The text
+ * @returns {Greeting}
+ */
+ setText(variable: string, value: string): Greeting;
+ /**
+ * Sets opacity
+ * @param {string} variable Sets the opacity of the given variable
+ * @param {number} value The opacity to set
+ * @returns {Greeting}
+ */
+ setOpacity(variable: string, value: number): Greeting;
+ /**
+ * Builds the image
+ * @returns {Promise}
+ */
+ toAttachment(): Promise;
+}
+//# sourceMappingURL=GreetingsCard.d.ts.map
\ No newline at end of file
diff --git a/typings/src/base/GreetingsCard.d.ts.map b/typings/src/base/GreetingsCard.d.ts.map
new file mode 100644
index 00000000..7a316f4d
--- /dev/null
+++ b/typings/src/base/GreetingsCard.d.ts.map
@@ -0,0 +1 @@
+{"version":3,"file":"GreetingsCard.d.ts","sourceRoot":"","sources":["../../../src/base/GreetingsCard.js"],"names":[],"mappings":";AAuBA;IAMQ,iBAAuB;IACvB,kBAA6B;IAC7B,yBAAiC;IACjC,yBAAiC;IACjC,wBAA6C;IAC7C,oBAAoB;IACpB,wBAAiC;IACjC,wBAAkB;IAClB,sBAAwB;IACxB,oBAA4B;IAC5B,sBAA8B;IAC9B,yBAAiC;IACjC,2BAA6B;IAC7B,sBAA2B;IAC3B,2BAAmC;IACnC,gCAAkC;IAClC,8BAAsC;IACtC,qBAA6B;IAC7B,qBAA6B;IAC7B,wBAAgC;IAGpC;;;;OAIG;IACH,iBAHW,MAAM,GAAC,MAAM,GACX,QAAQ,CAKpB;IAED;;;;OAIG;IACH,wBAHW,MAAM,GACJ,QAAQ,CAKpB;IAED;;;;OAIG;IACH,mBAHW,MAAM,GACJ,QAAQ,CAKpB;IAED;;;;OAIG;IACH,oBAHW,MAAM,GACJ,QAAQ,CAKpB;IAED;;;;OAIG;IACH,sBAHW,MAAM,GACJ,QAAQ,CAKpB;IAED;;;;OAIG;IACH,qBAHW,MAAM,GAAC,MAAM,GACX,QAAQ,CAKpB;IAED;;;;;OAKG;IACH,mBAJW,MAAM,SACN,MAAM,GACJ,QAAQ,CAMpB;IAED;;;;;OAKG;IACH,kBAJW,MAAM,SACN,MAAM,GACJ,QAAQ,CAMpB;IAED;;;;;OAKG;IACH,qBAJW,MAAM,SACN,MAAM,GACJ,QAAQ,CAMpB;IAED;;;OAGG;IACH,gBAFa,QAAQ,MAAM,CAAC,CAgF3B;CACJ"}
\ No newline at end of file