Skip to content

Latest commit

 

History

History
367 lines (355 loc) · 56.3 KB

CHANGELOG.md

File metadata and controls

367 lines (355 loc) · 56.3 KB

Change Log

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

[Dev] - 0.5.0

Added

  • [#416] Added KlasaClientOptions.createPiecesFolders to not create pieces' folders if they do not exist. (kyranet)
  • [#398] Added the Settings#update(entries: Array<[string, any]>); overload. (kyranet)
  • [#392] Added support for empty prefixes. (kyranet)
  • [#383] Added the SETTING_GATEWAY_INVALID_FILTERED_VALUE language key. (bdistin)
  • [#383] Added Base class for schemas, extending Map. (Unseenfaith)
  • [#383] Added SchemaType and SchemaTypes classes. (Unseenfaith)
  • [#383] Added SchemaPieceOptions.filter. (kyranet)
  • [#383] Added abstract method SQLProvider#getColumns. (kyranet)
  • [#379] Added prefixCaseInsensitive option in KlasaClientOptions. (AdityaTD)
  • [#362] Added GatewayDriverRegisterOptions.syncArg for custom arguments for GatewayDriver#sync()'s call. (kyranet)
  • [#362] Added GatewayDriver#@@iterator. (kyranet)
  • [#331] Added Gateway#syncQueue for centralized lazy load cache and memory reduction. (kyranet)
  • [#331] Added Configuration#synchronizing getter to check whether a Configuration instance is lazy loading or not. (kyranet)
  • [#284] Added Util.chunk. (bdistin)
  • [#306] Added Util.isPrimitive. (kyranet)
  • [#306] Added constants.DEFAULTS.QUERYBUILDER. (kyranet)
  • [#306] Added SQLProvider#updateColumn. (kyranet)
  • [#306] Added SQLProvider#parseUpdateInput, Provider#parseUpdateInput. (kyranet)
  • [#306] Added QueryBuilder class util. (kyranet)
  • [#284] Added Configuration#waitSync() to wait for the sync to finish. (kyranet)
  • [#284] Added SQLProvider. (kyranet)
  • [#284] Added SchemaPiece#sqlSchema for consistency with SchemaFolder#sqlSchema. (kyranet)
  • [#272] Added disabledCorePieces option in KlasaClientOptions. (bdistin)
  • [#272] Added Argument and ArgumentStore classes for argument resolving in Usage. (bdistin)
  • [#256] Added Util.objectToTuples for object overload -> array overload in Configuration#update. (kyranet)
  • [#260] Added support for functions with no arguments in Language to be called with a single argument in Language#get. (kyranet)
  • [#213] Added PermissionLevels#remove(). (bdistin)
  • [#210] Added PermissionLevelsOptions.fetch to autofetch uncached members. (bdistin)
  • [#196] Added property of ignoreEdits in monitors for whether a monitor should run in edited messages. (bdistin)
  • [#196] Added property of catchUp in ScheduledTask, making the scheduled task not execute if the bot was offline when it was supposed to run, if this option is set to false. (bdistin)
  • [#196] Added support for static methods and properties in extendables. (bdistin)
  • [#196] Added the options and properties event, emitter and once to all events. (bdistin)
  • [#196] Added onceReady piece event. (bdistin)
  • [#179] Added the key COMMAND_CONF_NOCHANGE to the en-US language file. (kyranet)
  • [#179] Added support for Configuration#reset(string[]); to reset multiple keys. (kyranet)
  • [#179] Added util.arraysEqual. (kyranet)
  • [#179] Added property Symbol.iterator to Schedule. (kyranet)
  • [#179] Added Gateway#toJSON() and GatewayDriver#toJSON(). (kyranet)
  • [#179] Added GatewayDriver#register to be able to register new gateways without events (directly in your app.js). (kyranet)
  • [#179] Added util.getIdentifier as a replacement for the function validator. (kyranet)
  • [#179] Added SchemaFolder#keys(), SchemaFolder#values(), SchemaFolder#entries() and SchemaFolder#[@@iterator](). Identical to Map's respective methods. (kyranet)
  • [#201] Improve util.toTitleCase. (KingDGrizzle)
  • [#186] Added a load command. (kyranet)
  • [#176] Added categorychannel type to ArgResolver. (kyranet)
  • [#166] Added support for TypeScript's export default in the loader. (kyranet)
  • [#162] Added better dependent arguments support. (bdistin)
  • [#162] Added subcommand support. (bdistin)
  • [#162] Added per-command custom resolvers and per-command and per-argument custom responses (with i18n support). (bdistin)
  • [#159] Added Configuration#_syncStatus. (kyranet)
  • [#144] Added SchemaPiece#setValidator and SchemaPiece#validator, to "inhibit" certain values to be set. (kyranet)
  • [692e485d2b] Implemented the wildcards ?, H, and the scheduling definition @annually. (bdistin)
  • [#156] Added time, duration, date and task types to ArgResolver. (bdistin)
  • [#156] Added Duration, a class helper to resolve human duration input into milliseconds. (bdistin)
  • [#156] Added new key to ClientStorage: schedules. (kyranet)
  • [#156] Added CreatingTasks tutorial. (kyranet)
  • [#156] Added arrayPosition property to ConfigurationUpdateOptions to update objects in the middle of an array without removing/pushing. (kyranet)
  • [#156] Added taskError event. (bdistin)
  • [#156] Added Schedule, ScheduledTask and Cron alongside a new piece structure named Task and its store, TaskStore. (bdistin & kyranet)
  • [#152] Added the possibility to configure each default gateway separately. (kyranet)
  • [#146] Added a Creating Custom Arguments tutorial. (kyranet)
  • [14d2b19a9f] Added the possibility to create custom Configuration classes by extending Gateway#Configuration. (bdistin)
  • [5130f9db6d] Added Timestamp#displayUTC. (bdistin)
  • [9f1ee51aa3] Added Timestamp.utc. (bdistin)
  • [266d64b2ba] Added blacklist command. (bdistin)
  • [#150] Added util.deepClone to clone objects. (kyranet)
  • [#142] Added several typing-related methods to get deeper (JSDoc) types. (kyranet)
  • [#138] Added util.getTypeName to get the input's type. (kyranet)
  • [#136] Added flag arguments. (bdistin)
  • [#136] Added the options CommandOptions.promptTime and CommandOptions.promptLimit. (bdistin)
  • [#136] Added KlasaMessage#prompt
  • [#136] Added CommandPrompt, CommandUsage and TextPrompt classes (fixes #87). (bdistin)
  • [#136] Added the event finalizerError. (bdistin)
  • [#129] Added Util#makeObject to make objects given a path and a value. (kyranet)
  • [#129] Added Configuration#update, much easier to use than Configuration#updateOne, Configuration#updateArray, and alias of Configuration#updateMany when a json object is providen. (kyranet)
  • [#130] Added a new option in KlasaClientOptions to allow developers to set their own defaults for each kind of piece. (bdistin)
  • [#128] Added the monitorError event. (kyranet)
  • [#125] Added the default gateways to GatewayDriver defaulted by null to reflect in the documentation. (kyranet)
  • [#125] Added Schema (the previous got renamed to SchemaFolder), reducing duplicated code and bringing more code consistency. (kyranet)
  • [#125] Added a private tool that ensures the content and options in Message#sendMessage and aliases are processed correctly while also reducing duplicated code. (kyranet w/ bdistin)
  • [#125] Added a default value for the prefix when not given: !. (kyranet)
  • [#125] Added ProviderStore.default, returning the default provider (by default json, but configurable via KlasaClientOptions.provider.engine). (kyranet)
  • [#121] Added constants and Util.mergeDefault (bdistin) added Util.isClass (kyranet)
  • [#121] Added GatewayStorage, containing SettingsGateway's core (kyranet)
  • [#121] Added a new gateway called clientStorage, for client-wide configs (kyranet)
  • [#118] Now, if you edit the prefix value in KlasaClientOptions, the changes will be reflected in the schema. (kyranet)
  • [#116] Added the Timestamp class to replace moment.js. (kyranet)
  • [#115] Added the events schemaKeyAdd, schemaKeyRemove and schemaKeyUpdate. (kyranet)
  • [#115] Added isObject method to Util. (kyranet)
  • [#115] Added SchemaPiece#modify, allowing users to modify a SP's options. (kyranet)
  • [#113] Added disableNaturalPrefix. (kyranet)
  • [550ac275c8 (#109) Added the keys COMMAND_EVAL_DESCRIPTION, COMMAND_UNLOAD_DESCRIPTION, COMMAND_TRANSFER_DESCRIPTION, COMMAND_RELOAD_DESCRIPTION, COMMAND_REBOOT_DESCRIPTION, COMMAND_PING_DESCRIPTION, COMMAND_INVITE_DESCRIPTION, COMMAND_INFO_DESCRIPTION, COMMAND_ENABLE_DESCRIPTION, COMMAND_DISABLE_DESCRIPTION, COMMAND_CONF_SERVER_DESCRIPTION, COMMAND_CONF_SERVER, COMMAND_CONF_USER_DESCRIPTION, COMMAND_CONF_USER, COMMAND_STATS and COMMAND_STATS_DESCRIPTION to the en-US language. (Pandraghon)
  • [6f16689144 (#104) Added regexPrefix as an option for KlasaClientOptions. (MrJacz)
  • [2915d31b92] (#43) A changelog... (kyranet)
  • [2915d31b92] (#43) Added KlasaMessage, KlasaGuild, and KlasaUser, extending DiscordJS.Message, DiscordJS.Guild and DiscordJS.User, respectively. Many of the getters have turned properties for performance. (kyranet)
  • [2915d31b92] (#43) Added User#configs, which has an empty schema by default. The developer can take advantage of this, expand the schema, and feature a full featured user configs. (kyranet)
  • [2915d31b92] (#43) Added configUpdateEntry, configDeleteEntry and configCreateEntry events. (kyranet)
  • [2915d31b92] (#43) Configuration class, which all the new update methods from SettingsGateway, featuring full OOP and much easier to use and remember. (kyranet)
  • [2915d31b92] (#43) Schema and SchemaPiece classes, with helper methods that allow the gateway parse and retrieve data much faster, as well as following the OOP paradigm when it comes to modifying the schema and much friendlier to use. (kyranet)
  • [2915d31b92] (#43) More options to GatewayDriver#add, allowing you to set different providers in different gateway instances. (kyranet)
  • [2915d31b92] (#43) Added Folder type (nested objects, yay!). (kyranet)
  • [2915d31b92] (#43) Added SchemaPiece.configurable to avoid certain keys to be processed by the default conf command. (kyranet)
  • [2915d31b92] (#43) Added any type to SettingsResolver. Assigning this type to a SchemaPiece will make it set the property configureable to false, it accepts anything you pass to it, even objects. So you must use dedicated commands to configure these keys instead. (For example, you can store an array of objects with a certain number of properties, something not possible in the previous versions as the conf command cannot parse objects correctly). (kyranet)
  • [2915d31b92] (#43) [PERF] Much better, accurate and faster SchemaPiece validation and parsing. (kyranet)
  • [2915d31b92] (#43) [PERF] Added Schema.toJSON();, which converts the classes into a plain JSON object. This method is 27^level times faster than iterating over it with Object.keys. (kyranet)
  • [2915d31b92] (#43) Added a Collection provider. (kyranet)
  • [2915d31b92] (#43) Added Provider.cache. (kyranet)
  • [2915d31b92] (#43) Added GatewaySQL (extends Gateway, overriding the methods for better SQL parsing). (kyranet)
  • [2915d31b92] (#43) Added Gateway#insertEntry, which inserts a new Configuration entry to the cache and sync if possible. (kyranet)

Changed

  • [#392] Changed default prefix from '!' to ''. (kyranet)
  • [#383] [BREAKING] Changed SchemaFolder to extend Schema, which extends Map. All keys are now stored inside the map as opposed to being properties. (Unseenfaith)
  • [#383] [BREAKING] Changed Schema#add and Schema#remove to be synchronous. They must be called before ready. (Unseenfaith)
  • [#383] [BREAKING] Changed GatewayDriver#register's arguments to move schema's argument to GatewayDriverRegisterOptions. (kyranet)
  • [#383] [BREAKING] Changed schemas' root to be a Schema instance instead of a SchemaFolder instance. (Unseenfaith)
  • [#383] [BREAKING] Changed GatewayStorage's schema argument to take a Schema instance. (kyranet)
  • [#383] [BREAKING] Renamed events configCreateEntry, configDeleteEntry, and configUpdateEntry to settingsCreateEntry, settingsDeleteEntry, and settingsUpdateEntry respectively. (kyranet)
  • [#383] [SEMVER-MAJOR] SchemaFolder#add will not longer throw on conflict, but edit the SchemaPiece or update the SchemaFolder. (kyranet)
  • [#383] SchemaPiece#edit is now able to change any of the SchemaPiece's metadata. (kyranet)
  • [#383] Schema#get (which SchemaFolder inherits) now supports paths or arrays. (kyranet)
  • [#374] [BREAKING] Renamed Configuration to Settings. (kyranet)
  • [#374] Renamed INHIBITOR_REQUIRED_CONFIGS to INHIBITOR_REQUIRED_SETTINGS. (kyranet)
  • [#374] [BREAKING] Renamed KlasaMessage#guildConfigs to KlasaMessage#guildSettings, KlasaGuild#configs to KlasaGuild#settings, KlasaClientOptions.preserveConfigs to KlasaClientOptions.preserveSettings, and Command#requiredConfigs to Command#requiredSettings. (kyranet)
  • [#333] Removed cross-shard individual configuration synchronization in favor of patching the current patched Configuration instance. (kyranet)
  • [#333] Changed configUpdateEntry event to take only two parameters (patched Configuration instance, and the updated keys as ConfigurationUpdateResultEntry[]). (kyranet)
  • [#332] Refactored Configuration#reset. (kyranet)
  • [#330] Changed Gateway#sync to take an array of ids to sync as opposed to full download. (KingDGrizzle)
  • [#320] [BREAKING] Changed the schema file names. (KingDGrizzle)
  • [#306] Changed SQLProvider#createTable. SettingsGateway will not provide columns, for consistency with JSON providers. Instead, retrieve the columns from Gateway. (kyranet)
  • [#306] Changed SQLProvider#addColumn to have the arguments table: string, columns: SchemaFolder | SchemaPiece. (kyranet)
  • [#306] Made Gateway's constructor public in typings. (kyranet)
  • [#306] Made Configuration#_existsInDB nullable to denote Configuration instances that have never sync. (kyranet)
  • [#306] Tweaked initial synchronization for performance. (kyranet)
  • [#299] Escape strings from initClean. (KingDGrizzle)
  • [#272] Changed Monitor#shouldRun to accept a single argument. (bdistin)
  • [#256] [BREAKING] Modified all SettingResolvers to resolve to primitives (string, number, boolean...) or storable data. (kyranet)
  • [#256] Added value array overload to Configuration#update. (kyranet)
  • [#256] Changed SchemaFolder#getSQL to SchemaFolder#sqlSchema. (kyranet)
  • [#256] Changed SchemaPiece#sql's type from [string, string] to string. (kyranet)
  • [#256] Changed ScheduledTask's default value for the property data from null to {}, allowing object spread to attach the id of the executed task in Task#run. (kyranet)
  • [#256] Improved performance in Configuration#update. (kyranet)
  • [#256] Refactored Gateway#getPath to take piece: null as an option for mixed output. (kyranet)
  • [#256] Refactored GatewayStorage to not depend on being inherited. (kyranet)
  • [#256] Refactored Util.isClass and Util.isObject for a ~5 times performance boost. (kyranet)
  • [#256] Refactored Util.makeObject to take an object as third parameter, allowing SettingsGateway's internals to append properties without Object.assign. (kyranet)
  • [#256] Refactored several utils for memory performance. (kyranet)
  • [#256] Refactored typings to have less code duplication. (kyranet)
  • [#256] Unified [p]conf list and [p]conf get (and [p]userconf) subcommands to [p]conf show. (kyranet)
  • [#260] Refactored Language#get. (kyranet)
  • [#227] Rewritten the Colors class to be constructable following a design similar to Timestamp's. (bdistin)
  • [#213] Converted the not-set empty object instance to a Symbol for checking empty entries in PermissionLevels. (bdistin)
  • [#210] [BREAKING] Changed the level adding to a more consistent format with the rest of the library: replaced addLevel to add and moved the break boolean to PermissionLevelOptions.break, which is taken as third parameter. (bdistin)
  • [#196] [BREAKING] Moved the array for the argument appliesTo in extendables to be an option in ExtendableOptions. (bdistin)
  • [#179] Refactored Configuration's internals for maximum consistency and reduced code duplication. (kyranet)
  • [#179] Changed the type for GatewayDriver#types from string[] to Set<string>. (kyranet)
  • [#179] Renamed SchemaPiece#modify() to SchemaPiece#edit(). (kyranet)
  • [#179] Renamed Gateway#getKeys() and Gateway#getValues() to Gateway#keys(true) and Gateway#values(true) respectively, which return iterators. (kyranet)
  • [#184] Piece#file is now consistent between all pieces and it's type of string[]. (bdistin)
  • [#184] [MEM-PERF] Tweaked Command to have category and subCategory properties as getters. (bdistin)
  • [#184] Tweaked all stores to be able to load files in deep folders and abstracted it in Store for code reduction. (bdistin)
  • [#182] [BREAKING] Refactored all pieces and stores to extend Piece and Store respectively. (bdistin)
  • [#176] Marked several constructors as private (singleton, abstract or discouraged). (kyranet)
  • [#162] Modified the built-in conf command to use dependant arguments-like arguments using custom arguments and messages. (bdistin)
  • [#162] [BREAKING] Refactored ArgResolver. Now they take arg, possible and msg as parameters instead of arg, currentUsage, possible, repeat and msg. Repeating handling is now done in the backends. (bdistin)
  • [#159] Made 'id' a PRIMARY KEY in the SQL schema generator. (kyranet)
  • [#158] Refactored typings and JSDoc types. (kyranet)
  • [#156] Tweaked Configuration#update to accept the overload (key: string, value: any, options:ConfigurationUpdateOptions) as opposed of passing undefined in the guild field between value and options. (kyranet)
  • [#155] Complexity reductions for SchemaFolder#addKey and Colors. (bdistin)
  • [338ebb0eb2] Prefixed Timestamp#_resolveDate. (bdistin)
  • [f2cc604ead] Arguments are now trimmed. (bdistin)
  • [4a70f1c271] Added spaces to blacklist output. (bdistin)
  • [#152] [BREAKING] Changed KlasaClientOptions.provider.engine to KlasaClientOptions.providers.default. (kyranet)
  • [#143] TS' typings cleanup (kyranet)
  • [#141] Added a shard prefix into the KlasaConsole class to recognize the shard the message got sent. (bdistin)
  • [#138] Upgraded the built-in eval command, inspired in tech6hutch's The Duke Of Evals. (kyranet)
  • [#136] Changed command parsing internals, KlasaMessage#args and KlasaMessage#params are now readonly and getters from KlasaMessage#prompter. (bdistin)
  • [#136] Changed KlasaClientOptions.promptTime to KlasaClientOptions.customPromptDefaults, changing type from number to KlasaCustomPromptDefaults aswell. (bdistin)
  • [#129] [OPTIMIZATION] Like new entries only store the id, Configuration#update will upload only the modified keys rather than all of them when using a json database. (kyranet)
  • [#130] Updated the documentation and some outdated typings. (kyranet)
  • [#125] Moved the gateway resolvers from GatewayDriver (as getters) to constants.GATEWAY_RESOLVERS. (kyranet)
  • [#125] Schema#manager and SchemaPiece#manager got renamed to Schema#gateway and SchemaPiece#gateway. (kyranet)
  • [#125] Updated typings.
  • [#125] Refactored Timestamp to be able to show a formatted date with an arbitrary pattern. (kyranet)
  • [#125] Refactored SchemaFolder to extend the brand new Schema class. (kyranet)
  • [#125] [BREAKING] Changed KlasaClientConfigs to KlasaClientOptions (kyranet)
  • [#121] [BREAKING] Merged this.client.config to this.client.options (bdistin)
  • [#121] Refactored Gateway to extend GatewayStorage (kyranet)
  • [550ac275c8] (#109) Translated the description for all commands. (Pandraghon)
  • [550ac275c8] (#109) Nested folders in the configuration will show with a format of Folder1/Folder2/Folder3/... instead of Folder1.folder2.folder3.... (bdistin and Pandraghon)
  • [63af836277] (#80) If the command's name contains uppercase characters, they will get lowercased. (kyranet)
  • [2915d31b92] (#43) [BREAKING] Renamed Guild#settings and Message#guildSettings to Guild#configs and Message#guildConfigs, respectively. (kyranet)
  • [2915d31b92] (#43) [BREAKING] Renamed client.settings to client.gateways. (kyranet)
  • [2915d31b92] (#43) Renamed the inhibitor requiredSettings to requiredConfigs. (kyranet)
  • [2915d31b92] (#43) Renamed the key Command#requiredSettings to Command#requiredConfigs. (kyranet)
  • [2915d31b92] (#43) Added a new option for the guildDelete event: KlasaClientOptions.preserveConfigs, which, if true, it will not delete the guild configs when the bot leaves a guild. (kyranet)
  • [2915d31b92] (#43) Renamed SettingsGateway to Gateway. (kyranet)
  • [2915d31b92] (#43) Renamed SettingsCache to GatewayDriver. (kyranet)
  • [2915d31b92] (#43) [BREAKING] GatewayDriver#validate does not longer have an instance of SettingResolver as first parameter, but a bound this referring to the GatewayDriver instance. (With access to KlasaClient and SettingResolver). (kyranet)
  • [2915d31b92] (#43) [BREAKING] Gateway#get -> Gateway#getEntry. (kyranet)
  • [2915d31b92] (#43) [BREAKING] Gateway#update has been completely removed. Use Configuration#updateOne, Configuration#updateArray or Configuration#updateMany instead. (kyranet)
  • [2915d31b92] (#43) [FEATURE] Configuration#updateOne, Configuration#updateMany, Configuration#reset and Configuration#updateArray can now filter unconfigurable keys if the parameter avoidUnconfigurable is passed and set to true. (kyranet)
  • [2915d31b92] (#43) Gateway#schema is not longer a plain object, but a Schema instance. (kyranet)
  • [2915d31b92] (#43) [PERF] Removed tuplifier in favor of cached tuples. (kyranet)
  • [2915d31b92] (#43) [PERF] Improved updateArray remove method. (~1.85 times faster). (kyranet)
  • [2915d31b92] (#43) [PERF] The cache now updates from the cache instead of re-syncing with the DB. (When using JSON and Collection, Samsung SSD at 600 MB/s read, performance is improved by 97k ops/sec to 53M ops/sec, 454 times faster). (kyranet)
  • [2915d31b92] (#43) Configuration#updateOne now accepts array type. It'll call the private method that does the parsing for updateArray. (kyranet)
  • [2915d31b92] (#43) [PERF] SQL parsing is now shared with NoSQL, however, SettingsGateway's parsing procedures do not return JSON objects, instead, it returns data compatible for both environments. (kyranet)
  • [2915d31b92] (#43) [PERF] When using SettingResolver, SettingsGateway will not longer do type.toLowerCase(), but they're lowercased at startup. (kyranet)
  • [2915d31b92] (#43) [BREAKING] Gateway do not longer extend SchemaManager and CacheManager, but it's a class by itself. (kyranet)
  • [2915d31b92] (#43) Made the types that SettingsGateway accepts for the key types dynamic (based on SettingResolver's prototype) and public through client.gateways.types;. (kyranet)

Removed

  • [#401] Removed Settings#waitSync in favor of Settings#sync(?false);. (kyranet)
  • [#398] Removed the Settings#update(keys: string[], values: any[]) overload. (kyranet)
  • [#391] Removed Util.getIdentifier(). (kyranet)
  • [#391] Removed Gateways' second caching layer. (kyranet)
  • [#383] [BREAKING] Removed bwd/*.schema.json files. (Unseenfaith)
  • [#383] [BREAKING] Removed Resolver and SettingsResolver classes. (Unseenfaith)
  • [#383] Removed GatewayDriver#resolver and GatewayStorage#resolver. (kyranet)
  • [#383] Removed GatewayStorage#baseDirectory and GatewayStorage#filePath. (kyranet)
  • [#383] Removed guildsSchema, usersSchema, and clientStorageSchema from GatewayDriver. (Unseenfaith)
  • [#383] Removed abstracted methods Provider#removeValue and SQLProvider#removeValue. (kyranet)
  • [#383] Removed schemaKeyAdd, schemaKeyRemove, and schemaKeyUpdate events. (kyranet)
  • [#383] Removed types GuildSettings, SchemaObject, and SchemaDefaults from typings. (kyranet)
  • [#343] Removed Configuration._merge, Configuration._clone, Util.applyToClass, and Util.arraysEqual. (kyranet)
  • [#331] Removed Configuration#_syncStatus. (kyranet)
  • [#323] Removed every check for selfbot users. (KingDGrizzle)
  • [#306] Removed GatewayGuildResolvable type from typings. (kyranet)
  • [#306] Removed JSONProvider#set and JSONProvider#insert. (kyranet)
  • [#306] Removed Provider#sql and SQLProvider#sql. (kyranet)
  • [#306] Removed SchemaPiece#_generateSQLDatatype and SchemaPiece._parseSQLValue. (kyranet)
  • [#306] Removed SchemaPiece#sql. (kyranet)
  • [#306] Removed SchemaFolderAddOptions.sql. (kyranet)
  • [#306] Removed GatewayStorage#sqlSchema, SchemaFolder#sqlSchema, and SchemaPiece#sqlSchema. (kyranet)
  • [#306] Removed Role and GuildMember overloads for GuildResolvable. (kyranet)
  • [#284] Removed GatewayStorage#initTable and GatewayStorage#initSchema, they're now unified in GatewayStorage#init. (kyranet)
  • [#284] Removed force options in SettingsGateway operations. (kyranet)
  • [#284] Removed ProviderOptions.cache and ProviderOptions.sql options. (kyranet)
  • [#272] Removed ArgResolver class. (bdistin)
  • [#256] Removed Gateway#getEntry (mixed getEntry and insertEntry into Gateway#get), Gateway#createEntry, and Gateway#insertEntry. (kyranet)
  • [#256] Removed Gateway#options and Gateway#defaultSchema. (kyranet)
  • [#256] Removed Provider's nice option. As it was only used by the JSON provider. Should use a better system instead. (kyranet)
  • [#210] Removed PermissionLevels#requiredLevels as it's unnecessary do to inherited size parameter. (bdistin)
  • [#179] [BREAKING] Removed SchemaFolder#addKey and SchemaFolder#addFolder in favor to a more consistent Schema#add. (kyranet)
  • [#179] [BREAKING] Removed Configuration#resetConfiguration(). (kyranet)
  • [#179] [PERF-MEM] Removed Configuration#type. (kyranet)
  • [#179] [BREAKING] Removed SchemaFolder#removeKey and SchemaFolder#removeFolder in favor to a more consistent Schema#remove. (kyranet)
  • [#179] Removed the abstract method resolveString() from SchemaFolder and SchemaPiece. (kyranet)
  • [#179] Removed SchemaFolder#getList and replaced it to Configuration#list. (kyranet)
  • [#179] Removed the ConfigUpdateEntryMany typedef in favor of a more constant type. (kyranet)
  • [#179] Removed the resolver functions from constants. (kyranet)
  • [#179] Removed SchemaFolder#keys (Map<string>) to reduce RAM usage and key caching duplication. (kyranet)
  • [#179] Removed SettingsGateway function validators. (kyranet)
  • [#179] Removed Collection cache provider (will be moved to klasa-pieces). (kyranet)
  • [#159] Removed deprecated property GatewayOptions.cache to be locked to 'collection'. (kyranet)
  • [#158] Configuration#updateMany is now under Configuration#update, in favor of a much less confusing naming. (kyranet)
  • [5b0c468362] Removed KlasaClient.sharded as Client.shard is now fixed. (bdistin)
  • [#136] Removed util.newError. (bdistin)
  • [#129] [BREAKING] Removed the methods Configuration#updateOne, Configuration#updateArray. They're replaced by Configuration#update. (kyranet)
  • [#130] Removed KlasaClientOptions.quotedStringSupport in favor of the new per-piece defaults. (bdistin)
  • [#121] Removed GatewaySQL. (kyranet)
  • [#116] Removed moment.js from the dependency list. (kyranet)
  • [2915d31b92] (#43) Removed a bunch of extendables. (kyranet)
  • [2915d31b92] (#43) [PERF] Removed CommandMessage proxy in favor of the brand new KlasaMessage. As in Node.js 9.2.0, Proxy creation performs 37M ops/sec, and property access 1.7M ops/sec (all pieces after Inhibitors use that proxy). As it's now removed, property access should perform around 520M ops/sec (~305 times faster). (kyranet)
  • [2915d31b92] (#43) Removed the messageDelete event. (kyranet)
  • [2915d31b92] (#43) Removed the messageDeleteBulk event. (kyranet)
  • [2915d31b92] (#43) Removed the guildCreate event. (kyranet)
  • [2915d31b92] (#43) Removed the SQL class. Replaced by GatewaySQL and Schema/Piece. (kyranet)
  • [2915d31b92] (#43) Removed the CacheManager class. Replaced by CacheProviders. (kyranet)
  • [2915d31b92] (#43) Removed Gateway#add. Replaced to Schema#addKey. (kyranet)
  • [2915d31b92] (#43) Removed Gateway#remove. Replaced to Schema#removeKey. (kyranet)
  • [2915d31b92] (#43) Removed SQLProvider#serialize, SQLProvider#sanitize, SQLProvider#CONSTANTS. (kyranet)

Fixed

  • [#383] Fixed abstract SQLProvider#qb property being missing in typings. (kyranet)
  • [#362] Fixed object mutation in GatewayDriver#toJSON(). (kyranet)
  • [#355] Fixed Schedule not deleting entries that do not exist in ClientStorage but are still cached in Schedule#tasks. (kyranet)
  • [#284] Fixed a bug where SG's cache would download twice when GatewayDriverRegisterOptions.download is true. (kyranet)
  • [#284] Fixed Gateway#parseEntry not being a function. (kyranet)
  • [#256] Fixed Util.deepClone trying to iterate over WeakMaps and WeakSets. (kyranet)
  • [#256] Fixed a critical sync issue where Configuration#_syncStatus resolved too early. (kyranet)
  • [#256] Fixed many typings bugs. (kyranet)
  • [#256] Fixed multiple bugs in GatewayDriver#register and improved performance. (kyranet)
  • [#207] Fixed Configuration#_parseSingle not returning the modified array but the updated element. (kyranet)
  • [#204] Fixed Util.getIdentifier nullifying numbers and booleans. (kyranet)
  • [#203] Fixed SettingResolver#integer and SettingResolver#float not accepting 0 as input. (kyranet)
  • [#179] Fixed Util.deepClone not cloning full objects. (kyranet)
  • [#179] Fixed SchemaFolder#_shardSyncSchema not passing the action as string. (kyranet)
  • [#179] Fixed null values in updateMany's pattern not updating nested keys plus individual queries. (kyranet)
  • [#179] Fixed update/reset methods in Configuration not emitting configEntryCreate when the entry does not exist. (kyranet)
  • [#179] Fixed the updateMany pattern in Configuration not accepting a guild. (kyranet)
  • [#179] Fixed the configUpdateEntry event (used to sync configuration instances across shards) running in non-sharded bots, now it will be disabled if the bot is not sharded. (kyranet)
  • [#179] Fixed Configuration._patch not patching after the second nested folder. (kyranet)
  • [#179] Fixed SettingResolver's return types. (kyranet)
  • [#179] Fixed Gateway syncing keys even when it's unused. (kyranet)
  • [#184] Fixed classes and options missing methods and properties in typings. (kyranet)
  • [#184] Fixed Provider not having abstract methods in typings. (kyranet)
  • [#184] Fixed typings using Store without generic parameters, causing the TypeScript compiler to fail. (kyranet)
  • [#182] Reduced the amount of data stored per-piece, resulting on a RAM usage decrease. (bdistin)
  • [#182] Fixed MessageOptions being not correctly applied to the send aliases. (bdistin)
  • [#176] Fixed internal parser ignoring 0 as min and/or max due to falsy value check. (kyranet)
  • [#170] Fixed guild resolvables not working correctly. (kyranet)
  • [#165] Updated url for peer dependency discord.js and fixed all JSDocs. (kyranet)
  • [#159] Fixed Timestamp's 'MM' token not padding with zeroes in the start. (kyranet)
  • [#156] Fixed a bug in Configuration not cloning objects correctly. (kyranet)
  • [35c42296fe] Fixed GatewayStorage getting the wrong value. (bdistin)
  • [ab1f7c9ecf] Fixed a bug where GatewayDriver wasn't checking if the provider was a CacheProvider correctly. (bdistin)
  • [d7b0eaaffc] Fixed KlasaClientOptions.providers. (bdistin)
  • [#153] Fixed userBlacklist not ignoring the owner. (QuantumlyTangled)
  • [39380f29d4] Fixed mergeDefault not cloning arrays. (bdistin)
  • [08e5314565] Fixed duplication in Timestamp. (bdistin)
  • [9f1ee51aa3] Fixed guildBlacklist being unable to add guilds where the bot is not in. (bdistin)
  • [649d088c06] Fixed multiple non repeating in Usage. (bdistin)
  • [d9459c78c7] Fixed the stats command not initializing the variables correctly. (bdistin)
  • [#145] Fixed ClientStorage configs not updating across shards, and added a missing check in some broadcastEvals. (kyranet)
  • [#150] Fixed a wrong type in typings. (kyranet)
  • [#150] Fixed a bug where some objects would be partially cloned when adding new keys or defaulting. (kyranet)
  • [#142] Fixed a critical bug in nested objects when using the JSON provider. Note: Object.assign doesn't merge nested objects. (kyranet)
  • [#141] Fixed KlasaConsoleConfigs not defaulting correctly. (bdistin)
  • [#141] Fixed wrong sharding behaviour when using PM2 in a non-sharded bot. (bdistin)
  • [#136] Fixed prompt bug #78. (bdistin)
  • [#136] Fixed an unknown issue with sync providers. (bdistin)
  • [#136] Fixed finalizers erroring incorrectly. (bdistin)
  • [#135] Fixed SchemaFolder#addFolder not working correctly. (kyranet)
  • [#131] Fixed Configuration's updateMany not parsing arrays. (kyranet)
  • [#129] Fixed identifiers not being resolved correctly when using Configuration#update. (kyranet)
  • [#129] Fixed both config commands not removing the entries. (kyranet)
  • [#125] Fixed many typos in the documentation. (kyranet)
  • [#125] Fixed MessageOptions not being correctly handled with StringResolvable, resulting on code like msg.send({ embed }); to fail. (kyranet)
  • [#125] Fixed a serious security issue in Configuration#get. (kyranet)
  • [#125] Now instances of Gateway and Schema cannot re-init twice. (kyranet)
  • [#125] Fixed many typos and many JSDocs. IntelliSense should work better now. (kyranet)
  • [#118] Fixed SchemaPiece#modify not editing the datatype from the SQL database when using a SQL provider. (kyranet)
  • [#118] Fixed NULL not being resolved correctly in _parseSQLValue (kyranet)
  • [#115] Fixed Schema's updates not reflecting in other shards. (kyranet)
  • [#115] Fixed some issues from ESLint's betrayal. (MrJacz with kyranet)
  • [#115] Improved object check for Message#sendMessage and Message#send. (kyranet)
  • [#115] Fixed typings not including the isFunction method in Util. (kyranet)
  • [#114] Fixed a typo in UnderstandingSettingsGateway.md. (Pandraghon)
  • [ede5894763] Fixed a typo in the help command. (bdistin)
  • [2915d31b92] (#43) A lot of things in Typings and marked a lot of private methods properly. (kyranet)
  • [2915d31b92] (#43) Typos in languages. (kyranet)
  • [2915d31b92] (#43) Fixed GatewayDriver#validate not working properly. (kyranet)
  • [2915d31b92] (#43) The eval command being unable to catch certain errors. (kyranet)
  • [2915d31b92] (#43) Fixed the JSON provider throwing errors. (kyranet)
  • [2915d31b92] (#43) Fixed multiple minor issues. (kyranet)
  • [2915d31b92] (#43) Store loader not showing error stack. (kyranet)
  • [2915d31b92] (#43) JSON provider loading files that are not JSON. (kyranet)