Commit 9791eb161ddc604560f8525fb3fafac74f7e9f7f

Authored by José Maria Villac Pinheiro
0 parents

Commit inicial

.gitconfig 0 → 100644
  1 +++ a/.gitconfig
... ... @@ -0,0 +1,3 @@
  1 +[user]
  2 + name = Jose Maria Villac Pinheiro
  3 + email = jmpinheiro@nexusbr.com
... ...
.gitignore 0 → 100644
  1 +++ a/.gitignore
... ... @@ -0,0 +1 @@
  1 +node_modules
0 2 \ No newline at end of file
... ...
.vscode/launch.json 0 → 100644
  1 +++ a/.vscode/launch.json
... ... @@ -0,0 +1,14 @@
  1 +{
  2 + // Use IntelliSense to learn about possible attributes.
  3 + // Hover to view descriptions of existing attributes.
  4 + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
  5 + "version": "0.2.0",
  6 + "configurations": [
  7 + {
  8 + "type": "node",
  9 + "request": "launch",
  10 + "name": "Launch Program",
  11 + "program": "${workspaceFolder}\\bin\\www"
  12 + }
  13 + ]
  14 +}
0 15 \ No newline at end of file
... ...
app.js 0 → 100644
  1 +++ a/app.js
... ... @@ -0,0 +1,46 @@
  1 +var express = require('express');
  2 +var path = require('path');
  3 +var favicon = require('serve-favicon');
  4 +var logger = require('morgan');
  5 +var cookieParser = require('cookie-parser');
  6 +var bodyParser = require('body-parser');
  7 +
  8 +var index = require('./routes/index');
  9 +var users = require('./routes/users');
  10 +
  11 +var app = express();
  12 +
  13 +// view engine setup
  14 +app.set('views', path.join(__dirname, 'views'));
  15 +app.set('view engine', 'jade');
  16 +
  17 +// uncomment after placing your favicon in /public
  18 +app.use(favicon(path.join(__dirname, 'public', 'favicon.ico')));
  19 +app.use(logger('dev'));
  20 +app.use(bodyParser.json());
  21 +app.use(bodyParser.urlencoded({ extended: false }));
  22 +app.use(cookieParser());
  23 +app.use(express.static(path.join(__dirname, 'public')));
  24 +
  25 +app.use('/', index);
  26 +app.use('/users', users);
  27 +
  28 +// catch 404 and forward to error handler
  29 +app.use(function(req, res, next) {
  30 + var err = new Error('Not Found');
  31 + err.status = 404;
  32 + next(err);
  33 +});
  34 +
  35 +// error handler
  36 +app.use(function(err, req, res, next) {
  37 + // set locals, only providing error in development
  38 + res.locals.message = err.message;
  39 + res.locals.error = req.app.get('env') === 'development' ? err : {};
  40 +
  41 + // render the error page
  42 + res.status(err.status || 500);
  43 + res.render('error');
  44 +});
  45 +
  46 +module.exports = app;
... ...
bin/www 0 → 100644
  1 +++ a/bin/www
... ... @@ -0,0 +1,90 @@
  1 +#!/usr/bin/env node
  2 +
  3 +/**
  4 + * Module dependencies.
  5 + */
  6 +
  7 +var app = require('../app');
  8 +var debug = require('debug')('pg-node:server');
  9 +var http = require('http');
  10 +
  11 +/**
  12 + * Get port from environment and store in Express.
  13 + */
  14 +
  15 +var port = normalizePort(process.env.PORT || '3000');
  16 +app.set('port', port);
  17 +
  18 +/**
  19 + * Create HTTP server.
  20 + */
  21 +
  22 +var server = http.createServer(app);
  23 +
  24 +/**
  25 + * Listen on provided port, on all network interfaces.
  26 + */
  27 +
  28 +server.listen(port);
  29 +server.on('error', onError);
  30 +server.on('listening', onListening);
  31 +
  32 +/**
  33 + * Normalize a port into a number, string, or false.
  34 + */
  35 +
  36 +function normalizePort(val) {
  37 + var port = parseInt(val, 10);
  38 +
  39 + if (isNaN(port)) {
  40 + // named pipe
  41 + return val;
  42 + }
  43 +
  44 + if (port >= 0) {
  45 + // port number
  46 + return port;
  47 + }
  48 +
  49 + return false;
  50 +}
  51 +
  52 +/**
  53 + * Event listener for HTTP server "error" event.
  54 + */
  55 +
  56 +function onError(error) {
  57 + if (error.syscall !== 'listen') {
  58 + throw error;
  59 + }
  60 +
  61 + var bind = typeof port === 'string'
  62 + ? 'Pipe ' + port
  63 + : 'Port ' + port;
  64 +
  65 + // handle specific listen errors with friendly messages
  66 + switch (error.code) {
  67 + case 'EACCES':
  68 + console.error(bind + ' requires elevated privileges');
  69 + process.exit(1);
  70 + break;
  71 + case 'EADDRINUSE':
  72 + console.error(bind + ' is already in use');
  73 + process.exit(1);
  74 + break;
  75 + default:
  76 + throw error;
  77 + }
  78 +}
  79 +
  80 +/**
  81 + * Event listener for HTTP server "listening" event.
  82 + */
  83 +
  84 +function onListening() {
  85 + var addr = server.address();
  86 + var bind = typeof addr === 'string'
  87 + ? 'pipe ' + addr
  88 + : 'port ' + addr.port;
  89 + debug('Listening on ' + bind);
  90 +}
... ...
package-lock.json 0 → 100644
  1 +++ a/package-lock.json
