
Research
Malicious npm Packages Impersonate Flashbots SDKs, Targeting Ethereum Wallet Credentials
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
apollo-link-pouch
Advanced tools
Provides an Apollo Link to use GraphQL with a local PouchDB.
Inspired by apollo-link-firebase.
This is not ready for production! Use at your own risk. Feel free to make pull requests for any suggestions - I am still rather inexperienced with Apollo and could use the help.
npm install apollo-link-pouchdb
import PouchDB from 'pouchdb'
import { createPouchLink } from 'apollo-link-pouch'
const client = new ApolloClient({
link: createPouchLink({
database: new PouchDB('my-database')
}),
cache: new InMemoryCache()
})
get
const query = gql`
query getPerson {
person @pdbGet(id: "1") {
_id
_rev
name
}
}
`
bulkGet
const query = gql`
query bulkGet {
people @pdbBulkGet(docs: [{ id: "1" }, { id: "2" }]) {
results {
docs {
ok {
_id
_rev
name
}
}
}
}
}
`
put
const mutation = gql`
fragment PersonInput on pouchdb {
_id: String
_rev: string
name: String
}
mutation putDoc($input: PersonInput!) {
updatePerson(input: $input) @pdbPut {
ok
_rev # for consistency with input, "rev" from db.put response is returned as "_rev"
name
}
}
`
@pdbPut
also takes an options argument for put options
post
const mutation = gql`
fragment PersonInput on pouchdb {
_id: String
_rev: string
name: String
}
mutation postDoc($input: PersonInput!) {
createPerson(input: $input) @pdbPost {
_id
_rev
name
}
}
`
@pdbPost
also takes an options argument for post options
bulkDocs
const mutation = gql`
fragment PersonInput on pouchdb {
_id: String
_rev: string
name: String
}
mutation postDoc($input: [PersonInput]!) {
savePeople(input: $input) @pdbBulkDocs {
_id
_rev
name
}
}
`
@pdbBulkDocs
also takes an options argument for bulkDocs options
allDocs
const query = gql`
query allDocs {
people @pdbAllDocs(keys: ["1", "2"], include_docs: true) {
rows {
id
rev
doc
value
}
total_rows
offset
}
}
`
query
const query = gql`
query queryPeople {
people @pdbQuery(view: "index", include_docs: true) {
rows {
doc {
name
}
}
total_rows
}
}
`
find
supported via @pdbPlugin
subscriptions
multiple databases
@db
directive or additional db
parameter to all queries/mutations?plugins (queries only for now)
using pouchdb-quick-search
PouchDB.plugin(require('pouchdb-quick-search'))
const query = gql`
query searchPlugin {
search @pdbPlugin @search(query: "bob", fields: ["name"]) {
rows {
id
score
}
total_rows
}
}
`
FAQs
Use GraphQL with PouchDB and Apollo
The npm package apollo-link-pouch receives a total of 1 weekly downloads. As such, apollo-link-pouch popularity was classified as not popular.
We found that apollo-link-pouch demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
Security News
Ruby maintainers from Bundler and rbenv teams are building rv to bring Python uv's speed and unified tooling approach to Ruby development.
Security News
Following last week’s supply chain attack, Nx published findings on the GitHub Actions exploit and moved npm publishing to Trusted Publishers.