New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

sqlite-worker

Package Overview
Dependencies
Maintainers
1
Versions
32
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sqlite-worker - npm Package Compare versions

Comparing version 0.4.11 to 0.5.0

cjs/tables-init.js

2

dist/sw.js

@@ -1,1 +0,1 @@

self.sqliteWorker=function(e){"use strict";const t=new WeakMap,n=(e,...n)=>{const{t:o,v:s}=((e,t)=>{const n=[e[0]],o=[];for(let s=0,c=0,l=0,{length:a}=t;c<a;c++)t[c]instanceof r?n[s]+=t[c].v+e[c+1]:(o[l++]=c,n[++s]=e[c+1]);return{t:n,v:o}})(e,n),c=t.get(e)||t.set(e,{}).get(e);return(c[o]||(c[o]=[o])).concat(s.map((e=>n[e])))};function r(e){this.v=e}const o=(e,t)=>(r,...o)=>new Promise(((c,a)=>{r.some(l)&&a(s(new Error("SQLITE_ERROR: SQL injection hazard")));const[i,...u]=n(r,...o);e[t](i.join("?"),u,((e,t)=>{e?a(e):c(t)}))})),s=e=>(e.code="SQLITE_ERROR",e),c=(e,...t)=>new r(function(e){for(var t=e[0],n=1,r=arguments.length;n<r;n++)t+=arguments[n]+e[n];return t}(e,...t)),l=e=>e.includes("?");function a(e){return{all:o(e,"all"),get:o(e,"get"),query:o(e,"run"),raw:c}}const{assign:i}=Object,u="function"==typeof importScripts,d=u?".":(document.currentScript&&document.currentScript.src||new URL("tmp.js",document.baseURI).href).replace(/\/[^/]*$/,""),m=t=>new Promise(((n,r)=>{const o=()=>{const e=self.module.exports;delete self.exports,self.module=void 0,n(e)};if(self.exports={},self.module={exports:e},u)importScripts(t),o();else{const{head:e}=document;i(e.appendChild(document.createElement("script")),{onload(){e.removeChild(this),o()},onerror:r,src:t})}})),p="sqlite",f="buffer",h=(e,t=1)=>new Promise(((n,r)=>{i(indexedDB.open(e,t),{onupgradeneeded({target:{result:e,transaction:t}}){e.objectStoreNames.contains(p)||e.createObjectStore(p).createIndex(f,f,{unique:!0}),i(t,{oncomplete(){n(e)}})},onsuccess({target:{result:e}}){n(e)},onerror:r})}));function w({columns:e,values:t}){for(let{length:n}=t,r=0;r<n;r++){const n=t[r],o={};for(let{length:t}=e,r=0;r<t;r++)o[e[r]]=n[r];this.push(o)}}return(e={})=>new Promise(((t,n)=>{const r=e.dist||d;m(r+"/sql-wasm.js").then((({default:o})=>{Promise.all([h(e.name||"sqlite-worker"),o({locateFile:e=>r+"/"+e})]).then((([r,{Database:o}])=>{const s=e=>r.transaction([p],e).objectStore(p);i(s("readonly").get(f),{onsuccess(){let n=Promise.resolve();const{result:r}=this,c=new o(r||e.database||new Uint8Array(0)),l=()=>{n=n.then((()=>new Promise(((t,n)=>{const r=c.export();i(s("readwrite").put(r,f).transaction,{oncomplete(){t(),e.update&&e.update(r)},onabort:n,onerror:n})}))))};r||l();const{all:u,get:d,query:m,raw:p}=a({all(e,t,n){try{const r=c.exec(e,t),o=[];r.forEach(w,o),n(null,o)}catch(e){n(e)}},get(e,t,n){try{const r=c.exec(e+" LIMIT 1",t),o=[];r.forEach(w,o),n(null,o.shift()||null)}catch(e){n(e)}},run(e,t,n){try{n(null,c.run(e,t))}catch(e){n(e)}}});let h=0;t({all:u,get:d,raw:p,query(t){return/\b(?:INSERT|DELETE|UPDATE)\b/i.test(t[0])&&(clearTimeout(h),h=setTimeout(l,e.timeout||250)),m.apply(this,arguments)}})},onerror:n})}),n)}))}))}({});
self.sqliteWorker=function(e){"use strict";const t=new WeakMap,n=(e,...n)=>{const{t:r,v:s}=((e,t)=>{const n=[e[0]],r=[];for(let s=0,c=0,l=0,{length:a}=t;c<a;c++)t[c]instanceof o?n[s]+=t[c].v+e[c+1]:(r[l++]=c,n[++s]=e[c+1]);return{t:n,v:r}})(e,n),c=t.get(e)||t.set(e,{}).get(e);return(c[r]||(c[r]=[r])).concat(s.map((e=>n[e])))};function o(e){this.v=e}const r=(e,t)=>(o,...r)=>new Promise(((c,a)=>{o.some(l)&&a(s(new Error("SQLITE_ERROR: SQL injection hazard")));const[i,...u]=n(o,...r);e[t](i.join("?"),u,((e,t)=>{e?a(e):c(t)}))})),s=e=>(e.code="SQLITE_ERROR",e),c=(e,...t)=>new o(function(e){for(var t=e[0],n=1,o=arguments.length;n<o;n++)t+=arguments[n]+e[n];return t}(e,...t)),l=e=>e.includes("?");function a(e){return{all:r(e,"all"),get:r(e,"get"),query:r(e,"run"),raw:c}}const{assign:i}=Object,u="function"==typeof importScripts,d=t=>new Promise(((n,o)=>{const r=()=>{const e=self.module.exports;delete self.exports,self.module=void 0,n(e)};if(self.exports={},self.module={exports:e},u)importScripts(t),r();else{const{head:e}=document;i(e.appendChild(document.createElement("script")),{onload(){e.removeChild(this),r()},onerror:o,src:t})}})),m="sqlite",f="buffer",p=(e,t=1)=>new Promise(((n,o)=>{i(indexedDB.open(e,t),{onupgradeneeded({target:{result:e,transaction:t}}){e.objectStoreNames.contains(m)||e.createObjectStore(m).createIndex(f,f,{unique:!0}),i(t,{oncomplete(){n(e)}})},onsuccess({target:{result:e}}){n(e)},onerror:o})}));function h({columns:e,values:t}){for(let{length:n}=t,o=0;o<n;o++){const n=t[o],r={};for(let{length:t}=e,o=0;o<t;o++)r[e[o]]=n[o];this.push(r)}}return(e={})=>new Promise(((t,n)=>{const o=e.dist||".";d(o+"/sql-wasm.js").then((({default:r})=>{Promise.all([p(e.name||"sqlite-worker"),r({locateFile:e=>o+"/"+e})]).then((([o,{Database:r}])=>{const s=e=>o.transaction([m],e).objectStore(m);i(s("readonly").get(f),{onsuccess(){let n=Promise.resolve();const{result:o}=this,c=new r(o||e.database||new Uint8Array(0)),l=()=>{n=n.then((()=>new Promise(((t,n)=>{const o=c.export();i(s("readwrite").put(o,f).transaction,{oncomplete(){t(),e.update&&e.update(o)},onabort:n,onerror:n})}))))};o||l();const{all:u,get:d,query:m,raw:p}=a({all(e,t,n){try{const o=c.exec(e,t),r=[];o.forEach(h,r),n(null,r)}catch(e){n(e)}},get(e,t,n){try{const o=c.exec(e+" LIMIT 1",t),r=[];o.forEach(h,r),n(null,r.shift()||null)}catch(e){n(e)}},run(e,t,n){try{n(null,c.run(e,t))}catch(e){n(e)}}});let g=0;t({all:u,get:d,raw:p,query(t){return/\b(?:INSERT|DELETE|UPDATE)\b/i.test(t[0])&&(clearTimeout(g),g=setTimeout(l,e.timeout||250)),m.apply(this,arguments)}})},onerror:n})}),n)}))}))}({});
{
"name": "sqlite-worker",
"version": "0.4.11",
"version": "0.5.0",
"description": "A simple, and persistent, SQLite database for Web and Workers",
"main": "./cjs/index.js",
"scripts": {
"build": "npm run import && npm run cjs && npm run rollup:es && npm run rollup:init && npm run rollup:sw && npm run rollup:worker",
"build": "npm run import && npm run cjs && npm run rollup:es && npm run rollup:init && npm run rollup:sw && npm run rollup:sw-tables && npm run rollup:tables && npm run rollup:worker",
"import": "cp node_modules/sql.js/dist/sql-wasm.{js,wasm} dist/",

@@ -13,3 +13,5 @@ "cjs": "ascjs --no-default esm cjs && npm run cjs:fix",

"rollup:init": "rollup --config rollup/init.config.js && sed -i 's/const dist = .*/const dist = \".\";/' dist/tmp.js && terser dist/tmp.js --module -c -m -o dist/init.js && rm dist/tmp.js",
"rollup:sw": "rollup --config rollup/sw.config.js && sed -i 's/exports.init =/return/; s/var sqliteWorker =/self.sqliteWorker =/' dist/tmp.js && terser dist/tmp.js -c -m -o dist/sw.js && rm dist/tmp.js",
"rollup:sw": "rollup --config rollup/sw.config.js && sed -i 's/const dist = .*/const dist = \".\";/; s/exports.init =/return/; s/var sqliteWorker =/self.sqliteWorker =/' dist/tmp.js && terser dist/tmp.js -c -m -o dist/sw.js && rm dist/tmp.js",
"rollup:sw-tables": "rollup --config rollup/sw-tables.config.js && sed -i 's/const dist = .*/const dist = \".\";/; s/exports.init =/return/; s/var sqliteWorker =/self.sqliteWorker =/' dist/tmp.js && terser dist/tmp.js -c -m -o dist/sw-tables.js && rm dist/tmp.js",
"rollup:tables": "rollup --config rollup/tables.config.js",
"rollup:worker": "rollup --config rollup/worker.config.js && sed -i 's/const dist = .*//' dist/tmp.js && terser dist/tmp.js -c -m -o dist/worker.js && rm dist/tmp.js"

@@ -56,2 +58,10 @@ },

},
"./sw-tables": {
"import": "./dist/sw-tables.js",
"default": "./dist/sw-tables.js"
},
"./tables": {
"import": "./dist/tables.js",
"default": "./dist/tables.js"
},
"./worker": {

@@ -73,4 +83,5 @@ "import": "./esm/worker.js",

"dependencies": {
"sqlite-tables-handler": "^0.2.0",
"sqlite-tag": "^1.1.0"
}
}

