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.
- [#416] Added
KlasaClientOptions.createPiecesFoldersto 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_VALUElanguage key. (bdistin) - [#383] Added
Baseclass for schemas, extendingMap. (Unseenfaith) - [#383] Added
SchemaTypeandSchemaTypesclasses. (Unseenfaith) - [#383] Added
SchemaPieceOptions.filter. (kyranet) - [#383] Added abstract method
SQLProvider#getColumns. (kyranet) - [#379] Added
prefixCaseInsensitiveoption inKlasaClientOptions. (AdityaTD) - [#362] Added
GatewayDriverRegisterOptions.syncArgfor custom arguments forGatewayDriver#sync()'s call. (kyranet) - [#362] Added
GatewayDriver#@@iterator. (kyranet) - [#331] Added
Gateway#syncQueuefor centralized lazy load cache and memory reduction. (kyranet) - [#331] Added
Configuration#synchronizinggetter 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
QueryBuilderclass util. (kyranet) - [#284] Added
Configuration#waitSync()to wait for the sync to finish. (kyranet) - [#284] Added
SQLProvider. (kyranet) - [#284] Added
SchemaPiece#sqlSchemafor consistency withSchemaFolder#sqlSchema. (kyranet) - [#272] Added
disabledCorePiecesoption inKlasaClientOptions. (bdistin) - [#272] Added
ArgumentandArgumentStoreclasses for argument resolving inUsage. (bdistin) - [#256] Added
Util.objectToTuplesfor object overload -> array overload inConfiguration#update. (kyranet) - [#260] Added support for functions with no arguments in
Languageto be called with a single argument inLanguage#get. (kyranet) - [#213] Added
PermissionLevels#remove(). (bdistin) - [#210] Added
PermissionLevelsOptions.fetchto autofetch uncached members. (bdistin) - [#196] Added property of
ignoreEditsin monitors for whether a monitor should run in edited messages. (bdistin) - [#196] Added property of
catchUpinScheduledTask, 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,emitterandonceto all events. (bdistin) - [#196] Added
onceReadypiece event. (bdistin) - [#179] Added the key
COMMAND_CONF_NOCHANGEto 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.iteratorto Schedule. (kyranet) - [#179] Added
Gateway#toJSON()andGatewayDriver#toJSON(). (kyranet) - [#179] Added
GatewayDriver#registerto be able to register new gateways without events (directly in yourapp.js). (kyranet) - [#179] Added
util.getIdentifieras a replacement for the function validator. (kyranet) - [#179] Added
SchemaFolder#keys(),SchemaFolder#values(),SchemaFolder#entries()andSchemaFolder#[@@iterator](). Identical to Map's respective methods. (kyranet) - [#201] Improve
util.toTitleCase. (KingDGrizzle) - [#186] Added a load command. (kyranet)
- [#176] Added
categorychanneltype toArgResolver. (kyranet) - [#166] Added support for TypeScript's
export defaultin 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#setValidatorandSchemaPiece#validator, to "inhibit" certain values to be set. (kyranet) - [
692e485d2b] Implemented the wildcards?,H, and the scheduling definition@annually. (bdistin) - [#156] Added
time,duration,dateandtasktypes toArgResolver. (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
CreatingTaskstutorial. (kyranet) - [#156] Added
arrayPositionproperty toConfigurationUpdateOptionsto update objects in the middle of an array without removing/pushing. (kyranet) - [#156] Added
taskErrorevent. (bdistin) - [#156] Added
Schedule,ScheduledTaskandCronalongside a new piece structure namedTaskand 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 extendingGateway#Configuration. (bdistin) - [
5130f9db6d] AddedTimestamp#displayUTC. (bdistin) - [
9f1ee51aa3] AddedTimestamp.utc. (bdistin) - [
266d64b2ba] Added blacklist command. (bdistin) - [#150] Added
util.deepCloneto clone objects. (kyranet) - [#142] Added several typing-related methods to get deeper (JSDoc) types. (kyranet)
- [#138] Added
util.getTypeNameto get the input's type. (kyranet) - [#136] Added flag arguments. (bdistin)
- [#136] Added the options
CommandOptions.promptTimeandCommandOptions.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#makeObjectto make objects given a path and a value. (kyranet) - [#129] Added
Configuration#update, much easier to use thanConfiguration#updateOne,Configuration#updateArray, and alias ofConfiguration#updateManywhen a json object is providen. (kyranet) - [#130] Added a new option in
KlasaClientOptionsto allow developers to set their own defaults for each kind of piece. (bdistin) - [#128] Added the
monitorErrorevent. (kyranet) - [#125] Added the default gateways to
GatewayDriverdefaulted by null to reflect in the documentation. (kyranet) - [#125] Added
Schema(the previous got renamed toSchemaFolder), reducing duplicated code and bringing more code consistency. (kyranet) - [#125] Added a private tool that ensures the
contentandoptionsinMessage#sendMessageand 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 defaultjson, but configurable viaKlasaClientOptions.provider.engine). (kyranet) - [#121] Added
constantsandUtil.mergeDefault(bdistin) addedUtil.isClass(kyranet) - [#121] Added
GatewayStorage, containingSettingsGateway'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,schemaKeyRemoveandschemaKeyUpdate. (kyranet) - [#115] Added
isObjectmethod toUtil. (kyranet) - [#115] Added
SchemaPiece#modify, allowing users to modify a SP's options. (kyranet) - [#113] Added disableNaturalPrefix. (kyranet)
- [
550ac275c8(#109) Added the keysCOMMAND_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_STATSandCOMMAND_STATS_DESCRIPTIONto the en-US language. (Pandraghon) - [
6f16689144(#104) AddedregexPrefixas an option forKlasaClientOptions. (MrJacz) - [
2915d31b92] (#43) A changelog... (kyranet) - [
2915d31b92] (#43) AddedKlasaMessage,KlasaGuild, andKlasaUser, extendingDiscordJS.Message,DiscordJS.GuildandDiscordJS.User, respectively. Many of the getters have turned properties for performance. (kyranet) - [
2915d31b92] (#43) AddedUser#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) AddedconfigUpdateEntry,configDeleteEntryandconfigCreateEntryevents. (kyranet) - [
2915d31b92] (#43)Configurationclass, which all the new update methods from SettingsGateway, featuring full OOP and much easier to use and remember. (kyranet) - [
2915d31b92] (#43)SchemaandSchemaPiececlasses, 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 toGatewayDriver#add, allowing you to set different providers in different gateway instances. (kyranet) - [
2915d31b92] (#43) Added Folder type (nested objects, yay!). (kyranet) - [
2915d31b92] (#43) AddedSchemaPiece.configurableto 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] AddedSchema.toJSON();, which converts the classes into a plain JSON object. This method is 27^level times faster than iterating over it withObject.keys. (kyranet) - [
2915d31b92] (#43) Added a Collection provider. (kyranet) - [
2915d31b92] (#43) AddedProvider.cache. (kyranet) - [
2915d31b92] (#43) Added GatewaySQL (extends Gateway, overriding the methods for better SQL parsing). (kyranet) - [
2915d31b92] (#43) AddedGateway#insertEntry, which inserts a newConfigurationentry to the cache and sync if possible. (kyranet)
- [#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#addandSchema#removeto be synchronous. They must be called before ready. (Unseenfaith) - [#383] [BREAKING] Changed
GatewayDriver#register's arguments to moveschema's argument toGatewayDriverRegisterOptions. (kyranet) - [#383] [BREAKING] Changed schemas' root to be a
Schemainstance instead of aSchemaFolderinstance. (Unseenfaith) - [#383] [BREAKING] Changed
GatewayStorage's schema argument to take a Schema instance. (kyranet) - [#383] [BREAKING] Renamed events
configCreateEntry,configDeleteEntry, andconfigUpdateEntrytosettingsCreateEntry,settingsDeleteEntry, andsettingsUpdateEntryrespectively. (kyranet) - [#383] [SEMVER-MAJOR]
SchemaFolder#addwill not longer throw on conflict, but edit the SchemaPiece or update the SchemaFolder. (kyranet) - [#383]
SchemaPiece#editis now able to change any of the SchemaPiece's metadata. (kyranet) - [#383]
Schema#get(whichSchemaFolderinherits) now supports paths or arrays. (kyranet) - [#374] [BREAKING] Renamed
ConfigurationtoSettings. (kyranet) - [#374] Renamed
INHIBITOR_REQUIRED_CONFIGStoINHIBITOR_REQUIRED_SETTINGS. (kyranet) - [#374] [BREAKING] Renamed
KlasaMessage#guildConfigstoKlasaMessage#guildSettings,KlasaGuild#configstoKlasaGuild#settings,KlasaClientOptions.preserveConfigstoKlasaClientOptions.preserveSettings, andCommand#requiredConfigstoCommand#requiredSettings. (kyranet) - [#333] Removed cross-shard individual configuration synchronization in favor of patching the current patched
Configurationinstance. (kyranet) - [#333] Changed
configUpdateEntryevent to take only two parameters (patchedConfigurationinstance, and the updated keys asConfigurationUpdateResultEntry[]). (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 fromGateway. (kyranet) - [#306] Changed
SQLProvider#addColumnto have the argumentstable: string, columns: SchemaFolder | SchemaPiece. (kyranet) - [#306] Made
Gateway's constructor public in typings. (kyranet) - [#306] Made
Configuration#_existsInDBnullable 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#shouldRunto 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#getSQLtoSchemaFolder#sqlSchema. (kyranet) - [#256] Changed
SchemaPiece#sql's type from[string, string]tostring. (kyranet) - [#256] Changed ScheduledTask's default value for the property
datafromnullto{}, allowing object spread to attach the id of the executed task inTask#run. (kyranet) - [#256] Improved performance in
Configuration#update. (kyranet) - [#256] Refactored
Gateway#getPathto takepiece: nullas an option for mixed output. (kyranet) - [#256] Refactored
GatewayStorageto not depend on being inherited. (kyranet) - [#256] Refactored
Util.isClassandUtil.isObjectfor a ~5 times performance boost. (kyranet) - [#256] Refactored
Util.makeObjectto take an object as third parameter, allowing SettingsGateway's internals to append properties withoutObject.assign. (kyranet) - [#256] Refactored several utils for memory performance. (kyranet)
- [#256] Refactored typings to have less code duplication. (kyranet)
- [#256] Unified
[p]conf listand[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
addLeveltoaddand moved thebreakboolean toPermissionLevelOptions.break, which is taken as third parameter. (bdistin) - [#196] [BREAKING] Moved the array for the argument
appliesToin extendables to be an option inExtendableOptions. (bdistin) - [#179] Refactored Configuration's internals for maximum consistency and reduced code duplication. (kyranet)
- [#179] Changed the type for
GatewayDriver#typesfromstring[]toSet<string>. (kyranet) - [#179] Renamed
SchemaPiece#modify()toSchemaPiece#edit(). (kyranet) - [#179] Renamed
Gateway#getKeys()andGateway#getValues()toGateway#keys(true)andGateway#values(true)respectively, which return iterators. (kyranet) - [#184]
Piece#fileis now consistent between all pieces and it's type ofstring[]. (bdistin) - [#184] [MEM-PERF] Tweaked
Commandto 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
Storefor 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,possibleandmsgas parameters instead ofarg,currentUsage,possible,repeatandmsg. Repeating handling is now done in the backends. (bdistin) - [#159] Made
'id'aPRIMARY KEYin the SQL schema generator. (kyranet) - [#158] Refactored typings and JSDoc types. (kyranet)
- [#156] Tweaked
Configuration#updateto accept the overload(key: string, value: any, options:ConfigurationUpdateOptions)as opposed of passingundefinedin theguildfield betweenvalueandoptions. (kyranet) - [#155] Complexity reductions for
SchemaFolder#addKeyandColors. (bdistin) - [
338ebb0eb2] PrefixedTimestamp#_resolveDate. (bdistin) - [
f2cc604ead] Arguments are now trimmed. (bdistin) - [
4a70f1c271] Added spaces to blacklist output. (bdistin) - [#152] [BREAKING] Changed
KlasaClientOptions.provider.enginetoKlasaClientOptions.providers.default. (kyranet) - [#143] TS' typings cleanup (kyranet)
- [#141] Added a shard prefix into the
KlasaConsoleclass 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#argsandKlasaMessage#paramsare now readonly and getters fromKlasaMessage#prompter. (bdistin) - [#136] Changed
KlasaClientOptions.promptTimetoKlasaClientOptions.customPromptDefaults, changing type fromnumbertoKlasaCustomPromptDefaultsaswell. (bdistin) - [#129] [OPTIMIZATION] Like new entries only store the id,
Configuration#updatewill upload only the modified keys rather than all of them when using ajsondatabase. (kyranet) - [#130] Updated the documentation and some outdated typings. (kyranet)
- [#125] Moved the gateway resolvers from
GatewayDriver(as getters) toconstants.GATEWAY_RESOLVERS. (kyranet) - [#125]
Schema#managerandSchemaPiece#managergot renamed toSchema#gatewayandSchemaPiece#gateway. (kyranet) - [#125] Updated typings.
- [#125] Refactored
Timestampto be able to show a formatted date with an arbitrary pattern. (kyranet) - [#125] Refactored
SchemaFolderto extend the brand newSchemaclass. (kyranet) - [#125] [BREAKING] Changed
KlasaClientConfigstoKlasaClientOptions(kyranet) - [#121] [BREAKING] Merged
this.client.configtothis.client.options(bdistin) - [#121] Refactored
Gatewayto extendGatewayStorage(kyranet) - [
550ac275c8] (#109) Translated the description for all commands. (Pandraghon) - [
550ac275c8] (#109) Nested folders in the configuration will show with a format ofFolder1/Folder2/Folder3/...instead ofFolder1.folder2.folder3.... (bdistin and Pandraghon) - [
63af836277] (#80) If the command's name contains uppercase characters, they will get lowercased. (kyranet) - [
2915d31b92] (#43) [BREAKING] RenamedGuild#settingsandMessage#guildSettingstoGuild#configsandMessage#guildConfigs, respectively. (kyranet) - [
2915d31b92] (#43) [BREAKING] Renamedclient.settingstoclient.gateways. (kyranet) - [
2915d31b92] (#43) Renamed the inhibitorrequiredSettingstorequiredConfigs. (kyranet) - [
2915d31b92] (#43) Renamed the keyCommand#requiredSettingstoCommand#requiredConfigs. (kyranet) - [
2915d31b92] (#43) Added a new option for theguildDeleteevent: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#validatedoes not longer have an instance ofSettingResolveras first parameter, but a boundthisreferring to the GatewayDriver instance. (With access to KlasaClient and SettingResolver). (kyranet) - [
2915d31b92] (#43) [BREAKING]Gateway#get->Gateway#getEntry. (kyranet) - [
2915d31b92] (#43) [BREAKING]Gateway#updatehas been completely removed. UseConfiguration#updateOne,Configuration#updateArrayorConfiguration#updateManyinstead. (kyranet) - [
2915d31b92] (#43) [FEATURE]Configuration#updateOne,Configuration#updateMany,Configuration#resetandConfiguration#updateArraycan now filter unconfigurable keys if the parameteravoidUnconfigurableis passed and set totrue. (kyranet) - [
2915d31b92] (#43)Gateway#schemais not longer a plain object, but aSchemainstance. (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#updateOnenow 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 usingSettingResolver, SettingsGateway will not longer dotype.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 throughclient.gateways.types;. (kyranet)
- [#401] Removed
Settings#waitSyncin favor ofSettings#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.jsonfiles. (Unseenfaith) - [#383] [BREAKING] Removed
ResolverandSettingsResolverclasses. (Unseenfaith) - [#383] Removed
GatewayDriver#resolverandGatewayStorage#resolver. (kyranet) - [#383] Removed
GatewayStorage#baseDirectoryandGatewayStorage#filePath. (kyranet) - [#383] Removed
guildsSchema,usersSchema, andclientStorageSchemafromGatewayDriver. (Unseenfaith) - [#383] Removed abstracted methods
Provider#removeValueandSQLProvider#removeValue. (kyranet) - [#383] Removed
schemaKeyAdd,schemaKeyRemove, andschemaKeyUpdateevents. (kyranet) - [#383] Removed types
GuildSettings,SchemaObject, andSchemaDefaultsfrom typings. (kyranet) - [#343] Removed
Configuration._merge,Configuration._clone,Util.applyToClass, andUtil.arraysEqual. (kyranet) - [#331] Removed
Configuration#_syncStatus. (kyranet) - [#323] Removed every check for selfbot users. (KingDGrizzle)
- [#306] Removed
GatewayGuildResolvabletype from typings. (kyranet) - [#306] Removed
JSONProvider#setandJSONProvider#insert. (kyranet) - [#306] Removed
Provider#sqlandSQLProvider#sql. (kyranet) - [#306] Removed
SchemaPiece#_generateSQLDatatypeandSchemaPiece._parseSQLValue. (kyranet) - [#306] Removed
SchemaPiece#sql. (kyranet) - [#306] Removed
SchemaFolderAddOptions.sql. (kyranet) - [#306] Removed
GatewayStorage#sqlSchema,SchemaFolder#sqlSchema, andSchemaPiece#sqlSchema. (kyranet) - [#306] Removed
RoleandGuildMemberoverloads forGuildResolvable. (kyranet) - [#284] Removed
GatewayStorage#initTableandGatewayStorage#initSchema, they're now unified inGatewayStorage#init. (kyranet) - [#284] Removed
forceoptions in SettingsGateway operations. (kyranet) - [#284] Removed
ProviderOptions.cacheandProviderOptions.sqloptions. (kyranet) - [#272] Removed
ArgResolverclass. (bdistin) - [#256] Removed
Gateway#getEntry(mixed getEntry and insertEntry intoGateway#get),Gateway#createEntry, andGateway#insertEntry. (kyranet) - [#256] Removed
Gateway#optionsandGateway#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#addKeyandSchemaFolder#addFolderin favor to a more consistentSchema#add. (kyranet) - [#179] [BREAKING] Removed
Configuration#resetConfiguration(). (kyranet) - [#179] [PERF-MEM] Removed
Configuration#type. (kyranet) - [#179] [BREAKING] Removed
SchemaFolder#removeKeyandSchemaFolder#removeFolderin favor to a more consistentSchema#remove. (kyranet) - [#179] Removed the abstract method
resolveString()from SchemaFolder and SchemaPiece. (kyranet) - [#179] Removed
SchemaFolder#getListand replaced it toConfiguration#list. (kyranet) - [#179] Removed the
ConfigUpdateEntryManytypedef 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.cacheto be locked to'collection'. (kyranet) - [#158]
Configuration#updateManyis now underConfiguration#update, in favor of a much less confusing naming. (kyranet) - [
5b0c468362] RemovedKlasaClient.shardedasClient.shardis now fixed. (bdistin) - [#136] Removed
util.newError. (bdistin) - [#129] [BREAKING] Removed the methods
Configuration#updateOne,Configuration#updateArray. They're replaced byConfiguration#update. (kyranet) - [#130] Removed
KlasaClientOptions.quotedStringSupportin favor of the new per-piece defaults. (bdistin) - [#121] Removed
GatewaySQL. (kyranet) - [#116] Removed
moment.jsfrom the dependency list. (kyranet) - [
2915d31b92] (#43) Removed a bunch of extendables. (kyranet) - [
2915d31b92] (#43) [PERF] RemovedCommandMessageproxy in favor of the brand newKlasaMessage. 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 themessageDeleteevent. (kyranet) - [
2915d31b92] (#43) Removed themessageDeleteBulkevent. (kyranet) - [
2915d31b92] (#43) Removed theguildCreateevent. (kyranet) - [
2915d31b92] (#43) Removed theSQLclass. Replaced by GatewaySQL and Schema/Piece. (kyranet) - [
2915d31b92] (#43) Removed theCacheManagerclass. Replaced by CacheProviders. (kyranet) - [
2915d31b92] (#43) RemovedGateway#add. Replaced toSchema#addKey. (kyranet) - [
2915d31b92] (#43) RemovedGateway#remove. Replaced toSchema#removeKey. (kyranet) - [
2915d31b92] (#43) RemovedSQLProvider#serialize,SQLProvider#sanitize,SQLProvider#CONSTANTS. (kyranet)
- [#383] Fixed abstract
SQLProvider#qbproperty 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.downloadis true. (kyranet) - [#284] Fixed
Gateway#parseEntrynot being a function. (kyranet) - [#256] Fixed
Util.deepClonetrying to iterate overWeakMaps andWeakSets. (kyranet) - [#256] Fixed a critical sync issue where
Configuration#_syncStatusresolved too early. (kyranet) - [#256] Fixed many typings bugs. (kyranet)
- [#256] Fixed multiple bugs in
GatewayDriver#registerand improved performance. (kyranet) - [#207] Fixed
Configuration#_parseSinglenot returning the modified array but the updated element. (kyranet) - [#204] Fixed
Util.getIdentifiernullifying numbers and booleans. (kyranet) - [#203] Fixed
SettingResolver#integerandSettingResolver#floatnot accepting0as input. (kyranet) - [#179] Fixed
Util.deepClonenot cloning full objects. (kyranet) - [#179] Fixed
SchemaFolder#_shardSyncSchemanot passing the action as string. (kyranet) - [#179] Fixed
nullvalues in updateMany's pattern not updating nested keys plus individual queries. (kyranet) - [#179] Fixed update/reset methods in Configuration not emitting
configEntryCreatewhen 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._patchnot 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
Providernot having abstract methods in typings. (kyranet) - [#184] Fixed typings using
Storewithout 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
0asminand/ormaxdue to falsy value check. (kyranet) - [#170] Fixed guild resolvables not working correctly. (kyranet)
- [#165] Updated url for peer dependency
discord.jsand fixed allJSDocs. (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] FixedKlasaClientOptions.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.assigndoesn't merge nested objects. (kyranet) - [#141] Fixed
KlasaConsoleConfigsnot 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#addFoldernot working correctly. (kyranet) - [#131] Fixed Configuration's
updateManynot 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
MessageOptionsnot being correctly handled withStringResolvable, resulting on code likemsg.send({ embed });to fail. (kyranet) - [#125] Fixed a serious security issue in
Configuration#get. (kyranet) - [#125] Now instances of
GatewayandSchemacannot re-init twice. (kyranet) - [#125] Fixed many typos and many JSDocs. IntelliSense should work better now. (kyranet)
- [#118] Fixed
SchemaPiece#modifynot editing the datatype from the SQL database when using a SQL provider. (kyranet) - [#118] Fixed
NULLnot 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#sendMessageandMessage#send. (kyranet) - [#115] Fixed typings not including the
isFunctionmethod 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) FixedGatewayDriver#validatenot 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)