... ... @@ -0,0 +1,1052 @@
  1 +{
  2 + "name": "pg-node",
  3 + "version": "0.0.0",
  4 + "lockfileVersion": 1,
  5 + "requires": true,
  6 + "dependencies": {
  7 + "accepts": {
  8 + "version": "1.3.5",
  9 + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
  10 + "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
  11 + "requires": {
  12 + "mime-types": "2.1.18",
  13 + "negotiator": "0.6.1"
  14 + }
  15 + },
  16 + "acorn": {
  17 + "version": "2.7.0",
  18 + "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz",
  19 + "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc="
  20 + },
  21 + "acorn-globals": {
  22 + "version": "1.0.9",
  23 + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz",
  24 + "integrity": "sha1-VbtemGkVB7dFedBRNBMhfDgMVM8=",
  25 + "requires": {
  26 + "acorn": "2.7.0"
  27 + }
  28 + },
  29 + "align-text": {
  30 + "version": "0.1.4",
  31 + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz",
  32 + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=",
  33 + "requires": {
  34 + "kind-of": "3.2.2",
  35 + "longest": "1.0.1",
  36 + "repeat-string": "1.6.1"
  37 + }
  38 + },
  39 + "amdefine": {
  40 + "version": "1.0.1",
  41 + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz",
  42 + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU="
  43 + },
  44 + "array-flatten": {
  45 + "version": "1.1.1",
  46 + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
  47 + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
  48 + },
  49 + "asap": {
  50 + "version": "1.0.0",
  51 + "resolved": "https://registry.npmjs.org/asap/-/asap-1.0.0.tgz",
  52 + "integrity": "sha1-sqRdpf36ILBJb8N2jMJ8EvqRan0="
  53 + },
  54 + "async": {
  55 + "version": "2.6.0",
  56 + "resolved": "https://registry.npmjs.org/async/-/async-2.6.0.tgz",
  57 + "integrity": "sha1-YaKau2/MAm/qd+VtHG7FOnlZUfQ=",
  58 + "requires": {
  59 + "lodash": "4.17.5"
  60 + }
  61 + },
  62 + "babel-runtime": {
  63 + "version": "6.26.0",
  64 + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
  65 + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=",
  66 + "requires": {
  67 + "core-js": "2.5.4",
  68 + "regenerator-runtime": "0.11.1"
  69 + }
  70 + },
  71 + "basic-auth": {
  72 + "version": "2.0.0",
  73 + "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.0.tgz",
  74 + "integrity": "sha1-AV2z81PgLlY3d1X5YnQuiYHnu7o=",
  75 + "requires": {
  76 + "safe-buffer": "5.1.1"
  77 + }
  78 + },
  79 + "big-number": {
  80 + "version": "0.3.1",
  81 + "resolved": "https://registry.npmjs.org/big-number/-/big-number-0.3.1.tgz",
  82 + "integrity": "sha1-rHMCDApZu3nrF8LOLbd/d9l04BM="
  83 + },
  84 + "bl": {
  85 + "version": "1.2.2",
  86 + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.2.tgz",
  87 + "integrity": "sha512-e8tQYnZodmebYDWGH7KMRvtzKXaJHx3BbilrgZCfvyLUYdKpK1t5PSPmpkny/SgiTSCnjfLW7v5rlONXVFkQEA==",
  88 + "requires": {
  89 + "readable-stream": "2.3.6",
  90 + "safe-buffer": "5.1.1"
  91 + }
  92 + },
  93 + "body-parser": {
  94 + "version": "1.18.2",
  95 + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz",
  96 + "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=",
  97 + "requires": {
  98 + "bytes": "3.0.0",
  99 + "content-type": "1.0.4",
  100 + "debug": "2.6.9",
  101 + "depd": "1.1.2",
  102 + "http-errors": "1.6.2",
  103 + "iconv-lite": "0.4.19",
  104 + "on-finished": "2.3.0",
  105 + "qs": "6.5.1",
  106 + "raw-body": "2.3.2",
  107 + "type-is": "1.6.16"
  108 + }
  109 + },
  110 + "buffer-writer": {
  111 + "version": "1.0.1",
  112 + "resolved": "https://registry.npmjs.org/buffer-writer/-/buffer-writer-1.0.1.tgz",
  113 + "integrity": "sha1-Iqk2kB4wKa/NdUfrRIfOtpejvwg="
  114 + },
  115 + "bytes": {
  116 + "version": "3.0.0",
  117 + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
  118 + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
  119 + },
  120 + "camelcase": {
  121 + "version": "1.2.1",
  122 + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz",
  123 + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk="
  124 + },
  125 + "center-align": {
  126 + "version": "0.1.3",
  127 + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz",
  128 + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=",
  129 + "requires": {
  130 + "align-text": "0.1.4",
  131 + "lazy-cache": "1.0.4"
  132 + }
  133 + },
  134 + "character-parser": {
  135 + "version": "1.2.1",
  136 + "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-1.2.1.tgz",
  137 + "integrity": "sha1-wN3kqxgnE7kZuXCVmhI+zBow/NY="
  138 + },
  139 + "clean-css": {
  140 + "version": "3.4.28",
  141 + "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-3.4.28.tgz",
  142 + "integrity": "sha1-vxlF6C/ICPVWlebd6uwBQA79A/8=",
  143 + "requires": {
  144 + "commander": "2.8.1",
  145 + "source-map": "0.4.4"
  146 + },
  147 + "dependencies": {
  148 + "commander": {
  149 + "version": "2.8.1",
  150 + "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz",
  151 + "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=",
  152 + "requires": {
  153 + "graceful-readlink": "1.0.1"
  154 + }
  155 + }
  156 + }
  157 + },
  158 + "cliui": {
  159 + "version": "2.1.0",
  160 + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz",
  161 + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=",
  162 + "requires": {
  163 + "center-align": "0.1.3",
  164 + "right-align": "0.1.3",
  165 + "wordwrap": "0.0.2"
  166 + },
  167 + "dependencies": {
  168 + "wordwrap": {
  169 + "version": "0.0.2",
  170 + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz",
  171 + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8="
  172 + }
  173 + }
  174 + },
  175 + "commander": {
  176 + "version": "2.6.0",
  177 + "resolved": "https://registry.npmjs.org/commander/-/commander-2.6.0.tgz",
  178 + "integrity": "sha1-nfflL7Kgyw+4kFjugMMQQiXzfh0="
  179 + },
  180 + "constantinople": {
  181 + "version": "3.0.2",
  182 + "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-3.0.2.tgz",
  183 + "integrity": "sha1-S5RdmTeQe82Y7ldRIsOBdRZUQUE=",
  184 + "requires": {
  185 + "acorn": "2.7.0"
  186 + }
  187 + },
  188 + "content-disposition": {
  189 + "version": "0.5.2",
  190 + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
  191 + "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ="
  192 + },
  193 + "content-type": {
  194 + "version": "1.0.4",
  195 + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
  196 + "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js="
  197 + },
  198 + "cookie": {
  199 + "version": "0.3.1",
  200 + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
  201 + "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
  202 + },
  203 + "cookie-parser": {
  204 + "version": "1.4.3",
  205 + "resolved": "https://registry.npmjs.org/cookie-parser/-/cookie-parser-1.4.3.tgz",
  206 + "integrity": "sha1-D+MfoZ0AC5X0qt8fU/3CuKIDuqU=",
  207 + "requires": {
  208 + "cookie": "0.3.1",
  209 + "cookie-signature": "1.0.6"
  210 + }
  211 + },
  212 + "cookie-signature": {
  213 + "version": "1.0.6",
  214 + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
  215 + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
  216 + },
  217 + "core-js": {
  218 + "version": "2.5.4",
  219 + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.4.tgz",
  220 + "integrity": "sha1-8si/GB8qgLkvNgEhQpzmOi8K6uA="
  221 + },
  222 + "core-util-is": {
  223 + "version": "1.0.2",
  224 + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
  225 + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
  226 + },
  227 + "css": {
  228 + "version": "1.0.8",
  229 + "resolved": "https://registry.npmjs.org/css/-/css-1.0.8.tgz",
  230 + "integrity": "sha1-k4aBHKgrzMnuf7WnMrHioxfIo+c=",
  231 + "requires": {
  232 + "css-parse": "1.0.4",
  233 + "css-stringify": "1.0.5"
  234 + }
  235 + },
  236 + "css-parse": {
  237 + "version": "1.0.4",
  238 + "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-1.0.4.tgz",
  239 + "integrity": "sha1-OLBQP7+dqfVOnB29pg4UXHcRe90="
  240 + },
  241 + "css-stringify": {
  242 + "version": "1.0.5",
  243 + "resolved": "https://registry.npmjs.org/css-stringify/-/css-stringify-1.0.5.tgz",
  244 + "integrity": "sha1-sNBClG2ylTu50pKQCmy19tASIDE="
  245 + },
  246 + "debug": {
  247 + "version": "2.6.9",
  248 + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
  249 + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=",
  250 + "requires": {
  251 + "ms": "2.0.0"
  252 + }
  253 + },
  254 + "decamelize": {
  255 + "version": "1.2.0",
  256 + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
  257 + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
  258 + },
  259 + "depd": {
  260 + "version": "1.1.2",
  261 + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
  262 + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
  263 + },
  264 + "destroy": {
  265 + "version": "1.0.4",
  266 + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
  267 + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
  268 + },
  269 + "ee-first": {
  270 + "version": "1.1.1",
  271 + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
  272 + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
  273 + },
  274 + "encodeurl": {
  275 + "version": "1.0.2",
  276 + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
  277 + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
  278 + },
  279 + "escape-html": {
  280 + "version": "1.0.3",
  281 + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
  282 + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
  283 + },
  284 + "etag": {
  285 + "version": "1.8.1",
  286 + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
  287 + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
  288 + },
  289 + "express": {
  290 + "version": "4.15.5",
  291 + "resolved": "https://registry.npmjs.org/express/-/express-4.15.5.tgz",
  292 + "integrity": "sha1-ZwI1ypWYiQpa6BcLg9tyK4Qu2Sc=",
  293 + "requires": {
  294 + "accepts": "1.3.5",
  295 + "array-flatten": "1.1.1",
  296 + "content-disposition": "0.5.2",
  297 + "content-type": "1.0.4",
  298 + "cookie": "0.3.1",
  299 + "cookie-signature": "1.0.6",
  300 + "debug": "2.6.9",
  301 + "depd": "1.1.2",
  302 + "encodeurl": "1.0.2",
  303 + "escape-html": "1.0.3",
  304 + "etag": "1.8.1",
  305 + "finalhandler": "1.0.6",
  306 + "fresh": "0.5.2",
  307 + "merge-descriptors": "1.0.1",
  308 + "methods": "1.1.2",
  309 + "on-finished": "2.3.0",
  310 + "parseurl": "1.3.2",
  311 + "path-to-regexp": "0.1.7",
  312 + "proxy-addr": "1.1.5",
  313 + "qs": "6.5.0",
  314 + "range-parser": "1.2.0",
  315 + "send": "0.15.6",
  316 + "serve-static": "1.12.6",
  317 + "setprototypeof": "1.0.3",
  318 + "statuses": "1.3.1",
  319 + "type-is": "1.6.16",
  320 + "utils-merge": "1.0.0",
  321 + "vary": "1.1.2"
  322 + },
  323 + "dependencies": {
  324 + "qs": {
  325 + "version": "6.5.0",
  326 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.0.tgz",
  327 + "integrity": "sha1-jQSVTTZN7z78VbWgeT4eLIsebkk="
  328 + },
  329 + "statuses": {
  330 + "version": "1.3.1",
  331 + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
  332 + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4="
  333 + }
  334 + }
  335 + },
  336 + "finalhandler": {
  337 + "version": "1.0.6",
  338 + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.0.6.tgz",
  339 + "integrity": "sha1-AHrqM9Gk0+QgF/YkhIrVjSEvgU8=",
  340 + "requires": {
  341 + "debug": "2.6.9",
  342 + "encodeurl": "1.0.2",
  343 + "escape-html": "1.0.3",
  344 + "on-finished": "2.3.0",
  345 + "parseurl": "1.3.2",
  346 + "statuses": "1.3.1",
  347 + "unpipe": "1.0.0"
  348 + },
  349 + "dependencies": {
  350 + "statuses": {
  351 + "version": "1.3.1",
  352 + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
  353 + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4="
  354 + }
  355 + }
  356 + },
  357 + "forwarded": {
  358 + "version": "0.1.2",
  359 + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
  360 + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
  361 + },
  362 + "fresh": {
  363 + "version": "0.5.2",
  364 + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
  365 + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
  366 + },
  367 + "generic-pool": {
  368 + "version": "3.4.2",
  369 + "resolved": "https://registry.npmjs.org/generic-pool/-/generic-pool-3.4.2.tgz",
  370 + "integrity": "sha512-H7cUpwCQSiJmAHM4c/aFu6fUfrhWXW1ncyh8ftxEPMu6AiYkHw9K8br720TGPZJbk5eOH2bynjZD1yPvdDAmag=="
  371 + },
  372 + "graceful-readlink": {
  373 + "version": "1.0.1",
  374 + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz",
  375 + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU="
  376 + },
  377 + "http-errors": {
  378 + "version": "1.6.2",
  379 + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz",
  380 + "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=",
  381 + "requires": {
  382 + "depd": "1.1.1",
  383 + "inherits": "2.0.3",
  384 + "setprototypeof": "1.0.3",
  385 + "statuses": "1.4.0"
  386 + },
  387 + "dependencies": {
  388 + "depd": {
  389 + "version": "1.1.1",
  390 + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz",
  391 + "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k="
  392 + }
  393 + }
  394 + },
  395 + "iconv-lite": {
  396 + "version": "0.4.19",
  397 + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
  398 + "integrity": "sha1-90aPYBNfXl2tM5nAqBvpoWA6CCs="
  399 + },
  400 + "inherits": {
  401 + "version": "2.0.3",
  402 + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
  403 + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
  404 + },
  405 + "ipaddr.js": {
  406 + "version": "1.4.0",
  407 + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.4.0.tgz",
  408 + "integrity": "sha1-KWrKh4qCGBbluF0KKFqZvP9FgvA="
  409 + },
  410 + "is-buffer": {
  411 + "version": "1.1.6",
  412 + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
  413 + "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4="
  414 + },
  415 + "is-promise": {
  416 + "version": "2.1.0",
  417 + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
  418 + "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
  419 + },
  420 + "isarray": {
  421 + "version": "1.0.0",
  422 + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
  423 + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
  424 + },
  425 + "jade": {
  426 + "version": "1.11.0",
  427 + "resolved": "https://registry.npmjs.org/jade/-/jade-1.11.0.tgz",
  428 + "integrity": "sha1-nIDlOMEtP7lcjZu5VZ+gzAQEBf0=",
  429 + "requires": {
  430 + "character-parser": "1.2.1",
  431 + "clean-css": "3.4.28",
  432 + "commander": "2.6.0",
  433 + "constantinople": "3.0.2",
  434 + "jstransformer": "0.0.2",
  435 + "mkdirp": "0.5.1",
  436 + "transformers": "2.1.0",
  437 + "uglify-js": "2.8.29",
  438 + "void-elements": "2.0.1",
  439 + "with": "4.0.3"
  440 + }
  441 + },
  442 + "jade-bootstrap": {
  443 + "version": "1.0.14",
  444 + "resolved": "https://registry.npmjs.org/jade-bootstrap/-/jade-bootstrap-1.0.14.tgz",
  445 + "integrity": "sha1-x99tRjinKHKZ3HUXXrUAnzJyEeg="
  446 + },
  447 + "js-string-escape": {
  448 + "version": "1.0.1",
  449 + "resolved": "https://registry.npmjs.org/js-string-escape/-/js-string-escape-1.0.1.tgz",
  450 + "integrity": "sha1-4mJbrbwNZ8dTPp7cEGjFh65BN+8="
  451 + },
  452 + "jstransformer": {
  453 + "version": "0.0.2",
  454 + "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-0.0.2.tgz",
  455 + "integrity": "sha1-eq4pqQPRls+glz2IXT5HlH7Ndqs=",
  456 + "requires": {
  457 + "is-promise": "2.1.0",
  458 + "promise": "6.1.0"
  459 + }
  460 + },
  461 + "kind-of": {
  462 + "version": "3.2.2",
  463 + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
  464 + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
  465 + "requires": {
  466 + "is-buffer": "1.1.6"
  467 + }
  468 + },
  469 + "lazy-cache": {
  470 + "version": "1.0.4",
  471 + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz",
  472 + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4="
  473 + },
  474 + "leaflet-draw": {
  475 + "version": "1.0.2",
  476 + "resolved": "https://registry.npmjs.org/leaflet-draw/-/leaflet-draw-1.0.2.tgz",
  477 + "integrity": "sha512-iCcbXE9okhwznoTXjxVjoGFoKeiWGsgmWPKrPAeHUvtWZWK4t6YF6815D13wZoMxX2UM6tOmD7/VofCxx3S0+w=="
  478 + },
  479 + "lodash": {
  480 + "version": "4.17.5",
  481 + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.5.tgz",
  482 + "integrity": "sha1-maktZcAnLevoyWtgV7yPv6O+1RE="
  483 + },
  484 + "longest": {
  485 + "version": "1.0.1",
  486 + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
  487 + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc="
  488 + },
  489 + "media-typer": {
  490 + "version": "0.3.0",
  491 + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
  492 + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
  493 + },
  494 + "merge-descriptors": {
  495 + "version": "1.0.1",
  496 + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
  497 + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
  498 + },
  499 + "methods": {
  500 + "version": "1.1.2",
  501 + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
  502 + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
  503 + },
  504 + "mime": {
  505 + "version": "1.3.4",
  506 + "resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz",
  507 + "integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM="
  508 + },
  509 + "mime-db": {
  510 + "version": "1.33.0",
  511 + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.33.0.tgz",
  512 + "integrity": "sha1-o0kgUKXLm2NFBUHjnZeI0icng9s="
  513 + },
  514 + "mime-types": {
  515 + "version": "2.1.18",
  516 + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.18.tgz",
  517 + "integrity": "sha1-bzI/YKg9ERRvgx/xH9ZuL+VQO7g=",
  518 + "requires": {
  519 + "mime-db": "1.33.0"
  520 + }
  521 + },
  522 + "minimist": {
  523 + "version": "0.0.8",
  524 + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
  525 + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
  526 + },
  527 + "mkdirp": {
  528 + "version": "0.5.1",
  529 + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
  530 + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
  531 + "requires": {
  532 + "minimist": "0.0.8"
  533 + }
  534 + },
  535 + "morgan": {
  536 + "version": "1.9.0",
  537 + "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.9.0.tgz",
  538 + "integrity": "sha1-0B+mxlhZt2/PMbPLU6OCGjEdgFE=",
  539 + "requires": {
  540 + "basic-auth": "2.0.0",
  541 + "debug": "2.6.9",
  542 + "depd": "1.1.2",
  543 + "on-finished": "2.3.0",
  544 + "on-headers": "1.0.1"
  545 + }
  546 + },
  547 + "ms": {
  548 + "version": "2.0.0",
  549 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
  550 + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
  551 + },
  552 + "mssql": {
  553 + "version": "4.1.0",
  554 + "resolved": "https://registry.npmjs.org/mssql/-/mssql-4.1.0.tgz",
  555 + "integrity": "sha512-ekht0eILEV0P1CbpkwpAxhgO+/5goYizUJrt7pgDm3fP6lGKe0+8V9jhTvQZ8DPHkycSd0wYGUoz/YA7VN7kQQ==",
  556 + "requires": {
  557 + "debug": "2.6.9",
  558 + "generic-pool": "3.4.2",
  559 + "tedious": "2.3.1"
  560 + }
  561 + },
  562 + "negotiator": {
  563 + "version": "0.6.1",
  564 + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
  565 + "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk="
  566 + },
  567 + "on-finished": {
  568 + "version": "2.3.0",
  569 + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
  570 + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
  571 + "requires": {
  572 + "ee-first": "1.1.1"
  573 + }
  574 + },
  575 + "on-headers": {
  576 + "version": "1.0.1",
  577 + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz",
  578 + "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c="
  579 + },
  580 + "optimist": {
  581 + "version": "0.3.7",
  582 + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.3.7.tgz",
  583 + "integrity": "sha1-yQlBrVnkJzMokjB00s8ufLxuwNk=",
  584 + "requires": {
  585 + "wordwrap": "0.0.3"
  586 + }
  587 + },
  588 + "packet-reader": {
  589 + "version": "0.3.1",
  590 + "resolved": "https://registry.npmjs.org/packet-reader/-/packet-reader-0.3.1.tgz",
  591 + "integrity": "sha1-zWLmCvjX/qinBexP+ZCHHEaHHyc="
  592 + },
  593 + "parseurl": {
  594 + "version": "1.3.2",
  595 + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
  596 + "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M="
  597 + },
  598 + "path-to-regexp": {
  599 + "version": "0.1.7",
  600 + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
  601 + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
  602 + },
  603 + "pg": {
  604 + "version": "7.4.1",
  605 + "resolved": "https://registry.npmjs.org/pg/-/pg-7.4.1.tgz",
  606 + "integrity": "sha1-80Ecjd+faSMi/gXnAXoYiOR/ePE=",
  607 + "requires": {
  608 + "buffer-writer": "1.0.1",
  609 + "js-string-escape": "1.0.1",
  610 + "packet-reader": "0.3.1",
  611 + "pg-connection-string": "0.1.3",
  612 + "pg-pool": "2.0.3",
  613 + "pg-types": "1.12.1",
  614 + "pgpass": "1.0.2",
  615 + "semver": "4.3.2"
  616 + }
  617 + },
  618 + "pg-connection-string": {
  619 + "version": "0.1.3",
  620 + "resolved": "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-0.1.3.tgz",
  621 + "integrity": "sha1-2hhHsglA5C7hSSvq9l1J2RskXfc="
  622 + },
  623 + "pg-pool": {
  624 + "version": "2.0.3",
  625 + "resolved": "https://registry.npmjs.org/pg-pool/-/pg-pool-2.0.3.tgz",
  626 + "integrity": "sha1-wCIDLIlJ8xKk+R+2QJzgQHa+Mlc="
  627 + },
  628 + "pg-types": {
  629 + "version": "1.12.1",
  630 + "resolved": "https://registry.npmjs.org/pg-types/-/pg-types-1.12.1.tgz",
  631 + "integrity": "sha1-1kCH45A7WP+q0nnnWVxSIIoUw9I=",
  632 + "requires": {
  633 + "postgres-array": "1.0.2",
  634 + "postgres-bytea": "1.0.0",
  635 + "postgres-date": "1.0.3",
  636 + "postgres-interval": "1.1.1"
  637 + }
  638 + },
  639 + "pgpass": {
  640 + "version": "1.0.2",
  641 + "resolved": "https://registry.npmjs.org/pgpass/-/pgpass-1.0.2.tgz",
  642 + "integrity": "sha1-Knu0G2BltnkH6R2hsHwYR8h3swY=",
  643 + "requires": {
  644 + "split": "1.0.1"
  645 + }
  646 + },
  647 + "postgeo": {
  648 + "version": "0.1.2",
  649 + "resolved": "https://registry.npmjs.org/postgeo/-/postgeo-0.1.2.tgz",
  650 + "integrity": "sha1-5nfNNuy7F17hRtE90XCipzpDqUw=",
  651 + "requires": {
  652 + "async": "2.6.0",
  653 + "pg": "7.4.1",
  654 + "topojson": "3.0.2"
  655 + }
  656 + },
  657 + "postgres-array": {
  658 + "version": "1.0.2",
  659 + "resolved": "https://registry.npmjs.org/postgres-array/-/postgres-array-1.0.2.tgz",
  660 + "integrity": "sha1-jgsy6wO/d6XAp4UeBEHBaaJWojg="
  661 + },
  662 + "postgres-bytea": {
  663 + "version": "1.0.0",
  664 + "resolved": "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz",
  665 + "integrity": "sha1-AntTPAqokOJtFy1Hz5zOzFIazTU="
  666 + },
  667 + "postgres-date": {
  668 + "version": "1.0.3",
  669 + "resolved": "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.3.tgz",
  670 + "integrity": "sha1-4tiXAu/bJY/52c7g/pG9BpdSV6g="
  671 + },
  672 + "postgres-interval": {
  673 + "version": "1.1.1",
  674 + "resolved": "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.1.1.tgz",
  675 + "integrity": "sha1-rNsPiXtLHG5JbZ1OCoU+HEKPBvA=",
  676 + "requires": {
  677 + "xtend": "4.0.1"
  678 + }
  679 + },
  680 + "process-nextick-args": {
  681 + "version": "2.0.0",
  682 + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
  683 + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
  684 + },
  685 + "promise": {
  686 + "version": "6.1.0",
  687 + "resolved": "https://registry.npmjs.org/promise/-/promise-6.1.0.tgz",
  688 + "integrity": "sha1-LOcp9rlLRcJoka0GAsXJDgTG7vY=",
  689 + "requires": {
  690 + "asap": "1.0.0"
  691 + }
  692 + },
  693 + "proxy-addr": {
  694 + "version": "1.1.5",
  695 + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-1.1.5.tgz",
  696 + "integrity": "sha1-ccDuOxAt4/IC87ZPYI0XP8uhqRg=",
  697 + "requires": {
  698 + "forwarded": "0.1.2",
  699 + "ipaddr.js": "1.4.0"
  700 + }
  701 + },
  702 + "qs": {
  703 + "version": "6.5.1",
  704 + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
  705 + "integrity": "sha1-NJzfbu+J7EXBLX1es/wMhwNDptg="
  706 + },
  707 + "range-parser": {
  708 + "version": "1.2.0",
  709 + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
  710 + "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4="
  711 + },
  712 + "raw-body": {
  713 + "version": "2.3.2",
  714 + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz",
  715 + "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=",
  716 + "requires": {
  717 + "bytes": "3.0.0",
  718 + "http-errors": "1.6.2",
  719 + "iconv-lite": "0.4.19",
  720 + "unpipe": "1.0.0"
  721 + }
  722 + },
  723 + "readable-stream": {
  724 + "version": "2.3.6",
  725 + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
  726 + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
  727 + "requires": {
  728 + "core-util-is": "1.0.2",
  729 + "inherits": "2.0.3",
  730 + "isarray": "1.0.0",
  731 + "process-nextick-args": "2.0.0",
  732 + "safe-buffer": "5.1.1",
  733 + "string_decoder": "1.1.1",
  734 + "util-deprecate": "1.0.2"
  735 + }
  736 + },
  737 + "regenerator-runtime": {
  738 + "version": "0.11.1",
  739 + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz",
  740 + "integrity": "sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg=="
  741 + },
  742 + "repeat-string": {
  743 + "version": "1.6.1",
  744 + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
  745 + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc="
  746 + },
  747 + "right-align": {
  748 + "version": "0.1.3",
  749 + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz",
  750 + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=",
  751 + "requires": {
  752 + "align-text": "0.1.4"
  753 + }
  754 + },
  755 + "safe-buffer": {
  756 + "version": "5.1.1",
  757 + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
  758 + "integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM="
  759 + },
  760 + "semver": {
  761 + "version": "4.3.2",
  762 + "resolved": "https://registry.npmjs.org/semver/-/semver-4.3.2.tgz",
  763 + "integrity": "sha1-x6BxWKgL7dBSNVt3DYLWZA+AO+c="
  764 + },
  765 + "send": {
  766 + "version": "0.15.6",
  767 + "resolved": "https://registry.npmjs.org/send/-/send-0.15.6.tgz",
  768 + "integrity": "sha1-IPI6nJJbdiq4JwX+L52yUqzkfjQ=",
  769 + "requires": {
  770 + "debug": "2.6.9",
  771 + "depd": "1.1.2",
  772 + "destroy": "1.0.4",
  773 + "encodeurl": "1.0.2",
  774 + "escape-html": "1.0.3",
  775 + "etag": "1.8.1",
  776 + "fresh": "0.5.2",
  777 + "http-errors": "1.6.2",
  778 + "mime": "1.3.4",
  779 + "ms": "2.0.0",
  780 + "on-finished": "2.3.0",
  781 + "range-parser": "1.2.0",
  782 + "statuses": "1.3.1"
  783 + },
  784 + "dependencies": {
  785 + "statuses": {
  786 + "version": "1.3.1",
  787 + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz",
  788 + "integrity": "sha1-+vUbnrdKrvOzrPStX2Gr8ky3uT4="
  789 + }
  790 + }
  791 + },
  792 + "serve-favicon": {
  793 + "version": "2.4.5",
  794 + "resolved": "https://registry.npmjs.org/serve-favicon/-/serve-favicon-2.4.5.tgz",
  795 + "integrity": "sha1-SdmkaGMVOpJAaRyJPSsOfYXW1DY=",
  796 + "requires": {
  797 + "etag": "1.8.1",
  798 + "fresh": "0.5.2",
  799 + "ms": "2.0.0",
  800 + "parseurl": "1.3.2",
  801 + "safe-buffer": "5.1.1"
  802 + }
  803 + },
  804 + "serve-static": {
  805 + "version": "1.12.6",
  806 + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.12.6.tgz",
  807 + "integrity": "sha1-uXN3P2NEmTTaVOW+ul4x2fQhFXc=",
  808 + "requires": {
  809 + "encodeurl": "1.0.2",
  810 + "escape-html": "1.0.3",
  811 + "parseurl": "1.3.2",
  812 + "send": "0.15.6"
  813 + }
  814 + },
  815 + "setprototypeof": {
  816 + "version": "1.0.3",
  817 + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz",
  818 + "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ="
  819 + },
  820 + "source-map": {
  821 + "version": "0.4.4",
  822 + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
  823 + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
  824 + "requires": {
  825 + "amdefine": "1.0.1"
  826 + }
  827 + },
  828 + "split": {
  829 + "version": "1.0.1",
  830 + "resolved": "https://registry.npmjs.org/split/-/split-1.0.1.tgz",
  831 + "integrity": "sha1-YFvZvjA6pZ+zX5Ip++oN3snqB9k=",
  832 + "requires": {
  833 + "through": "2.3.8"
  834 + }
  835 + },
  836 + "sprintf": {
  837 + "version": "0.1.5",
  838 + "resolved": "https://registry.npmjs.org/sprintf/-/sprintf-0.1.5.tgz",
  839 + "integrity": "sha1-j4PjmpMXwaUCy324BQ5Rxnn27c8="
  840 + },
  841 + "statuses": {
  842 + "version": "1.4.0",
  843 + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
  844 + "integrity": "sha1-u3PURtonlhBu/MG2AaJT1sRr0Ic="
  845 + },
  846 + "string_decoder": {
  847 + "version": "1.1.1",
  848 + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
  849 + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
  850 + "requires": {
  851 + "safe-buffer": "5.1.1"
  852 + }
  853 + },
  854 + "tedious": {
  855 + "version": "2.3.1",
  856 + "resolved": "https://registry.npmjs.org/tedious/-/tedious-2.3.1.tgz",
  857 + "integrity": "sha512-aJkmYFzoVf0X/M0yNyYETfWfuaYsK/cWqekf/EGnvYoLENVqL1ATdAVLNZdA7TmZLfWxKf70JLr3h9inki+9zQ==",
  858 + "requires": {
  859 + "babel-runtime": "6.26.0",
  860 + "big-number": "0.3.1",
  861 + "bl": "1.2.2",
  862 + "depd": "1.1.2",
  863 + "iconv-lite": "0.4.19",
  864 + "readable-stream": "2.3.6",
  865 + "sprintf": "0.1.5"
  866 + }
  867 + },
  868 + "through": {
  869 + "version": "2.3.8",
  870 + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
  871 + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
  872 + },
  873 + "topojson": {
  874 + "version": "3.0.2",
  875 + "resolved": "https://registry.npmjs.org/topojson/-/topojson-3.0.2.tgz",
  876 + "integrity": "sha1-/LknMGw+D6dmVvpY3u1FVdI0b7Q=",
  877 + "requires": {
  878 + "topojson-client": "3.0.0",
  879 + "topojson-server": "3.0.0",
  880 + "topojson-simplify": "3.0.2"
  881 + },
  882 + "dependencies": {
  883 + "topojson-client": {
  884 + "version": "3.0.0",
  885 + "resolved": "https://registry.npmjs.org/topojson-client/-/topojson-client-3.0.0.tgz",
  886 + "integrity": "sha1-H5kpOnfvQqRI0DKoGqmCtz82DS8=",
  887 + "requires": {
  888 + "commander": "2.6.0"
  889 + }
  890 + },
  891 + "topojson-server": {
  892 + "version": "3.0.0",
  893 + "resolved": "https://registry.npmjs.org/topojson-server/-/topojson-server-3.0.0.tgz",
  894 + "integrity": "sha1-N4546Hw5cqe1vixdYENptrrmnF4=",
  895 + "requires": {
  896 + "commander": "2.6.0"
  897 + }
  898 + },
  899 + "topojson-simplify": {
  900 + "version": "3.0.2",
  901 + "resolved": "https://registry.npmjs.org/topojson-simplify/-/topojson-simplify-3.0.2.tgz",
  902 + "integrity": "sha1-iiQD5jlTFQD6+gxllOiw+t68LAI=",
  903 + "requires": {
  904 + "commander": "2.6.0",
  905 + "topojson-client": "3.0.0"
  906 + }
  907 + }
  908 + }
  909 + },
  910 + "transformers": {
  911 + "version": "2.1.0",
  912 + "resolved": "https://registry.npmjs.org/transformers/-/transformers-2.1.0.tgz",
  913 + "integrity": "sha1-XSPLNVYd2F3Gf7hIIwm0fVPM6ac=",
  914 + "requires": {
  915 + "css": "1.0.8",
  916 + "promise": "2.0.0",
  917 + "uglify-js": "2.2.5"
  918 + },
  919 + "dependencies": {
  920 + "is-promise": {
  921 + "version": "1.0.1",
  922 + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-1.0.1.tgz",
  923 + "integrity": "sha1-MVc3YcBX4zwukaq56W2gjO++duU="
  924 + },
  925 + "promise": {
  926 + "version": "2.0.0",
  927 + "resolved": "https://registry.npmjs.org/promise/-/promise-2.0.0.tgz",
  928 + "integrity": "sha1-RmSKqdYFr10ucMMCS/WUNtoCuA4=",
  929 + "requires": {
  930 + "is-promise": "1.0.1"
  931 + }
  932 + },
  933 + "source-map": {
  934 + "version": "0.1.43",
  935 + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.43.tgz",
  936 + "integrity": "sha1-wkvBRspRfBRx9drL4lcbK3+eM0Y=",
  937 + "requires": {
  938 + "amdefine": "1.0.1"
  939 + }
  940 + },
  941 + "uglify-js": {
  942 + "version": "2.2.5",
  943 + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.2.5.tgz",
  944 + "integrity": "sha1-puAqcNg5eSuXgEiLe4sYTAlcmcc=",
  945 + "requires": {
  946 + "optimist": "0.3.7",
  947 + "source-map": "0.1.43"
  948 + }
  949 + }
  950 + }
  951 + },
  952 + "type-is": {
  953 + "version": "1.6.16",
  954 + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz",
  955 + "integrity": "sha1-+JzjQVQcZysl7nrjxz3uOyvlAZQ=",
  956 + "requires": {
  957 + "media-typer": "0.3.0",
  958 + "mime-types": "2.1.18"
  959 + }
  960 + },
  961 + "uglify-js": {
  962 + "version": "2.8.29",
  963 + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz",
  964 + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=",
  965 + "requires": {
  966 + "source-map": "0.5.7",
  967 + "uglify-to-browserify": "1.0.2",
  968 + "yargs": "3.10.0"
  969 + },
  970 + "dependencies": {
  971 + "source-map": {
  972 + "version": "0.5.7",
  973 + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
  974 + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w="
  975 + }
  976 + }
  977 + },
  978 + "uglify-to-browserify": {
  979 + "version": "1.0.2",
  980 + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz",
  981 + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=",
  982 + "optional": true
  983 + },
  984 + "unpipe": {
  985 + "version": "1.0.0",
  986 + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
  987 + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
  988 + },
  989 + "util-deprecate": {
  990 + "version": "1.0.2",
  991 + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
  992 + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
  993 + },
  994 + "utils-merge": {
  995 + "version": "1.0.0",
  996 + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.0.tgz",
  997 + "integrity": "sha1-ApT7kiu5N1FTVBxPcJYjHyh8ivg="
  998 + },
  999 + "vary": {
  1000 + "version": "1.1.2",
  1001 + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
  1002 + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
  1003 + },
  1004 + "void-elements": {
  1005 + "version": "2.0.1",
  1006 + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz",
  1007 + "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w="
  1008 + },
  1009 + "window-size": {
  1010 + "version": "0.1.0",
  1011 + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz",
  1012 + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0="
  1013 + },
  1014 + "with": {
  1015 + "version": "4.0.3",
  1016 + "resolved": "https://registry.npmjs.org/with/-/with-4.0.3.tgz",
  1017 + "integrity": "sha1-7v0VTp550sjTQXtkeo8U2f7M4U4=",
  1018 + "requires": {
  1019 + "acorn": "1.2.2",
  1020 + "acorn-globals": "1.0.9"
  1021 + },
  1022 + "dependencies": {
  1023 + "acorn": {
  1024 + "version": "1.2.2",
  1025 + "resolved": "https://registry.npmjs.org/acorn/-/acorn-1.2.2.tgz",
  1026 + "integrity": "sha1-yM4n3grMdtiW0rH6099YjZ6C8BQ="
  1027 + }
  1028 + }
  1029 + },
  1030 + "wordwrap": {
  1031 + "version": "0.0.3",
  1032 + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
  1033 + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc="
  1034 + },
  1035 + "xtend": {
  1036 + "version": "4.0.1",
  1037 + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
  1038 + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
  1039 + },
  1040 + "yargs": {
  1041 + "version": "3.10.0",
  1042 + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
  1043 + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
  1044 + "requires": {
  1045 + "camelcase": "1.2.1",
  1046 + "cliui": "2.1.0",
  1047 + "decamelize": "1.2.0",
  1048 + "window-size": "0.1.0"
  1049 + }
  1050 + }
  1051 + }
  1052 +}
