Socket
Socket
Sign inDemoInstall

connect-mysql

Package Overview
Dependencies
82
Maintainers
3
Versions
36
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.1.7 to 2.2.0

.c9/metadata/preview-/README.md

2

.c9/metadata/workspace/package.json

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

{"filter":false,"title":"package.json","tooltip":"/package.json","undoManager":{"mark":18,"position":18,"stack":[[{"start":{"row":0,"column":0},"end":{"row":27,"column":0},"action":"remove","lines":["{"," \"author\": \"Nathan LaFreniere <nlf@andyet.net>\","," \"contributors\": ["," \"Anton Skshidlevsky <meefik@gmail.com>\","," \"Jason Gerfen <jason.gerfen@gmail.com>\""," ],"," \"name\": \"connect-mysql\","," \"description\": \"a MySQL session store for connect\",","<<<<<<< HEAD"," \"version\": \"2.1.6\",","======="," \"version\": \"2.1.2\",",">>>>>>> Crypto refactor to protect computed HMAC"," \"homepage\": \"https://github.com/nlf/connect-mysql\","," \"repository\": {"," \"type\": \"git\","," \"url\": \"git://github.com/nlf/connect-mysql.git\""," },"," \"main\": \"./index.js\","," \"dependencies\": {"," \"mysql\": \"^2.14.1\""," },"," \"devDependencies\": {},"," \"engines\": {"," \"node\": \">=0.8.19\""," }","}",""],"id":2},{"start":{"row":0,"column":0},"end":{"row":22,"column":1},"action":"insert","lines":["{"," \"author\": \"Nathan LaFreniere <nlf@andyet.net>\","," \"contributors\": ["," \"Anton Skshidlevsky <meefik@gmail.com>\","," \"Jason Gerfen <jason.gerfen@gmail.com>\""," ],"," \"name\": \"connect-mysql\","," \"description\": \"a MySQL session store for connect\","," \"version\": \"2.1.6\","," \"homepage\": \"https://github.com/nlf/connect-mysql\","," \"repository\": {"," \"type\": \"git\","," \"url\": \"git://github.com/nlf/connect-mysql.git\""," },"," \"main\": \"./index.js\","," \"dependencies\": {"," \"mysql\": \"^2.14.1\""," },"," \"devDependencies\": {},"," \"engines\": {"," \"node\": \">=0.8.19\""," }","}"]}],[{"start":{"row":8,"column":0},"end":{"row":9,"column":0},"action":"insert","lines":["<<<<<<< HEAD",""],"id":3,"ignore":true},{"start":{"row":10,"column":0},"end":{"row":13,"column":0},"action":"insert","lines":["======="," \"version\": \"2.1.3\",",">>>>>>> Dependency update & version bump",""]}],[{"start":{"row":8,"column":0},"end":{"row":9,"column":0},"action":"remove","lines":["<<<<<<< HEAD",""],"id":4}],[{"start":{"row":9,"column":0},"end":{"row":12,"column":0},"action":"remove","lines":["======="," \"version\": \"2.1.3\",",">>>>>>> Dependency update & version bump",""],"id":5}],[{"start":{"row":8,"column":0},"end":{"row":9,"column":0},"action":"insert","lines":["<<<<<<< HEAD",""],"id":6,"ignore":true},{"start":{"row":10,"column":0},"end":{"row":13,"column":0},"action":"insert","lines":["======="," \"version\": \"2.1.4\",",">>>>>>> emergency fix",""]}],[{"start":{"row":8,"column":0},"end":{"row":9,"column":0},"action":"remove","lines":["<<<<<<< HEAD",""],"id":7}],[{"start":{"row":9,"column":0},"end":{"row":12,"column":0},"action":"remove","lines":["======="," \"version\": \"2.1.4\",",">>>>>>> emergency fix",""],"id":8}],[{"start":{"row":8,"column":0},"end":{"row":9,"column":0},"action":"insert","lines":["<<<<<<< HEAD",""],"id":9,"ignore":true},{"start":{"row":10,"column":0},"end":{"row":13,"column":0},"action":"insert","lines":["======="," \"version\": \"2.1.4\",",">>>>>>> Merged",""]}],[{"start":{"row":8,"column":0},"end":{"row":9,"column":0},"action":"remove","lines":["<<<<<<< HEAD",""],"id":10}],[{"start":{"row":9,"column":0},"end":{"row":12,"column":0},"action":"remove","lines":["======="," \"version\": \"2.1.4\",",">>>>>>> Merged",""],"id":11}],[{"start":{"row":8,"column":0},"end":{"row":9,"column":0},"action":"insert","lines":["<<<<<<< HEAD",""],"id":12,"ignore":true},{"start":{"row":10,"column":0},"end":{"row":13,"column":0},"action":"insert","lines":["======="," \"version\": \"2.1.4\",",">>>>>>> Crypto refactor to protect computed HMAC",""]}],[{"start":{"row":8,"column":0},"end":{"row":9,"column":0},"action":"remove","lines":["<<<<<<< HEAD",""],"id":13}],[{"start":{"row":9,"column":0},"end":{"row":12,"column":0},"action":"remove","lines":["======="," \"version\": \"2.1.4\",",">>>>>>> Crypto refactor to protect computed HMAC",""],"id":14}],[{"start":{"row":8,"column":0},"end":{"row":9,"column":0},"action":"insert","lines":["<<<<<<< HEAD",""],"id":15,"ignore":true},{"start":{"row":10,"column":0},"end":{"row":13,"column":0},"action":"insert","lines":["======="," \"version\": \"2.1.5\",",">>>>>>> Version bump; v2.1.5",""]}],[{"start":{"row":8,"column":0},"end":{"row":9,"column":0},"action":"remove","lines":["<<<<<<< HEAD",""],"id":16,"ignore":true},{"start":{"row":9,"column":0},"end":{"row":12,"column":0},"action":"remove","lines":["======="," \"version\": \"2.1.5\",",">>>>>>> Version bump; v2.1.5",""]}],[{"start":{"row":8,"column":18},"end":{"row":8,"column":19},"action":"remove","lines":["6"],"id":17}],[{"start":{"row":8,"column":18},"end":{"row":8,"column":19},"action":"insert","lines":["7"],"id":18}],[{"start":{"row":8,"column":18},"end":{"row":8,"column":19},"action":"remove","lines":["7"],"id":19,"ignore":true},{"start":{"row":8,"column":18},"end":{"row":8,"column":19},"action":"insert","lines":["4"]},{"start":{"row":22,"column":1},"end":{"row":23,"column":0},"action":"insert","lines":["",""]}],[{"start":{"row":8,"column":18},"end":{"row":8,"column":19},"action":"remove","lines":["4"],"id":20,"ignore":true},{"start":{"row":8,"column":18},"end":{"row":8,"column":19},"action":"insert","lines":["7"]},{"start":{"row":22,"column":1},"end":{"row":23,"column":0},"action":"remove","lines":["",""]}]]},"ace":{"folds":[],"scrolltop":0,"scrollleft":0,"selection":{"start":{"row":8,"column":18},"end":{"row":8,"column":18},"isBackwards":false},"options":{"guessTabSize":true,"useWrapMode":false,"wrapToView":true},"firstLineState":0},"timestamp":1512155331801,"hash":"9953c83ac370baa68944d1acfa2ce6cb7965204e"}
{"filter":false,"title":"package.json","tooltip":"/package.json","undoManager":{"mark":-1,"position":-1,"stack":[]},"ace":{"folds":[],"scrolltop":0,"scrollleft":0,"selection":{"start":{"row":9,"column":0},"end":{"row":9,"column":0},"isBackwards":false},"options":{"guessTabSize":true,"useWrapMode":false,"wrapToView":true},"firstLineState":0},"timestamp":1551268654368,"hash":"8f1aa22f9421e798b5d5b8de85eef6fc9feecd37"}

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

