type APIToken {
createdAt: DateTime!
id: ID!
identifier: String
lastUsedAt: DateTime
revokedAt: DateTime
user: User!
}
type APITokenConnection {
# Contains the nodes in this connection.
edges: [APITokenEdge]!
# Pagination data for this connection.
pageInfo: PageInfo!
}
# A Relay edge containing a `APIToken` and its cursor.
type APITokenEdge {
# A cursor for use in pagination
cursor: String!
# The item at the end of the edge
node: APIToken
}
input AcceptNamespaceCollaboratorInviteInput {
clientMutationId: String
inviteId: ID!
}
type AcceptNamespaceCollaboratorInvitePayload {
clientMutationId: String
namespaceCollaboratorInvite: NamespaceCollaboratorInvite!
}
input AcceptPackageCollaboratorInviteInput {
clientMutationId: String
inviteId: ID!
}
type AcceptPackageCollaboratorInvitePayload {
clientMutationId: String
packageCollaboratorInvite: PackageCollaboratorInvite!
}
input AcceptPackageTransferRequestInput {
clientMutationId: String
packageTransferRequestId: ID!
}
type AcceptPackageTransferRequestPayload {
clientMutationId: String
package: Package!
packageTransferRequest: PackageTransferRequest!
}
type ActivityEvent implements Node {
actorIcon: String!
body: ActivityEventBody!
createdAt: DateTime!
# The ID of the object
id: ID!
}
type ActivityEventBody {
ranges: [NodeBodyRange!]!
text: String!
}
type ActivityEventConnection {
# Contains the nodes in this connection.
edges: [ActivityEventEdge]!
# Pagination data for this connection.
pageInfo: PageInfo!
}
# A Relay edge containing a `ActivityEvent` and its cursor.
type ActivityEventEdge {
# A cursor for use in pagination
cursor: String!
# The item at the end of the edge
node: ActivityEvent
}
input ArchivePackageInput {
clientMutationId: String
packageId: ID!
}
type ArchivePackagePayload {
clientMutationId: String
package: Package!
}
input ChangePackageVersionArchivedStatusInput {
clientMutationId: String
isArchived: Boolean
packageVersionId: ID!
}
type ChangePackageVersionArchivedStatusPayload {
clientMutationId: String
packageVersion: PackageVersion!
}
input ChangeUserEmailInput {
clientMutationId: String
newEmail: String!
}
type ChangeUserEmailPayload {
clientMutationId: String
user: User!
}
input ChangeUserPasswordInput {
clientMutationId: String
password: String!
# The token associated to change the password. If not existing it will use the request user by default
token: String
}
type ChangeUserPasswordPayload {
clientMutationId: String
token: String
}
input ChangeUserUsernameInput {
clientMutationId: String
# The new user username
username: String!
}
type ChangeUserUsernamePayload {
clientMutationId: String
token: String
user: User
}
input CheckUserExistsInput {
clientMutationId: String
# The user
user: String!
}
type CheckUserExistsPayload {
clientMutationId: String
exists: Boolean!
# The user is only returned if the user input was the username
user: User
}
type Command {
command: String!
module: PackageVersionModule!
packageVersion: PackageVersion!
}
input CreateNamespaceInput {
# The namespace avatar
avatar: String
clientMutationId: String
# The namespace description
description: String
# The namespace display name
displayName: String
name: String!
}
type CreateNamespacePayload {
clientMutationId: String
namespace: Namespace!
user: User!
}
# The `DateTime` scalar type represents a DateTime
# value as specified by
# [iso8601](https://en.wikipedia.org/wiki/ISO_8601).
scalar DateTime
input DeleteNamespaceInput {
clientMutationId: String
namespaceId: ID!
}
type DeleteNamespacePayload {
clientMutationId: String
success: Boolean!
}
type ErrorType {
field: String!
messages: [String!]!
}
input GenerateAPITokenInput {
clientMutationId: String
identifier: String
}
type GenerateAPITokenPayload {
clientMutationId: String
token: APIToken
tokenRaw: String
user: User
}
# The `GenericScalar` scalar type represents a generic
# GraphQL scalar value that could be:
# String, Boolean, Int, Float, List or Object.
scalar GenericScalar
type GetPasswordResetToken {
user: User
valid: Boolean!
}
union GlobalObject = Namespace | User
input InputSignature {
data: String!
publicKeyKeyId: String!
}
type Interface implements Node {
createdAt: DateTime!
description: String!
displayName: String!
homepage: String
icon: String
# The ID of the object
id: ID!
lastVersion: InterfaceVersion
name: String!
updatedAt: DateTime!
versions(after: String = null, before: String = null, first: Int = null, last: Int = null, offset: Int = null): InterfaceVersionConnection!
}
type InterfaceVersion implements Node {
content: String!
createdAt: DateTime!
# The ID of the object
id: ID!
interface: Interface!
packageVersions(after: String = null, before: String = null, first: Int = null, last: Int = null, offset: Int = null): PackageVersionConnection!
publishedBy: User!
updatedAt: DateTime!
version: String!
}
type InterfaceVersionConnection {
# Contains the nodes in this connection.
edges: [InterfaceVersionEdge]!
# Pagination data for this connection.
pageInfo: PageInfo!
}
# A Relay edge containing a `InterfaceVersion` and its cursor.
type InterfaceVersionEdge {
# A cursor for use in pagination
cursor: String!
# The item at the end of the edge
node: InterfaceVersion
}
input InviteNamespaceCollaboratorInput {
clientMutationId: String
email: String
namespaceId: ID!
role: Role!
username: String
}
type InviteNamespaceCollaboratorPayload {
clientMutationId: String
invite: NamespaceCollaboratorInvite!
namespace: Namespace!
}
input InvitePackageCollaboratorInput {
clientMutationId: String
email: String
packageName: String!
role: Role!
username: String
}
type InvitePackageCollaboratorPayload {
clientMutationId: String
invite: PackageCollaboratorInvite!
package: Package!
}
input LikePackageInput {
clientMutationId: String
packageId: ID!
}
type LikePackagePayload {
clientMutationId: String
package: Package!
}
interface Likeable {
id: ID!
likersCount: Int!
viewerHasLiked: Boolean!
}
type Mutation {
acceptNamespaceCollaboratorInvite(input: AcceptNamespaceCollaboratorInviteInput!): AcceptNamespaceCollaboratorInvitePayload
acceptPackageCollaboratorInvite(input: AcceptPackageCollaboratorInviteInput!): AcceptPackageCollaboratorInvitePayload
acceptPackageTransferRequest(input: AcceptPackageTransferRequestInput!): AcceptPackageTransferRequestPayload
archivePackage(input: ArchivePackageInput!): ArchivePackagePayload
changePackageVersionArchivedStatus(input: ChangePackageVersionArchivedStatusInput!): ChangePackageVersionArchivedStatusPayload
changeUserEmail(input: ChangeUserEmailInput!): ChangeUserEmailPayload
changeUserPassword(input: ChangeUserPasswordInput!): ChangeUserPasswordPayload
changeUserUsername(input: ChangeUserUsernameInput!): ChangeUserUsernamePayload
checkUserExists(input: CheckUserExistsInput!): CheckUserExistsPayload
createNamespace(input: CreateNamespaceInput!): CreateNamespacePayload
deleteNamespace(input: DeleteNamespaceInput!): DeleteNamespacePayload
generateApiToken(input: GenerateAPITokenInput!): GenerateAPITokenPayload
inviteNamespaceCollaborator(input: InviteNamespaceCollaboratorInput!): InviteNamespaceCollaboratorPayload
invitePackageCollaborator(input: InvitePackageCollaboratorInput!): InvitePackageCollaboratorPayload
likePackage(input: LikePackageInput!): LikePackagePayload
publishPackage(input: PublishPackageInput!): PublishPackagePayload
publishPublicKey(input: PublishPublicKeyInput!): PublishPublicKeyPayload
readNotification(input: ReadNotificationInput!): ReadNotificationPayload
refreshToken(input: RefreshInput!): RefreshPayload
registerUser(input: RegisterUserInput!): RegisterUserPayload
removeNamespaceCollaborator(input: RemoveNamespaceCollaboratorInput!): RemoveNamespaceCollaboratorPayload
removeNamespaceCollaboratorInvite(input: RemoveNamespaceCollaboratorInviteInput!): RemoveNamespaceCollaboratorInvitePayload
removePackageCollaborator(input: RemovePackageCollaboratorInput!): RemovePackageCollaboratorPayload
removePackageCollaboratorInvite(input: RemovePackageCollaboratorInviteInput!): RemovePackageCollaboratorInvitePayload
removePackageTransferRequest(input: RemovePackageTransferRequestInput!): RemovePackageTransferRequestPayload
requestPackageTransfer(input: RequestPackageTransferInput!): RequestPackageTransferPayload
requestPasswordReset(input: RequestPasswordResetInput!): RequestPasswordResetPayload
requestValidationEmail(input: RequestValidationEmailInput!): RequestValidationEmailPayload
revokeApiToken(input: RevokeAPITokenInput!): RevokeAPITokenPayload
seePendingNotifications(input: SeePendingNotificationsInput!): SeePendingNotificationsPayload
# Social Auth for JSON Web Token (JWT)
socialAuth(input: SocialAuthJWTInput!): SocialAuthJWTPayload
# Obtain JSON Web Token mutation
tokenAuth(input: ObtainJSONWebTokenInput!): ObtainJSONWebTokenPayload
unlikePackage(input: UnlikePackageInput!): UnlikePackagePayload
unwatchPackage(input: UnwatchPackageInput!): UnwatchPackagePayload
updateNamespace(input: UpdateNamespaceInput!): UpdateNamespacePayload
updateNamespaceCollaboratorRole(input: UpdateNamespaceCollaboratorRoleInput!): UpdateNamespaceCollaboratorRolePayload
updatePackage(input: UpdatePackageInput!): UpdatePackagePayload
updatePackageCollaboratorRole(input: UpdatePackageCollaboratorRoleInput!): UpdatePackageCollaboratorRolePayload
updateUserInfo(input: UpdateUserInfoInput!): UpdateUserInfoPayload
validateUserEmail(input: ValidateUserEmailInput!): ValidateUserEmailPayload
validateUserPassword(input: ValidateUserPasswordInput!): ValidateUserPasswordPayload
verifyToken(input: VerifyInput!): VerifyPayload
watchPackage(input: WatchPackageInput!): WatchPackagePayload
}
type Namespace implements Node & PackageOwner {
avatar: String!
avatarUpdatedAt: DateTime
collaborators(after: String = null, before: String = null, first: Int = null, last: Int = null): NamespaceCollaboratorConnection
createdAt: DateTime!
description: String!
displayName: String
globalName: String!
# The ID of the object
id: ID!
maintainerInvites: [NamespaceCollaboratorInvite!]!
maintainersWithRoles(after: String = null, before: String = null, first: Int = null, last: Int = null, offset: Int = null): NamespaceMaintainerConnection!
name: String!
packageVersions(after: String = null, before: String = null, first: Int = null, last: Int = null): PackageVersionConnection
packages(after: String = null, before: String = null, first: Int = null, last: Int = null): PackageConnection
pendingInvites(after: String = null, before: String = null, first: Int = null, last: Int = null): NamespaceCollaboratorInviteConnection
publicActivity(after: String = null, before: String = null, first: Int = null, last: Int = null): ActivityEventConnection!
updatedAt: DateTime!
userSet(after: String = null, before: String = null, first: Int = null, last: Int = null, offset: Int = null): UserConnection!
viewerHasRole(role: Role!): Boolean!
}
type NamespaceCollaborator {
createdAt: DateTime!
id: ID!
invite: NamespaceCollaboratorInvite
namespace: Namespace!
role: RegistryNamespaceMaintainerRoleChoices!
updatedAt: DateTime!
user: User!
}
type NamespaceCollaboratorConnection {
# Contains the nodes in this connection.
edges: [NamespaceCollaboratorEdge]!
# Pagination data for this connection.
pageInfo: PageInfo!
}
# A Relay edge containing a `NamespaceCollaborator` and its cursor.
type NamespaceCollaboratorEdge {
# A cursor for use in pagination
cursor: String!
# The item at the end of the edge
node: NamespaceCollaborator
}
type NamespaceCollaboratorInvite {
accepted: NamespaceMaintainer
approvedBy: User
closedAt: DateTime
createdAt: DateTime!
declinedBy: User
expiresAt: DateTime!
id: ID!
inviteEmail: String
namespace: Namespace!
requestedBy: User!
role: RegistryNamespaceMaintainerInviteRoleChoices!
user: User
}
type NamespaceCollaboratorInviteConnection {
# Contains the nodes in this connection.
edges: [NamespaceCollaboratorInviteEdge]!
# Pagination data for this connection.
pageInfo: PageInfo!
}
# A Relay edge containing a `NamespaceCollaboratorInvite` and its cursor.
type NamespaceCollaboratorInviteEdge {
# A cursor for use in pagination
cursor: String!
# The item at the end of the edge
node: NamespaceCollaboratorInvite
}
type NamespaceConnection {
# Contains the nodes in this connection.
edges: [NamespaceEdge]!
# Pagination data for this connection.
pageInfo: PageInfo!
}
# A Relay edge containing a `Namespace` and its cursor.
type NamespaceEdge {
# A cursor for use in pagination
cursor: String!
# The item at the end of the edge
node: Namespace
}
type NamespaceMaintainer implements Node {
createdAt: DateTime!
# The ID of the object
id: ID!
invite: NamespaceCollaboratorInvite
namespace: Namespace!
role: RegistryNamespaceMaintainerRoleChoices!
updatedAt: DateTime!
user: User!
}
type NamespaceMaintainerConnection {
# Contains the nodes in this connection.
edges: [NamespaceMaintainerEdge]!
# Pagination data for this connection.
pageInfo: PageInfo!
}
# A Relay edge containing a `NamespaceMaintainer` and its cursor.
type NamespaceMaintainerEdge {
# A cursor for use in pagination
cursor: String!
# The item at the end of the edge
node: NamespaceMaintainer
}
# An object with an ID
interface Node {
# The ID of the object
id: ID!
}
type NodeBodyRange {
entity: Node!
length: Int!
offset: Int!
}
input ObtainJSONWebTokenInput {
clientMutationId: String
password: String!
username: String!
}
# Obtain JSON Web Token mutation
type ObtainJSONWebTokenPayload {
clientMutationId: String
payload: GenericScalar!
refreshExpiresIn: Int!
refreshToken: String!
token: String!
}
type Package implements Likeable & Node & PackageOwner {
alias: String
# The app icon. It should be formatted in the same way as Apple icons
appIcon: String! @deprecated(reason: "Please use icon instead")
collaborators(after: String = null, before: String = null, first: Int = null, last: Int = null): PackageCollaboratorConnection
createdAt: DateTime!
curated: Boolean!
displayName: String!
# The total number of downloads of the package
downloadsCount: Int
globalName: String!
# The app icon. It should be formatted in the same way as Apple icons
icon: String!
iconUpdatedAt: DateTime
# The ID of the object
id: ID!
isTransferring: Boolean!
lastVersion: PackageVersion
likeCount: Int!
likersCount: Int!
maintainers: [User]! @deprecated(reason: "Please use collaborators instead")
name: String!
namespace: String
owner: PackageOwner
ownerObjectId: Int!
# The name of the package without the owner
packageName: String!
pendingInvites(after: String = null, before: String = null, first: Int = null, last: Int = null): PackageCollaboratorInviteConnection
private: Boolean!
# The public keys for all the published versions
publicKeys: [PublicKey!]!
updatedAt: DateTime!
versions: [PackageVersion]
viewerHasLiked: Boolean!
viewerHasRole(role: Role!): Boolean!
viewerIsWatching: Boolean!
watchCount: Int!
}
type PackageCollaborator implements Node {
createdAt: DateTime!
# The ID of the object
id: ID!
invite: PackageCollaboratorInvite
package: Package!
role: RegistryPackageMaintainerRoleChoices!
updatedAt: DateTime!
user: User!
}
type PackageCollaboratorConnection {
# Contains the nodes in this connection.
edges: [PackageCollaboratorEdge]!
# Pagination data for this connection.
pageInfo: PageInfo!
}
# A Relay edge containing a `PackageCollaborator` and its cursor.
type PackageCollaboratorEdge {
# A cursor for use in pagination
cursor: String!
# The item at the end of the edge
node: PackageCollaborator
}
type PackageCollaboratorInvite implements Node {
accepted: PackageCollaborator
approvedBy: User
closedAt: DateTime
createdAt: DateTime!
declinedBy: User
expiresAt: DateTime!
# The ID of the object
id: ID!
inviteEmail: String
package: Package!
requestedBy: User!
role: RegistryPackageMaintainerInviteRoleChoices!
user: User
}
type PackageCollaboratorInviteConnection {
# Contains the nodes in this connection.
edges: [PackageCollaboratorInviteEdge]!
# Pagination data for this connection.
pageInfo: PageInfo!
}
# A Relay edge containing a `PackageCollaboratorInvite` and its cursor.
type PackageCollaboratorInviteEdge {
# A cursor for use in pagination
cursor: String!
# The item at the end of the edge
node: PackageCollaboratorInvite
}
type PackageConnection {
# Contains the nodes in this connection.
edges: [PackageEdge]!
# Pagination data for this connection.
pageInfo: PageInfo!
}
type PackageDistribution {
downloadUrl: String!
size: Int!
piritaDownloadUrl: String
piritaSize: Int
}
# A Relay edge containing a `Package` and its cursor.
type PackageEdge {
# A cursor for use in pagination
cursor: String!
# The item at the end of the edge
node: Package
}
interface PackageOwner {
globalName: String!
}
type PackageTransferRequest implements Node {
approvedBy: User
closedAt: DateTime
createdAt: DateTime!
declinedBy: User
expiresAt: DateTime!
# The ID of the object
id: ID!
newOwnerObjectId: Int!
package: Package!
previousOwnerObjectId: Int!
requestedBy: User!
}
type PackageTransferRequestConnection {
# Contains the nodes in this connection.
edges: [PackageTransferRequestEdge]!
# Pagination data for this connection.
pageInfo: PageInfo!
}
# A Relay edge containing a `PackageTransferRequest` and its cursor.
type PackageTransferRequestEdge {
# A cursor for use in pagination
cursor: String!
# The item at the end of the edge
node: PackageTransferRequest
}
type PackageVersion implements Node {
commands: [Command!]!
createdAt: DateTime!
description: String!
distribution: PackageDistribution!
file: String!
fileSize: Int!
filesystem: [PackageVersionFilesystem]!
homepage: String
# The ID of the object
id: ID!
isArchived: Boolean!
isLastVersion: Boolean!
isSigned: Boolean!
license: String
licenseFile: String
manifest: String!
moduleInterfaces: [InterfaceVersion!]!
modules: [PackageVersionModule!]!
package: Package!
publishedBy: User!
readme: String
repository: String
signature: Signature
updatedAt: DateTime!
version: String!
}
type PackageVersionConnection {
# Contains the nodes in this connection.
edges: [PackageVersionEdge]!
# Pagination data for this connection.
pageInfo: PageInfo!
}
# A Relay edge containing a `PackageVersion` and its cursor.
type PackageVersionEdge {
# A cursor for use in pagination
cursor: String!
# The item at the end of the edge
node: PackageVersion
}
type PackageVersionFilesystem {
host: String!
wasm: String!
}
type PackageVersionModule {
abi: String
name: String!
publicUrl: String!
source: String!
}
# The Relay compliant `PageInfo` type, containing data necessary to paginate this connection.
type PageInfo {
# When paginating forwards, the cursor to continue.
endCursor: String
# When paginating forwards, are there more items?
hasNextPage: Boolean!
# When paginating backwards, are there more items?
hasPreviousPage: Boolean!
# When paginating backwards, the cursor to continue.
startCursor: String
}
type PublicKey implements Node {
# The ID of the object
id: ID!
key: String!
keyId: String!
owner: User!
revoked: Boolean!
revokedAt: DateTime
uploadedAt: DateTime!
verifyingSignature: Signature
}
input PublishPackageInput {
clientMutationId: String
description: String!
file: String
homepage: String
# The package icon
icon: String
license: String
licenseFile: String
manifest: String!
name: String!
readme: String
repository: String
signature: InputSignature
version: String!
}
type PublishPackagePayload {
clientMutationId: String
packageVersion: PackageVersion!
success: Boolean!
}
input PublishPublicKeyInput {
clientMutationId: String
key: String!
keyId: String!
verifyingSignatureId: String
}
type PublishPublicKeyPayload {
clientMutationId: String
publicKey: PublicKey!
success: Boolean!
}
type Query {
getCommand(name: String!): Command
getCommands(names: [String!]!): [Command]
getContract(name: String!): Interface @deprecated(reason: "Please use getInterface instead")
getContractVersion(name: String!, version: String = null): InterfaceVersion @deprecated(reason: "Please use getInterfaceVersion instead")
getContracts(names: [String!]!): [Interface]! @deprecated(reason: "Please use getInterfaces instead")
getGlobalObject(slug: String!): GlobalObject
getInterface(name: String!): Interface
getInterfaceVersion(name: String!, version: String = "latest"): InterfaceVersion
getInterfaces(names: [String!]!): [Interface]!
getNamespace(name: String!): Namespace
getPackage(name: String!): Package
getPackageVersion(name: String!, version: String = "latest"): PackageVersion
getPackageVersions(names: [String!]!): [PackageVersion]
getPackages(names: [String!]!): [Package]!
getPasswordResetToken(token: String!): GetPasswordResetToken
getUser(username: String!): User
node(
# The ID of the object
id: ID!
): Node
packages(after: String = null, before: String = null, first: Int = null, last: Int = null): PackageConnection
recentPackageVersions(after: String = null, before: String = null, curated: Boolean = null, first: Int = null, last: Int = null, offset: Int = null): PackageVersionConnection
search(after: String = null, before: String = null, curated: Boolean = null, first: Int = null, hasBindings: Boolean = null, isStandalone: Boolean = null, kind: [SearchKind!] = null, last: Int = null, orderBy: SearchOrderBy = null, publishDate: SearchPublishDate = null, query: String!, sort: SearchOrderSort = null, withInterfaces: [String!] = null): SearchConnection!
searchAutocomplete(after: String = null, before: String = null, first: Int = null, kind: [SearchKind!] = null, last: Int = null, query: String!): SearchConnection!
viewer: User
}
input ReadNotificationInput {
clientMutationId: String
notificationId: ID!
}
type ReadNotificationPayload {
clientMutationId: String
notification: UserNotification
}
input RefreshInput {
clientMutationId: String
refreshToken: String
}
type RefreshPayload {
clientMutationId: String
payload: GenericScalar!
refreshExpiresIn: Int!
refreshToken: String!
token: String!
}
input RegisterUserInput {
clientMutationId: String
email: String!
fullName: String!
password: String!
username: String!
}
type RegisterUserPayload {
clientMutationId: String
token: String
}
# An enumeration.
enum RegistryNamespaceMaintainerInviteRoleChoices {
# Admin
ADMIN
# Editor
EDITOR
# Viewer
VIEWER
}
# An enumeration.
enum RegistryNamespaceMaintainerRoleChoices {
# Admin
ADMIN
# Editor
EDITOR
# Viewer
VIEWER
}
# An enumeration.
enum RegistryPackageMaintainerInviteRoleChoices {
# Admin
ADMIN
# Editor
EDITOR
# Viewer
VIEWER
}
# An enumeration.
enum RegistryPackageMaintainerRoleChoices {
# Admin
ADMIN
# Editor
EDITOR
# Viewer
VIEWER
}
input RemoveNamespaceCollaboratorInput {
clientMutationId: String
namespaceCollaboratorId: ID!
}
input RemoveNamespaceCollaboratorInviteInput {
clientMutationId: String
inviteId: ID!
}
type RemoveNamespaceCollaboratorInvitePayload {
clientMutationId: String
namespace: Namespace!
}
type RemoveNamespaceCollaboratorPayload {
clientMutationId: String
namespace: Namespace!
}
input RemovePackageCollaboratorInput {
clientMutationId: String
packageCollaboratorId: ID!
}
input RemovePackageCollaboratorInviteInput {
clientMutationId: String
inviteId: ID!
}
type RemovePackageCollaboratorInvitePayload {
clientMutationId: String
package: Package!
}
type RemovePackageCollaboratorPayload {
clientMutationId: String
package: Package!
}
input RemovePackageTransferRequestInput {
clientMutationId: String
packageTransferRequestId: ID!
}
type RemovePackageTransferRequestPayload {
clientMutationId: String
package: Package!
}
input RequestPackageTransferInput {
clientMutationId: String
newOwnerId: ID!
packageId: ID!
}
type RequestPackageTransferPayload {
clientMutationId: String
package: Package!
}
input RequestPasswordResetInput {
clientMutationId: String
email: String!
}
type RequestPasswordResetPayload {
clientMutationId: String
email: String!
errors: [ErrorType]
}
input RequestValidationEmailInput {
clientMutationId: String
# The user id
userId: ID
}
type RequestValidationEmailPayload {
clientMutationId: String
success: Boolean!
user: User
}
input RevokeAPITokenInput {
clientMutationId: String
# The API token ID
tokenId: ID!
}
type RevokeAPITokenPayload {
clientMutationId: String
success: Boolean
token: APIToken
}
enum Role {
ADMIN
EDITOR
VIEWER
}
type SearchConnection {
# Contains the nodes in this connection.
edges: [SearchEdge]!
# Pagination data for this connection.
pageInfo: PageInfo!
}
# A Relay edge containing a `Search` and its cursor.
type SearchEdge {
# A cursor for use in pagination
cursor: String!
# The item at the end of the edge
node: SearchResult
}
enum SearchKind {
NAMESPACE
PACKAGE
USER
}
enum SearchOrderBy {
ALPHABETICALLY
PUBLISHED_DATE
SIZE
TOTAL_DOWNLOADS
}
enum SearchOrderSort {
ASC
DESC
}
enum SearchPublishDate {
LAST_DAY
LAST_MONTH
LAST_WEEK
LAST_YEAR
}
union SearchResult = Namespace | PackageVersion | User
input SeePendingNotificationsInput {
clientMutationId: String
}
type SeePendingNotificationsPayload {
clientMutationId: String
success: Boolean
}
type Signature {
createdAt: DateTime!
data: String!
id: ID!
publicKey: PublicKey!
}
input SocialAuthJWTInput {
accessToken: String!
clientMutationId: String
provider: String!
}
# Social Auth for JSON Web Token (JWT)
type SocialAuthJWTPayload {
clientMutationId: String
social: SocialNode
token: String
}
scalar SocialCamelJSON
type SocialNode implements Node {
created: DateTime!
extraData: SocialCamelJSON
# The ID of the object
id: ID!
modified: DateTime!
provider: String!
uid: String!
user: User!
}
type Subscription {
packageVersionCreated(ownerId: ID = null, publishedBy: ID = null): PackageVersion!
userNotificationCreated(userId: ID!): UserNotificationCreated!
}
input UnlikePackageInput {
clientMutationId: String
packageId: ID!
}
type UnlikePackagePayload {
clientMutationId: String
package: Package!
}
input UnwatchPackageInput {
clientMutationId: String
packageId: ID!
}
type UnwatchPackagePayload {
clientMutationId: String
package: Package!
}
input UpdateNamespaceCollaboratorRoleInput {
clientMutationId: String
namespaceCollaboratorId: ID!
role: Role!
}
type UpdateNamespaceCollaboratorRolePayload {
clientMutationId: String
collaborator: NamespaceCollaborator!
}
input UpdateNamespaceInput {
# The namespace avatar
avatar: String
clientMutationId: String
# The namespace description
description: String
# The namespace display name
displayName: String
# The namespace slug name
name: String
namespaceId: ID!
}
type UpdateNamespacePayload {
clientMutationId: String
namespace: Namespace!
}
input UpdatePackageCollaboratorRoleInput {
clientMutationId: String
packageCollaboratorId: ID!
role: Role!
}
type UpdatePackageCollaboratorRolePayload {
clientMutationId: String
collaborator: PackageCollaborator!
}
input UpdatePackageInput {
clientMutationId: String
# The package icon
icon: String
packageId: ID!
}
type UpdatePackagePayload {
clientMutationId: String
package: Package!
}
input UpdateUserInfoInput {
# The user avatar
avatar: String
# The user bio
bio: String
clientMutationId: String
# The user full name
fullName: String
# The user Github (it can be the url, or the handle with or without the @)
github: String
# The user location
location: String
# The user Twitter (it can be the url, or the handle with or without the @)
twitter: String
# The user id
userId: ID
# The user website (it must be a valid url)
websiteUrl: String
}
type UpdateUserInfoPayload {
clientMutationId: String
user: User
}
type User implements Node & PackageOwner {
apiTokens(after: String = null, before: String = null, first: Int = null, last: Int = null): APITokenConnection
avatar(size: Int = 80): String!
bio: String
dateJoined: DateTime!
email: String!
firstName: String!
fullName: String!
githubUrl: String
globalName: String!
# The ID of the object
id: ID!
isEmailValidated: Boolean!
isViewer: Boolean!
lastName: String!
location: String
namespaceInvitesIncoming(after: String = null, before: String = null, first: Int = null, last: Int = null): NamespaceCollaboratorInviteConnection
namespaces(after: String = null, before: String = null, first: Int = null, last: Int = null): NamespaceConnection
notifications(after: String = null, before: String = null, first: Int = null, last: Int = null): UserNotificationConnection
packageInvitesIncoming(after: String = null, before: String = null, first: Int = null, last: Int = null): PackageCollaboratorInviteConnection
packageTransfersIncoming(after: String = null, before: String = null, first: Int = null, last: Int = null): PackageTransferRequestConnection
packageVersions(after: String = null, before: String = null, first: Int = null, last: Int = null): PackageVersionConnection
packages(after: String = null, before: String = null, collaborating: Boolean = null, first: Int = null, last: Int = null): PackageConnection
publicActivity(after: String = null, before: String = null, first: Int = null, last: Int = null): ActivityEventConnection!
twitterUrl: String
# Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.
username: String!
websiteUrl: String
}
type UserConnection {
# Contains the nodes in this connection.
edges: [UserEdge]!
# Pagination data for this connection.
pageInfo: PageInfo!
}
# A Relay edge containing a `User` and its cursor.
type UserEdge {
# A cursor for use in pagination
cursor: String!
# The item at the end of the edge
node: User
}
type UserNotification implements Node {
body: UserNotificationBody!
createdAt: DateTime!
icon: String
# The ID of the object
id: ID!
kind: UserNotificationKind
seenState: UserNotificationSeenState!
}
type UserNotificationBody {
ranges: [NodeBodyRange]!
text: String!
}
type UserNotificationConnection {
# Contains the nodes in this connection.
edges: [UserNotificationEdge]!
hasPendingNotifications: Boolean!
# Pagination data for this connection.
pageInfo: PageInfo!
}
type UserNotificationCreated {
notification: UserNotification
notificationDeletedId: ID
}
# A Relay edge containing a `UserNotification` and its cursor.
type UserNotificationEdge {
# A cursor for use in pagination
cursor: String!
# The item at the end of the edge
node: UserNotification
}
union UserNotificationKind = UserNotificationKindIncomingPackageInvite | UserNotificationKindIncomingPackageTransfer | UserNotificationKindPublishedPackageVersion
type UserNotificationKindIncomingPackageInvite {
packageInvite: PackageCollaboratorInvite!
}
type UserNotificationKindIncomingPackageTransfer {
packageTransferRequest: PackageTransferRequest!
}
type UserNotificationKindPublishedPackageVersion {
packageVersion: PackageVersion!
}
enum UserNotificationSeenState {
SEEN
SEEN_AND_READ
UNSEEN
}
input ValidateUserEmailInput {
challenge: String!
clientMutationId: String
# The user id
userId: ID
}
type ValidateUserEmailPayload {
clientMutationId: String
user: User
}
input ValidateUserPasswordInput {
clientMutationId: String
password: String!
}
type ValidateUserPasswordPayload {
clientMutationId: String
success: Boolean
}
input VerifyInput {
clientMutationId: String
token: String
}
type VerifyPayload {
clientMutationId: String
payload: GenericScalar!
}
input WatchPackageInput {
clientMutationId: String
packageId: ID!
}
type WatchPackagePayload {
clientMutationId: String
package: Package!
}