... ...
package.json 0 → 100644
  1 +++ a/package.json
... ... @@ -0,0 +1,26 @@
  1 +{
  2 + "name": "pg-node",
  3 + "version": "0.0.0",
  4 + "private": true,
  5 + "engines": {
  6 + "node": "8.10.0",
  7 + "npm": "6.0.0"
  8 + }
  9 + "scripts": {
  10 + "start": "node ./bin/www"
  11 + },
  12 + "dependencies": {
  13 + "body-parser": "~1.18.2",
  14 + "cookie-parser": "~1.4.3",
  15 + "debug": "~2.6.9",
  16 + "express": "~4.15.5",
  17 + "jade": "~1.11.0",
  18 + "jade-bootstrap": "^1.0.14",
  19 + "leaflet-draw": "^1.0.2",
  20 + "morgan": "~1.9.0",
  21 + "mssql": "^4.1.0",
  22 + "pg": "*",
  23 + "postgeo": "*",
  24 + "serve-favicon": "~2.4.5"
  25 + }
  26 +}
... ...
public/favicon.ico 0 → 100644
No preview for this file type
public/stylesheets/style.css 0 → 100644
  1 +++ a/public/stylesheets/style.css
... ... @@ -0,0 +1,65 @@
  1 +img {
  2 + border: 0px;
  3 + box-shadow: 0 0 0px;
  4 +}
  5 +html, body {
  6 + height: 100%;
  7 + overflow: hidden;
  8 +}
  9 +#header_wrap {
  10 + height: 100px;
  11 +}
  12 +.outer {
  13 + top: 50px;
  14 + left: 0;
  15 + right: 0;
  16 + bottom: 0;
  17 + position: absolute;
  18 + width: auto;
  19 + height: auto;
  20 +}
  21 +#map {
  22 + height: 100%;
  23 +}
  24 +body {
  25 + margin:0;
  26 + padding:0px;
  27 + font:14px "Lucida Grande", Helvetica, Arial, sans-serif;
  28 +}
  29 +a {
  30 + color:#00B7FF;
  31 +}
  32 +#leg, #leg_title {
  33 + position:absolute;
  34 + top:50px;
  35 + right:10px;
  36 + width:100px;
  37 + padding:10px;
  38 + background:rgba(34,34,34,1);
  39 + color:#999;
  40 + font-family: Arial, Helvetica, sans-serif;
  41 + font-size:12px;
  42 + line-height:18px;
  43 + border-radius:3px;
  44 + max-height:80%;
  45 + overflow:auto;
  46 +}
  47 +#leg_title {
  48 + top:10px;
  49 +}
  50 +#leg_items {
  51 + position:relative;
  52 + margin-left:5px;
  53 + top:-1px
  54 +}
  55 +#project_title {
  56 + margin-top: -30px;
  57 +}
  58 +#nf_div {
  59 + z-index: 100;
  60 + position: absolute;
  61 + left: 10px;
  62 + bottom: 46px;
  63 + height: 48px;
  64 + width: 48px;
  65 +}
