Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
/*jshint expr:true */
'use strict';
var Pouch = require('pouchdb');
// Use mem adapter as level down adapter has problems running on virtualbox:
// https://github.com/Level/levelup/issues/222
Pouch.plugin(require('pouchdb-adapter-memory'));
var deltaPlugin = require('../');
Pouch.plugin(deltaPlugin);
var chai = require('chai');
chai.use(require("chai-as-promised"));
chai.should(); // var should = chai.should();
var Promise = require('bluebird');
var dbs;
if (process.browser) {
dbs = 'testdb' + Math.random() +
',http://localhost:5984/testdb' + Math.round(Math.random() * 100000);
} else {
dbs = process.env.TEST_DB ? process.env.TEST_DB : 'testdb';
doc.tags.forEach(emit)
}
}.toString(),
reduce: '_count'
},
dateSort: {
map: function (doc) {
if (/^bookmark/.test(doc._id) && doc.createdAt) {
emit(doc.createdAt)
}
}.toString()
}
}
}
PouchDB.plugin({
setup: async function () {
// add mango indexes
await this.createIndex({
index: {
// TODO partial filter selector, once implemented: https://github.com/pouchdb/pouchdb/issues/7467
fields: ['_id', 'tags']
},
ddoc: 'tag-search'
})
// add design documents
try {
await this.put(designTags)
} catch (error) {
// update ddoc if it differs from the one found.
if (error.name === 'conflict') {
const ddoc = await this.get(designTags._id)
import { UserService } from "src/app/shared/_services/user.service";
import PouchDB from 'pouchdb'
PouchDB.defaults({auto_compaction: true, revs_limit: 1})
export const updates = [
{
requiresViewsUpdate: true,
script: (userDb) => {
return new Promise(resolve => {
console.log(`This update will never run :-).`);
resolve();
})
}
},
// Transform array style input.value from ['foo', 'bar'] to [{name: 'foo', value: 'on'}, {name: 'bar', value: 'on'}]
{
requiresViewsUpdate: false,
script: (userDb) => {
return new Promise(async resolve => {
async function go(params) {
const DB = PouchDB.defaults(params.dbDefaults)
const db = new DB(params.dbName)
const docs = await getData(db, params.formId, params.skip, params.limit)
if (docs.length === 0) {
process.stderr.write('No docs in that range')
return process.exit()
}
// Order each datum's properties by the headers for consistent columns.
const rows = docs.map(doc => params.headers.map(header => (doc[header]) ? doc[header] : ''))
const output = new CSV(rows).encode()
process.stdout.write(output)
process.exit()
}
go(params)
async transferData() {
if (this.window.isCordovaApp) {
PouchDB.plugin(window['PouchReplicationStream'].plugin);
PouchDB.adapter('writableStream', window['PouchReplicationStream'].adapters.writableStream);
let dumpedString = '';
const stream = new window['Memorystream']();
stream.on('data', function(chunk) {
dumpedString += chunk.toString();
});
const username = this.userService.getCurrentUser();
const source = new PouchDB(username);
source.dump(stream).then(function () {
// console.log('Yay, I have a dumpedString: ' + dumpedString);
window['TangyP2PPlugin'].transferData(dumpedString, function(message) {
const objectConstructor = ({}).constructor;
if (message.constructor === objectConstructor) {
const messageStr = message.message;
document.querySelector('#p2p-results').innerHTML += messageStr + '<br>';
} else {
console.log('Message: ' + message);
window['TangyP2PPlugin'].listenForTransfer(null, (message) => {
const objectConstructor = ({}).constructor;
// test if it's an object:
if (message.constructor === objectConstructor) {
const messageStr = message.message;
// TODO: JSONObject is available if we need it.
// const object = message.object;
if (message.messageType === 'payload') {
PouchDB.plugin(window['PouchReplicationStream'].plugin);
PouchDB.adapter('writableStream', window['PouchReplicationStream'].adapters.writableStream);
const writeStream = new window['Memorystream'];
writeStream.end(messageStr);
const username = this.userService.getCurrentUser();
const dest = new PouchDB(username);
const pluginMessage = 'I loaded data from the peer device.';
dest.load(writeStream).then(function () {
document.querySelector('#p2p-results').innerHTML += pluginMessage + '<br>';
}).catch(function (err) {
message = 'oh no an error: ' + err;
console.log(message);
document.querySelector('#p2p-results').innerHTML += message + '<br>';
});
} else {
console.log('Message: ' + messageStr);
document.querySelector('#p2p-results').innerHTML += messageStr + '<br>';
}
var domready = require('domready')
var style = require('beagle-style')
var React = require('react')
var App = React.createFactory(require('./app.jsx'))
var linkHandler = require('./linkhandler.js')
var sampleData = require('../lib/sampleData.js')
var url = require('./lib/url-checks')
var PDFJS = require('beagle-pdf')
var sidebarOpen = false
var sidebarId = 'beagle-sidebar'
// var level = require('level-browserify')
var PouchDB = require('pouchdb')
var db = new PouchDB('test')
PouchDB.sync('test', 'http://54.164.111.240:5984/test')
// DEV: This is how you clear the database
// db.destroy().then(function () {
// console.log('Done')
// }).catch(function (err) {
// console.log('err', err)
// })
// console.log('Main.js is being called from inside bundle.min.js')
function getModules (requestModules, cb) {
// Get the current list of used modules
chrome.storage.sync.get('modules', function (result) {
var options = {}
// If the extension has specified new modules to load
router.use(function(req, res, next) {
console.log('cms-router Time:', Date.now());
next();
});
//Fix for cloud foundry
if (process.env.VCAP_APP_PORT) {
config.port = process.env.VCAP_APP_PORT;
}
// TODO: Using pouchdb
var PouchDB = require('pouchdb');
PouchDB.debug('*');
var db = new PouchDB(config.db.local);
var db2 = new PouchDB(config.db.remote);
PouchDB.sync(db, db2);
app.locals.db = db;
console.log('Connected to', config.db.local);
// TODO:
/*
router.route('/users/:user_id')
.all(function(req, res, next) {
// runs for all HTTP verbs first
// think of it as route specific middleware!
next();
})
.get(function(req, res, next) {
res.json(req.user);
})
this.db.put({ _id: this.docId }).then((result) => {
this.doc._rev = result.rev
if(this.onLoad) this.onLoad(null)
})
} else {
console.log(error)
}
})
// Set up replication subscriptions
let options = { live: true }
PouchDB.replicate(this.db, this.remote, options)
.on("error", console.log)
PouchDB.replicate(this.remote, this.db, options)
.on("change", (info) => {
console.log("Remote change")
this.db.get(this.doc._id).then((doc) => {
this.doc = doc
if(this.onChange) this.onChange(doc.state)
})
})
.on("error", console.log)
}
var PouchDB = require('pouchdb');
// Expose PouchDB on the window object to use the
// PouchDB Chrome debugger extension http://bit.ly/1L6dArH
window.PouchDB = PouchDB;
var db = new PouchDB('timely-news');
PouchDB.plugin(require('pouchdb-find'));
PouchDB.replicate('timely-news', 'http://localhost:4984/db', {
live: true
});
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('./service-worker.js', {scope: './'});
navigator.serviceWorker.ready.then(function (serviceWorkerRegistration) {
serviceWorkerRegistration.pushManager.subscribe({userVisibleOnly: true})
.then(function (pushSubscription) {
console.log('The reg ID is :: ', pushSubscription.subscriptionId);
db.createIndex({index: {fields: ['type']}})
.then(function() {
db.find({
selector: {type: 'profile'}
}).then(function (res) {
console.log(res);