@@ -80,6 +80,6 @@ # sqlite-worker

// will add a `sqliteWorker` "global" initiator
importScripts('../../dist/sw.js');
importScripts('./dist/sw.js');
/* ⚠ IMPORTANT ⚠ */
const dist = '../../dist/';
const dist = './dist/';

@@ -155,2 +155,53 @@ sqliteWorker({dist, name: 'my-db'})

### Extra Initialization Helpers
The `sqlite-worker/tables` export helps defining, or modifying, tables at runtime, without needing to write complex logic, or queries.
All it's needed, is a `tables` property that describe the table name and its fields, handled via [sqlite-tables-handler](https://github.com/WebReflection/sqlite-tables-handler#readme), before returning all module helpers.
```js
import {init, SQLiteWorker} from 'sqlite-worker/tables';
init({
name: 'test-db',
// the tables schema
tables: {
todos: {
id: 'INTEGER PRIMARY KEY',
value: 'TEXT'
}
}
}).then(async ({all, get, query, raw}) => {
const {total} = await get`SELECT COUNT(id) as total FROM todos`;
if (total < 1) {
console.log('Inserting some value');
await query`INSERT INTO todos (value) VALUES (${'a'})`;
await query`INSERT INTO todos (value) VALUES (${'b'})`;
await query`INSERT INTO todos (value) VALUES (${'c'})`;
}
console.table(await all`SELECT * FROM todos`);
});
```
For *Service Worker* one must use the `dist/sw-tables.js` file instead of `dist/sw.js`.
```js
importScripts('./dist/sw-tables.js');
sqliteWorker({
dist: './dist',
name: 'my-db',
tables: {
todos: {
id: 'INTEGER PRIMARY KEY',
value: 'TEXT'
}
}
})
.then(async ({all, get, query}) => {
// ...
});
```
## Compatibility

@@ -157,0 +208,0 @@

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc