- Nuked existing websocket implementation. Bye and tanks for all the 🐟🦈!
- Moved to using a
Stream
wrapper instead of relying on a Cubit for the websocket
- Moved to using a
- Fixed a few models
- Removed most deprecated parameters, types, and values
- fix ServerSubuser two factor parameter
- Use VeryGoodVentures' lint rules
- Rename
FractalResponseData
toFractalData
(which implementsFractal
)- It is now a Freezed Class
- Rename
FractalResponseList
toFractalDataList
(which implementsFractalList
)- It is now a Freezed Class
- Add
month
toRequestSchedule
- Add
month
toCron
- Changed Egg.uuid to be nullable. This can happen if the egg was changed and the server is still using the old one.
- Changed ActivityLog.ip to be nullable, as non-admins may not always see the ip
- Deprecated Account.admin in favor of Account.isAdmin
- Attempted to improve the error class
- Fix all network/allocation related endpoints
- Add toString implementation to Fractal and FractalList
- Made filter related classes non private (for example, so you can use a switch case with the enum of available filters)
- Added serialization checks so that issues with the source data can be more easily found
- Also made sure everything had a private constructor for consistency
- Added object-based filters in order to cut down on unnecessarily many filter parameters.
- Those filter parameters are now deprecated
- Moved the dio getter for the PteroClient into an extension so you can optionally show
PteroClientVisibleDio
if you don't want to be able to directly mess with the dio instance
- Updated
Rename
class to support changing the server description
- Added
onReceiveProgress
to complementonSendProgress
, also @experimental- This may be most useful on the pull file endpoint
- Renamed
onProgress
toonSendProgress
to properly indicate its usage.- Also annotated it with @experimental until its use case is better understood
- Add
cancelToken
andonProgress
to all methods (I can't believe I didn't know this was an option.)- This allows you to use a
CancelToken
to cancel api calls, and read the current progress of the call
- This allows you to use a
- Removed experimental (and outdated) login methods. I may come back to this later.
- const all the things, where possible.
- Get work done for Application Client. some of it might even work
- Renamed User to Account
- Renamed Actor to User. Yes this will get confusing. Yes this is breaking.
- Correct the Websocket Handler's init() forward function to use Future like the cubit does
- Added
restoreBackup
- Renamed
lockBackup
totoggleBackupLock
to better indicate its functionality - Some other misc stuff your IDE will direct you to
- Added a Translation Client, for those of you who need it, not that it supports anything other than
en
anyway
- Murdered all existence of "null_resource" in all responses, making them just null, instead of a useless serializer-breaking object through the use of an interceptor
- Added a
lastKnownPowerState
to the websocket cubit. may or may not stay
- Fix
Subuser
- Fix
ActivityLog.properties
- improved
websocket
handling a little
- backup-related methods should now be fully functional
listServerDatabases
now has pagination
- fix more
ActivityLog
stuff
- fix
ActivityLog
- added activity log stuff
- improved includes
- updated
deleteSshKey
to work with new versions, as well as keeping the old method - updated
FileObject
- added
lockBackup
- updated server websocket extensions
- updated dependencies
- bump release
- fixed an issue with the websocket cubit trying to emit new states after its closed
- renames
uploadFile
togetFileUploadUrl
- adds
ServerStateConflictException
error code and specifies anUNKNOWN
when not in list
- Fix
CreateSshKey
model
- added
pullFile
,createSshKey
,listSshKeys
, andchmodFile
- Updated models so that
listDockerImages
actually works
- Add
listDockerImages
convenience method
- Fix the error handler
- Fix Pterodactyl v1.7 support
- Fix Websocket registerListeners not supporting multiple registrations
- Add Pterodactyl v1.8 support
- Add websocket handler
ServerWebsocketCubit
and websocket convenience classServerWebsocketHandler
- Fix
deleteFiles
- Maybe fix
writeFile
andFractalResponseList
- Fix FileObject
- Remove origin header
createApiKey
now includes the token secret
- Fix
ApiKey
model to make last_used_at nullable
- Fix
ServerFeatureLimits
- Forget it. Separate classes it is.
FileListConverter
was the previous bug. still not working. just gonna throwUnimplementedError
for now
- Another minor bug that hardly needs mentioning
- A JsonConverter was being used wrong
- Type related bug...
PteroData
needed to requireSerializableMixin
, soSerializableMixin
needed to be onWebsocketDetails
- Accidentally made
FractalServer.server
no longer work. Fixed now.
- Make all models
@freezed
where possible - Add annotations to better represent certain things
- Adjust some models (like
Server
) to better represent the api - Make
Meta
into multiple classes to enforce typed responses - Make
Meta
only show where it should, and made it non-nullable.
- Refactored the generated files into their own folder, cause thats apparently possible
- Removed the cookie manager in order to allow web use.
- Add
dio_cookie_manager
yourself to make use of it.
- Fixed 419 error in
login()
- Fixed
getServerDetails
JsonMap
typedef now used anywhereMap<String, dynamic>
was, not including generated filesgetSiteConfiguration()
andgetPterodactylUser()
added to the clientgetSiteConfiguration()
works without needing to be logged in
null_resource
is a thing apparently.- Fixed
fromJson
serialization forFractalList
because json_serializable doesn't know wtf to do with this
- Apparently I forgot to make
list
a valid option, makingFractalResponseList
never work.
- Apparently I need to commit generated files?
- Removed
with SerializableMixin
on stuff that doesn't actually need it, as its only used to make serialization easier in-package. May give to everything with atoJson
in the future, but its not necessary for now - Added a bunch of extensions using those same type aliases
FractalServer
now has aserver
getter (iefractalServer.server
=>Server
)FractalServerList
now has aservers
getter (iefractalServerList.servers
=>List<Server>
)
- Bump min SDK version to 2.13.0 so that I can use type aliases. So much nicer...
- A bunch of new type aliases like
FractalServer
- Added Query parameters like
includes
getServers
is now more powerful withtype
andfilter[ ]
- Renamed a bunch of stuff
getPermissions
->getSystemPermissions
- A bunch of parameters like
server
are now suffixed byId
(ex:serverId
) - Anything that returns a
FractalResponseList
is now prefixed bylist
instead ofget
(ie.getServers
->listServers
)
- Barrels apparently don't work. Why?
- Start adding tests.
- Fix import issue?
- Cleaner JSON Serialization
- Error Handling YAY
- Make it so anything with a
.toJson()
is a member of theSerializableMixin
class to make generic calls possible - Moved around some files
- Fix an issue with
toJson()
on a couple models - Fix
PteroClient.mock()
(needed to include thehttps://
-.-) - Add example using
PteroClient.mock()
- Add
PteroClient.mock()
for testing - Uses
mockapi.ptero.sh
which itself wraps the https://pterodactyl.stoplight.io mock server in a way that works with this client, as/api/client
is hardcoded - (!!SERVER NOT COMPLETED AS OF WRITING THIS!!)
- Add missing
updateDockerContainer
- Add a utility extension for the
Server
, such as getting the docker images on the object directly
- Add a utility extension for the client
- Add
dockerImages
toMeta
as thats apparently where it shows up.
- Make it possible to disable the automatic CookieJar so you can put your own
- REMOVED
PteroClientConfig
andcreatePteroClient()
- Instead, use
PteroClient.generate()
- Made it possible to use cookies instead of Api Key by simply omitting the key in the PteroClient.generate() constructor
- Added
login()
, which is only possible if you are in cookie mode! - Conveniently, I will take you out of Key mode and into Cookie mode for you!
- Added the inverse of
login()
;logout()
. also takes you out of key mode- but wont work in key mode anyway so... - Added an interceptor to do mentioned "taking out of key mode"
- Updated dependencies
- Add
Origin
header. hopefully it works.
- ACTUALLY fix
cpuAbsolute
inStats
- Fix
cpuAbsolute
inStats
- Renamed
ServerState
toServerPowerState
- Renamed
SignalType
toServerPowerAction
- Minor changes and formatting
- Renamed
Schedule
toRequestSchedule
- Updated
Backup
to hopefully be more accurate
- Renamed
deleteApiKeys
=>deleteApiKey
ServerStatus?
enum instead of aString?
- Add fields to
Cron
andServerSchedule
- Minor import adjustments
- Apparently
FractalResponseList
's data can get a null object...
- Improve error files further
- Make ServerStatus an enum for current server status
- Add
name
to Cron
- Split error files, and made
PteroError.code
an enum - Added
PteroError.statusCode
getter which returns anint?
, though it should never be null
- Updated
createPteroClient
to not set thebaseUrl
directly inPteroClient
, so that it could be changed in the user-providedDio
instance - Formatted imports, and removed redundant
models.dart
- Add an optional
[dio]
parameter tocreatePteroClient(config, dio: Dio())
- Initial version.