connect-mysql
Advanced tools
Comparing version 2.1.7 to 2.2.0
@@ -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
spdx disjunction for an artifact's license information
Licensespdx disjunction for an artifact's license information
Found 1 instance in 1 package
Mixed license
License(Experimental) Package contains multiple licenses.
Found 1 instance in 1 package
Network access
Supply chain riskThis module accesses the network.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 2 instances in 1 package
Filesystem access
Supply chain riskAccesses the file system, and could potentially read sensitive data.
Found 1 instance in 1 package
spdx disjunction for an artifact's license information
Licensespdx disjunction for an artifact's license information
Found 1 instance in 1 package
Mixed license
License(Experimental) Package contains multiple licenses.
Found 1 instance in 1 package
Non-permissive License
License(Experimental) A license not known to be considered permissive was found
Found 1 instance in 1 package
Unidentified License
License(Experimental) Something that seems like a license was found, but its contents could not be matched with a known license
Found 1 instance in 1 package
2
100
374
117
0
0
120915
21
Updatedmysql@^2.16.0