Class: Agent
@web3-storage/access.Agent
Agent
Usage:
import { Agent } from '@web3-storage/access/agent'
Constructors
constructor
• new Agent(data
, options?
)
Parameters
Name | Type | Description |
---|---|---|
data | AgentData | Agent data |
options? | AgentOptions |
Defined in
packages/access-client/src/agent.js:81
Properties
#data
• Private
#data: AgentData
Defined in
packages/access-client/src/agent.js:75
connection
• connection: ConnectionView
<Service
>
Defined in
packages/access-client/src/agent.js:83
url
• url: URL
Defined in
packages/access-client/src/agent.js:82
Accessors
issuer
• get
issuer(): Signer
<`did:${string}:${string}`, SigAlg
>
Returns
Signer
<`did:${string}:${string}`, SigAlg
>
Defined in
packages/access-client/src/agent.js:114
meta
• get
meta(): AgentMeta
Returns
AgentMeta
Defined in
packages/access-client/src/agent.js:118
spaces
• get
spaces(): Map
<`did:${string}:${string}`, SpaceMeta
>
Returns
Map
<`did:${string}:${string}`, SpaceMeta
>
Defined in
packages/access-client/src/agent.js:122
Methods
#delegations
▸ Private
#delegations(caps?
): { delegation
: Delegation
<Capabilities
> ; meta
: DelegationMeta
}[]
Query the delegations store for all the delegations matching the capabilities provided.
Parameters
Name | Type |
---|---|
caps? | Capability <Ability , `${string}:${string}`, any >[] |
Returns
{ delegation
: Delegation
<Capabilities
> ; meta
: DelegationMeta
}[]
Defined in
packages/access-client/src/agent.js:151
#waitForDelegation
▸ Private
#waitForDelegation(opts?
): Promise
<Delegation
<Capabilities
>>
Parameters
Name | Type |
---|---|
opts? | Object |
opts.signal | undefined | AbortSignal |
Returns
Promise
<Delegation
<Capabilities
>>
Defined in
packages/access-client/src/agent.js:487
addProof
▸ addProof(delegation
): Promise
<void
>
Add a proof to the agent store
A proof is a delegation with an audience matching agent DID
Parameters
Name | Type |
---|---|
delegation | Delegation <Capabilities > |
Returns
Promise
<void
>
Defined in
packages/access-client/src/agent.js:137
createSpace
▸ createSpace(name?
): Promise
<{ did
: `did🔑${string}` ; meta
: SpaceMeta
; proof
: Delegation
<[ToDeriveClaim
<{}>]> }>
Creates a space signer and a delegation to the agent
Parameters
Name | Type |
---|---|
name? | string |
Returns
Promise
<{ did
: `did🔑${string}` ; meta
: SpaceMeta
; proof
: Delegation
<[ToDeriveClaim
<{}>]> }>
Defined in
packages/access-client/src/agent.js:244
currentSpace
▸ currentSpace(): undefined
| `did:${string}:${string}`
Get current space DID
Returns
undefined
| `did:${string}:${string}`
Defined in
packages/access-client/src/agent.js:372
currentSpaceWithMeta
▸ currentSpaceWithMeta(): undefined
| { capabilities
: any
[] ; did
: `did:${string}:${string}` ; meta
: undefined
| SpaceMeta
; proofs
: Delegation
<Capabilities
>[] }
Get current space DID, proofs and abilities
Returns
undefined
| { capabilities
: any
[] ; did
: `did:${string}:${string}` ; meta
: undefined
| SpaceMeta
; proofs
: Delegation
<Capabilities
>[] }
Defined in
packages/access-client/src/agent.js:379
delegate
▸ delegate(options
): Promise
<Delegation
<Capabilities
>>
Parameters
Name | Type |
---|---|
options | DelegationOptions |
Returns
Promise
<Delegation
<Capabilities
>>
Defined in
packages/access-client/src/agent.js:521
delegations
▸ delegations(caps?
): Delegation
<Capabilities
>[]
Get delegations created by the agent for others.
Parameters
Name | Type | Description |
---|---|---|
caps? | Capability <Ability , `${string}:${string}`, any >[] | Capabilities to filter by. Empty or undefined caps with return all the delegations. |
Returns
Delegation
<Capabilities
>[]
Defined in
packages/access-client/src/agent.js:212
delegationsWithMeta
▸ delegationsWithMeta(caps?
): { delegation
: Delegation
<Capabilities
> ; meta
: DelegationMeta
}[]
Get delegations created by the agent for others and their metadata.
Parameters
Name | Type | Description |
---|---|---|
caps? | Capability <Ability , `${string}:${string}`, any >[] | Capabilities to filter by. Empty or undefined caps with return all the delegations. |
Returns
{ delegation
: Delegation
<Capabilities
> ; meta
: DelegationMeta
}[]
Defined in
packages/access-client/src/agent.js:227
did
▸ did(): `did:${string}:${string}`
Returns
`did:${string}:${string}`
Defined in
packages/access-client/src/agent.js:126
execute
▸ execute<C
, I
>(...invocations
): Await
<InferServiceInvocations
<I
, Service
>>
Execute invocations on the agent's connection
Example
const i1 = await agent.invoke(Space.info, {})
const i2 = await agent.invoke(Space.recover, {
nb: {
identity: 'mailto:[email protected]',
},
})
const results = await agent.execute2(i1, i2)
Type parameters
Name | Type |
---|---|
C | extends Capability <Ability , `${string}:${string}`, any , C > |
I | extends [ServiceInvocation <C , Service >, ...ServiceInvocation<C, Service>[]] |
Parameters
Name | Type |
---|---|
...invocations | I |
Returns
Await
<InferServiceInvocations
<I
, Service
>>
Defined in
packages/access-client/src/agent.js:610
getSpaceInfo
▸ getSpaceInfo(space?
): Promise
<Selectable
<SpaceTable
> & {}>
Get Space information from Access service
Parameters
Name | Type |
---|---|
space? | URI <"did:" > |
Returns
Promise
<Selectable
<SpaceTable
> & {}>
Defined in
packages/access-client/src/agent.js:687
importSpaceFromDelegation
▸ importSpaceFromDelegation(delegation
): Promise
<{ did
: `did:${string}:${string}` ; meta
: SpaceMeta
; proof
: Delegation
<[{}]> = del }>
Import a space from a '*' delegation
Parameters
Name | Type |
---|---|
delegation | Delegation <Capabilities > |
Returns
Promise
<{ did
: `did:${string}:${string}` ; meta
: SpaceMeta
; proof
: Delegation
<[{}]> = del }>
Defined in
packages/access-client/src/agent.js:277
invoke
▸ invoke<A
, R
, CAP
, C
>(cap
, options
): Promise
<IssuedInvocationView
<InferInvokedCapability
<CAP
>>>
Creates an invocation for the given capability with Agent's proofs, service, issuer and space.
Example
const recoverInvocation = await agent.invoke(Space.recover, {
nb: {
identity: 'mailto: [email protected]',
},
})
await recoverInvocation.execute(agent.connection)
// or
await agent.execute(recoverInvocation)
Type parameters
Name | Type |
---|---|
A | extends Ability |
R | extends `${string}:${string}` & Phantom <{}, R > |
CAP | extends TheCapabilityParser <CapabilityMatch <A , R , C >, CAP > |
C | extends Caveats = {} |
Parameters
Name | Type |
---|---|
cap | CAP |
options | InvokeOptions <A , R , CAP > |
Returns
Promise
<IssuedInvocationView
<InferInvokedCapability
<CAP
>>>
Defined in
packages/access-client/src/agent.js:637
invokeAndExecute
▸ invokeAndExecute<A
, R
, CAP
, C
>(cap
, options
): Promise
<InferServiceInvocationReturn
<InferInvokedCapability
<CAP
>, Service
>>
Invoke and execute the given capability on the Access service connection
await agent.invokeAndExecute(Space.recover, {
nb: {
identity: 'mailto: [email protected]',
},
})
// sugar for
const recoverInvocation = await agent.invoke(Space.recover, {
nb: {
identity: 'mailto: [email protected]',
},
})
await recoverInvocation.execute(agent.connection)
Type parameters
Name | Type |
---|---|
A | extends Ability |
R | extends `${string}:${string}` & Phantom <{}, R > |
CAP | extends TheCapabilityParser <CapabilityMatch <A , R , C >, CAP > |
C | extends Caveats = {} |
Parameters
Name | Type |
---|---|
cap | CAP |
options | InvokeOptions <A , R , CAP > |
Returns
Promise
<InferServiceInvocationReturn
<InferInvokedCapability
<CAP
>, Service
>>
Defined in
packages/access-client/src/agent.js:580
peer
▸ peer(channel
): Peer
Parameters
Name | Type |
---|---|
channel | Channel |
Returns
Peer
Defined in
packages/access-client/src/agent.js:678
proofs
▸ proofs(caps?
): Delegation
<Capabilities
>[]
Get all the proofs matching the capabilities
Proofs are delegations with an audience matching agent DID.
Parameters
Name | Type | Description |
---|---|---|
caps? | Capability <Ability , `${string}:${string}`, any >[] | Capabilities to filter by. Empty or undefined caps with return all the proofs. |
Returns
Delegation
<Capabilities
>[]
Defined in
packages/access-client/src/agent.js:195
recover
▸ recover(email
, opts?
): Promise
<Delegation
<[{}]>[]>
Parameters
Name | Type |
---|---|
email | string |
opts? | Object |
opts.signal | undefined | AbortSignal |
Returns
Promise
<Delegation
<[{}]>[]>
Defined in
packages/access-client/src/agent.js:310
registerSpace
▸ registerSpace(email
, opts?
): Promise
<void
>
Invokes voucher/redeem for the free tier, wait on the websocket for the voucher/claim and invokes it
It also adds a full space delegation to the service in the voucher/claim invocation to allow for recovery
Parameters
Name | Type |
---|---|
email | string |
opts? | Object |
opts.signal | undefined | AbortSignal |
Returns
Promise
<void
>
Defined in
packages/access-client/src/agent.js:416
removeExpiredDelegations
▸ removeExpiredDelegations(): Promise
<void
>
Clean up any expired delegations.
Returns
Promise
<void
>
Defined in
packages/access-client/src/agent.js:180
setCurrentSpace
▸ setCurrentSpace(space
): Promise
<`did:${string}:${string}`>
Sets the current selected space
Other methods will default to use the current space if no resource is defined
Parameters
Name | Type |
---|---|
space | `did:${string}:${string}` |
Returns
Promise
<`did:${string}:${string}`>
Defined in
packages/access-client/src/agent.js:352
create
▸ Static
create(init?
, options?
): Promise
<Agent
>
Create a new Agent instance, optionally with the passed initialization data.
Parameters
Name | Type |
---|---|
init? | Partial <AgentDataModel > |
options? | AgentOptions & AgentDataOptions |
Returns
Promise
<Agent
>
Defined in
packages/access-client/src/agent.js:98
from
▸ Static
from(raw
, options?
): Agent
Instantiate an Agent from pre-exported agent data.
Parameters
Name | Type |
---|---|
raw | AgentDataExport |
options? | AgentOptions & AgentDataOptions |