0 66 \ No newline at end of file
... ...
routes/index.js 0 → 100644
  1 +++ a/routes/index.js
... ... @@ -0,0 +1,49 @@
  1 +var express = require("express");
  2 +var ms_sql = require("mssql");
  3 +var conexao = require("../src/connectionsConfiguration");
  4 +var router = express.Router();
  5 +
  6 +// Conexão com Postgres
  7 +var pg = require("pg");
  8 +pg.defaults.poolSize = 25;
  9 +
  10 +// Creates global pool connection with MS SqlServer
  11 +
  12 +global.poolPg = new pg.Pool(conexao.pg);
  13 +
  14 +global.poolMsql = new ms_sql.ConnectionPool(conexao.msql, function(err) {
  15 + if (err) {
  16 + console.log("Não conectou \n" + err);
  17 + }
  18 +});
  19 +
  20 +/* GET home page. */
  21 +router.get("/", function(req, res, next) {
  22 + res.render("index", { title: "NEXUS" });
  23 +});
  24 +
  25 +router.get("/map/:nome", function(req, res, next) {
  26 + var numeroConsumidor = require("../src/findConsumerNumber");
  27 + var coordenadas = require("../src/findCoordinatesFromConsumer");
  28 + var retorno = numeroConsumidor(req.params.nome, function(numero, nome) {
  29 + console.log("Terminou tudo: " + numero + " Nome: " + nome);
  30 + var retorno = coordenadas(numero, function(x, y) {
  31 + console.log("Terminou procura coordenadas x: " + x + " y: " + y);
  32 + res.render("map", {
  33 + codigo: numero,
  34 + consumidor: nome,
  35 + fator_zoom: 23,
  36 + title: "NEXUS",
  37 + lat: y,
  38 + lng: x
  39 + });
  40 + });
  41 + });
  42 +});
  43 +
  44 +router.get("http://127.0.0.1/ponto", function(req, res) {
  45 + var coord = {};
  46 + console.log("Postou: ");
  47 +});
  48 +
  49 +module.exports = router;
