Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
js-storage-manager
Advanced tools
A library that makes the WebStorage easy to use: localStorage
, sessionStorage
and Cookies
(sessionStorage
and Cookies
are in progress: #2, #3).
$ bower install js-storage-manager
$ npm install js-storage-manager
$ git clone https://github.com/bjoern-hempel/js-storage-manager.git
or
$ git clone git@github.com:bjoern-hempel/js-storage-manager.git
$ mkdir webproject && cd webproject
$ bower install js-storage-manager
$ vi index.html
<!DOCTYPE html>
<html lang="en">
<head>
<title>A simple js-storage-manager example</title>
<script src="bower_components/js-storage-manager/dist/storage-manager.min.js"></script>
</head>
<body>
<script>
var sm = new StorageManager('namespace');
sm.set('data', [{id: 123, name: 'Name 1'}, {id: 123, name: 'Name 2'}]);
document.write(JSON.stringify(sm.get('data')));
</script>
</body>
</html>
$ mkdir webproject && cd webproject
$ npm install js-storage-manager
$ vi index.html
<!DOCTYPE html>
<html lang="en">
<head>
<title>A simple js-storage-manager example</title>
<script src="node_modules/js-storage-manager/dist/storage-manager.min.js"></script>
</head>
<body>
<script>
var sm = new StorageManager('namespace');
sm.set('data', [{id: 123, name: 'Name 1'}, {id: 123, name: 'Name 2'}]);
document.write(JSON.stringify(sm.get('data')));
</script>
</body>
</html>
If you are interested to use this library on the modern javascript way, see here.
$ mkdir webproject && cd webproject
$ mkdir vendor && cd vendor
$ git clone https://github.com/bjoern-hempel/js-storage-manager.git
$ cd ..
$ vi index.html
<!DOCTYPE html>
<html lang="en">
<head>
<title>A simple js-storage-manager example</title>
<script src="vendor/js-storage-manager/dist/storage-manager.min.js"></script>
</head>
<body>
<script>
var sm = new StorageManager('namespace');
sm.set('data', [{id: 123, name: 'Name 1'}, {id: 123, name: 'Name 2'}]);
document.write(JSON.stringify(sm.get('data')));
</script>
</body>
</html>
var sm = new StorageManager('namespace');
var data_initial = [{id: 1, name: 'Name 1'}, {id: 2, name: 'Name 2'}];
/* save data_initial to localStorage.storage.namespace.data */
sm.set('data', data_initial);
var data_from_web_storage = sm.get('data');
var namespace_1 = 'namespace1';
var namespace_2 = 'namespace2';
var sm_1 = new StorageManager(namespace_1);
var sm_2 = new StorageManager(namespace_2);
var data_initial_1 = [{id: 1, name: 'Name 1'}, {id: 2, name: 'Name 2'}];
var data_initial_2 = [{id: 3, name: 'Name 3'}, {id: 4, name: 'Name 4'}];
/* save data_initial to localStorage.storage.namespace1.data */
sm.set('data', data_initial_1);
/* save data_initial to localStorage.storage.namespace2.data */
sm.set('data', data_initial_2);
var data_from_web_storage_1 = sm_1.get('data');
var data_from_web_storage_2 = sm_2.get('data');
var sm = new StorageManager('namespace');
var data_initial = [{id: 1, name: 'Name 1'}, {id: 2, name: 'Name 2'}];
/* Get the storage data object. */
var storage = sm.getStorage();
/* Do something with the data object. */
storage.data = data_initial;
/* Manually save the data object in WebStorage. */
sm.setStorage(storage)
var sm = new StorageManager('namespace');
var data_initial = [{id: 1, name: 'Name 1'}, {id: 2, name: 'Name 2'}];
var observable = true; // <- important
/* The returned storage data object is now of type "Proxy". */
var storage = sm.getStorage(observable);
/* Do something with the data object. */
storage.data = data_initial;
/* sm.setStorage(storage) is no longer needed. Changes are automatically saved in WebStorage. */
var sm = new StorageManager('namespace');
var queue_data_1 = {id: 1, name: 'Name 1'};
var queue_data_2 = {id: 2, name: 'Name 2'};
/* Initialize the queue (optionally) */
var qm = sm.initQueue();
/* Add records to the queue. The queue namespace used is 'queue'.
* Attention. If LocalStorage is used, this value is added again and again. Use the Reset parameter within
* initQueue to clear the persistent memory before.
*/
qm.push(queue_data_1);
qm.push(queue_data_2);
/* Get the number of queue items. */
var number_of_queue_items = qm.getNumber();
/* Read the entire queue */
var queue = qm.getAll();
/* Get the next queue item (FIFO) */
var next_queue_item = qm.getNext();
/* Get the next queue entry and delete it. */
var next_queue_item = qm.deleteNext();
var sm = new StorageManager('namespace');
var queue_data_1 = {id: 1, name: 'Name 1'};
var queue_data_2 = {id: 2, name: 'Name 2'};
/* Initialize the queue (optionally) */
var qm = sm.initQueue('my_queue', true);
var sm = new StorageManager('namespace');
/* Returns the LocalStorage area as a ready-parsed object. */
var local_storage_managed_by_sm = sm.getLocalStorage();
$ git clone git@github.com:bjoern-hempel/js-storage-manager.git && cd js-storage-manager
$ npm install
/src
folder./test
folder.$ npm test
or
$ npm run test:unit
/dist
files$ npm run build
$ vi package.json
...
"version": "0.0.14",
...
$ git add [file1] [file2] [etc.]
$ git commit -m "my bugfixes" .
$ git push
$ git tag v0.0.14
$ git push origin v0.0.14
If necessary:
$ sudo npm install github-release-notes -g
Then:
$ gren release
Important: You need a valid Github token to access the API. You can get your own here: https://github.com/settings/tokens
Adapt the changelog text to github if necessary: changelog. Show all commits:
$ git log --oneline --decorate
$ gren changelog --override
$ git commit -m "Change changelog" .
$ git push
If necessary:
$ npm login
Then:
$ npm publish
Changes are tracked as GitHub releases or in reverse order here.
This library is licensed under the MIT License - see the LICENSE.md file for details
v0.0.20 (12/04/2019)
FAQs
A library to store data within the web storage.
The npm package js-storage-manager receives a total of 1 weekly downloads. As such, js-storage-manager popularity was classified as not popular.
We found that js-storage-manager 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
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.