repository_backend/Repository

actor class Repository()

public func getOwners() : async [Principal]

public func getPackageCreators() : async [Principal]

public func setOwners(newOwners : [Principal]) : async ()

public func setPackageCreators(newOwners : [Principal]) : async ()

public func addOwner(newOwner : Principal) : async ()

public func addPackageCreator(newCreator : Principal) : async ()

public func deleteOwner(oldOwner : Principal) : async ()

public func deletePackageCreator(oldPackageCreator : Principal) : async ()

public func init() : async ()

public func getRepositoryName() : async Text

public func getRepositoryInfoURL() : async Text

public func getReleases() : async [(Text, ?Text)]

public func setRepositoryName(value : Text) : async ()

public func setRepositoryInfoURL(value : Text) : async ()

public func setReleases(value : [(Text, ?Text)]) : async ()

public func uploadWasm(wasm : Blob) : async { id : Blob }

public func uploadModule(module_ : Common.ModuleUpload) : async Common.SharedModule

public func setDefaultVersions({ versions : [Common.Version]; defaultVersionIndex : Nat })

public func getDefaultVersions() : async RepositoryVersions

public func getWasmModule(key : Blob) : async Blob

public func getFullPackageInfo(name : Common.PackageName) : async Common.SharedFullPackageInfo

public func setFullPackageInfo(name : Common.PackageName, info : Common.SharedFullPackageInfo) : async ()

TODO@P3: Put a barrier to make the update atomic. TODO@P3: Don't call it directly.

public func getPackage(name : Common.PackageName, version : Common.Version) : async Common.SharedPackageInfo

public func cleanUnusedWasms()