... ...
routes/users.js 0 → 100644
  1 +++ a/routes/users.js
... ... @@ -0,0 +1,9 @@
  1 +var express = require("express");
  2 +var router = express.Router();
  3 +
  4 +/* GET users listing. */
  5 +router.get("/", function(req, res, next) {
  6 + res.send("respond with a resource");
  7 +});
  8 +
  9 +module.exports = router;
... ...
src/connectionsConfiguration.js 0 → 100644
  1 +++ a/src/connectionsConfiguration.js
... ... @@ -0,0 +1,21 @@
  1 +var connection = {
  2 + pg: {
  3 + host: '127.0.0.1', // server name or IP address;
  4 + hostaddr: '127.0.0.1',
  5 + port: 5432,
  6 + database: 'gis',
  7 + user: 'postgres',
  8 + password: 'nexus243',
  9 + max: 10, // max number of clients in the pool
  10 + idleTimeoutMillis: 30000 // how long a client is allowed to remain idle before being closed
  11 + },
  12 + msql: {
  13 + user: 'sa',
  14 + password: 'Nexus243',
  15 + server: 'JAVASERVER\\SQLEXPRESS',
  16 + database: 'comercial',
  17 + port: '1444',
  18 + dialect: 'mssql'
  19 + }
  20 +}
  21 +module.exports = connection;
