Comparing version 8.0.2 to 8.0.3
@@ -40,3 +40,3 @@ 'use strict' | ||
writable: true, | ||
value: this.connectionParameters.password | ||
value: this.connectionParameters.password, | ||
}) | ||
@@ -56,9 +56,11 @@ | ||
this.connection = c.connection || new Connection({ | ||
stream: c.stream, | ||
ssl: this.connectionParameters.ssl, | ||
keepAlive: c.keepAlive || false, | ||
keepAliveInitialDelayMillis: c.keepAliveInitialDelayMillis || 0, | ||
encoding: this.connectionParameters.client_encoding || 'utf8' | ||
}) | ||
this.connection = | ||
c.connection || | ||
new Connection({ | ||
stream: c.stream, | ||
ssl: this.connectionParameters.ssl, | ||
keepAlive: c.keepAlive || false, | ||
keepAliveInitialDelayMillis: c.keepAliveInitialDelayMillis || 0, | ||
encoding: this.connectionParameters.client_encoding || 'utf8', | ||
}) | ||
this.queryQueue = [] | ||
@@ -132,5 +134,6 @@ this.binary = c.binary || defaults.binary | ||
if (typeof self.password === 'function') { | ||
self._Promise.resolve() | ||
self._Promise | ||
.resolve() | ||
.then(() => self.password()) | ||
.then(pass => { | ||
.then((pass) => { | ||
if (pass !== undefined) { | ||
@@ -146,3 +149,4 @@ if (typeof pass !== 'string') { | ||
cb(msg) | ||
}).catch(err => { | ||
}) | ||
.catch((err) => { | ||
con.emit('error', err) | ||
@@ -164,18 +168,27 @@ }) | ||
// password request handling | ||
con.on('authenticationCleartextPassword', checkPgPass(function () { | ||
con.password(self.password) | ||
})) | ||
con.on( | ||
'authenticationCleartextPassword', | ||
checkPgPass(function () { | ||
con.password(self.password) | ||
}) | ||
) | ||
// password request handling | ||
con.on('authenticationMD5Password', checkPgPass(function (msg) { | ||
con.password(utils.postgresMd5PasswordHash(self.user, self.password, msg.salt)) | ||
})) | ||
con.on( | ||
'authenticationMD5Password', | ||
checkPgPass(function (msg) { | ||
con.password(utils.postgresMd5PasswordHash(self.user, self.password, msg.salt)) | ||
}) | ||
) | ||
// password request handling (SASL) | ||
var saslSession | ||
con.on('authenticationSASL', checkPgPass(function (msg) { | ||
saslSession = sasl.startSession(msg.mechanisms) | ||
con.on( | ||
'authenticationSASL', | ||
checkPgPass(function (msg) { | ||
saslSession = sasl.startSession(msg.mechanisms) | ||
con.sendSASLInitialResponseMessage(saslSession.mechanism, saslSession.response) | ||
})) | ||
con.sendSASLInitialResponseMessage(saslSession.mechanism, saslSession.response) | ||
}) | ||
) | ||
@@ -267,5 +280,3 @@ // password request handling (SASL) | ||
con.once('end', () => { | ||
const error = this._ending | ||
? new Error('Connection terminated') | ||
: new Error('Connection terminated unexpectedly') | ||
const error = this._ending ? new Error('Connection terminated') : new Error('Connection terminated unexpectedly') | ||
@@ -376,3 +387,3 @@ clearTimeout(connectionTimeoutHandle) | ||
user: params.user, | ||
database: params.database | ||
database: params.database, | ||
} | ||
@@ -432,7 +443,7 @@ | ||
var hasBackslash = false | ||
var escaped = '\'' | ||
var escaped = "'" | ||
for (var i = 0; i < str.length; i++) { | ||
var c = str[i] | ||
if (c === '\'') { | ||
if (c === "'") { | ||
escaped += c + c | ||
@@ -447,3 +458,3 @@ } else if (c === '\\') { | ||
escaped += '\'' | ||
escaped += "'" | ||
@@ -500,3 +511,3 @@ if (hasBackslash === true) { | ||
result = new this._Promise((resolve, reject) => { | ||
query.callback = (err, res) => err ? reject(err) : resolve(res) | ||
query.callback = (err, res) => (err ? reject(err) : resolve(res)) | ||
}) | ||
@@ -520,3 +531,3 @@ } | ||
// just do nothing if query completes | ||
query.callback = () => { } | ||
query.callback = () => {} | ||
@@ -569,3 +580,3 @@ // Remove from queue | ||
// if we have never connected, then end is a noop, callback immediately | ||
if (this.connection.stream.readyState === 'closed') { | ||
if (!this.connection._connecting) { | ||
if (cb) { | ||
@@ -572,0 +583,0 @@ cb() |
@@ -45,9 +45,6 @@ 'use strict' | ||
if (this.stream.readyState === 'closed') { | ||
this.stream.connect(port, host) | ||
} else if (this.stream.readyState === 'open') { | ||
this.emit('connect') | ||
} | ||
this._connecting = true | ||
this.stream.connect(port, host) | ||
this.stream.on('connect', function () { | ||
this.stream.once('connect', function () { | ||
if (self._keepAlive) { | ||
@@ -84,3 +81,4 @@ self.stream.setKeepAlive(true, self._keepAliveInitialDelayMillis) | ||
return self.emit('error', new Error('The server does not support SSL connections')) | ||
default: // Any other response byte, including 'E' (ErrorResponse) indicating a server error | ||
default: | ||
// Any other response byte, including 'E' (ErrorResponse) indicating a server error | ||
self.stream.end() | ||
@@ -90,5 +88,8 @@ return self.emit('error', new Error('There was an error establishing an SSL connection')) | ||
var tls = require('tls') | ||
const options = Object.assign({ | ||
socket: self.stream | ||
}, self.ssl) | ||
const options = Object.assign( | ||
{ | ||
socket: self.stream, | ||
}, | ||
self.ssl | ||
) | ||
if (net.isIP(host) === 0) { | ||
@@ -189,3 +190,3 @@ options.servername = host | ||
this._ending = true | ||
if (!this.stream.writable) { | ||
if (!this._connecting || !this.stream.writable) { | ||
this.stream.end() | ||
@@ -192,0 +193,0 @@ return |
@@ -25,5 +25,3 @@ 'use strict' | ||
return config[key] || | ||
envVar || | ||
defaults[key] | ||
return config[key] || envVar || defaults[key] | ||
} | ||
@@ -70,3 +68,3 @@ | ||
writable: true, | ||
value: val('password', config) | ||
value: val('password', config), | ||
}) | ||
@@ -79,3 +77,3 @@ | ||
// a domain socket begins with '/' | ||
this.isDomainSocket = (!(this.host || '').indexOf('/')) | ||
this.isDomainSocket = !(this.host || '').indexOf('/') | ||
@@ -82,0 +80,0 @@ this.application_name = val('application_name', config, 'PGAPPNAME') |
@@ -38,3 +38,3 @@ 'use strict' | ||
headerSize: 1, | ||
lengthPadding: -4 | ||
lengthPadding: -4, | ||
}) | ||
@@ -54,9 +54,6 @@ var self = this | ||
if (this.stream.readyState === 'closed') { | ||
this.stream.connect(port, host) | ||
} else if (this.stream.readyState === 'open') { | ||
this.emit('connect') | ||
} | ||
this._connecting = true | ||
this.stream.connect(port, host) | ||
this.stream.on('connect', function () { | ||
this.stream.once('connect', function () { | ||
if (self._keepAlive) { | ||
@@ -93,3 +90,4 @@ self.stream.setKeepAlive(true, self._keepAliveInitialDelayMillis) | ||
return self.emit('error', new Error('The server does not support SSL connections')) | ||
default: // Any other response byte, including 'E' (ErrorResponse) indicating a server error | ||
default: | ||
// Any other response byte, including 'E' (ErrorResponse) indicating a server error | ||
self.stream.end() | ||
@@ -99,5 +97,8 @@ return self.emit('error', new Error('There was an error establishing an SSL connection')) | ||
var tls = require('tls') | ||
const options = Object.assign({ | ||
socket: self.stream | ||
}, self.ssl) | ||
const options = Object.assign( | ||
{ | ||
socket: self.stream, | ||
}, | ||
self.ssl | ||
) | ||
if (net.isIP(host) === 0) { | ||
@@ -134,12 +135,7 @@ options.servername = host | ||
Connection.prototype.requestSsl = function () { | ||
var bodyBuffer = this.writer | ||
.addInt16(0x04D2) | ||
.addInt16(0x162F).flush() | ||
var bodyBuffer = this.writer.addInt16(0x04d2).addInt16(0x162f).flush() | ||
var length = bodyBuffer.length + 4 | ||
var buffer = new Writer() | ||
.addInt32(length) | ||
.add(bodyBuffer) | ||
.join() | ||
var buffer = new Writer().addInt32(length).add(bodyBuffer).join() | ||
this.stream.write(buffer) | ||
@@ -149,5 +145,3 @@ } | ||
Connection.prototype.startup = function (config) { | ||
var writer = this.writer | ||
.addInt16(3) | ||
.addInt16(0) | ||
var writer = this.writer.addInt16(3).addInt16(0) | ||
@@ -166,6 +160,3 @@ Object.keys(config).forEach(function (key) { | ||
var buffer = new Writer() | ||
.addInt32(length) | ||
.add(bodyBuffer) | ||
.join() | ||
var buffer = new Writer().addInt32(length).add(bodyBuffer).join() | ||
this.stream.write(buffer) | ||
@@ -175,15 +166,7 @@ } | ||
Connection.prototype.cancel = function (processID, secretKey) { | ||
var bodyBuffer = this.writer | ||
.addInt16(1234) | ||
.addInt16(5678) | ||
.addInt32(processID) | ||
.addInt32(secretKey) | ||
.flush() | ||
var bodyBuffer = this.writer.addInt16(1234).addInt16(5678).addInt32(processID).addInt32(secretKey).flush() | ||
var length = bodyBuffer.length + 4 | ||
var buffer = new Writer() | ||
.addInt32(length) | ||
.add(bodyBuffer) | ||
.join() | ||
var buffer = new Writer().addInt32(length).add(bodyBuffer).join() | ||
this.stream.write(buffer) | ||
@@ -199,6 +182,3 @@ } | ||
// 0x70 = 'p' | ||
this.writer | ||
.addCString(mechanism) | ||
.addInt32(Buffer.byteLength(initialResponse)) | ||
.addString(initialResponse) | ||
this.writer.addCString(mechanism).addInt32(Buffer.byteLength(initialResponse)).addString(initialResponse) | ||
@@ -210,4 +190,3 @@ this._send(0x70) | ||
// 0x70 = 'p' | ||
this.writer | ||
.addString(additionalData) | ||
this.writer.addString(additionalData) | ||
@@ -276,9 +255,13 @@ this._send(0x70) | ||
var useBinary = false | ||
for (var j = 0; j < len; j++) { useBinary |= values[j] instanceof Buffer } | ||
var buffer = this.writer | ||
.addCString(config.portal) | ||
.addCString(config.statement) | ||
if (!useBinary) { buffer.addInt16(0) } else { | ||
for (var j = 0; j < len; j++) { | ||
useBinary |= values[j] instanceof Buffer | ||
} | ||
var buffer = this.writer.addCString(config.portal).addCString(config.statement) | ||
if (!useBinary) { | ||
buffer.addInt16(0) | ||
} else { | ||
buffer.addInt16(len) | ||
for (j = 0; j < len; j++) { buffer.addInt16(values[j] instanceof Buffer) } | ||
for (j = 0; j < len; j++) { | ||
buffer.addInt16(values[j] instanceof Buffer) | ||
} | ||
} | ||
@@ -315,5 +298,3 @@ buffer.addInt16(len) | ||
config.rows = config.rows || '' | ||
this.writer | ||
.addCString(config.portal) | ||
.addInt32(config.rows) | ||
this.writer.addCString(config.portal).addInt32(config.rows) | ||
@@ -347,3 +328,3 @@ // 0x45 = 'E' | ||
this._ending = true | ||
if (!this.stream.writable) { | ||
if (!this._connecting || !this.stream.writable) { | ||
this.stream.end() | ||
@@ -350,0 +331,0 @@ return |
@@ -73,3 +73,3 @@ 'use strict' | ||
keepalives_idle: 0 | ||
keepalives_idle: 0, | ||
} | ||
@@ -76,0 +76,0 @@ |
@@ -17,3 +17,3 @@ 'use strict' | ||
return class BoundPool extends Pool { | ||
constructor (options) { | ||
constructor(options) { | ||
super(options, Client) | ||
@@ -58,8 +58,8 @@ } | ||
Object.defineProperty(module.exports, 'native', { | ||
value: native | ||
value: native, | ||
}) | ||
return native | ||
} | ||
}, | ||
}) | ||
} |
@@ -25,3 +25,3 @@ 'use strict' | ||
var Client = module.exports = function (config) { | ||
var Client = (module.exports = function (config) { | ||
EventEmitter.call(this) | ||
@@ -34,3 +34,3 @@ config = config || {} | ||
this.native = new Native({ | ||
types: this._types | ||
types: this._types, | ||
}) | ||
@@ -46,3 +46,3 @@ | ||
// for the time being. TODO: deprecate all this jazz | ||
var cp = this.connectionParameters = new ConnectionParameters(config) | ||
var cp = (this.connectionParameters = new ConnectionParameters(config)) | ||
this.user = cp.user | ||
@@ -56,3 +56,3 @@ | ||
writable: true, | ||
value: cp.password | ||
value: cp.password, | ||
}) | ||
@@ -65,3 +65,3 @@ this.database = cp.database | ||
this.namedQueries = {} | ||
} | ||
}) | ||
@@ -123,3 +123,3 @@ Client.Query = NativeQuery | ||
channel: msg.relname, | ||
payload: msg.extra | ||
payload: msg.extra, | ||
}) | ||
@@ -189,3 +189,3 @@ }) | ||
}) | ||
query.callback = (err, res) => err ? rejectOut(err) : resolveOut(res) | ||
query.callback = (err, res) => (err ? rejectOut(err) : resolveOut(res)) | ||
} | ||
@@ -258,3 +258,3 @@ } | ||
result = new this._Promise(function (resolve, reject) { | ||
cb = (err) => err ? reject(err) : resolve() | ||
cb = (err) => (err ? reject(err) : resolve()) | ||
}) | ||
@@ -261,0 +261,0 @@ } |
@@ -14,3 +14,3 @@ 'use strict' | ||
var NativeQuery = module.exports = function (config, values, callback) { | ||
var NativeQuery = (module.exports = function (config, values, callback) { | ||
EventEmitter.call(this) | ||
@@ -31,6 +31,9 @@ config = utils.normalizeQueryConfig(config, values, callback) | ||
this._emitRowEvents = false | ||
this.on('newListener', function (event) { | ||
if (event === 'row') this._emitRowEvents = true | ||
}.bind(this)) | ||
} | ||
this.on( | ||
'newListener', | ||
function (event) { | ||
if (event === 'row') this._emitRowEvents = true | ||
}.bind(this) | ||
) | ||
}) | ||
@@ -41,14 +44,14 @@ util.inherits(NativeQuery, EventEmitter) | ||
/* eslint-disable quote-props */ | ||
'sqlState': 'code', | ||
'statementPosition': 'position', | ||
'messagePrimary': 'message', | ||
'context': 'where', | ||
'schemaName': 'schema', | ||
'tableName': 'table', | ||
'columnName': 'column', | ||
'dataTypeName': 'dataType', | ||
'constraintName': 'constraint', | ||
'sourceFile': 'file', | ||
'sourceLine': 'line', | ||
'sourceFunction': 'routine' | ||
sqlState: 'code', | ||
statementPosition: 'position', | ||
messagePrimary: 'message', | ||
context: 'where', | ||
schemaName: 'schema', | ||
tableName: 'table', | ||
columnName: 'column', | ||
dataTypeName: 'dataType', | ||
constraintName: 'constraint', | ||
sourceFile: 'file', | ||
sourceLine: 'line', | ||
sourceFunction: 'routine', | ||
} | ||
@@ -83,6 +86,8 @@ | ||
if (this._promise) return this._promise | ||
this._promise = new Promise(function (resolve, reject) { | ||
this._once('end', resolve) | ||
this._once('error', reject) | ||
}.bind(this)) | ||
this._promise = new Promise( | ||
function (resolve, reject) { | ||
this._once('end', resolve) | ||
this._once('error', reject) | ||
}.bind(this) | ||
) | ||
return this._promise | ||
@@ -112,3 +117,3 @@ } | ||
rows.forEach((rowOfRows, i) => { | ||
rowOfRows.forEach(row => { | ||
rowOfRows.forEach((row) => { | ||
self.emit('row', row, results[i]) | ||
@@ -115,0 +120,0 @@ }) |
@@ -45,10 +45,18 @@ 'use strict' | ||
// named queries must always be prepared | ||
if (this.name) { return true } | ||
if (this.name) { | ||
return true | ||
} | ||
// always prepare if there are max number of rows expected per | ||
// portal execution | ||
if (this.rows) { return true } | ||
if (this.rows) { | ||
return true | ||
} | ||
// don't prepare empty text queries | ||
if (!this.text) { return false } | ||
if (!this.text) { | ||
return false | ||
} | ||
// prepare if there are values | ||
if (!this.values) { return false } | ||
if (!this.values) { | ||
return false | ||
} | ||
return this.values.length > 0 | ||
@@ -172,6 +180,9 @@ } | ||
_getRows(connection, rows) { | ||
connection.execute({ | ||
portal: this.portal, | ||
rows: rows | ||
}, true) | ||
connection.execute( | ||
{ | ||
portal: this.portal, | ||
rows: rows, | ||
}, | ||
true | ||
) | ||
connection.flush() | ||
@@ -186,7 +197,10 @@ } | ||
if (!this.hasBeenParsed(connection)) { | ||
connection.parse({ | ||
text: this.text, | ||
name: this.name, | ||
types: this.types | ||
}, true) | ||
connection.parse( | ||
{ | ||
text: this.text, | ||
name: this.name, | ||
types: this.types, | ||
}, | ||
true | ||
) | ||
} | ||
@@ -204,13 +218,19 @@ | ||
// http://developer.postgresql.org/pgdocs/postgres/protocol-flow.html#PROTOCOL-FLOW-EXT-QUERY | ||
connection.bind({ | ||
portal: this.portal, | ||
statement: this.name, | ||
values: this.values, | ||
binary: this.binary | ||
}, true) | ||
connection.bind( | ||
{ | ||
portal: this.portal, | ||
statement: this.name, | ||
values: this.values, | ||
binary: this.binary, | ||
}, | ||
true | ||
) | ||
connection.describe({ | ||
type: 'P', | ||
name: this.portal || '' | ||
}, true) | ||
connection.describe( | ||
{ | ||
type: 'P', | ||
name: this.portal || '', | ||
}, | ||
true | ||
) | ||
@@ -217,0 +237,0 @@ this._getRows(connection, this.rows) |
'use strict' | ||
const crypto = require('crypto') | ||
function startSession (mechanisms) { | ||
function startSession(mechanisms) { | ||
if (mechanisms.indexOf('SCRAM-SHA-256') === -1) { | ||
@@ -15,7 +15,7 @@ throw new Error('SASL: Only mechanism SCRAM-SHA-256 is currently supported') | ||
response: 'n,,n=*,r=' + clientNonce, | ||
message: 'SASLInitialResponse' | ||
message: 'SASLInitialResponse', | ||
} | ||
} | ||
function continueSession (session, password, serverData) { | ||
function continueSession(session, password, serverData) { | ||
if (session.message !== 'SASLInitialResponse') { | ||
@@ -57,3 +57,3 @@ throw new Error('SASL: Last message was not SASLInitialResponse') | ||
function finalizeSession (session, serverData) { | ||
function finalizeSession(session, serverData) { | ||
if (session.message !== 'SASLResponse') { | ||
@@ -65,9 +65,11 @@ throw new Error('SASL: Last message was not SASLResponse') | ||
String(serverData).split(',').forEach(function (part) { | ||
switch (part[0]) { | ||
case 'v': | ||
serverSignature = part.substr(2) | ||
break | ||
} | ||
}) | ||
String(serverData) | ||
.split(',') | ||
.forEach(function (part) { | ||
switch (part[0]) { | ||
case 'v': | ||
serverSignature = part.substr(2) | ||
break | ||
} | ||
}) | ||
@@ -79,18 +81,20 @@ if (serverSignature !== session.serverSignature) { | ||
function extractVariablesFromFirstServerMessage (data) { | ||
function extractVariablesFromFirstServerMessage(data) { | ||
var nonce, salt, iteration | ||
String(data).split(',').forEach(function (part) { | ||
switch (part[0]) { | ||
case 'r': | ||
nonce = part.substr(2) | ||
break | ||
case 's': | ||
salt = part.substr(2) | ||
break | ||
case 'i': | ||
iteration = parseInt(part.substr(2), 10) | ||
break | ||
} | ||
}) | ||
String(data) | ||
.split(',') | ||
.forEach(function (part) { | ||
switch (part[0]) { | ||
case 'r': | ||
nonce = part.substr(2) | ||
break | ||
case 's': | ||
salt = part.substr(2) | ||
break | ||
case 'i': | ||
iteration = parseInt(part.substr(2), 10) | ||
break | ||
} | ||
}) | ||
@@ -112,7 +116,7 @@ if (!nonce) { | ||
salt, | ||
iteration | ||
iteration, | ||
} | ||
} | ||
function xorBuffers (a, b) { | ||
function xorBuffers(a, b) { | ||
if (!Buffer.isBuffer(a)) a = Buffer.from(a) | ||
@@ -133,7 +137,7 @@ if (!Buffer.isBuffer(b)) b = Buffer.from(b) | ||
function createHMAC (key, msg) { | ||
function createHMAC(key, msg) { | ||
return crypto.createHmac('sha256', key).update(msg).digest() | ||
} | ||
function Hi (password, saltBytes, iterations) { | ||
function Hi(password, saltBytes, iterations) { | ||
var ui1 = createHMAC(password, Buffer.concat([saltBytes, Buffer.from([0, 0, 0, 1])])) | ||
@@ -152,3 +156,3 @@ var ui = ui1 | ||
continueSession, | ||
finalizeSession | ||
finalizeSession, | ||
} |
@@ -12,3 +12,3 @@ 'use strict' | ||
function TypeOverrides (userTypes) { | ||
function TypeOverrides(userTypes) { | ||
this._types = userTypes || types | ||
@@ -21,5 +21,8 @@ this.text = {} | ||
switch (format) { | ||
case 'text': return this.text | ||
case 'binary': return this.binary | ||
default: return {} | ||
case 'text': | ||
return this.text | ||
case 'binary': | ||
return this.binary | ||
default: | ||
return {} | ||
} | ||
@@ -26,0 +29,0 @@ } |
@@ -14,6 +14,4 @@ 'use strict' | ||
function escapeElement (elementRepresentation) { | ||
var escaped = elementRepresentation | ||
.replace(/\\/g, '\\\\') | ||
.replace(/"/g, '\\"') | ||
function escapeElement(elementRepresentation) { | ||
var escaped = elementRepresentation.replace(/\\/g, '\\\\').replace(/"/g, '\\"') | ||
@@ -26,3 +24,3 @@ return '"' + escaped + '"' | ||
// a different array separator. | ||
function arrayString (val) { | ||
function arrayString(val) { | ||
var result = '{' | ||
@@ -81,3 +79,3 @@ for (var i = 0; i < val.length; i++) { | ||
function prepareObject (val, seen) { | ||
function prepareObject(val, seen) { | ||
if (val && typeof val.toPostgres === 'function') { | ||
@@ -95,9 +93,11 @@ seen = seen || [] | ||
function pad (number, digits) { | ||
function pad(number, digits) { | ||
number = '' + number | ||
while (number.length < digits) { number = '0' + number } | ||
while (number.length < digits) { | ||
number = '0' + number | ||
} | ||
return number | ||
} | ||
function dateToString (date) { | ||
function dateToString(date) { | ||
var offset = -date.getTimezoneOffset() | ||
@@ -109,8 +109,15 @@ | ||
var ret = pad(year, 4) + '-' + | ||
pad(date.getMonth() + 1, 2) + '-' + | ||
pad(date.getDate(), 2) + 'T' + | ||
pad(date.getHours(), 2) + ':' + | ||
pad(date.getMinutes(), 2) + ':' + | ||
pad(date.getSeconds(), 2) + '.' + | ||
var ret = | ||
pad(year, 4) + | ||
'-' + | ||
pad(date.getMonth() + 1, 2) + | ||
'-' + | ||
pad(date.getDate(), 2) + | ||
'T' + | ||
pad(date.getHours(), 2) + | ||
':' + | ||
pad(date.getMinutes(), 2) + | ||
':' + | ||
pad(date.getSeconds(), 2) + | ||
'.' + | ||
pad(date.getMilliseconds(), 3) | ||
@@ -121,3 +128,5 @@ | ||
offset *= -1 | ||
} else { ret += '+' } | ||
} else { | ||
ret += '+' | ||
} | ||
@@ -129,3 +138,3 @@ ret += pad(Math.floor(offset / 60), 2) + ':' + pad(offset % 60, 2) | ||
function dateToStringUTC (date) { | ||
function dateToStringUTC(date) { | ||
var year = date.getUTCFullYear() | ||
@@ -135,8 +144,15 @@ var isBCYear = year < 1 | ||
var ret = pad(year, 4) + '-' + | ||
pad(date.getUTCMonth() + 1, 2) + '-' + | ||
pad(date.getUTCDate(), 2) + 'T' + | ||
pad(date.getUTCHours(), 2) + ':' + | ||
pad(date.getUTCMinutes(), 2) + ':' + | ||
pad(date.getUTCSeconds(), 2) + '.' + | ||
var ret = | ||
pad(year, 4) + | ||
'-' + | ||
pad(date.getUTCMonth() + 1, 2) + | ||
'-' + | ||
pad(date.getUTCDate(), 2) + | ||
'T' + | ||
pad(date.getUTCHours(), 2) + | ||
':' + | ||
pad(date.getUTCMinutes(), 2) + | ||
':' + | ||
pad(date.getUTCSeconds(), 2) + | ||
'.' + | ||
pad(date.getUTCMilliseconds(), 3) | ||
@@ -149,5 +165,5 @@ | ||
function normalizeQueryConfig (config, values, callback) { | ||
function normalizeQueryConfig(config, values, callback) { | ||
// can take in strings or config objects | ||
config = (typeof (config) === 'string') ? { text: config } : config | ||
config = typeof config === 'string' ? { text: config } : config | ||
if (values) { | ||
@@ -178,3 +194,3 @@ if (typeof values === 'function') { | ||
module.exports = { | ||
prepareValue: function prepareValueWrapper (value) { | ||
prepareValue: function prepareValueWrapper(value) { | ||
// this ensures that extra arguments do not get passed into prepareValue | ||
@@ -186,3 +202,3 @@ // by accident, eg: from calling values.map(utils.prepareValue) | ||
postgresMd5PasswordHash, | ||
md5 | ||
md5, | ||
} |
{ | ||
"name": "pg", | ||
"version": "8.0.2", | ||
"version": "8.0.3", | ||
"description": "PostgreSQL client - pure javascript & libpq with the same API", | ||
@@ -25,4 +25,4 @@ "keywords": [ | ||
"pg-connection-string": "0.1.3", | ||
"pg-pool": "^3.1.0", | ||
"pg-protocol": "^1.2.1", | ||
"pg-pool": "^3.1.1", | ||
"pg-protocol": "^1.2.2", | ||
"pg-types": "^2.1.0", | ||
@@ -36,8 +36,2 @@ "pgpass": "1.x", | ||
"co": "4.6.0", | ||
"eslint": "^6.0.1", | ||
"eslint-config-standard": "^13.0.1", | ||
"eslint-plugin-import": "^2.18.1", | ||
"eslint-plugin-node": "^9.1.0", | ||
"eslint-plugin-promise": "^4.2.1", | ||
"eslint-plugin-standard": "^4.0.0", | ||
"pg-copy-streams": "0.3.0" | ||
@@ -47,4 +41,3 @@ }, | ||
"scripts": { | ||
"test": "make test-all", | ||
"lint": "make lint" | ||
"test": "make test-all" | ||
}, | ||
@@ -59,3 +52,3 @@ "files": [ | ||
}, | ||
"gitHead": "da03b3f9050c85a7722413a03c199cc3bdbcf5bf" | ||
"gitHead": "35328807e3612cb267bee86dccb2551ad186624a" | ||
} |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
4
2560
87183
Updatedpg-pool@^3.1.1
Updatedpg-protocol@^1.2.2