{"filter":false,"title":"README.md","tooltip":"/README.md","undoManager":{"mark":100,"position":100,"stack":[[{"start":{"row":62,"column":45},"end":{"row":62,"column":46},"action":"insert","lines":["p"],"id":799}],[{"start":{"row":62,"column":46},"end":{"row":62,"column":47},"action":"insert","lines":["t"],"id":800}],[{"start":{"row":62,"column":47},"end":{"row":62,"column":48},"action":"insert","lines":["i"],"id":801}],[{"start":{"row":62,"column":48},"end":{"row":62,"column":49},"action":"insert","lines":["o"],"id":802}],[{"start":{"row":62,"column":49},"end":{"row":62,"column":50},"action":"insert","lines":["n"],"id":803}],[{"start":{"row":62,"column":50},"end":{"row":62,"column":51},"action":"insert","lines":[" "],"id":804}],[{"start":{"row":62,"column":51},"end":{"row":62,"column":52},"action":"insert","lines":["a"],"id":805}],[{"start":{"row":62,"column":52},"end":{"row":62,"column":53},"action":"insert","lines":["s"],"id":806}],[{"start":{"row":62,"column":53},"end":{"row":62,"column":54},"action":"insert","lines":["s"],"id":807}],[{"start":{"row":62,"column":54},"end":{"row":62,"column":55},"action":"insert","lines":["i"],"id":808}],[{"start":{"row":62,"column":55},"end":{"row":62,"column":56},"action":"insert","lines":["s"],"id":809}],[{"start":{"row":62,"column":56},"end":{"row":62,"column":57},"action":"insert","lines":["t"],"id":810}],[{"start":{"row":62,"column":57},"end":{"row":62,"column":58},"action":"insert","lines":["i"],"id":811}],[{"start":{"row":62,"column":58},"end":{"row":62,"column":59},"action":"insert","lines":["n"],"id":812},{"start":{"row":62,"column":59},"end":{"row":62,"column":60},"action":"insert","lines":["g"]}],[{"start":{"row":62,"column":60},"end":{"row":62,"column":61},"action":"insert","lines":[" "],"id":813}],[{"start":{"row":62,"column":61},"end":{"row":62,"column":62},"action":"insert","lines":["i"],"id":814}],[{"start":{"row":62,"column":62},"end":{"row":62,"column":63},"action":"insert","lines":["n"],"id":815}],[{"start":{"row":62,"column":63},"end":{"row":62,"column":64},"action":"insert","lines":[" "],"id":816}],[{"start":{"row":62,"column":63},"end":{"row":62,"column":64},"action":"remove","lines":[" "],"id":817}],[{"start":{"row":62,"column":62},"end":{"row":62,"column":63},"action":"remove","lines":["n"],"id":818}],[{"start":{"row":62,"column":61},"end":{"row":62,"column":62},"action":"remove","lines":["i"],"id":819}],[{"start":{"row":62,"column":60},"end":{"row":62,"column":61},"action":"remove","lines":[" "],"id":820}],[{"start":{"row":66,"column":0},"end":{"row":66,"column":4},"action":"remove","lines":[" "],"id":821}],[{"start":{"row":66,"column":0},"end":{"row":66,"column":1},"action":"insert","lines":[" "],"id":822}],[{"start":{"row":66,"column":1},"end":{"row":66,"column":2},"action":"insert","lines":[" "],"id":823}],[{"start":{"row":66,"column":2},"end":{"row":66,"column":3},"action":"insert","lines":[" "],"id":824}],[{"start":{"row":66,"column":3},"end":{"row":66,"column":4},"action":"insert","lines":[" "],"id":825}],[{"start":{"row":66,"column":4},"end":{"row":66,"column":5},"action":"insert","lines":[" "],"id":826}],[{"start":{"row":66,"column":5},"end":{"row":66,"column":6},"action":"insert","lines":[" "],"id":827}],[{"start":{"row":67,"column":0},"end":{"row":67,"column":4},"action":"remove","lines":[" "],"id":828}],[{"start":{"row":67,"column":0},"end":{"row":67,"column":1},"action":"insert","lines":[" "],"id":829}],[{"start":{"row":67,"column":1},"end":{"row":67,"column":2},"action":"insert","lines":[" "],"id":830}],[{"start":{"row":67,"column":2},"end":{"row":67,"column":3},"action":"insert","lines":[" "],"id":831}],[{"start":{"row":67,"column":3},"end":{"row":67,"column":4},"action":"insert","lines":[" "],"id":832}],[{"start":{"row":67,"column":4},"end":{"row":67,"column":5},"action":"insert","lines":[" "],"id":833}],[{"start":{"row":67,"column":5},"end":{"row":67,"column":6},"action":"insert","lines":[" "],"id":834}],[{"start":{"row":68,"column":0},"end":{"row":68,"column":6},"action":"remove","lines":[" "],"id":835}],[{"start":{"row":68,"column":0},"end":{"row":68,"column":1},"action":"insert","lines":[" "],"id":836}],[{"start":{"row":68,"column":1},"end":{"row":68,"column":2},"action":"insert","lines":[" "],"id":837}],[{"start":{"row":68,"column":2},"end":{"row":68,"column":3},"action":"insert","lines":[" "],"id":838}],[{"start":{"row":68,"column":3},"end":{"row":68,"column":4},"action":"insert","lines":[" "],"id":839}],[{"start":{"row":68,"column":4},"end":{"row":68,"column":5},"action":"insert","lines":[" "],"id":840}],[{"start":{"row":68,"column":5},"end":{"row":68,"column":6},"action":"insert","lines":[" "],"id":841}],[{"start":{"row":68,"column":6},"end":{"row":68,"column":7},"action":"insert","lines":[" "],"id":842}],[{"start":{"row":68,"column":7},"end":{"row":68,"column":8},"action":"insert","lines":[" "],"id":843}],[{"start":{"row":69,"column":0},"end":{"row":69,"column":6},"action":"remove","lines":[" "],"id":844}],[{"start":{"row":69,"column":0},"end":{"row":69,"column":1},"action":"insert","lines":[" "],"id":845}],[{"start":{"row":69,"column":1},"end":{"row":69,"column":2},"action":"insert","lines":[" "],"id":846}],[{"start":{"row":69,"column":2},"end":{"row":69,"column":3},"action":"insert","lines":[" "],"id":847}],[{"start":{"row":69,"column":3},"end":{"row":69,"column":4},"action":"insert","lines":[" "],"id":848}],[{"start":{"row":69,"column":4},"end":{"row":69,"column":5},"action":"insert","lines":[" "],"id":849}],[{"start":{"row":69,"column":5},"end":{"row":69,"column":6},"action":"insert","lines":[" "],"id":850}],[{"start":{"row":69,"column":6},"end":{"row":69,"column":7},"action":"insert","lines":[" "],"id":851}],[{"start":{"row":69,"column":7},"end":{"row":69,"column":8},"action":"insert","lines":[" "],"id":852}],[{"start":{"row":70,"column":0},"end":{"row":70,"column":6},"action":"remove","lines":[" "],"id":853}],[{"start":{"row":70,"column":0},"end":{"row":70,"column":1},"action":"insert","lines":[" "],"id":854}],[{"start":{"row":70,"column":1},"end":{"row":70,"column":2},"action":"insert","lines":[" "],"id":855}],[{"start":{"row":70,"column":2},"end":{"row":70,"column":3},"action":"insert","lines":[" "],"id":856}],[{"start":{"row":70,"column":3},"end":{"row":70,"column":4},"action":"insert","lines":[" "],"id":857}],[{"start":{"row":70,"column":4},"end":{"row":70,"column":5},"action":"insert","lines":[" "],"id":858}],[{"start":{"row":70,"column":5},"end":{"row":70,"column":6},"action":"insert","lines":[" "],"id":859}],[{"start":{"row":70,"column":6},"end":{"row":70,"column":7},"action":"insert","lines":[" "],"id":860}],[{"start":{"row":70,"column":7},"end":{"row":70,"column":8},"action":"insert","lines":[" "],"id":861}],[{"start":{"row":71,"column":0},"end":{"row":71,"column":4},"action":"remove","lines":[" "],"id":862}],[{"start":{"row":71,"column":0},"end":{"row":71,"column":1},"action":"insert","lines":[" "],"id":863}],[{"start":{"row":71,"column":1},"end":{"row":71,"column":2},"action":"insert","lines":[" "],"id":864}],[{"start":{"row":71,"column":2},"end":{"row":71,"column":3},"action":"insert","lines":[" "],"id":865}],[{"start":{"row":71,"column":3},"end":{"row":71,"column":4},"action":"insert","lines":[" "],"id":866}],[{"start":{"row":71,"column":4},"end":{"row":71,"column":5},"action":"insert","lines":[" "],"id":867}],[{"start":{"row":71,"column":5},"end":{"row":71,"column":6},"action":"insert","lines":[" "],"id":868}],[{"start":{"row":72,"column":0},"end":{"row":72,"column":2},"action":"remove","lines":[" "],"id":869}],[{"start":{"row":72,"column":0},"end":{"row":72,"column":1},"action":"insert","lines":[" "],"id":870}],[{"start":{"row":72,"column":1},"end":{"row":72,"column":2},"action":"insert","lines":[" "],"id":871}],[{"start":{"row":72,"column":2},"end":{"row":72,"column":3},"action":"insert","lines":[" "],"id":872}],[{"start":{"row":74,"column":0},"end":{"row":76,"column":0},"action":"remove","lines":["\t\t"," \t",""],"id":873}],[{"start":{"row":74,"column":0},"end":{"row":75,"column":0},"action":"insert","lines":["",""],"id":874}],[{"start":{"row":75,"column":0},"end":{"row":85,"column":0},"action":"remove","lines":["## Options","","* `table`: the name of the database table that should be used for storing sessions. Defaults to `'sessions'`","* `pool`: a node-mysql connection pool or `true` if the store should instantiate its own pool","* `config`: the configuration that will be passed to `createConnection()` or `createPool()` if pool is `true`","* `retries`: how many times to retry connecting to the database before failing. Defaults to `3`","* `keepalive`: keep pooled connections open by periodically pinging them. Set to `true` to use the default interval of `30000` ms or provide a positive number to set your own. Defaults to `true`.","* `cleanup`: a boolean specifying whether to enable the cleanup events. note that if this is disabled, cleanup will not take place at all and should be done externally. Sessions with an expiration time of `0` will always be ignored and should also be cleaned up externally.","* `secret`: key that will be used to encrypt session data. If this option is not provided then data will be stored in plain text","* `algorithm`: the algorithm that should be used to encrypt session data. Defaults to `'aes-256-ctr'`",""],"id":875}],[{"start":{"row":74,"column":0},"end":{"row":75,"column":0},"action":"remove","lines":["",""],"id":876}],[{"start":{"row":75,"column":0},"end":{"row":76,"column":0},"action":"remove","lines":["-----",""],"id":877}],[{"start":{"row":6,"column":0},"end":{"row":7,"column":0},"action":"insert","lines":["",""],"id":878}],[{"start":{"row":6,"column":0},"end":{"row":16,"column":0},"action":"insert","lines":["## Options","","* `table`: the name of the database table that should be used for storing sessions. Defaults to `'sessions'`","* `pool`: a node-mysql connection pool or `true` if the store should instantiate its own pool","* `config`: the configuration that will be passed to `createConnection()` or `createPool()` if pool is `true`","* `retries`: how many times to retry connecting to the database before failing. Defaults to `3`","* `keepalive`: keep pooled connections open by periodically pinging them. Set to `true` to use the default interval of `30000` ms or provide a positive number to set your own. Defaults to `true`.","* `cleanup`: a boolean specifying whether to enable the cleanup events. note that if this is disabled, cleanup will not take place at all and should be done externally. Sessions with an expiration time of `0` will always be ignored and should also be cleaned up externally.","* `secret`: key that will be used to encrypt session data. If this option is not provided then data will be stored in plain text","* `algorithm`: the algorithm that should be used to encrypt session data. Defaults to `'aes-256-ctr'`",""],"id":879}],[{"start":{"row":0,"column":1},"end":{"row":0,"column":2},"action":"insert","lines":[" "],"id":880}],[{"start":{"row":86,"column":0},"end":{"row":87,"column":0},"action":"remove","lines":["License: MIT",""],"id":881},{"start":{"row":86,"column":0},"end":{"row":95,"column":34},"action":"insert","lines":["## contributing ##","","Contributions are welcome & appreciated. Refer to the [contributing document](https://github.com/jas-/node-libnmap/blob/master/CONTRIBUTING.md)","to help facilitate pull requests.","","## license ##","","This software is licensed under the [MIT License](https://github.com/jas-/node-libnmap/blob/master/LICENSE).","","Copyright Jason Gerfen, 2013-2017."]}],[{"start":{"row":88,"column":97},"end":{"row":88,"column":101},"action":"remove","lines":["jas-"],"id":882},{"start":{"row":88,"column":97},"end":{"row":88,"column":98},"action":"insert","lines":["n"]}],[{"start":{"row":88,"column":98},"end":{"row":88,"column":99},"action":"insert","lines":["l"],"id":883}],[{"start":{"row":88,"column":99},"end":{"row":88,"column":100},"action":"insert","lines":["f"],"id":884}],[{"start":{"row":88,"column":101},"end":{"row":88,"column":113},"action":"remove","lines":["node-libnmap"],"id":885},{"start":{"row":88,"column":101},"end":{"row":88,"column":102},"action":"insert","lines":["c"]}],[{"start":{"row":88,"column":102},"end":{"row":88,"column":103},"action":"insert","lines":["o"],"id":886}],[{"start":{"row":88,"column":103},"end":{"row":88,"column":104},"action":"insert","lines":["n"],"id":887}],[{"start":{"row":88,"column":104},"end":{"row":88,"column":105},"action":"insert","lines":["n"],"id":888}],[{"start":{"row":88,"column":105},"end":{"row":88,"column":106},"action":"insert","lines":["e"],"id":889}],[{"start":{"row":88,"column":106},"end":{"row":88,"column":107},"action":"insert","lines":["c"],"id":890}],[{"start":{"row":88,"column":107},"end":{"row":88,"column":108},"action":"insert","lines":["t"],"id":891}],[{"start":{"row":88,"column":108},"end":{"row":88,"column":109},"action":"insert","lines":["-"],"id":892}],[{"start":{"row":88,"column":109},"end":{"row":88,"column":110},"action":"insert","lines":["m"],"id":893}],[{"start":{"row":88,"column":110},"end":{"row":88,"column":111},"action":"insert","lines":["y"],"id":894}],[{"start":{"row":88,"column":111},"end":{"row":88,"column":112},"action":"insert","lines":["s"],"id":895}],[{"start":{"row":88,"column":112},"end":{"row":88,"column":113},"action":"insert","lines":["q"],"id":896}],[{"start":{"row":88,"column":113},"end":{"row":88,"column":114},"action":"insert","lines":["l"],"id":897}],[{"start":{"row":93,"column":69},"end":{"row":93,"column":86},"action":"remove","lines":["jas-/node-libnmap"],"id":898},{"start":{"row":93,"column":69},"end":{"row":93,"column":86},"action":"insert","lines":["nlf/connect-mysql"]}],[{"start":{"row":95,"column":0},"end":{"row":95,"column":34},"action":"remove","lines":["Copyright Jason Gerfen, 2013-2017."],"id":899},{"start":{"row":95,"column":0},"end":{"row":95,"column":42},"action":"insert","lines":["Nathan LaFreniere, Copyright (c) 2012 &Yet"]}]]},"ace":{"folds":[],"scrolltop":748,"scrollleft":0,"selection":{"start":{"row":95,"column":42},"end":{"row":95,"column":42},"isBackwards":false},"options":{"guessTabSize":true,"useWrapMode":false,"wrapToView":true},"firstLineState":{"row":61,"state":"jscode-start","mode":"ace/mode/markdown"}},"timestamp":1504535597879,"hash":"b66396c6fb2cf0778f5c917636e715e0d5f62f0b"}
{"filter":false,"title":"README.md","tooltip":"/README.md","undoManager":{"mark":69,"position":69,"stack":[[{"start":{"row":25,"column":0},"end":{"row":43,"column":0},"action":"remove","lines":["var express = require('express'),"," session = require('connect-session'),"," MySQLStore = require('connect-mysql')(session),"," options = {"," config: {"," user: 'dbuser', "," password: 'dbpassword', "," database: 'db' "," }"," };","","var app = express.createServer();","","app.use(express.cookieParser());","app.use(express.session({"," secret: 'supersecretkeygoeshere',"," store: new MySQLStore(options))","});",""],"id":2},{"start":{"row":25,"column":0},"end":{"row":65,"column":0},"action":"insert","lines":["var express = require('express'), // express framework"," session = require('express-session'), // session middleware"," cookieParser = require('cookie-parser'), // cookie middleware"," MySQLStore = require('connect-mysql')(session), // mysql session store"," options = {"," secret: 'squirrel',"," config: {"," user: 'jas-', "," password: 'password',"," database: 'c9' "," }"," },"," app = express();","","app.use(cookieParser());","","app.use(session({"," secret: 'keyboard cat',"," resave: false,"," saveUninitialized: true,"," cookie: {"," httpOnly: false,"," secure: false,"," maxAge: 1000 * 60 * 60 * 24 * 3,"," expires: 1000 * 60 * 60 * 24 * 3"," },"," store: new MySQLStore(options)","}));","","app.get('/', function (req, res) {"," if (req.session.views) {"," req.session.views++"," } else {"," req.session.views = 1;"," }",""," res.send('Hello world! '+req.session.views);","});"," ","app.listen(3000, 'localhost');",""]}],[{"start":{"row":30,"column":0},"end":{"row":31,"column":0},"action":"remove","lines":[" secret: 'squirrel',",""],"id":3}],[{"start":{"row":31,"column":15},"end":{"row":31,"column":19},"action":"remove","lines":["jas-"],"id":4},{"start":{"row":31,"column":15},"end":{"row":31,"column":16},"action":"insert","lines":["u"]}],[{"start":{"row":31,"column":16},"end":{"row":31,"column":17},"action":"insert","lines":["s"],"id":5}],[{"start":{"row":31,"column":17},"end":{"row":31,"column":18},"action":"insert","lines":["e"],"id":6}],[{"start":{"row":31,"column":18},"end":{"row":31,"column":19},"action":"insert","lines":["r"],"id":7}],[{"start":{"row":31,"column":19},"end":{"row":31,"column":20},"action":"insert","lines":["n"],"id":8}],[{"start":{"row":31,"column":20},"end":{"row":31,"column":21},"action":"insert","lines":["a"],"id":9}],[{"start":{"row":31,"column":21},"end":{"row":31,"column":22},"action":"insert","lines":["m"],"id":10}],[{"start":{"row":31,"column":22},"end":{"row":31,"column":23},"action":"insert","lines":["e"],"id":11}],[{"start":{"row":33,"column":19},"end":{"row":33,"column":21},"action":"remove","lines":["c9"],"id":12},{"start":{"row":33,"column":19},"end":{"row":33,"column":20},"action":"insert","lines":["d"]}],[{"start":{"row":33,"column":20},"end":{"row":33,"column":21},"action":"insert","lines":["a"],"id":13}],[{"start":{"row":33,"column":21},"end":{"row":33,"column":22},"action":"insert","lines":["t"],"id":14}],[{"start":{"row":33,"column":22},"end":{"row":33,"column":23},"action":"insert","lines":["a"],"id":15}],[{"start":{"row":33,"column":23},"end":{"row":33,"column":24},"action":"insert","lines":["b"],"id":16}],[{"start":{"row":33,"column":24},"end":{"row":33,"column":25},"action":"insert","lines":["a"],"id":17}],[{"start":{"row":33,"column":25},"end":{"row":33,"column":26},"action":"insert","lines":["e"],"id":18}],[{"start":{"row":33,"column":25},"end":{"row":33,"column":26},"action":"remove","lines":["e"],"id":19}],[{"start":{"row":33,"column":25},"end":{"row":33,"column":26},"action":"insert","lines":["s"],"id":20}],[{"start":{"row":33,"column":26},"end":{"row":33,"column":27},"action":"insert","lines":["e"],"id":21}],[{"start":{"row":33,"column":27},"end":{"row":33,"column":28},"action":"insert","lines":["n"],"id":22}],[{"start":{"row":33,"column":28},"end":{"row":33,"column":29},"action":"insert","lines":["a"],"id":23}],[{"start":{"row":33,"column":29},"end":{"row":33,"column":30},"action":"insert","lines":["m"],"id":24}],[{"start":{"row":33,"column":30},"end":{"row":33,"column":31},"action":"insert","lines":["e"],"id":25}],[{"start":{"row":50,"column":32},"end":{"row":50,"column":33},"action":"insert","lines":[" "],"id":26}],[{"start":{"row":50,"column":33},"end":{"row":50,"column":34},"action":"insert","lines":["/"],"id":27}],[{"start":{"row":50,"column":34},"end":{"row":50,"column":35},"action":"insert","lines":["/"],"id":28}],[{"start":{"row":50,"column":35},"end":{"row":50,"column":36},"action":"insert","lines":[" "],"id":29}],[{"start":{"row":50,"column":36},"end":{"row":50,"column":37},"action":"insert","lines":["C"],"id":30}],[{"start":{"row":50,"column":37},"end":{"row":50,"column":38},"action":"insert","lines":["h"],"id":31}],[{"start":{"row":50,"column":38},"end":{"row":50,"column":39},"action":"insert","lines":["a"],"id":32}],[{"start":{"row":50,"column":39},"end":{"row":50,"column":40},"action":"insert","lines":["n"],"id":33}],[{"start":{"row":50,"column":40},"end":{"row":50,"column":41},"action":"insert","lines":["g"],"id":34}],[{"start":{"row":50,"column":41},"end":{"row":50,"column":42},"action":"insert","lines":["e"],"id":35}],[{"start":{"row":50,"column":42},"end":{"row":50,"column":43},"action":"insert","lines":[" "],"id":36}],[{"start":{"row":50,"column":43},"end":{"row":50,"column":44},"action":"insert","lines":["t"],"id":37}],[{"start":{"row":50,"column":44},"end":{"row":50,"column":45},"action":"insert","lines":["h"],"id":38}],[{"start":{"row":50,"column":45},"end":{"row":50,"column":46},"action":"insert","lines":["e"],"id":39}],[{"start":{"row":50,"column":46},"end":{"row":50,"column":47},"action":"insert","lines":[" "],"id":40}],[{"start":{"row":50,"column":47},"end":{"row":50,"column":48},"action":"insert","lines":["e"],"id":41}],[{"start":{"row":50,"column":48},"end":{"row":50,"column":49},"action":"insert","lines":["x"],"id":42}],[{"start":{"row":50,"column":49},"end":{"row":50,"column":50},"action":"insert","lines":["p"],"id":43}],[{"start":{"row":50,"column":50},"end":{"row":50,"column":51},"action":"insert","lines":["r"],"id":44}],[{"start":{"row":50,"column":51},"end":{"row":50,"column":52},"action":"insert","lines":["e"],"id":45}],[{"start":{"row":50,"column":52},"end":{"row":50,"column":53},"action":"insert","lines":["s"],"id":46}],[{"start":{"row":50,"column":53},"end":{"row":50,"column":54},"action":"insert","lines":["s"],"id":47}],[{"start":{"row":50,"column":54},"end":{"row":50,"column":55},"action":"insert","lines":[" "],"id":48}],[{"start":{"row":50,"column":55},"end":{"row":50,"column":56},"action":"insert","lines":["s"],"id":49}],[{"start":{"row":50,"column":56},"end":{"row":50,"column":57},"action":"insert","lines":["e"],"id":50}],[{"start":{"row":50,"column":57},"end":{"row":50,"column":58},"action":"insert","lines":["s"],"id":51}],[{"start":{"row":50,"column":58},"end":{"row":50,"column":59},"action":"insert","lines":["s"],"id":52}],[{"start":{"row":50,"column":59},"end":{"row":50,"column":60},"action":"insert","lines":["i"],"id":53}],[{"start":{"row":50,"column":60},"end":{"row":50,"column":61},"action":"insert","lines":["o"],"id":54}],[{"start":{"row":50,"column":61},"end":{"row":50,"column":62},"action":"insert","lines":["n"],"id":55}],[{"start":{"row":50,"column":62},"end":{"row":50,"column":63},"action":"insert","lines":[" "],"id":56}],[{"start":{"row":50,"column":63},"end":{"row":50,"column":64},"action":"insert","lines":["s"],"id":57}],[{"start":{"row":50,"column":64},"end":{"row":50,"column":65},"action":"insert","lines":["t"],"id":58}],[{"start":{"row":50,"column":65},"end":{"row":50,"column":66},"action":"insert","lines":["o"],"id":59}],[{"start":{"row":50,"column":66},"end":{"row":50,"column":67},"action":"insert","lines":["r"],"id":60}],[{"start":{"row":50,"column":67},"end":{"row":50,"column":68},"action":"insert","lines":["e"],"id":61}],[{"start":{"row":25,"column":33},"end":{"row":25,"column":54},"action":"remove","lines":[" // express framework"],"id":62,"ignore":true},{"start":{"row":26,"column":23},"end":{"row":26,"column":30},"action":"remove","lines":["express"]},{"start":{"row":26,"column":23},"end":{"row":26,"column":30},"action":"insert","lines":["connect"]},{"start":{"row":26,"column":41},"end":{"row":27,"column":65},"action":"remove","lines":[" // session middleware"," cookieParser = require('cookie-parser'), // cookie middleware"]},{"start":{"row":27,"column":51},"end":{"row":27,"column":74},"action":"remove","lines":[" // mysql session store"]},{"start":{"row":30,"column":15},"end":{"row":30,"column":17},"action":"insert","lines":["db"]},{"start":{"row":30,"column":21},"end":{"row":30,"column":25},"action":"remove","lines":["name"]},{"start":{"row":31,"column":19},"end":{"row":31,"column":21},"action":"insert","lines":["db"]},{"start":{"row":31,"column":31},"end":{"row":31,"column":32},"action":"insert","lines":[" "]},{"start":{"row":32,"column":20},"end":{"row":32,"column":31},"action":"remove","lines":["atabasename"]},{"start":{"row":32,"column":20},"end":{"row":32,"column":21},"action":"insert","lines":["b"]},{"start":{"row":34,"column":5},"end":{"row":35,"column":3},"action":"remove","lines":[","," "]},{"start":{"row":34,"column":5},"end":{"row":36,"column":3},"action":"insert","lines":[";","","var"]},{"start":{"row":36,"column":17},"end":{"row":36,"column":30},"action":"insert","lines":[".createServer"]},{"start":{"row":38,"column":8},"end":{"row":38,"column":16},"action":"insert","lines":["express."]},{"start":{"row":39,"column":0},"end":{"row":40,"column":0},"action":"remove","lines":["",""]},{"start":{"row":39,"column":8},"end":{"row":39,"column":16},"action":"insert","lines":["express."]},{"start":{"row":40,"column":11},"end":{"row":45,"column":4},"action":"remove","lines":["keyboard cat',"," resave: false,"," saveUninitialized: true,"," cookie: {"," httpOnly: false,"," "]},{"start":{"row":40,"column":11},"end":{"row":40,"column":16},"action":"insert","lines":["super"]},{"start":{"row":40,"column":19},"end":{"row":40,"column":20},"action":"remove","lines":["u"]},{"start":{"row":40,"column":21},"end":{"row":57,"column":28},"action":"remove","lines":[": false,"," maxAge: 1000 * 60 * 60 * 24 * 3,"," expires: 1000 * 60 * 60 * 24 * 3"," },"," store: new MySQLStore(options) // Change the express session store","}));","","app.get('/', function (req, res) {"," if (req.session.views) {"," req.session.views++"," } else {"," req.session.views = 1;"," }",""," res.send('Hello world! '+req.session.views);","});"," ","app.listen(3000, 'localhost'"]},{"start":{"row":40,"column":21},"end":{"row":42,"column":1},"action":"insert","lines":["tkeygoeshere',"," store: new MySQLStore(options))","}"]}],[{"start":{"row":25,"column":33},"end":{"row":25,"column":54},"action":"insert","lines":[" // express framework"],"id":63,"ignore":true},{"start":{"row":26,"column":23},"end":{"row":26,"column":41},"action":"remove","lines":["connect-session'),"]},{"start":{"row":26,"column":23},"end":{"row":27,"column":65},"action":"insert","lines":["express-session'), // session middleware"," cookieParser = require('cookie-parser'), // cookie middleware"]},{"start":{"row":28,"column":51},"end":{"row":28,"column":74},"action":"insert","lines":[" // mysql session store"]},{"start":{"row":31,"column":15},"end":{"row":31,"column":17},"action":"remove","lines":["db"]},{"start":{"row":31,"column":19},"end":{"row":31,"column":23},"action":"insert","lines":["name"]},{"start":{"row":32,"column":19},"end":{"row":32,"column":21},"action":"remove","lines":["db"]},{"start":{"row":32,"column":29},"end":{"row":32,"column":30},"action":"remove","lines":[" "]},{"start":{"row":33,"column":20},"end":{"row":33,"column":21},"action":"remove","lines":["b"]},{"start":{"row":33,"column":20},"end":{"row":33,"column":31},"action":"insert","lines":["atabasename"]},{"start":{"row":35,"column":5},"end":{"row":37,"column":3},"action":"remove","lines":[";","","var"]},{"start":{"row":35,"column":5},"end":{"row":36,"column":3},"action":"insert","lines":[","," "]},{"start":{"row":36,"column":17},"end":{"row":36,"column":30},"action":"remove","lines":[".createServer"]},{"start":{"row":38,"column":8},"end":{"row":38,"column":16},"action":"remove","lines":["express."]},{"start":{"row":39,"column":0},"end":{"row":40,"column":0},"action":"insert","lines":["",""]},{"start":{"row":40,"column":8},"end":{"row":40,"column":16},"action":"remove","lines":["express."]},{"start":{"row":41,"column":11},"end":{"row":41,"column":16},"action":"remove","lines":["super"]},{"start":{"row":41,"column":11},"end":{"row":46,"column":4},"action":"insert","lines":["keyboard cat',"," resave: false,"," saveUninitialized: true,"," cookie: {"," httpOnly: false,"," "]},{"start":{"row":46,"column":7},"end":{"row":46,"column":8},"action":"insert","lines":["u"]},{"start":{"row":46,"column":10},"end":{"row":48,"column":1},"action":"remove","lines":["tkeygoeshere',"," store: new MySQLStore(options))","}"]},{"start":{"row":46,"column":10},"end":{"row":63,"column":28},"action":"insert","lines":[": false,"," maxAge: 1000 * 60 * 60 * 24 * 3,"," expires: 1000 * 60 * 60 * 24 * 3"," },"," store: new MySQLStore(options) // Change the express session store","}));","","app.get('/', function (req, res) {"," if (req.session.views) {"," req.session.views++"," } else {"," req.session.views = 1;"," }",""," res.send('Hello world! '+req.session.views);","});"," ","app.listen(3000, 'localhost'"]}],[{"start":{"row":25,"column":33},"end":{"row":25,"column":54},"action":"remove","lines":[" // express framework"],"id":64,"ignore":true},{"start":{"row":26,"column":23},"end":{"row":26,"column":30},"action":"remove","lines":["express"]},{"start":{"row":26,"column":23},"end":{"row":26,"column":30},"action":"insert","lines":["connect"]},{"start":{"row":26,"column":41},"end":{"row":27,"column":65},"action":"remove","lines":[" // session middleware"," cookieParser = require('cookie-parser'), // cookie middleware"]},{"start":{"row":27,"column":51},"end":{"row":27,"column":74},"action":"remove","lines":[" // mysql session store"]},{"start":{"row":30,"column":15},"end":{"row":30,"column":17},"action":"insert","lines":["db"]},{"start":{"row":30,"column":21},"end":{"row":30,"column":25},"action":"remove","lines":["name"]},{"start":{"row":31,"column":19},"end":{"row":31,"column":21},"action":"insert","lines":["db"]},{"start":{"row":31,"column":31},"end":{"row":31,"column":32},"action":"insert","lines":[" "]},{"start":{"row":32,"column":20},"end":{"row":32,"column":31},"action":"remove","lines":["atabasename"]},{"start":{"row":32,"column":20},"end":{"row":32,"column":21},"action":"insert","lines":["b"]},{"start":{"row":34,"column":5},"end":{"row":35,"column":3},"action":"remove","lines":[","," "]},{"start":{"row":34,"column":5},"end":{"row":36,"column":3},"action":"insert","lines":[";","","var"]},{"start":{"row":36,"column":17},"end":{"row":36,"column":30},"action":"insert","lines":[".createServer"]},{"start":{"row":38,"column":8},"end":{"row":38,"column":16},"action":"insert","lines":["express."]},{"start":{"row":39,"column":0},"end":{"row":40,"column":0},"action":"remove","lines":["",""]},{"start":{"row":39,"column":8},"end":{"row":39,"column":16},"action":"insert","lines":["express."]},{"start":{"row":40,"column":11},"end":{"row":45,"column":4},"action":"remove","lines":["keyboard cat',"," resave: false,"," saveUninitialized: true,"," cookie: {"," httpOnly: false,"," "]},{"start":{"row":40,"column":11},"end":{"row":40,"column":16},"action":"insert","lines":["super"]},{"start":{"row":40,"column":19},"end":{"row":40,"column":20},"action":"remove","lines":["u"]},{"start":{"row":40,"column":21},"end":{"row":57,"column":28},"action":"remove","lines":[": false,"," maxAge: 1000 * 60 * 60 * 24 * 3,"," expires: 1000 * 60 * 60 * 24 * 3"," },"," store: new MySQLStore(options) // Change the express session store","}));","","app.get('/', function (req, res) {"," if (req.session.views) {"," req.session.views++"," } else {"," req.session.views = 1;"," }",""," res.send('Hello world! '+req.session.views);","});"," ","app.listen(3000, 'localhost'"]},{"start":{"row":40,"column":21},"end":{"row":42,"column":1},"action":"insert","lines":["tkeygoeshere',"," store: new MySQLStore(options))","}"]}],[{"start":{"row":25,"column":33},"end":{"row":25,"column":54},"action":"insert","lines":[" // express framework"],"id":65,"ignore":true},{"start":{"row":26,"column":23},"end":{"row":26,"column":41},"action":"remove","lines":["connect-session'),"]},{"start":{"row":26,"column":23},"end":{"row":27,"column":65},"action":"insert","lines":["express-session'), // session middleware"," cookieParser = require('cookie-parser'), // cookie middleware"]},{"start":{"row":28,"column":51},"end":{"row":28,"column":74},"action":"insert","lines":[" // mysql session store"]},{"start":{"row":31,"column":15},"end":{"row":31,"column":17},"action":"remove","lines":["db"]},{"start":{"row":31,"column":19},"end":{"row":31,"column":23},"action":"insert","lines":["name"]},{"start":{"row":32,"column":19},"end":{"row":32,"column":21},"action":"remove","lines":["db"]},{"start":{"row":32,"column":29},"end":{"row":32,"column":30},"action":"remove","lines":[" "]},{"start":{"row":33,"column":20},"end":{"row":33,"column":21},"action":"remove","lines":["b"]},{"start":{"row":33,"column":20},"end":{"row":33,"column":31},"action":"insert","lines":["atabasename"]},{"start":{"row":35,"column":5},"end":{"row":37,"column":3},"action":"remove","lines":[";","","var"]},{"start":{"row":35,"column":5},"end":{"row":36,"column":3},"action":"insert","lines":[","," "]},{"start":{"row":36,"column":17},"end":{"row":36,"column":30},"action":"remove","lines":[".createServer"]},{"start":{"row":38,"column":8},"end":{"row":38,"column":16},"action":"remove","lines":["express."]},{"start":{"row":39,"column":0},"end":{"row":40,"column":0},"action":"insert","lines":["",""]},{"start":{"row":40,"column":8},"end":{"row":40,"column":16},"action":"remove","lines":["express."]},{"start":{"row":41,"column":11},"end":{"row":41,"column":16},"action":"remove","lines":["super"]},{"start":{"row":41,"column":11},"end":{"row":46,"column":4},"action":"insert","lines":["keyboard cat',"," resave: false,"," saveUninitialized: true,"," cookie: {"," httpOnly: false,"," "]},{"start":{"row":46,"column":7},"end":{"row":46,"column":8},"action":"insert","lines":["u"]},{"start":{"row":46,"column":10},"end":{"row":48,"column":1},"action":"remove","lines":["tkeygoeshere',"," store: new MySQLStore(options))","}"]},{"start":{"row":46,"column":10},"end":{"row":63,"column":28},"action":"insert","lines":[": false,"," maxAge: 1000 * 60 * 60 * 24 * 3,"," expires: 1000 * 60 * 60 * 24 * 3"," },"," store: new MySQLStore(options) // Change the express session store","}));","","app.get('/', function (req, res) {"," if (req.session.views) {"," req.session.views++"," } else {"," req.session.views = 1;"," }",""," res.send('Hello world! '+req.session.views);","});"," ","app.listen(3000, 'localhost'"]}],[{"start":{"row":25,"column":33},"end":{"row":25,"column":54},"action":"remove","lines":[" // express framework"],"id":66,"ignore":true},{"start":{"row":26,"column":23},"end":{"row":26,"column":30},"action":"remove","lines":["express"]},{"start":{"row":26,"column":23},"end":{"row":26,"column":30},"action":"insert","lines":["connect"]},{"start":{"row":26,"column":41},"end":{"row":27,"column":65},"action":"remove","lines":[" // session middleware"," cookieParser = require('cookie-parser'), // cookie middleware"]},{"start":{"row":27,"column":51},"end":{"row":27,"column":74},"action":"remove","lines":[" // mysql session store"]},{"start":{"row":30,"column":15},"end":{"row":30,"column":17},"action":"insert","lines":["db"]},{"start":{"row":30,"column":21},"end":{"row":30,"column":25},"action":"remove","lines":["name"]},{"start":{"row":31,"column":19},"end":{"row":31,"column":21},"action":"insert","lines":["db"]},{"start":{"row":31,"column":31},"end":{"row":31,"column":32},"action":"insert","lines":[" "]},{"start":{"row":32,"column":20},"end":{"row":32,"column":31},"action":"remove","lines":["atabasename"]},{"start":{"row":32,"column":20},"end":{"row":32,"column":21},"action":"insert","lines":["b"]},{"start":{"row":34,"column":5},"end":{"row":35,"column":3},"action":"remove","lines":[","," "]},{"start":{"row":34,"column":5},"end":{"row":36,"column":3},"action":"insert","lines":[";","","var"]},{"start":{"row":36,"column":17},"end":{"row":36,"column":30},"action":"insert","lines":[".createServer"]},{"start":{"row":38,"column":8},"end":{"row":38,"column":16},"action":"insert","lines":["express."]},{"start":{"row":39,"column":0},"end":{"row":40,"column":0},"action":"remove","lines":["",""]},{"start":{"row":39,"column":8},"end":{"row":39,"column":16},"action":"insert","lines":["express."]},{"start":{"row":40,"column":11},"end":{"row":45,"column":4},"action":"remove","lines":["keyboard cat',"," resave: false,"," saveUninitialized: true,"," cookie: {"," httpOnly: false,"," "]},{"start":{"row":40,"column":11},"end":{"row":40,"column":16},"action":"insert","lines":["super"]},{"start":{"row":40,"column":19},"end":{"row":40,"column":20},"action":"remove","lines":["u"]},{"start":{"row":40,"column":21},"end":{"row":57,"column":28},"action":"remove","lines":[": false,"," maxAge: 1000 * 60 * 60 * 24 * 3,"," expires: 1000 * 60 * 60 * 24 * 3"," },"," store: new MySQLStore(options) // Change the express session store","}));","","app.get('/', function (req, res) {"," if (req.session.views) {"," req.session.views++"," } else {"," req.session.views = 1;"," }",""," res.send('Hello world! '+req.session.views);","});"," ","app.listen(3000, 'localhost'"]},{"start":{"row":40,"column":21},"end":{"row":42,"column":1},"action":"insert","lines":["tkeygoeshere',"," store: new MySQLStore(options))","}"]}],[{"start":{"row":25,"column":33},"end":{"row":25,"column":54},"action":"insert","lines":[" // express framework"],"id":67,"ignore":true},{"start":{"row":26,"column":23},"end":{"row":26,"column":41},"action":"remove","lines":["connect-session'),"]},{"start":{"row":26,"column":23},"end":{"row":27,"column":65},"action":"insert","lines":["express-session'), // session middleware"," cookieParser = require('cookie-parser'), // cookie middleware"]},{"start":{"row":28,"column":51},"end":{"row":28,"column":74},"action":"insert","lines":[" // mysql session store"]},{"start":{"row":31,"column":15},"end":{"row":31,"column":17},"action":"remove","lines":["db"]},{"start":{"row":31,"column":19},"end":{"row":31,"column":23},"action":"insert","lines":["name"]},{"start":{"row":32,"column":19},"end":{"row":32,"column":21},"action":"remove","lines":["db"]},{"start":{"row":32,"column":29},"end":{"row":32,"column":30},"action":"remove","lines":[" "]},{"start":{"row":33,"column":20},"end":{"row":33,"column":21},"action":"remove","lines":["b"]},{"start":{"row":33,"column":20},"end":{"row":33,"column":31},"action":"insert","lines":["atabasename"]},{"start":{"row":35,"column":5},"end":{"row":37,"column":3},"action":"remove","lines":[";","","var"]},{"start":{"row":35,"column":5},"end":{"row":36,"column":3},"action":"insert","lines":[","," "]},{"start":{"row":36,"column":17},"end":{"row":36,"column":30},"action":"remove","lines":[".createServer"]},{"start":{"row":38,"column":8},"end":{"row":38,"column":16},"action":"remove","lines":["express."]},{"start":{"row":39,"column":0},"end":{"row":40,"column":0},"action":"insert","lines":["",""]},{"start":{"row":40,"column":8},"end":{"row":40,"column":16},"action":"remove","lines":["express."]},{"start":{"row":41,"column":11},"end":{"row":41,"column":16},"action":"remove","lines":["super"]},{"start":{"row":41,"column":11},"end":{"row":46,"column":4},"action":"insert","lines":["keyboard cat',"," resave: false,"," saveUninitialized: true,"," cookie: {"," httpOnly: false,"," "]},{"start":{"row":46,"column":7},"end":{"row":46,"column":8},"action":"insert","lines":["u"]},{"start":{"row":46,"column":10},"end":{"row":48,"column":1},"action":"remove","lines":["tkeygoeshere',"," store: new MySQLStore(options))","}"]},{"start":{"row":46,"column":10},"end":{"row":63,"column":28},"action":"insert","lines":[": false,"," maxAge: 1000 * 60 * 60 * 24 * 3,"," expires: 1000 * 60 * 60 * 24 * 3"," },"," store: new MySQLStore(options) // Change the express session store","}));","","app.get('/', function (req, res) {"," if (req.session.views) {"," req.session.views++"," } else {"," req.session.views = 1;"," }",""," res.send('Hello world! '+req.session.views);","});"," ","app.listen(3000, 'localhost'"]}],[{"start":{"row":25,"column":33},"end":{"row":25,"column":54},"action":"remove","lines":[" // express framework"],"id":68,"ignore":true},{"start":{"row":26,"column":23},"end":{"row":26,"column":30},"action":"remove","lines":["express"]},{"start":{"row":26,"column":23},"end":{"row":26,"column":30},"action":"insert","lines":["connect"]},{"start":{"row":26,"column":41},"end":{"row":27,"column":65},"action":"remove","lines":[" // session middleware"," cookieParser = require('cookie-parser'), // cookie middleware"]},{"start":{"row":27,"column":51},"end":{"row":27,"column":74},"action":"remove","lines":[" // mysql session store"]},{"start":{"row":30,"column":15},"end":{"row":30,"column":17},"action":"insert","lines":["db"]},{"start":{"row":30,"column":21},"end":{"row":30,"column":25},"action":"remove","lines":["name"]},{"start":{"row":31,"column":19},"end":{"row":31,"column":21},"action":"insert","lines":["db"]},{"start":{"row":31,"column":31},"end":{"row":31,"column":32},"action":"insert","lines":[" "]},{"start":{"row":32,"column":20},"end":{"row":32,"column":31},"action":"remove","lines":["atabasename"]},{"start":{"row":32,"column":20},"end":{"row":32,"column":21},"action":"insert","lines":["b"]},{"start":{"row":34,"column":5},"end":{"row":35,"column":3},"action":"remove","lines":[","," "]},{"start":{"row":34,"column":5},"end":{"row":36,"column":3},"action":"insert","lines":[";","","var"]},{"start":{"row":36,"column":17},"end":{"row":36,"column":30},"action":"insert","lines":[".createServer"]},{"start":{"row":38,"column":8},"end":{"row":38,"column":16},"action":"insert","lines":["express."]},{"start":{"row":39,"column":0},"end":{"row":40,"column":0},"action":"remove","lines":["",""]},{"start":{"row":39,"column":8},"end":{"row":39,"column":16},"action":"insert","lines":["express."]},{"start":{"row":40,"column":11},"end":{"row":45,"column":4},"action":"remove","lines":["keyboard cat',"," resave: false,"," saveUninitialized: true,"," cookie: {"," httpOnly: false,"," "]},{"start":{"row":40,"column":11},"end":{"row":40,"column":16},"action":"insert","lines":["super"]},{"start":{"row":40,"column":19},"end":{"row":40,"column":20},"action":"remove","lines":["u"]},{"start":{"row":40,"column":21},"end":{"row":57,"column":28},"action":"remove","lines":[": false,"," maxAge: 1000 * 60 * 60 * 24 * 3,"," expires: 1000 * 60 * 60 * 24 * 3"," },"," store: new MySQLStore(options) // Change the express session store","}));","","app.get('/', function (req, res) {"," if (req.session.views) {"," req.session.views++"," } else {"," req.session.views = 1;"," }",""," res.send('Hello world! '+req.session.views);","});"," ","app.listen(3000, 'localhost'"]},{"start":{"row":40,"column":21},"end":{"row":42,"column":1},"action":"insert","lines":["tkeygoeshere',"," store: new MySQLStore(options))","}"]}],[{"start":{"row":25,"column":33},"end":{"row":25,"column":54},"action":"insert","lines":[" // express framework"],"id":69,"ignore":true},{"start":{"row":26,"column":23},"end":{"row":26,"column":41},"action":"remove","lines":["connect-session'),"]},{"start":{"row":26,"column":23},"end":{"row":27,"column":65},"action":"insert","lines":["express-session'), // session middleware"," cookieParser = require('cookie-parser'), // cookie middleware"]},{"start":{"row":28,"column":51},"end":{"row":28,"column":74},"action":"insert","lines":[" // mysql session store"]},{"start":{"row":31,"column":15},"end":{"row":31,"column":17},"action":"remove","lines":["db"]},{"start":{"row":31,"column":19},"end":{"row":31,"column":23},"action":"insert","lines":["name"]},{"start":{"row":32,"column":19},"end":{"row":32,"column":21},"action":"remove","lines":["db"]},{"start":{"row":32,"column":29},"end":{"row":32,"column":30},"action":"remove","lines":[" "]},{"start":{"row":33,"column":20},"end":{"row":33,"column":21},"action":"remove","lines":["b"]},{"start":{"row":33,"column":20},"end":{"row":33,"column":31},"action":"insert","lines":["atabasename"]},{"start":{"row":35,"column":5},"end":{"row":37,"column":3},"action":"remove","lines":[";","","var"]},{"start":{"row":35,"column":5},"end":{"row":36,"column":3},"action":"insert","lines":[","," "]},{"start":{"row":36,"column":17},"end":{"row":36,"column":30},"action":"remove","lines":[".createServer"]},{"start":{"row":38,"column":8},"end":{"row":38,"column":16},"action":"remove","lines":["express."]},{"start":{"row":39,"column":0},"end":{"row":40,"column":0},"action":"insert","lines":["",""]},{"start":{"row":40,"column":8},"end":{"row":40,"column":16},"action":"remove","lines":["express."]},{"start":{"row":41,"column":11},"end":{"row":41,"column":16},"action":"remove","lines":["super"]},{"start":{"row":41,"column":11},"end":{"row":46,"column":4},"action":"insert","lines":["keyboard cat',"," resave: false,"," saveUninitialized: true,"," cookie: {"," httpOnly: false,"," "]},{"start":{"row":46,"column":7},"end":{"row":46,"column":8},"action":"insert","lines":["u"]},{"start":{"row":46,"column":10},"end":{"row":48,"column":1},"action":"remove","lines":["tkeygoeshere',"," store: new MySQLStore(options))","}"]},{"start":{"row":46,"column":10},"end":{"row":63,"column":28},"action":"insert","lines":[": false,"," maxAge: 1000 * 60 * 60 * 24 * 3,"," expires: 1000 * 60 * 60 * 24 * 3"," },"," store: new MySQLStore(options) // Change the express session store","}));","","app.get('/', function (req, res) {"," if (req.session.views) {"," req.session.views++"," } else {"," req.session.views = 1;"," }",""," res.send('Hello world! '+req.session.views);","});"," ","app.listen(3000, 'localhost'"]}],[{"start":{"row":25,"column":33},"end":{"row":25,"column":54},"action":"remove","lines":[" // express framework"],"id":70,"ignore":true},{"start":{"row":26,"column":23},"end":{"row":26,"column":30},"action":"remove","lines":["express"]},{"start":{"row":26,"column":23},"end":{"row":26,"column":30},"action":"insert","lines":["connect"]},{"start":{"row":26,"column":41},"end":{"row":27,"column":65},"action":"remove","lines":[" // session middleware"," cookieParser = require('cookie-parser'), // cookie middleware"]},{"start":{"row":27,"column":51},"end":{"row":27,"column":74},"action":"remove","lines":[" // mysql session store"]},{"start":{"row":30,"column":15},"end":{"row":30,"column":17},"action":"insert","lines":["db"]},{"start":{"row":30,"column":21},"end":{"row":30,"column":25},"action":"remove","lines":["name"]},{"start":{"row":31,"column":19},"end":{"row":31,"column":21},"action":"insert","lines":["db"]},{"start":{"row":31,"column":31},"end":{"row":31,"column":32},"action":"insert","lines":[" "]},{"start":{"row":32,"column":20},"end":{"row":32,"column":31},"action":"remove","lines":["atabasename"]},{"start":{"row":32,"column":20},"end":{"row":32,"column":21},"action":"insert","lines":["b"]},{"start":{"row":34,"column":5},"end":{"row":35,"column":3},"action":"remove","lines":[","," "]},{"start":{"row":34,"column":5},"end":{"row":36,"column":3},"action":"insert","lines":[";","","var"]},{"start":{"row":36,"column":17},"end":{"row":36,"column":30},"action":"insert","lines":[".createServer"]},{"start":{"row":38,"column":8},"end":{"row":38,"column":16},"action":"insert","lines":["express."]},{"start":{"row":39,"column":0},"end":{"row":40,"column":0},"action":"remove","lines":["",""]},{"start":{"row":39,"column":8},"end":{"row":39,"column":16},"action":"insert","lines":["express."]},{"start":{"row":40,"column":11},"end":{"row":45,"column":4},"action":"remove","lines":["keyboard cat',"," resave: false,"," saveUninitialized: true,"," cookie: {"," httpOnly: false,"," "]},{"start":{"row":40,"column":11},"end":{"row":40,"column":16},"action":"insert","lines":["super"]},{"start":{"row":40,"column":19},"end":{"row":40,"column":20},"action":"remove","lines":["u"]},{"start":{"row":40,"column":21},"end":{"row":57,"column":28},"action":"remove","lines":[": false,"," maxAge: 1000 * 60 * 60 * 24 * 3,"," expires: 1000 * 60 * 60 * 24 * 3"," },"," store: new MySQLStore(options) // Change the express session store","}));","","app.get('/', function (req, res) {"," if (req.session.views) {"," req.session.views++"," } else {"," req.session.views = 1;"," }",""," res.send('Hello world! '+req.session.views);","});"," ","app.listen(3000, 'localhost'"]},{"start":{"row":40,"column":21},"end":{"row":42,"column":1},"action":"insert","lines":["tkeygoeshere',"," store: new MySQLStore(options))","}"]}],[{"start":{"row":25,"column":33},"end":{"row":25,"column":54},"action":"insert","lines":[" // express framework"],"id":71,"ignore":true},{"start":{"row":26,"column":23},"end":{"row":26,"column":41},"action":"remove","lines":["connect-session'),"]},{"start":{"row":26,"column":23},"end":{"row":27,"column":65},"action":"insert","lines":["express-session'), // session middleware"," cookieParser = require('cookie-parser'), // cookie middleware"]},{"start":{"row":28,"column":51},"end":{"row":28,"column":74},"action":"insert","lines":[" // mysql session store"]},{"start":{"row":31,"column":15},"end":{"row":31,"column":17},"action":"remove","lines":["db"]},{"start":{"row":31,"column":19},"end":{"row":31,"column":23},"action":"insert","lines":["name"]},{"start":{"row":32,"column":19},"end":{"row":32,"column":21},"action":"remove","lines":["db"]},{"start":{"row":32,"column":29},"end":{"row":32,"column":30},"action":"remove","lines":[" "]},{"start":{"row":33,"column":20},"end":{"row":33,"column":21},"action":"remove","lines":["b"]},{"start":{"row":33,"column":20},"end":{"row":33,"column":31},"action":"insert","lines":["atabasename"]},{"start":{"row":35,"column":5},"end":{"row":37,"column":3},"action":"remove","lines":[";","","var"]},{"start":{"row":35,"column":5},"end":{"row":36,"column":3},"action":"insert","lines":[","," "]},{"start":{"row":36,"column":17},"end":{"row":36,"column":30},"action":"remove","lines":[".createServer"]},{"start":{"row":38,"column":8},"end":{"row":38,"column":16},"action":"remove","lines":["express."]},{"start":{"row":39,"column":0},"end":{"row":40,"column":0},"action":"insert","lines":["",""]},{"start":{"row":40,"column":8},"end":{"row":40,"column":16},"action":"remove","lines":["express."]},{"start":{"row":41,"column":11},"end":{"row":41,"column":16},"action":"remove","lines":["super"]},{"start":{"row":41,"column":11},"end":{"row":46,"column":4},"action":"insert","lines":["keyboard cat',"," resave: false,"," saveUninitialized: true,"," cookie: {"," httpOnly: false,"," "]},{"start":{"row":46,"column":7},"end":{"row":46,"column":8},"action":"insert","lines":["u"]},{"start":{"row":46,"column":10},"end":{"row":48,"column":1},"action":"remove","lines":["tkeygoeshere',"," store: new MySQLStore(options))","}"]},{"start":{"row":46,"column":10},"end":{"row":63,"column":28},"action":"insert","lines":[": false,"," maxAge: 1000 * 60 * 60 * 24 * 3,"," expires: 1000 * 60 * 60 * 24 * 3"," },"," store: new MySQLStore(options) // Change the express session store","}));","","app.get('/', function (req, res) {"," if (req.session.views) {"," req.session.views++"," } else {"," req.session.views = 1;"," }",""," res.send('Hello world! '+req.session.views);","});"," ","app.listen(3000, 'localhost'"]}]]},"ace":{"folds":[],"scrolltop":360,"scrollleft":0,"selection":{"start":{"row":46,"column":10},"end":{"row":46,"column":10},"isBackwards":false},"options":{"guessTabSize":true,"useWrapMode":false,"wrapToView":true},"firstLineState":0},"timestamp":1551267938260,"hash":"a66f1d6846f86da91377fc186a5283e7d42dbcbf"}

