@fission-suite/client
    TypeScript icon, indicating that this package has built-in type declarations

    2.0.5 • Public • Published

    FISSION IPFS Web API

    NPM License Build Status Maintainability Built by FISSION Discord

    A TypeScript client library for access accessing the FISSION Web API.

    Installing

    $ npm install --save @fission-suite/client
    

    API

    Utility

    getContentURL

    Returns the url to access the given CID on our service.

    Params:

    • cid: CID (string) required
    • baseURL: string defaults to fission web-api at https://runfission.com

    Example:

    import { getContentURL } from '@fission-suite/client'
    const formattedURL = getContentURL("QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u")
    // "https://runfission.com/ipfs/QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u"

    Unauthenticated

    register

    Registers a user for the Fission service.

    Params:

    • username: string required
    • password: string required
    • email: string

    Example:

    import { register } from '@fission-suite/client'
    await register("username", "password", "email@email.com")

    peers

    Gets the address for all IPFS nodes in the Fission Network.

    Example:

    import { peers } from '@fission-suite/client'
    await peers()
    // [
    //   '/ip4/3.215.160.238/tcp/4001/ipfs/QmVLEz2SxoNiFnuyLpbXsH6SvjPTrHNMU88vCQZyhgBzgw',
    //   '/ip4/184.68.124.102/tcp/64417/ipfs/QmQ2Jo91xQyVjhw1kmpk9eeHj6A4W1u5BYdh5xjfC5h11g'
    // ]

    content

    Returns content at given CID.

    Params:

    • cid: CID (string) required
    • baseURL: string defaults to fission web-api at https://runfission.com

    Example:

    import { content } from '@fission-suite/client'
    const helloWorld = await content("QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u")
    // "Hello World"

    Authenticated

    These methods require a username/password from the fission webserver. These can be provisioned through our Fission CLI.

    verify

    Verifies the given credentialls.

    Params:

    • auth: Auth ({username: string, password: string}) required
    • baseURL: string defaults to fission web-api at https://runfission.com

    Example:

    import { verify } from '@fission-suite/client'
    await verify({ username: "username", password: "password" })
    // true

    resetPassword

    Verifies the given credentialls.

    Params:

    • auth: Auth ({username: string, password: string}) required
    • baseURL: string defaults to fission web-api at https://runfission.com

    Example:

    import { resetPassword } from '@fission-suite/client'
    await resetPassword("newPassword", { username: "username", password: "password" })
    // "newPassword"

    add

    Adds content to IPFS and returns the CID of that content.

    Params:

    • content: Content (json, string, file-stream) required
    • auth: Auth ({username: string, password: string}) required
    • baseURL: string defaults to fission web-api at https://runfission.com
    • name: string optional name for your file, defaults to undefined

    Example:

    import { add } from '@fission-suite/client'
    const auth = { username: "username", password: "password" }
    const content = {
      key1: 123,
      key2: 456
    }
    const cid = await add(content, auth)
    // "QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u"

    remove

    Unpins content from Fission server and disassociates CID with user account.

    Params:

    • cid: CID (string) required
    • auth: Auth ({username: string, password: string}) required
    • baseURL: string defaults to fission web-api at https://runfission.com

    Example:

    import { remove } from '@fission-suite/client'
    const auth = { username: "username", password: "password" }
    await remove("QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u", auth)
    // undefined

    pin

    Pins content to Fission server.

    Params:

    • cid: CID (string) required
    • auth: Auth ({username: string, password: string}) required
    • baseURL: string defaults to fission web-api at https://runfission.com

    Example:

    import { pin } from '@fission-suite/client'
    const auth = { username: "username", password: "password" }
    await pin("QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u", auth)
    // undefined

    cids

    Gets all CIDs associated with the given user.

    Params:

    • auth: Auth ({username: string, password: string}) required
    • baseURL: string defaults to fission web-api at https://runfission.com

    Example:

    import { cids } from '@fission-suite/client'
    const auth = { username: "username", password: "password" }
    await cids(auth)
    // [
    //   "QmYwXpFw1QGAWxEnQWFwLuVpdbupaBcEz2DTTRRRsCt9WR",
    //   "QmYp9d8BC2HhDCUVH7JEUZAd6Hbxrc5wBRfUs8TqazJJP9",
    // ]

    updateDNS

    Updates the users associated subdomain to point at the given CID

    Params:

    • cid: CID (string) required
    • auth: Auth ({username: string, password: string}) required
    • baseURL: string defaults to fission web-api at https://runfission.com

    Example:

    import { updateDNS } from '@fission-suite/client'
    const auth = { username: "username", password: "password" }
    await updateDNS("QmYwXpFw1QGAWxEnQWFwLuVpdbupaBcEz2DTTRRRsCt9WR", auth)
    // "username.runfission.com"

    Fission objects

    For repeated calls, instantiate a fission object:

    import Fission, { FissionUser } from '@fission-suite/client'
    
    const fission = new Fission("https://someurl.com")
    const helloWorld = await fission.content("QmWATWQ7fVPP2EFGu71UkfnqhYXDYH566qy47CnJDgvs8u")
    
    const fissionUser = fission.login("username", "password")
    // Alternately:
    // const fissionUser = new FissionUser("username", "password", "https://someurl.com")
    
    const cid =  await fissionUser.add("Check this out!")
    await fissionUser.pin(cid)
    
    const cids = fissionUser.cids()

    Testing

    • Run npm i
    • Run tests with: npm run test
    • Or achieve developer zen with npm run test:watch

    Keywords

    none

    Install

    npm i @fission-suite/client

    DownloadsWeekly Downloads

    18

    Version

    2.0.5

    License

    Apache-2.0

    Unpacked Size

    69.1 kB

    Total Files

    14

    Last publish

    Collaborators

    • appcypher
    • icidasset
    • quinnwilton
    • bgins-fission
    • expede
    • walkah
    • philipp-fission