Documentation
    Preparing search index...

    Module iso-ucan - v0.4.0

    iso-ucan NPM Version License iso-ucan

    Isomorphic UCAN

    pnpm install iso-ucan
    
    import { Capability } from 'iso-ucan/capability'
    import { Store } from 'iso-ucan/store'
    import { MemoryDriver } from 'iso-kv/drivers/memory'
    import { EdDSASigner } from 'iso-signatures/signers/eddsa.js'
    import { z } from 'zod'

    const store = new Store(new MemoryDriver())

    const AccountCreateCap = Capability.from({
    schema: z.object({
    type: z.string(),
    properties: z
    .object({
    name: z.string(),
    })
    .strict(),
    }),
    cmd: '/account/create',
    })

    const AccountCap = Capability.from({
    schema: z.never(),
    cmd: '/account',
    })

    const owner = await EdDSASigner.generate()
    const bob = await EdDSASigner.generate()
    const invoker = await EdDSASigner.generate()

    const nowInSeconds = Math.floor(Date.now() / 1000)

    const ownerDelegation = await AccountCap.delegate({
    iss: owner,
    aud: bob,
    sub: owner,
    pol: [],
    exp: nowInSeconds + 1000,
    })

    await store.set(ownerDelegation)

    const bobDelegation = await AccountCap.delegate({
    iss: bob,
    aud: invoker,
    sub: owner,
    pol: [],
    exp: nowInSeconds + 1000,
    })

    await store.set(bobDelegation)

    const invocation = await AccountCreateCap.invoke({
    iss: invoker,
    sub: owner,
    args: {
    type: 'account',
    properties: {
    name: 'John Doe',
    },
    },
    store,
    exp: nowInSeconds + 1000,
    })

    MIT © Hugo Dias

    Modules

    capability
    client
    delegation
    envelope
    invocation
    policy
    server
    store
    utils
    varsig