0 22 \ No newline at end of file
... ...
src/findConsumerNumber.js 0 → 100644
  1 +++ a/src/findConsumerNumber.js
... ... @@ -0,0 +1,13 @@
  1 +var consumerNumber = function (nomeConsumidor, callback){
  2 + var qrySql = "select TOP (1) COD_DAE, COD_DAE + 9000000 as novo_cod_dae, NOME from cadastro where NOME LIKE '%" + nomeConsumidor + "%'";
  3 + poolMsql.request().query(qrySql, function (err, recordset) {
  4 + if (err) {
  5 + console.log("Não realizou a querie: \n" + err);
  6 + }
  7 + var numeroDoConsumidor = recordset.recordset[0].novo_cod_dae;
  8 + var nomeDoConsumidor = recordset.recordset[0].NOME
  9 + return callback(numeroDoConsumidor, nomeDoConsumidor);
  10 + });
  11 +};
  12 +
  13 +module.exports = consumerNumber;
0 14 \ No newline at end of file
... ...
src/findCoordinatesFromConsumer.js 0 → 100644
  1 +++ a/src/findCoordinatesFromConsumer.js
... ... @@ -0,0 +1,48 @@
  1 +var findCoordinates = function(consumerCode, callback) {
  2 + poolPg.connect(function(err, client, done) {
  3 + if (err) {
  4 + console.log("não capaz de realizar a conexão com o banco de dados" + err);
  5 + res.status(400).send(err);
  6 + }
  7 + client.query("SET search_path TO public, sc_mbc, gw_saa", function(
  8 + err1,
  9 + result
  10 + ) {
  11 + // definição do schema em que irá realizar as queries
  12 + if (err1) {
  13 + console.log("Não foi capaz de mudar o schema " + err1);
  14 + res.status(400).send(err1);
  15 + }
  16 + });
  17 +
  18 + var qrySql =
  19 + "select gw_saa.connec.connec_id, \
  20 + ST_X(ST_Transform(gw_saa.connec.the_geom,4326)) as zoom_x, \
  21 + ST_Y(ST_Transform(gw_saa.connec.the_geom,4326)) as zoom_y, \
  22 + gw_saa.connec.state, gw_saa.connec.sector_id, gw_saa.connec.dma_id, gw_saa.connec.category_type \
  23 + from gw_saa.connec \
  24 + inner join gw_saa.rtc_hydrometer_x_connec \
  25 + on gw_saa.connec.connec_id = gw_saa.rtc_hydrometer_x_connec.connec_id \
  26 + where gw_saa.rtc_hydrometer_x_connec.hydrometer_id = '" +
  27 + consumerCode +
  28 + "'";
  29 + client.query(qrySql, function(err1, result) {
  30 + if (err1) {
  31 + console.log(
  32 + "não capaz de realizar a querie com o banco de dados" + err1
  33 + );
  34 + res.status(400).send(err1);
  35 + }
  36 + if (result.rowCount === 0) {
  37 + console.log("não encontrou");
  38 + } else {
  39 + centro_x = result.rows[0]["zoom_x"];
  40 + centro_y = result.rows[0]["zoom_y"];
  41 + done(); //fecha a conexão
  42 + return callback(centro_x, centro_y);
  43 + }
  44 + });
  45 + });
  46 +};
  47 +
  48 +module.exports = findCoordinates;
