{"_id":"@cliqz-oss/dexie","_rev":"6-f0ab917f6d4b2f3b50b94c6d90f0e2a0","name":"@cliqz-oss/dexie","description":"A Minimalistic Wrapper for IndexedDB","dist-tags":{"latest":"2.0.4"},"versions":{"2.0.1-security-error-fix":{"name":"@cliqz-oss/dexie","version":"2.0.1-security-error-fix","description":"A Minimalistic Wrapper for IndexedDB","main":"dist/dexie.js","module":"dist/dexie.es.js","jsnext:main":"dist/dexie.es.js","typings":"dist/dexie.d.ts","jspm":{"format":"cjs","ignore":["src/"]},"repository":{"type":"git","url":"git+https://github.com/dfahlander/Dexie.js.git"},"keywords":["indexeddb","browser","database"],"author":{"name":"David Fahlander","email":"https://github.com/dfahlander"},"contributors":[{"name":"Christopher Hunt","email":"https://github.com/chrahunt"},{"name":"Nikolas Poniros","email":"https://github.com/nponiros"},{"name":"Anders Ekdahl","email":"https://github.com/andersekdahl"},{"name":"Yury Solovyov","email":"https://github.com/YurySolovyov"},{"name":"Martin Diphoorn","email":"https://github.com/martindiphoorn"}],"license":"Apache-2.0","bugs":{"url":"https://github.com/dfahlander/Dexie.js/issues"},"scripts":{"build":"just-build","watch":"just-build --watch","test":"npm run build && npm run test:typings && npm run test:unit","test:unit":"karma start test/karma.conf.js --single-run","test:typings":"tsc -p test/typings-test/","test:debug":"karma start test/karma.conf.js --log-level debug"},"just-build":{"default":["# Build all targets (es5, es6 and test) and minify the default es5 UMD module","just-build release test"],"dexie":["# Build es5 output","tsc --allowJs -t es5 -m es2015 --outDir tools/tmp/es5/src/ --sourceMap src/Dexie.js [--watch 'Compilation complete.']","rollup -c tools/build-configs/rollup.config.js","node tools/replaceVersionAndDate.js dist/dexie.js","eslint src"],"release":["# Build ES5 umd module as well as the es6 module.","just-build dexie","# Copy Dexie.d.ts to dist and replace version in it","node -e \"fs.writeFileSync('dist/dexie.d.ts', fs.readFileSync('src/Dexie.d.ts'))\"","node tools/replaceVersionAndDate.js dist/dexie.d.ts","# Minify the default ES5 UMD module","cd dist","uglifyjs dexie.js -m -c -o dexie.min.js --source-map dexie.min.js.map  --in-source-map dexie.js.map"],"dev":["# Build ES5 module and the tests","just-build dexie test"],"gzip":["# Optionally gzip to find the size of the minified & gzipped version","gzip dist/dexie.min.js -k -f -9"],"test":["# Build the test suite. Typescript transpiles all but not generators...","tsc --allowJs -t es5 -m es2015 --outDir tools/tmp/es5/test/ --rootDir . --sourceMap test/tests-all.js [--watch 'Compilation complete.']","rollup -c tools/build-configs/rollup.tests.config.js","# As a last step, let babel transpile the generators....","babel tools/tmp/es5/test/bundle.js -o test/bundle.js --plugins transform-regenerator --source-maps"]},"engines":{"node":">=6.0"},"homepage":"http://dexie.org","devDependencies":{"babel-cli":"^6.18.0","babel-plugin-transform-regenerator":"^6.21.0","eslint":"^3.7.1","just-build":"^0.9.16","karma":"^1.4.0","karma-browserstack-launcher":"^1.1.1","karma-chrome-launcher":"^2.0.0","karma-firefox-launcher":"^1.0.0","karma-mocha-reporter":"^2.2.2","karma-qunit":"^1.2.1","qunit":"^0.7.7","qunitjs":"^1.23.1","rollup":"^0.41.4","rollup-plugin-commonjs":"^7.0.0","rollup-plugin-node-resolve":"^2.0.0","rollup-plugin-sourcemaps":"^0.4.1","serve-static":"^1.11.1","typescript":"^2.1.4","uglify-js":"^2.7.5"},"dependencies":{},"gitHead":"c9b31e5ea5822cb275bd70cc07abf5019a14ba45","_id":"@cliqz-oss/dexie@2.0.1-security-error-fix","_npmVersion":"5.5.1","_nodeVersion":"7.4.0","_npmUser":{"name":"chrmod","email":"krzysztof.modras@gmail.com"},"dist":{"integrity":"sha512-wdqUrGfvVt3jwUcJI+YayBcbFzjof6KCTpi7WfYfejuW/i3IpCFori7xOJLRo/rEj+2V9+ra38lANDMBTwDtkg==","shasum":"7dab44da6297e29b10d6ed046add7fae45d3f468","tarball":"https://registry.npmjs.org/@cliqz-oss/dexie/-/dexie-2.0.1-security-error-fix.tgz","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBB4bhW7v5rYlzuOcKoglyYEpG8pEDCVWoEo79ZX6rKhAiEA2QXQCua9MRIe58Fgyvz7u/9HbTjT32HGbT1Ia/yAtCs="}]},"maintainers":[{"name":"chrmod","email":"krzysztof.modras@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dexie-2.0.1-security-error-fix.tgz_1512146725001_0.43997205421328545"},"directories":{}},"2.0.3":{"name":"@cliqz-oss/dexie","version":"2.0.3","description":"A Minimalistic Wrapper for IndexedDB","main":"dist/dexie.js","module":"dist/dexie.es.js","jsnext:main":"dist/dexie.es.js","typings":"dist/dexie.d.ts","jspm":{"format":"cjs","ignore":["src/"]},"repository":{"type":"git","url":"git+https://github.com/dfahlander/Dexie.js.git"},"keywords":["indexeddb","browser","database"],"author":{"name":"David Fahlander","email":"https://github.com/dfahlander"},"contributors":[{"name":"Christopher Hunt","email":"https://github.com/chrahunt"},{"name":"Nikolas Poniros","email":"https://github.com/nponiros"},{"name":"Anders Ekdahl","email":"https://github.com/andersekdahl"},{"name":"Yury Solovyov","email":"https://github.com/YurySolovyov"},{"name":"Martin Diphoorn","email":"https://github.com/martindiphoorn"}],"license":"Apache-2.0","bugs":{"url":"https://github.com/dfahlander/Dexie.js/issues"},"scripts":{"build":"just-build","watch":"just-build --watch","test":"npm run build && npm run test:typings && npm run test:unit","test:unit":"karma start test/karma.conf.js --single-run","test:typings":"tsc -p test/typings-test/","test:debug":"karma start test/karma.conf.js --log-level debug"},"just-build":{"default":["# Build all targets (es5, es6 and test) and minify the default es5 UMD module","just-build release test"],"dexie":["# Build es5 output","tsc --allowJs -t es5 -m es2015 --outDir tools/tmp/es5/src/ --sourceMap src/Dexie.js [--watch 'Compilation complete.']","rollup -c tools/build-configs/rollup.config.js","node tools/replaceVersionAndDate.js dist/dexie.js","eslint src"],"release":["# Build ES5 umd module as well as the es6 module.","just-build dexie","# Copy Dexie.d.ts to dist and replace version in it","node -e \"fs.writeFileSync('dist/dexie.d.ts', fs.readFileSync('src/Dexie.d.ts'))\"","node tools/replaceVersionAndDate.js dist/dexie.d.ts","# Minify the default ES5 UMD module","cd dist","uglifyjs dexie.js -m -c -o dexie.min.js --source-map dexie.min.js.map  --in-source-map dexie.js.map"],"dev":["# Build ES5 module and the tests","just-build dexie test"],"gzip":["# Optionally gzip to find the size of the minified & gzipped version","gzip dist/dexie.min.js -k -f -9"],"test":["# Build the test suite. Typescript transpiles all but not generators...","tsc --allowJs -t es5 -m es2015 --outDir tools/tmp/es5/test/ --rootDir . --sourceMap test/tests-all.js [--watch 'Compilation complete.']","rollup -c tools/build-configs/rollup.tests.config.js","# As a last step, let babel transpile the generators....","babel tools/tmp/es5/test/bundle.js -o test/bundle.js --plugins transform-regenerator --source-maps"]},"engines":{"node":">=6.0"},"homepage":"http://dexie.org","devDependencies":{"babel-cli":"^6.18.0","babel-plugin-transform-regenerator":"^6.21.0","eslint":"^3.7.1","just-build":"^0.9.16","karma":"^1.4.0","karma-browserstack-launcher":"^1.1.1","karma-chrome-launcher":"^2.0.0","karma-firefox-launcher":"^1.0.0","karma-mocha-reporter":"^2.2.2","karma-qunit":"^1.2.1","qunit":"^0.7.7","qunitjs":"^1.23.1","rollup":"^0.41.4","rollup-plugin-commonjs":"^7.0.0","rollup-plugin-node-resolve":"^2.0.0","rollup-plugin-sourcemaps":"^0.4.1","serve-static":"^1.11.1","typescript":"^2.1.4","uglify-js":"^2.7.5"},"dependencies":{},"gitHead":"b0fa0fac56a5e548139ebb937c17b556585d1160","_id":"@cliqz-oss/dexie@2.0.3","_npmVersion":"5.7.1","_nodeVersion":"8.9.4","_npmUser":{"name":"chrmod","email":"krzysztof.modras@gmail.com"},"dist":{"integrity":"sha512-XHXySmU+9aqlOQkxCE9e0huUrxHS5I63iZOeP2vORSRu4s5mCmVIUZNt0/AnxkMUMorHTWF0eHGnn+p0VAwOBg==","shasum":"b27ff74a9740ab6b6878aa9df3a0deef81638e16","tarball":"https://registry.npmjs.org/@cliqz-oss/dexie/-/dexie-2.0.3.tgz","fileCount":13,"unpackedSize":1521179,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHoY5pmHyHJ1Ta/oU/GjUKe1SP+oDf/pNELu3sh31gczAiBlQ6Cdle5sXrx5dHtW7KDI/6GDv8x1e71bjV+kGeqY6g=="}]},"maintainers":[{"name":"chrmod","email":"krzysztof.modras@gmail.com"},{"name":"gabormay","email":"cliqz-oss@cliqz.com"},{"name":"luciancor","email":"lucian@cliqz.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dexie_2.0.3_1520955618735_0.07255393907631347"},"_hasShrinkwrap":false},"2.0.4":{"name":"@cliqz-oss/dexie","version":"2.0.4","description":"A Minimalistic Wrapper for IndexedDB","main":"dist/dexie.js","module":"dist/dexie.es.js","jsnext:main":"dist/dexie.es.js","typings":"dist/dexie.d.ts","jspm":{"format":"cjs","ignore":["src/"]},"repository":{"type":"git","url":"git+https://github.com/dfahlander/Dexie.js.git"},"keywords":["indexeddb","browser","database"],"author":{"name":"David Fahlander","email":"https://github.com/dfahlander"},"contributors":[{"name":"Christopher Hunt","email":"https://github.com/chrahunt"},{"name":"Nikolas Poniros","email":"https://github.com/nponiros"},{"name":"Anders Ekdahl","email":"https://github.com/andersekdahl"},{"name":"Yury Solovyov","email":"https://github.com/YurySolovyov"},{"name":"Martin Diphoorn","email":"https://github.com/martindiphoorn"}],"license":"Apache-2.0","bugs":{"url":"https://github.com/dfahlander/Dexie.js/issues"},"scripts":{"build":"just-build","watch":"just-build --watch","test":"npm run build && npm run test:typings && npm run test:unit","test:unit":"karma start test/karma.conf.js --single-run","test:typings":"tsc -p test/typings-test/","test:debug":"karma start test/karma.conf.js --log-level debug"},"just-build":{"default":["# Build all targets (es5, es6 and test) and minify the default es5 UMD module","just-build release test"],"dexie":["# Build es5 output","tsc --allowJs -t es5 -m es2015 --outDir tools/tmp/es5/src/ --sourceMap src/Dexie.js [--watch 'Compilation complete.']","rollup -c tools/build-configs/rollup.config.js","node tools/replaceVersionAndDate.js dist/dexie.js","eslint src"],"release":["# Build ES5 umd module as well as the es6 module.","just-build dexie","# Copy Dexie.d.ts to dist and replace version in it","node -e \"fs.writeFileSync('dist/dexie.d.ts', fs.readFileSync('src/Dexie.d.ts'))\"","node tools/replaceVersionAndDate.js dist/dexie.d.ts","# Minify the default ES5 UMD module","cd dist","uglifyjs dexie.js -m -c -o dexie.min.js --source-map dexie.min.js.map  --in-source-map dexie.js.map"],"dev":["# Build ES5 module and the tests","just-build dexie test"],"gzip":["# Optionally gzip to find the size of the minified & gzipped version","gzip dist/dexie.min.js -k -f -9"],"test":["# Build the test suite. Typescript transpiles all but not generators...","tsc --allowJs -t es5 -m es2015 --outDir tools/tmp/es5/test/ --rootDir . --sourceMap test/tests-all.js [--watch 'Compilation complete.']","rollup -c tools/build-configs/rollup.tests.config.js","# As a last step, let babel transpile the generators....","babel tools/tmp/es5/test/bundle.js -o test/bundle.js --plugins transform-regenerator --source-maps"]},"engines":{"node":">=6.0"},"homepage":"http://dexie.org","devDependencies":{"babel-cli":"^6.18.0","babel-plugin-transform-regenerator":"^6.21.0","eslint":"^3.7.1","just-build":"^0.9.16","karma":"^1.4.0","karma-browserstack-launcher":"^1.1.1","karma-chrome-launcher":"^2.0.0","karma-firefox-launcher":"^1.0.0","karma-mocha-reporter":"^2.2.2","karma-qunit":"^1.2.1","qunit":"^0.7.7","qunitjs":"^1.23.1","rollup":"^0.41.4","rollup-plugin-commonjs":"^7.0.0","rollup-plugin-node-resolve":"^2.0.0","rollup-plugin-sourcemaps":"^0.4.1","serve-static":"^1.11.1","typescript":"^2.1.4","uglify-js":"^2.7.5"},"dependencies":{},"gitHead":"fbbd0e92c303f76ef05f8273e5c51c6a493f5a6a","_id":"@cliqz-oss/dexie@2.0.4","_npmVersion":"6.1.0","_nodeVersion":"9.11.2","_npmUser":{"name":"chrmod","email":"krzysztof.modras@gmail.com"},"dist":{"integrity":"sha512-HxMbBQfdy0CehThTFierXbRPI+PHDEucUUriCCzViAKbCWWQIlL6uZcyDaaPRMPWy45v78lezPB4457kfjS72g==","shasum":"0e710504e2b9198baa9b046abd3a82731b94d56e","tarball":"https://registry.npmjs.org/@cliqz-oss/dexie/-/dexie-2.0.4.tgz","fileCount":13,"unpackedSize":1522614,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbWF/jCRA9TVsSAnZWagAAfQAP/1NV77p3+qVkYFF2HGdX\nNfSPB5kNF86JtOIdku8kL98RXt2+d1+2oCLb8OSnGVT5Z/cNiyiQkz7yTsw0\n5EZBHAZ6d9Ie7CmqFpYj63N1MrdFmLlqI8vtOEc4PSk5Z9LwHzLrbCkz+Khg\nvtmHDBjPCO9gLuNPe2c24FoVduXODdV8LSkqRjP0EMZ6PxBfGeFRBhk0qmSJ\nqY38Trp4vXV8hqD+7d/WMuaFVkHsAyp0SsPd3IIO67WcuriCV6JfAgFJue+7\ngXwSLozxWOWTgd6QrnMJnBO8Bqq7ZMEmQvsjjj/+zevhUZEe1kPzkNM4pbGQ\nyBNsiEv+UiuOgYoQ2d1tXdxN+vQR6qRi7QZFyshT3GK80UNYQZ5Uw1JZkgir\nhZKApgBF67JREe4iBxAn04ZM3FzuG7Tsxd0HxAMv26TLatdRS8fhxJc/DjFy\nAX1m3GHky0kAizbl7uiZ5S4PT3jMoodlCWzncb/0uYRj5X7sm0Qldnv+BBDn\ncHlI28KUKdmhCP107KYKqslPis+0zH9zftgGJrGIINkZS8RG2mhgY1U5PB77\npjuCf+IK/dTPXX4+rB9H441q3f0j64CpPaoAPXUqVPPLnWnU9l/QjZV6X5WO\ngQNwdSA4CwbxBNHCMZXNCsgZJnS9SBHF6aG50nWkid4B7IYkSoMhLemHaZA2\nhGNL\r\n=DFD/\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIAbWg4R3ieFyXCnEPOUd+lWwlosy2EvsF2WWZyyiwe2sAiEA/JYWIubEyrKNyA4kSOHINz4s7FFDlPyC+GD4E2XvEd4="}]},"maintainers":[{"name":"chrmod","email":"krzysztof.modras@gmail.com"},{"name":"gabormay","email":"cliqz-oss@cliqz.com"},{"name":"luciancor","email":"lucian@cliqz.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dexie_2.0.4_1532518371785_0.8662479966330425"},"_hasShrinkwrap":false}},"readme":"Dexie.js\n========\n\n[![NPM Version][npm-image]][npm-url] [![Build Status](https://travis-ci.org/dfahlander/Dexie.js.svg?branch=master)](https://travis-ci.org/dfahlander/Dexie.js)[![Tested with Browserstack](http://dexie.org/assets/images/tested-with-browserstack2.png)](https://www.browserstack.com)\n\nDexie.js is a wrapper library for indexedDB - the standard database in the browser. http://dexie.org\n\n#### Why?\nDexie solves three main issues with the native IndexedDB API:\n\n 1. Ambivalent error handling\n 2. Poor queries\n 3. Code complexity\n\nDexie provides a neat database API with a well thought-through API design, robust error handling, extendability, change tracking awareness and extended KeyRange support (case insensitive search, set matches and OR operations).\n\n#### Hello World\n\n```html\n<!doctype html>\n<html>\n <head>\n  <script src=\"https://unpkg.com/dexie@latest/dist/dexie.js\"></script>\n  <script>\n   //\n   // Declare Database\n   //\n   var db = new Dexie(\"FriendDatabase\");\n   db.version(1).stores({\n     friends: \"++id,name,age\"\n   });\n\n   //\n   // Manipulate and Query Database\n   //\n   db.friends.add({name: \"Josephine\", age: 21}).then(function() {\n       return db.friends.where(\"age\").below(25).toArray();\n   }).then(function (youngFriends) {\n       alert (\"My young friends: \" + JSON.stringify(youngFriends));\n   }).catch(function (e) {\n       alert (\"Error: \" + (e.stack || e));\n   });\n  </script>\n </head>\n</html>\n```\nYes, it's that simple.\n\n[Tutorial](http://dexie.org/docs/Tutorial)\n\n[API Reference](http://dexie.org/docs/API-Reference)\n\n[Samples](http://dexie.org/docs/Samples)\n\n### Performance\n\nDexie has a kick-ass performance. It's [bulk methods](http://dexie.org/docs/Table/Table.bulkPut()) take advantage of a not well known feature in indexedDB that makes it possible to store stuff without listening to every onsuccess event. This speeds up the performance to a maximum.\n\n#### Supported operations\n```js\nabove(key): Collection;\naboveOrEqual(key): Collection;\nadd(item, key?): Promise;\nand(filter: (x) => boolean): Collection;\nanyOf(keys[]): Collection;\nanyOfIgnoreCase(keys: string[]): Collection;\nbelow(key): Collection;\nbelowOrEqual(key): Collection;\nbetween(lower, upper, includeLower?, includeUpper?): Collection;\nbulkAdd(items: Array): Promise;\nbulkDelete(keys: Array): Promise;\nbulkPut(items: Array): Promise;\nclear(): Promise;\ncount(): Promise;\ndelete(key): Promise;\ndistinct(): Collection;\neach(callback: (obj) => any): Promise;\neachKey(callback: (key) => any): Promise;\neachPrimaryKey(callback: (key) => any): Promise;\neachUniqueKey(callback: (key) => any): Promise;\nequals(key): Collection;\nequalsIgnoreCase(key): Collection;\nfilter(fn: (obj) => boolean): Collection;\nfirst(): Promise;\nget(key): Promise;\ninAnyRange(ranges): Collection;\nkeys(): Promise;\nlast(): Promise;\nlimit(n: number): Collection;\nmodify(changeCallback: (obj: T, ctx:{value: T}) => void): Promise;\nmodify(changes: { [keyPath: string]: any } ): Promise;\nnoneOf(keys: Array): Collection;\nnotEqual(key): Collection;\noffset(n: number): Collection;\nor(indexOrPrimayKey: string): WhereClause;\norderBy(index: string): Collection;\nprimaryKeys(): Promise;\nput(item: T, key?: Key): Promise;\nreverse(): Collection;\nsortBy(keyPath: string): Promise;\nstartsWith(key: string): Collection;\nstartsWithAnyOf(prefixes: string[]): Collection;\nstartsWithAnyOfIgnoreCase(prefixes: string[]): Collection;\nstartsWithIgnoreCase(key: string): Collection;\ntoArray(): Promise;\ntoCollection(): Collection;\nuniqueKeys(): Promise;\nuntil(filter: (value) => boolean, includeStopEntry?: boolean): Collection;\nupdate(key: Key, changes: { [keyPath: string]: any }): Promise;\n```\nThis is a mix of methods from [WhereClause](http://dexie.org/docs/WhereClause/WhereClause), [Table](http://dexie.org/docs/Table/Table) and [Collection](http://dexie.org/docs/Collection/Collection). Dive into the [API reference](http://dexie.org/docs/API-Reference) to see the details.\n\n#### Hello World (ES2016 / ES7)\n```js\nimport Dexie from 'dexie';\n\n//\n// Declare Database\n//\nvar db = new Dexie(\"FriendDatabase\");\ndb.version(1).stores({ friends: \"++id,name,age\" });\n\ndb.transaction('rw', db.friends, async() => {\n\n    // Make sure we have something in DB:\n    if ((await db.friends.where('name').equals('Josephine').count()) === 0) {\n        let id = await db.friends.add({name: \"Josephine\", age: 21});\n        alert (`Addded friend with id ${id}`);\n    }\n\n    // Query:\n    let youngFriends = await db.friends.where(\"age\").below(25).toArray();\n\n    // Show result:\n    alert (\"My young friends: \" + JSON.stringify(youngFriends));\n\n}).catch(e => {\n    alert(e.stack || e);\n});\n\n```\n\n#### Hello World (Typescript)\n\n*This sample requires using Dexie v2*\n\n```js\nimport Dexie from 'dexie';\n\ninterface IFriend {\n    id?: number;\n    name?: string;\n    age?: number;\n}\n\n//\n// Declare Database\n//\nclass FriendDatabase extends Dexie {\n    friends: Dexie.Table<IFriend,number>;\n\n    constructor() {\n        super(\"FriendDatabase\");\n        this.version(1).stores({\n            friends: \"++id,name,age\"\n        });\n    }\n}\n\nvar db = new FriendDatabase();\n\ndb.transaction('rw', db.friends, async() => {\n\n    // Make sure we have something in DB:\n    if ((await db.friends.where('name').equals('Josephine').count()) === 0) {\n        let id = await db.friends.add({name: \"Josephine\", age: 21});\n        alert (`Addded friend with id ${id}`);\n    }\n\n    // Query:\n    let youngFriends = await db.friends.where(\"age\").below(25).toArray();\n\n    // Show result:\n    alert (\"My young friends: \" + JSON.stringify(youngFriends));\n\n}).catch(e => {\n    alert(e.stack || e);\n});\n```\n\nSamples\n-------\nhttp://dexie.org/docs/Samples\n\nhttps://github.com/dfahlander/Dexie.js/tree/master/samples\n\nKnowledge Base\n-----\n[http://dexie.org/docs/Questions-and-Answers](http://dexie.org/docs/Questions-and-Answers)\n\nWebsite\n-------\n[http://dexie.org](http://dexie.org)\n\nInstall over npm\n----------------\n```\nnpm install dexie\n```\n\n\nDownload\n--------\nFor those who don't like package managers, here's the download links:\n\nhttps://unpkg.com/dexie@latest/dist/dexie.js\n\nhttps://unpkg.com/dexie@latest/dist/dexie.js.map\n\nhttps://unpkg.com/dexie@latest/dist/dexie.d.ts\n\n\nContributing\n============\nHere is a little cheat-sheet for how to symlink your app's `node_modules/dexie` to a place where you can edit the source, version control your changes and create pull requests back to Dexie. Assuming you've already ran `npm install dexie --save` for the app your are developing.\n\n1. Fork Dexie.js from the web gui on github\n2. Clone your fork locally by launching a shell/command window and cd to a neutral place (like `~repos/`, `c:\\repos` or whatever)\n3. Run the following commands:\n\n    ```\n    git clone https://github.com/YOUR-USERNAME/Dexie.js.git dexie\n    cd dexie\n    npm install\n    npm run build\n    npm link\n    ```\n3. cd to your app directory and write:\n    ```\n    npm link dexie\n    ```\n\nYour app's `node_modules/dexie/` is now sym-linked to the Dexie.js clone on your hard drive so any change you do there will propagate to your app. Build dexie.js using `npm run build` or `npm run watch`. The latter will react on any source file change and rebuild the dist files.\n\nThat's it. Now you're up and running to test and commit changes to files under dexie/src/* or dexie/test/* and the changes will instantly affect the app you are developing.\n\nPull requests are more than welcome. Some advices are:\n\n* Run npm test before making a pull request.\n* If you find an issue, a unit test that reproduces it is lovely ;). If you don't know where to put it, put it in `test/tests-misc.js`. We use qunit. Just look at existing tests in `tests-misc.js` to see how they should be written. Tests are transpiled in the build script so you can use ES6 if you like.\n\nBuild\n-----\n```\nnpm install\nnpm run build\n```\n\nTest\n----\n```\nnpm test\n```\n\nWatch\n-----\n```\nnpm run watch\n```\n\n\n[npm-image]: https://img.shields.io/npm/v/dexie.svg?style=flat\n[npm-url]: https://npmjs.org/package/dexie\n","maintainers":[{"email":"krzysztof.modras@gmail.com","name":"chrmod"}],"time":{"modified":"2022-04-04T23:24:29.684Z","created":"2017-12-01T16:45:26.336Z","2.0.1-security-error-fix":"2017-12-01T16:45:26.336Z","2.0.3":"2018-03-13T15:40:18.897Z","2.0.4":"2018-07-25T11:32:51.905Z"},"homepage":"http://dexie.org","keywords":["indexeddb","browser","database"],"repository":{"type":"git","url":"git+https://github.com/dfahlander/Dexie.js.git"},"contributors":[{"name":"Christopher Hunt","email":"https://github.com/chrahunt"},{"name":"Nikolas Poniros","email":"https://github.com/nponiros"},{"name":"Anders Ekdahl","email":"https://github.com/andersekdahl"},{"name":"Yury Solovyov","email":"https://github.com/YurySolovyov"},{"name":"Martin Diphoorn","email":"https://github.com/martindiphoorn"}],"author":{"name":"David Fahlander","email":"https://github.com/dfahlander"},"bugs":{"url":"https://github.com/dfahlander/Dexie.js/issues"},"license":"Apache-2.0","readmeFilename":"README.md"}