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.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, extendingMap
. (Unseenfaith) - [#383] Added
SchemaType
andSchemaTypes
classes. (Unseenfaith) - [#383] Added
SchemaPieceOptions.filter
. (kyranet) - [#383] Added abstract method
SQLProvider#getColumns
. (kyranet) - [#379] Added
prefixCaseInsensitive
option inKlasaClientOptions
. (AdityaTD) - [#362] Added
GatewayDriverRegisterOptions.syncArg
for custom arguments forGatewayDriver#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 withSchemaFolder#sqlSchema
. (kyranet) - [#272] Added
disabledCorePieces
option inKlasaClientOptions
. (bdistin) - [#272] Added
Argument
andArgumentStore
classes for argument resolving inUsage
. (bdistin) - [#256] Added
Util.objectToTuples
for object overload -> array overload inConfiguration#update
. (kyranet) - [#260] Added support for functions with no arguments in
Language
to be called with a single argument inLanguage#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
inScheduledTask
, 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
andonce
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()
andGatewayDriver#toJSON()
. (kyranet) - [#179] Added
GatewayDriver#register
to be able to register new gateways without events (directly in yourapp.js
). (kyranet) - [#179] Added
util.getIdentifier
as 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
categorychannel
type toArgResolver
. (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
andSchemaPiece#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
andtask
types 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
CreatingTasks
tutorial. (kyranet) - [#156] Added
arrayPosition
property toConfigurationUpdateOptions
to update objects in the middle of an array without removing/pushing. (kyranet) - [#156] Added
taskError
event. (bdistin) - [#156] Added
Schedule
,ScheduledTask
andCron
alongside a new piece structure namedTask
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 extendingGateway#Configuration
. (bdistin) - [
5130f9db6d
] AddedTimestamp#displayUTC
. (bdistin) - [
9f1ee51aa3
] AddedTimestamp.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
andCommandOptions.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 thanConfiguration#updateOne
,Configuration#updateArray
, and alias ofConfiguration#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 toSchemaFolder
), reducing duplicated code and bringing more code consistency. (kyranet) - [#125] Added a private tool that ensures the
content
andoptions
inMessage#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 defaultjson
, but configurable viaKlasaClientOptions.provider.engine
). (kyranet) - [#121] Added
constants
andUtil.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
,schemaKeyRemove
andschemaKeyUpdate
. (kyranet) - [#115] Added
isObject
method 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_STATS
andCOMMAND_STATS_DESCRIPTION
to the en-US language. (Pandraghon) - [
6f16689144
(#104) AddedregexPrefix
as an option forKlasaClientOptions
. (MrJacz) - [
2915d31b92
] (#43) A changelog... (kyranet) - [
2915d31b92
] (#43) AddedKlasaMessage
,KlasaGuild
, andKlasaUser
, extendingDiscordJS.Message
,DiscordJS.Guild
andDiscordJS.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
,configDeleteEntry
andconfigCreateEntry
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
andSchemaPiece
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 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.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] 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 newConfiguration
entry 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#add
andSchema#remove
to 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
Schema
instance instead of aSchemaFolder
instance. (Unseenfaith) - [#383] [BREAKING] Changed
GatewayStorage
's schema argument to take a Schema instance. (kyranet) - [#383] [BREAKING] Renamed events
configCreateEntry
,configDeleteEntry
, andconfigUpdateEntry
tosettingsCreateEntry
,settingsDeleteEntry
, andsettingsUpdateEntry
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
(whichSchemaFolder
inherits) now supports paths or arrays. (kyranet) - [#374] [BREAKING] Renamed
Configuration
toSettings
. (kyranet) - [#374] Renamed
INHIBITOR_REQUIRED_CONFIGS
toINHIBITOR_REQUIRED_SETTINGS
. (kyranet) - [#374] [BREAKING] Renamed
KlasaMessage#guildConfigs
toKlasaMessage#guildSettings
,KlasaGuild#configs
toKlasaGuild#settings
,KlasaClientOptions.preserveConfigs
toKlasaClientOptions.preserveSettings
, andCommand#requiredConfigs
toCommand#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 (patchedConfiguration
instance, 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#addColumn
to have the argumentstable: 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
toSchemaFolder#sqlSchema
. (kyranet) - [#256] Changed
SchemaPiece#sql
's type from[string, string]
tostring
. (kyranet) - [#256] Changed ScheduledTask's default value for the property
data
fromnull
to{}
, allowing object spread to attach the id of the executed task inTask#run
. (kyranet) - [#256] Improved performance in
Configuration#update
. (kyranet) - [#256] Refactored
Gateway#getPath
to takepiece: null
as an option for mixed output. (kyranet) - [#256] Refactored
GatewayStorage
to not depend on being inherited. (kyranet) - [#256] Refactored
Util.isClass
andUtil.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 withoutObject.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
toadd
and moved thebreak
boolean toPermissionLevelOptions.break
, which is taken as third parameter. (bdistin) - [#196] [BREAKING] Moved the array for the argument
appliesTo
in 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#types
fromstring[]
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#file
is now consistent between all pieces and it's type ofstring[]
. (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
andmsg
as parameters instead ofarg
,currentUsage
,possible
,repeat
andmsg
. Repeating handling is now done in the backends. (bdistin) - [#159] Made
'id'
aPRIMARY 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 passingundefined
in theguild
field betweenvalue
andoptions
. (kyranet) - [#155] Complexity reductions for
SchemaFolder#addKey
andColors
. (bdistin) - [
338ebb0eb2
] PrefixedTimestamp#_resolveDate
. (bdistin) - [
f2cc604ead
] Arguments are now trimmed. (bdistin) - [
4a70f1c271
] Added spaces to blacklist output. (bdistin) - [#152] [BREAKING] Changed
KlasaClientOptions.provider.engine
toKlasaClientOptions.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
andKlasaMessage#params
are now readonly and getters fromKlasaMessage#prompter
. (bdistin) - [#136] Changed
KlasaClientOptions.promptTime
toKlasaClientOptions.customPromptDefaults
, changing type fromnumber
toKlasaCustomPromptDefaults
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 ajson
database. (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#manager
andSchemaPiece#manager
got renamed toSchema#gateway
andSchemaPiece#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 newSchema
class. (kyranet) - [#125] [BREAKING] Changed
KlasaClientConfigs
toKlasaClientOptions
(kyranet) - [#121] [BREAKING] Merged
this.client.config
tothis.client.options
(bdistin) - [#121] Refactored
Gateway
to 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#settings
andMessage#guildSettings
toGuild#configs
andMessage#guildConfigs
, respectively. (kyranet) - [
2915d31b92
] (#43) [BREAKING] Renamedclient.settings
toclient.gateways
. (kyranet) - [
2915d31b92
] (#43) Renamed the inhibitorrequiredSettings
torequiredConfigs
. (kyranet) - [
2915d31b92
] (#43) Renamed the keyCommand#requiredSettings
toCommand#requiredConfigs
. (kyranet) - [
2915d31b92
] (#43) Added a new option for theguildDelete
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 ofSettingResolver
as first parameter, but a boundthis
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. UseConfiguration#updateOne
,Configuration#updateArray
orConfiguration#updateMany
instead. (kyranet) - [
2915d31b92
] (#43) [FEATURE]Configuration#updateOne
,Configuration#updateMany
,Configuration#reset
andConfiguration#updateArray
can now filter unconfigurable keys if the parameteravoidUnconfigurable
is passed and set totrue
. (kyranet) - [
2915d31b92
] (#43)Gateway#schema
is not longer a plain object, but aSchema
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 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#waitSync
in 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.json
files. (Unseenfaith) - [#383] [BREAKING] Removed
Resolver
andSettingsResolver
classes. (Unseenfaith) - [#383] Removed
GatewayDriver#resolver
andGatewayStorage#resolver
. (kyranet) - [#383] Removed
GatewayStorage#baseDirectory
andGatewayStorage#filePath
. (kyranet) - [#383] Removed
guildsSchema
,usersSchema
, andclientStorageSchema
fromGatewayDriver
. (Unseenfaith) - [#383] Removed abstracted methods
Provider#removeValue
andSQLProvider#removeValue
. (kyranet) - [#383] Removed
schemaKeyAdd
,schemaKeyRemove
, andschemaKeyUpdate
events. (kyranet) - [#383] Removed types
GuildSettings
,SchemaObject
, andSchemaDefaults
from 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
GatewayGuildResolvable
type from typings. (kyranet) - [#306] Removed
JSONProvider#set
andJSONProvider#insert
. (kyranet) - [#306] Removed
Provider#sql
andSQLProvider#sql
. (kyranet) - [#306] Removed
SchemaPiece#_generateSQLDatatype
andSchemaPiece._parseSQLValue
. (kyranet) - [#306] Removed
SchemaPiece#sql
. (kyranet) - [#306] Removed
SchemaFolderAddOptions.sql
. (kyranet) - [#306] Removed
GatewayStorage#sqlSchema
,SchemaFolder#sqlSchema
, andSchemaPiece#sqlSchema
. (kyranet) - [#306] Removed
Role
andGuildMember
overloads forGuildResolvable
. (kyranet) - [#284] Removed
GatewayStorage#initTable
andGatewayStorage#initSchema
, they're now unified inGatewayStorage#init
. (kyranet) - [#284] Removed
force
options in SettingsGateway operations. (kyranet) - [#284] Removed
ProviderOptions.cache
andProviderOptions.sql
options. (kyranet) - [#272] Removed
ArgResolver
class. (bdistin) - [#256] Removed
Gateway#getEntry
(mixed getEntry and insertEntry intoGateway#get
),Gateway#createEntry
, andGateway#insertEntry
. (kyranet) - [#256] Removed
Gateway#options
andGateway#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
andSchemaFolder#addFolder
in favor to a more consistentSchema#add
. (kyranet) - [#179] [BREAKING] Removed
Configuration#resetConfiguration()
. (kyranet) - [#179] [PERF-MEM] Removed
Configuration#type
. (kyranet) - [#179] [BREAKING] Removed
SchemaFolder#removeKey
andSchemaFolder#removeFolder
in favor to a more consistentSchema#remove
. (kyranet) - [#179] Removed the abstract method
resolveString()
from SchemaFolder and SchemaPiece. (kyranet) - [#179] Removed
SchemaFolder#getList
and replaced it toConfiguration#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 underConfiguration#update
, in favor of a much less confusing naming. (kyranet) - [
5b0c468362
] RemovedKlasaClient.sharded
asClient.shard
is 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.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] RemovedCommandMessage
proxy 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 themessageDelete
event. (kyranet) - [
2915d31b92
] (#43) Removed themessageDeleteBulk
event. (kyranet) - [
2915d31b92
] (#43) Removed theguildCreate
event. (kyranet) - [
2915d31b92
] (#43) Removed theSQL
class. Replaced by GatewaySQL and Schema/Piece. (kyranet) - [
2915d31b92
] (#43) Removed theCacheManager
class. 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#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 overWeakMap
s andWeakSet
s. (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
andSettingResolver#float
not accepting0
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
asmin
and/ormax
due to falsy value check. (kyranet) - [#170] Fixed guild resolvables not working correctly. (kyranet)
- [#165] Updated url for peer dependency
discord.js
and 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
broadcastEval
s. (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 withStringResolvable
, resulting on code likemsg.send({ embed });
to fail. (kyranet) - [#125] Fixed a serious security issue in
Configuration#get
. (kyranet) - [#125] Now instances of
Gateway
andSchema
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
andMessage#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) FixedGatewayDriver#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)