... ...
views/error.jade 0 → 100644
  1 +++ a/views/error.jade
... ... @@ -0,0 +1,6 @@
  1 +extends layout
  2 +
  3 +block content
  4 + h1= message
  5 + h2= error.status
  6 + pre #{error.stack}
... ...
views/index.jade 0 → 100644
  1 +++ a/views/index.jade
... ... @@ -0,0 +1,5 @@
  1 +extends layout
  2 +
  3 +block content
  4 + h1= title
  5 + p Welcome to #{title}
... ...
views/layout.jade 0 → 100644
  1 +++ a/views/layout.jade
... ... @@ -0,0 +1,25 @@
  1 +doctype html
  2 +html
  3 + head
  4 + title= title
  5 + link(rel='stylesheet', href='/stylesheets/style.css')
  6 + link(rel='stylesheet', href='http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css')
  7 + link(rel="stylesheet", href="https://unpkg.com/leaflet@1.3.1/dist/leaflet.css" integrity="sha512-Rksm5RenBEKSKFjgI3a41vrjkw4EVPlJ3+OiI65vTjIdo9brlAacEuKOiQ5OFh7cOI1bkDwLqdLw3Zg0cRJAAQ==" crossorigin="")
  8 + script(src='https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js')
  9 + script(src='https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/jquery-ui.min.js')
  10 + meta(http-equiv='X-UA-Compatible', content='IE=edge')
  11 + meta(name='viewport', content='width=device-width, initial-scale=1.0')
  12 + meta(name='description', content='Baking Bootstrap Snippets with Jade')
  13 + link(rel="stylesheet", href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css")
  14 + script(src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js")
  15 + script(src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js")
  16 + script(src="https://unpkg.com/leaflet@1.3.1/dist/leaflet.js" integrity="sha512-/Nsx9X4HebavoBvEBuyp3I7od5tA0UzAxs+j83KgC8PU0kgB4XiK4Lfe4y4cgBtaRJQEIFCW+oC506aPT2L1zw==" crossorigin="")
  17 + link(rel='stylesheet', href='https://unpkg.com/leaflet-draw@1.0.2/dist/leaflet.draw.css')
  18 + script(src="https://unpkg.com/leaflet-draw@1.0.2/dist/leaflet.draw.js")
  19 + link(src="http://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous")
  20 + body
  21 + .container
  22 +
  23 + script(src='//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js')
  24 + script(src='//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js')
  25 +block content
... ...
views/map.jade 0 → 100644
  1 +++ a/views/map.jade
... ... @@ -0,0 +1,107 @@
  1 +extends layout
  2 +block content
  3 + br
  4 + .container
  5 + .row
  6 + .col.col-lg-2
  7 + | Codigo: #{codigo}
  8 + .col.col-lg-3
  9 + | Consumidor: #{consumidor}
  10 + .col.col-lg-3
  11 + input.form-control(type='text', id="nome", placeholder='Digite o nome')
  12 + .col.col-lg-1
  13 + input.btn.btn-primary(type='button', value='Procura', onclick=' relocate_home()')
  14 + script.
  15 + function relocate_home()
  16 + {
  17 + location.href = "http://127.0.0.1:3000/map/" + nome.value ;
  18 + }
  19 + br
  20 + #map
  21 +
  22 + script(type='text/javascript').
  23 + var osmUrl = 'http://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',
  24 + osmAttrib = '',
  25 + osm = L.tileLayer(osmUrl,
  26 + {attribution: osmAttrib}),
  27 + map = L.map('map', {center: new L.LatLng(#{lat},#{lng}), zoom: #{fator_zoom}}),
  28 + wmsLayer= L.tileLayer.wms("http://localhost:8080/geoserver/saocaetano/wms", {
  29 + layers: 'saocaetano:quadras, saocaetano:redesAgua, saocaetano:noAgua, saocaetano:ramalAgua, saocaetano:ligacaoAgua',
  30 + format: 'image/png',
  31 + transparent: true,
  32 + maxZoom: 23
  33 + }),
  34 + drawnItems = L.featureGroup().addTo(map);
  35 +
  36 + L.control.layers({
  37 + "OSM": osm.addTo(map),
  38 + "Google": L.tileLayer('http://www.google.cn/maps/vt?lyrs=s@189&gl=cn&x={x}&y={y}&z={z}', {
  39 + attribution: 'google'
  40 + })
  41 + }, {'Ocorrências': drawnItems, 'Redes': wmsLayer}, { position: 'topright', collapsed: false }).addTo(map);
  42 +
  43 + var marker = L.marker([#{lat},#{lng}]).addTo(map);
  44 + marker.bindPopup("<b>#{codigo}</b><br>#{consumidor}").openPopup();
  45 +
  46 + var drawControl = new L.Control.Draw({
  47 + draw: {
  48 + polygon: false,
  49 + polyline: false,
  50 + line: false,
  51 + circle: false,
  52 + rectangle: false,
  53 + circlemarker: false,
  54 + marker: true
  55 + },
  56 + edit: {
  57 + featureGroup: drawnItems
  58 + }
  59 + });
  60 + map.addControl(drawControl);
  61 +
  62 + // Truncate value based on number of decimals
  63 + var _round = function(num, len) {
  64 + return Math.round(num*(Math.pow(10, len)))/(Math.pow(10, len));
  65 + };
  66 + // Helper method to format LatLng object (x.xxxxxx, y.yyyyyy)
  67 + var strLatLng = function(latlng) {
  68 + var coordenadas = "("+_round(latlng.lat, 2)+", "+_round(latlng.lng, 2)+")";
  69 + return coordenadas;
  70 + };
  71 +
  72 + // Generate popup content based on layer type
  73 + // - Returns HTML string, or null if unknown object
  74 + var getPopupContent = function(layer) {
  75 + return strLatLng(layer.getLatLng());
  76 + };
  77 +
  78 + // Object created - bind popup to layer, add to feature group
  79 + map.on(L.Draw.Event.CREATED, function(event) {
  80 + console.log ("Entrou no evento Created");
  81 + var layer = event.layer;
  82 + var content = getPopupContent(layer);
  83 + if (content !== null) {
  84 + console.log ("Coordendas: " + layer.getLatLng().lat + " - " + layer.getLatLng().lng);
  85 + $.post({
  86 + data: "teste",
  87 + // data: layer.getLatLng().lng + "/lat/" + layer.getLatLng().lat,
  88 + url: "http://127.0.0.1/ponto"
  89 + });
  90 + layer.bindPopup(content);
  91 + }
  92 + drawnItems.addLayer(layer);
  93 + });
  94 +
  95 + // Object(s) edited - update popups
  96 + map.on(L.Draw.Event.EDITED, function(event) {
  97 + console.log ("Entrou no evento Edited");
  98 + var layers = event.layers,
  99 + content = null;
  100 + layers.eachLayer(function(layer) {
  101 + content = getPopupContent(layer);
  102 + if (content !== null) {
  103 + layer.setPopupContent(content);
  104 + }
  105 + });
  106 + });
  107 +
0 108 \ No newline at end of file
... ...