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.
ZipFile.addFiles(newFiles: List<File>)
which doesn't use spread-operatorisCallableMethodModifier
extension on Int- DataTypes.GRAPHQL (
klib.net.http.Http.DataTypes
) to sendapplication/graphql
Content-Type Header - DataTypes.PLAIN (
klib.net.http.Http.DataTypes
) to sendtext/plain
Content-Type Header - DataTypes.NONE (
klib.net.http.Http.DataTypes
) to send no Content-Type Header ul
property for Long- BaseBlock (
klib.blockchain.BaseBlock
) - Block (
klib.blockchain.Block
as BaseBlock) - BlockChain (
klib.blockchain.BlockChain
) anagrams
infix extension on StringisAnagramOf
extension on String- Writer (
klib.text.Writer
) Interface - ErrorOnlyWriter (
klib.text.ErrorOnlyWriter
) instance of Writer without write() implemented - DefaultWriter (
klib.text.DefaultWriter
) (default) instance of Writer namedBlock
(klib.functions.namedBlock
) function as easily debuggable{}
alternative
- Multiple internal API changes based on Detekt findings
Konfig.writeFile
now throws FileNotWritableException instead of generic Exception- Http.post (
klib.net.http.Http
) defaults to JSON for DataType - SemVer is now Spec compliant in pre-release vs release comparison (1.0.0 > 1.0.0-rc.1)
ZipFile.addFiles(vararg newFiles: File)
, useZipFile.addFiles(newFiles: List<File>)
instead
- AustrianBill, use RksvBill instead
- Queue (
klib.queue.Queue
) - Function (
klib.queue.Function
) - Function -> Any (
klib.queue.Function_Any
) - Word (
klib.word.Word
)
times
extension for StringTablePrinter
and table DSL to print Text Tables to any PrintStreamprompt<T>
global function as Text Prompt with type parsingcopyFrom
extension for anything that inherits from Any- Added JodaTime as a Dependency (Adds ~600 KB to FAT jar)
isNumeric
extension on String uses start and end in regex^\d+$
- Link Value to RksvBill
alphanumericalRegex
global functionreplaceAllOf
extension for String- `normalize' extension for String
klib.parser.influx.Influx
objectklib.parser.influx.InfluxData
data classtoSimpleString
extension for Map
- Allow access to Protected and Native methods in LClass
- AustrianBill, use RksvBill instead
string
extension for Random- Directory as Directory2 alias
luhn10
extension for Stringmod97
extension for String- isVirtual parameter to ZipFile constructor
- ZipFile.openVirtual to output the file to a random Stream
klib.os.Platform
object- Platform Extensions for System
IncompatibleArrayLengthException
onConflict
to Map.smartMerge
and Map.mergeArrays
- Upgraded Kotlin from 1.3.71 to 1.4.10
- FFDB v1 files are read-only. (FFDB is still Experimental so this change is acceptable)
- fileName parameter of ZipFile constructor is Nullable (only allowed when isVirtual=true)
- ZipFile.open only opens a file if fileName!=null; throws an error if fileName==null && isVirtual==false
- In ZipFile all file accessors could throw a ZipTraversalNotAllowedException
- Map.
mergeArrays
throwsIncompatibleArrayLengthException
when arrays have different sizes
- Queue (
klib.queue.Queue
) - Function (
klib.queue.Function
) - Function -> Any (`klib.queue.Function_Any``)
- Word (
klib.word.Word
)
- String.
toUpperCaseOnUnderscore
was rewritten and works propperly now
- ZipFile reject all paths that seem like they could cause a traversal attack
- JsonKraken 2.0 dependency
objectOutputStream
extension for FileobjectInputStream
extension for File- FFDB (FlatFile DataBase) (
klib.ffdb.FFDB
) - IncompatibleDatabaseException (
klib.exceptions.IncompatibleDatabaseException
) openFFDB
extension for StringsplitBy
extension for StringtrimSpace
extension for String
- Upgraded Kotlin from 1.3.61 to 1.3.71
- JsonKraken 1.0 Source
- kSock (
klib.net.socket.kSock
) - Directory (
klib.files.Directory
) asDirectory
extension for File- Status number from
klib.files.Directory2.DirectoryError
- FFDB now checks if the File exists before writing/reading
- FFDB now checks if the FIle is empty before reading
Sha512
ObjectasSha512
extension for ByteArraypartition
extension for IntArrayswap
extension for IntArraylessThen
extension for IntegerlessThenOrEqualTo
extension for IntegergreaterThen
extension for IntegergreaterThenOrEqualTo
extension for IntegerkLibRequireMin
with a minimum only Version (Closes #6)arrayBinSearch
global functionlistQuicksort
global functionreplaceLast
extension for String- Implement OpenSpec Konfig 19.3
- Implement OpenSpec Konfig 20.1
- Implement OpenSpec Konfig 20.2
AustrianBill
Class- Directory2 (
klib.files.Directory2
)
- Upgraded Kotlin from 1.3.60 to 1.3.61
- Queue.enqueue
x
parameter renamed tofunc
- Directory (
klib.files.Directory
)
kLibRequire
falsely made alessThen
comparison
- KSocket (
klib.net.socket.KSocket
) - KString (
klib.text.KString
) asFileInputStream
extension for StringasFileOutputStream
extension for String- Light weight JSON Parser (
net.jemzart.jsonkraken
) toListOfType
extension for JsonArraytoObjectOfType
extension for JsonObject- Directory (
klib.files.Directory
) asDirectory
extension for FilereadAll
extension for FileListwriteAll
extensions for FileListreplaceAllOf
extension for MutableFileListreadInt
global functionreadLong
global functionrunRandom
global functionorNullable
extension for AnytoSnakeCase
extension for StringasIntOr
extension for StringasLongOr
extensions for String
- Upgraded Kotlin from 1.3.31 to 1.3.60
- Moved and Renamed a lot of packages (Major Breaking Change)
toObjectFromType
extension on String uses GenericstoObjectFromType
extension on String uses Generics
- kSock (
klib.net.socket.kSock
)
- SimpleJSON was removed again (
org.json.*
) - GSON was removed again (
com.google.gson
) toObject(json, type)
function from Json interfacebinSearch
extension from MutableList
print
Top-Level FunctionbinSearch
extension for ListbinSearch
extension for MutableList- Http.custom function
- Konfig now supports Lists/Arrays
- kLib is now shipping with JSON Parser (it adds about 300KB to builds)
- Extended Http.get with headers parameter
- Extended Http.post with headers parameter
- Default JsonHandler now uses JSON Parser and actually works
smartMerge
extension to MutableMap (With value type converter)fullMerge
extension to MutableMap (With value type converter)mergeArrays
extension to MutableMap (With value type converter)toListWithConvert
extension to ListtoListWithConvert
extension to MutableListfromUrl
extension to FiletoFile
extension to URLtoObjectOfType
extension to URLHttp
classHttp.DataTypes
Enum ClassreadText
extension to InputStreamfromHex
extension to StringfromHexToLong
extension to StringtoHex
extension to BytebinSearch
extension to IntArray (Using Recursion, its 50% faster)
- Moved Library API from Experimental to Stable
- kLib is now licensed under the OSPL20 (a MPL 2.0 Fork), kLib prior to 3.0 will stay MIT!
smartMerge
extension to MutableMapfullMerge
extension to MutableMapmergeArrays
extension to MutableMapopenIfExist
parameter for ZipFile.openreset
extension to FilekSock
object classevery
extension to Function() -> Unit
version
property of kLibInf (Replaced with semver)versionId
property of kLibInf (Replaced with semver)klibRequire
for versionId (Replaced with semver)klibRequire
for versionId range (Replaced with semver)
- Fixed bug in SemVer parsing crashing when preRelease and buildMetadata was not given
- Removed Experimental Annotations from ZipFile functions/classes
new
function to LClass (To be used withis
andas
and Interfaces)semver
property of kLibInf is now prioritykLibRequire
Top-Level Function gets semver supportextract
function to ZipFileunzip
function to ZipFile
- Moved
ZipFile
out of Experimental
version
property of kLibInf (Replaced with semver)
println
ran in infinite loop
String.deny
failing on empty stringsString.require
not considering empty stringskLibInf.version
having the wrong version number
checksum
property for HashResultgetBytes
function for HashResultSha1
Object ClassasSha1
extension for StringinBoundsOf
extension for InthashSha256
extension for FilehashSha1
extension for FileSha256Checksum
extension for FileSha1Checksum
extension for FileasSha1
extension for ByteArraytoStrInt
extension for Charsemver
property for kLibInfSemVer
Type ClassInvalidTypeException
Exception Class
KonfParseException
Exception Class
String.deny
failed on empty string or param; Now only fails on empty paramKonfig.parse
crashing on empty lines
- Extended Experimental Library implementation
- LClass now supports super class functions
- LClass now supports direct method invocation
- LClass now provides a list of LFunction's defined in Host class (and Supers)
- LFunction now supports one-argument method invocations
zipPath
not being used when usingaddFiles
on ZipFile
Library
Object ClassLClass
Type ClassLFunction
Type ClassloadAsLibraryWithClass
extension for FileloadAsLibraryWithClass
extension for StringloadAsLibraryWithFunction
extension for FileloadAsLibraryWithFunction
extension for String
toJson
extension for Anyprintln
Top-Level FunctionasFile
extension for StringZipFile
Type Class (Experimental API)toFile
extension for InputStreamtoFileInZipFile
extension for InputStreamaddToZipFile
extension for File
abs
property for IntisTrue
property for IntisFalse
property for IntKonfigParseException
ExceptionpairOf
Top-Level Functionp
Top-Level Functiondeny
extension for Pairrequire
extension for Pair
KonfParseException
Exception
asInt
extension for Booleanpower
extension for Doublehalf
property for Intthird
property for Intquarter
property for Intfourth
property for Inttenth
property for Int
quicksort
extension for MutableListquicksort
extension for ListplusAssign
Function to Queueinvoke
Function to QueuestartTimedExecution
Function to QueueKonfig
Object Class (Experimental API)
- Make
Queue
non-experimental
- Renamed Package
com.atvgstudios.klib
toklib
requireOrFail
Top-Level FunctionrequireAllOrFail
Top-Level Functionor
extension for Any?orFun
extension for Any?Function_Any
Type AliaseHandled
Top-Level Function
toObject
Function Json InterfaceBase58
Object
- Removed Implementation of removed
toObject
in dummy.JsonHandler
Experimental
Annotation ClassFunction
Type AliasQueue
Type Class (Experimental API)toObject
Function to Json Interface (Using Type and Nullable)toBase58
extension for StringtoBase64
extension for StringfromBase64
extension for StringfromBase58
extension for StringdoubleDigest
extension for ByteArrayBase58e
Object
toObject
Function in Json Interface (Using Any)Base58
Object (com.atvgstudios.klib.encoding.base.Base58)
Json
Object (com.atvgstudios.klib.objects.json.Json)
ofType
extension for Anyswap
extension for MutableListreplaceAll
extension for MutableListisNumeric
extension for Stringchop
extension for StringtoHex
extension for IntegerpopBegin
extension for MutableListpopEnd
extension for MutableListprepend
extension for MutableList
kLibRequire
a function that allows you to only make the application run on a supported kLib versionJson
Interface; This is for later use. (com.atvgstudios.klib.interfaces.Json)power
infix extension for IntegerasSha256
extension for StringtoUpperCaseOnUnderscore
extension for StringtoFirstLetterUpperCase
extension for StringisEmail
extension for Stringdeny
extension for Stringrequire
extension for Stringcount
infix extension for StringInvalidValueException
exceptionRequireValueException
exception
timesAs
was made ainfix
- Upgraded Kotlin from 1.3.30 to 1.3.31
Json
Object (com.atvgstudios.klib.objects.json.Json)
- Integer
timesAs
Extension - Top-Level
currentMillis
Function Hasher
InterfaceBase58
ObjectSha256
ObjectJson
Object- Type Class
HashResult
- Moved
UniqueID
Object from Types to Objects package
- Sematic issues shown by lint
- First implementation