@@ -9,3 +9,2 @@ /*!

function isFunction(obj) {

@@ -15,3 +14,2 @@ return Object.prototype.toString.call(obj) == '[object Function]';

function isNumber(obj) {

@@ -21,65 +19,131 @@ return Object.prototype.toString.call(obj) == '[object Number]';

/**
* Wrapper to create cipher text, digest & encoded payload
*/
function encryptData(plaintext, secret, algorithm, hashing, encodeas) {
var iv = crypto.randomBytes(16).toString(encodeas);
function encryptData(plaintext, secret, algo) {
var hmac = digest(secret, plaintext);
var aad = digest(secret, JSON.stringify(plaintext),
hashing, encodeas);
var ct = encrypt(secret, JSON.stringify(plaintext),
algorithm, encodeas, iv, aad);
var hmac = digest(secret, ct.ct, hashing, encodeas);
var obj = {
hmac: hmac,
pt: plaintext
ct: ct.ct,
at: ct.at,
aad: aad,
iv: iv
};
var ct = encrypt(secret, JSON.stringify(obj), algo);
return ct;
return JSON.stringify(obj);
}
/**
* Wrapper to extract digest, verify digest & decrypt cipher text
*/
function decryptData(ciphertext, secret, algorithm, hashing, encodeas) {
if (ciphertext)
ciphertext = JSON.parse(ciphertext);
function decryptData(ciphertext, secret) {
var pt = decrypt(secret, ciphertext);
var obj = JSON.parse(pt);
var hmac = digest(secret, obj.pt);
var hmac = digest(secret, ciphertext.ct, hashing, encodeas);
if (hmac != obj.hmac) {
if (hmac != ciphertext.hmac) {
throw 'Encrypted session was tampered with!';
}
return obj.pt;
var pt = decrypt(secret, ciphertext.ct, algorithm,
encodeas, ciphertext.iv, Buffer.from(ciphertext.at),
ciphertext.aad);
return JSON.parse(pt);
}
function digest(key, obj) {
var hmac = crypto.createHmac('sha512', key);
hmac.setEncoding('hex');
/**
* Generates HMAC as digest of cipher text
*/
function digest(key, obj, hashing, encodeas) {
var hmac = crypto.createHmac(hashing, key);
hmac.setEncoding(encodeas);
hmac.write(obj);
hmac.end();
return hmac.read();
return hmac.read().toString(encodeas);
}
/**
* Creates cipher text from plain text
*/
function encrypt(key, pt, algo, encodeas, iv, aad) {
var cipher = crypto.createCipheriv(algo, key, iv, {
authTagLength: 16
}), ct, at;
function encrypt(key, pt, algo) {
algo = algo || 'aes-256-ctr';
pt = (Buffer.isBuffer(pt)) ? pt : new Buffer(pt);
try {
cipher.setAAD(Buffer.from(aad), {
plaintextLength: Buffer.byteLength(pt)
});
} catch(e) {
// Discard as the algo may not support AAD
}
var cipher = crypto.createCipher(algo, key);
var ct = [];
ct = cipher.update(pt, 'utf8', encodeas);
ct += cipher.final(encodeas);
ct.push(cipher.update(pt, 'buffer', 'hex'));
ct.push(cipher.final('hex'));
try {
at = cipher.getAuthTag();
} catch(e) {
// Discard as the algo may not support auth tags
}
return ct.join('');
return (at) ? {'ct': ct, 'at': at} : {'ct': ct};
}
/**
* Creates plain text from cipher text
*/
function decrypt(key, ct, algo, encodeas, iv, at, aad) {
var cipher = crypto.createDecipheriv(algo, key, iv)
, pt;
function decrypt(key, ct, algo) {
algo = algo || 'aes-256-ctr';
var cipher = crypto.createDecipher(algo, key);
var pt = [];
try {
if (at)
cipher.setAuthTag(Buffer.from(at));
} catch(e) {
// Discard as the algo may not support Auth tags
}
pt.push(cipher.update(ct, 'hex', 'utf8'));
pt.push(cipher.final('utf8'));
try {
if (aad)
cipher.setAAD(Buffer.from(aad), {plaintextLength: Buffer.byteLength(ct)});
} catch(e) {
// Discard as the algo may not support AAD
}
return pt.join('');
pt = cipher.update(ct, encodeas, 'utf8');
pt += cipher.final('utf8');
return pt;
}
/**
* Derive key from supplied pass phrase
*/
function derive_key(secret) {
var key, hash, salt;
if (!secret)
return false;
hash = crypto.createHash('sha512');
hash.update(secret);
salt = hash.digest('hex').substr(0, 16);
key = crypto.pbkdf2Sync(secret, salt, 25000, 64, 'sha512');
return key.toString('hex').substr(0, 32);
}
module.exports = function(connect) {

@@ -104,9 +168,7 @@ var Store = connect.Store || connect.session.Store,

if (options.hasOwnProperty('secret')) {
this.secret = options.secret;
this.secret = derive_key(options.secret) || false;
this.algorithm = options.algorithm || 'aes-256-gcm';
this.hashing = options.hashing || 'sha512';
this.encodeas = options.encodeas || 'hex';
if (options.hasOwnProperty('algorithm'))
this.algorithm = options.algorithm || 'aes-256-ctr';
}
if (options.hasOwnProperty('pool')) {

@@ -189,6 +251,4 @@ var pool = options.pool;

util.inherits(MySQLStore, Store);
Object.defineProperty(MySQLStore.prototype, 'mysql', {

@@ -211,3 +271,2 @@ get: function() {

Object.defineProperty(MySQLStore.prototype, 'pool', {

@@ -223,3 +282,2 @@ get: function() {

},
set: function(val) {

@@ -230,3 +288,2 @@ this.__pool = val;

MySQLStore.prototype.query = function(query, callback) {

@@ -239,3 +296,2 @@ var usePool = this.usePool,

maxTries = (this.numRetries || 3) + 1,
error = function(err) {

@@ -246,3 +302,2 @@ if (err.code === 'PROTOCOL_CONNECTION_LOST') {

},
release = function(connection) {

@@ -259,3 +314,2 @@ return function(err, value) {

},
execute = function(connection) {

@@ -269,3 +323,2 @@ connection.on('error', error);

},
retry = function(prevErr) {

@@ -291,3 +344,3 @@ if (tries < maxTries) {

}
// TODO: Use "prevError" to report an inner error (will require error lib?)
//TODO: Use "prevError" to report an inner error (will require error lib?)
else callback(new Error("Connection failed too many times in a row"));

@@ -299,20 +352,20 @@ };

MySQLStore.prototype.get = function(sid, callback) {
var self = this;
var secret = self.secret;
this.query(function(connection, done) {
connection.query('SELECT `session` FROM `' + TableName + '` WHERE `sid` = ?', [sid], function(err, result) {
connection.query('SELECT `session` FROM `' + TableName +
'` WHERE `sid` = ?', [sid],
function(err, result) {
if (result && result[0] && result[0].session) {
var data = result[0].session;
try {
var session = result[0].session;
if (secret) {
session = decryptData(session, secret, this.algo);
if (self.secret) {
data = decryptData(data, self.secret,
self.algorithm, self.hashing,
self.encodeas);
}
var session = JSON.parse(data);
session = JSON.parse(session);
done(null, session);

@@ -329,3 +382,2 @@ } catch (cryptoErr) {

MySQLStore.prototype.set = function(sid, session, callback) {

@@ -337,3 +389,4 @@ var expires = new Date(session.cookie.expires).getTime() / 1000;

if (this.secret) {
session = encryptData(session, this.secret, this.algorithm);
session = encryptData(session, this.secret, this.algorithm, this.hashing,
this.encodeas);
}

@@ -352,3 +405,2 @@

MySQLStore.prototype.destroy = function(sid, callback) {

@@ -355,0 +407,0 @@ this.query(function(connection, done) {

@@ -9,3 +9,3 @@ {

"description": "a MySQL session store for connect",
"version": "2.1.7",
"version": "2.2.0",
"homepage": "https://github.com/nlf/connect-mysql",

@@ -18,3 +18,3 @@ "repository": {

"dependencies": {
"mysql": "^2.14.1"
"mysql": "^2.16.0"
},

@@ -21,0 +21,0 @@ "devDependencies": {},

@@ -26,20 +26,41 @@ # connect-mysql

```javascript
var express = require('express'),
session = require('connect-session'),
MySQLStore = require('connect-mysql')(session),
var express = require('express'), // express framework
session = require('express-session'), // session middleware
cookieParser = require('cookie-parser'), // cookie middleware
MySQLStore = require('connect-mysql')(session), // mysql session store
options = {
config: {
user: 'dbuser',
password: 'dbpassword',
database: 'db'
user: 'username',
password: 'password',
database: 'databasename'
}
};
},
app = express();
var app = express.createServer();
app.use(cookieParser());
app.use(express.cookieParser());
app.use(express.session({
secret: 'supersecretkeygoeshere',
store: new MySQLStore(options))
app.use(session({
secret: 'keyboard cat',
resave: false,
saveUninitialized: true,
cookie: {
httpOnly: false,
secure: false,
maxAge: 1000 * 60 * 60 * 24 * 3,
expires: 1000 * 60 * 60 * 24 * 3
},
store: new MySQLStore(options) // Change the express session store
}));
app.get('/', function (req, res) {
if (req.session.views) {
req.session.views++
} else {
req.session.views = 1;
}
res.send('Hello world! '+req.session.views);
});
app.listen(3000, 'localhost');
```

@@ -46,0 +67,0 @@

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

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

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc