{"_id":"@durstdog87/dropin-tileservice","name":"@durstdog87/dropin-tileservice","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@durstdog87/dropin-tileservice","version":"0.1.0","description":"A minimal drop in vector tile service using pg","main":"lib/index.js","scripts":{"test":"jest","build":"tsc","format":"prettier --write \"src/**/*.ts\" \"src/**/*.js\"","lint":"eslint -c tsconfig.json"},"author":{"name":"durstDog87"},"license":"MIT","devDependencies":{"@babel/preset-env":"^7.23.5","@babel/preset-typescript":"^7.23.3","@jest/globals":"^29.7.0","@types/pg":"^8.10.2","dotenv":"^16.3.1","eslint":"^8.44.0","jest":"^29.7.0","pg":"^8.11.3","prettier":"^3.0.0","ts-jest":"^29.1.1","tslint":"^6.1.3","tslint-config-prettier":"^1.18.0","typescript":"^5.1.6"},"types":"./lib/index.d.ts","directories":{"lib":"lib"},"dependencies":{"ansi-styles":"^3.2.1","ansi-escapes":"^4.3.2","acorn-jsx":"^5.3.2","acorn":"^8.10.0","ansi-regex":"^5.0.1","babel-plugin-jest-hoist":"^29.6.3","babel-jest":"^29.7.0","anymatch":"^3.1.3","argparse":"^1.0.10","babel-plugin-istanbul":"^6.1.1","babel-plugin-polyfill-corejs3":"^0.8.6","babel-plugin-polyfill-corejs2":"^0.4.6","babel-preset-jest":"^29.6.3","babel-preset-current-node-syntax":"^1.0.1","brace-expansion":"^1.1.11","braces":"^3.0.2","browserslist":"^4.22.2","ajv":"^6.12.6","bser":"^2.1.1","balanced-match":"^1.0.2","babel-plugin-polyfill-regenerator":"^0.5.3","bs-logger":"^0.2.6","builtin-modules":"^1.1.1","buffer-writer":"^2.0.0","camelcase":"^5.3.1","caniuse-lite":"^1.0.30001566","callsites":"^3.1.0","chalk":"^2.4.2","char-regex":"^1.0.2","cliui":"^8.0.1","color-name":"^1.1.3","buffer-from":"^1.1.2","color-convert":"^1.9.3","cjs-module-lexer":"^1.2.3","convert-source-map":"^2.0.0","ci-info":"^3.9.0","commander":"^2.20.3","collect-v8-coverage":"^1.0.2","create-jest":"^29.7.0","cross-spawn":"^7.0.3","co":"^4.6.0","core-js-compat":"^3.34.0","deep-is":"^0.1.4","dedent":"^1.5.1","deepmerge":"^4.3.1","debug":"^4.3.4","diff":"^4.0.2","diff-sequences":"^29.6.3","emittery":"^0.13.1","detect-newline":"^3.1.0","concat-map":"^0.0.1","escalade":"^3.1.1","doctrine":"^3.0.0","electron-to-chromium":"^1.4.605","emoji-regex":"^8.0.0","error-ex":"^1.3.2","eslint-visitor-keys":"^3.4.1","eslint-scope":"^7.2.0","espree":"^9.6.0","esprima":"^4.0.1","escape-string-regexp":"^1.0.5","esrecurse":"^4.3.0","esutils":"^2.0.3","exit":"^0.1.2","estraverse":"^5.3.0","expect":"^29.7.0","esquery":"^1.5.0","fast-json-stable-stringify":"^2.1.0","fast-deep-equal":"^3.1.3","fastq":"^1.15.0","fb-watchman":"^2.0.2","fill-range":"^7.0.1","execa":"^5.1.1","fs.realpath":"^1.0.0","find-up":"^5.0.0","file-entry-cache":"^6.0.1","flat-cache":"^3.0.4","flatted":"^3.2.7","fsevents":"^2.3.3","function-bind":"^1.1.1","get-package-type":"^0.1.0","get-caller-file":"^2.0.5","get-stream":"^6.0.1","glob-parent":"^6.0.2","globals":"^13.20.0","has-flag":"^3.0.0","glob":"^7.2.3","has":"^1.0.3","fast-levenshtein":"^2.0.6","gensync":"^1.0.0-beta.2","graphemer":"^1.4.0","human-signals":"^2.1.0","graceful-fs":"^4.2.11","import-local":"^3.1.0","imurmurhash":"^0.1.4","inherits":"^2.0.4","import-fresh":"^3.3.0","is-arrayish":"^0.2.1","is-extglob":"^2.1.1","is-core-module":"^2.12.1","is-fullwidth-code-point":"^3.0.0","is-generator-fn":"^2.1.0","html-escaper":"^2.0.2","inflight":"^1.0.6","is-path-inside":"^3.0.3","ignore":"^5.2.4","is-number":"^7.0.0","istanbul-lib-coverage":"^3.2.2","istanbul-lib-instrument":"^6.0.1","is-glob":"^4.0.3","is-stream":"^2.0.1","istanbul-lib-source-maps":"^4.0.1","istanbul-lib-report":"^3.0.1","isexe":"^2.0.0","jest-changed-files":"^29.7.0","jest-circus":"^29.7.0","istanbul-reports":"^3.1.6","jest-cli":"^29.7.0","jest-docblock":"^29.7.0","jest-each":"^29.7.0","jest-environment-node":"^29.7.0","jest-config":"^29.7.0","jest-leak-detector":"^29.7.0","jest-get-type":"^29.6.3","jest-diff":"^29.7.0","jest-mock":"^29.7.0","jest-matcher-utils":"^29.7.0","jest-haste-map":"^29.7.0","jest-regex-util":"^29.6.3","jest-pnp-resolver":"^1.2.3","jest-runner":"^29.7.0","jest-runtime":"^29.7.0","jest-util":"^29.7.0","jest-snapshot":"^29.7.0","jest-resolve":"^29.7.0","jest-watcher":"^29.7.0","jest-validate":"^29.7.0","jest-worker":"^29.7.0","jest-resolve-dependencies":"^29.7.0","js-tokens":"^4.0.0","jsesc":"^2.5.2","json-schema-traverse":"^0.4.1","json-stable-stringify-without-jsonify":"^1.0.1","json-parse-even-better-errors":"^2.3.1","leven":"^3.1.0","kleur":"^3.0.3","js-yaml":"^3.14.1","json5":"^2.2.3","lodash.debounce":"^4.0.8","locate-path":"^6.0.0","lines-and-columns":"^1.2.4","lodash.memoize":"^4.1.2","lodash.merge":"^4.6.2","levn":"^0.4.1","lru-cache":"^5.1.1","jest-message-util":"^29.7.0","makeerror":"^1.0.12","micromatch":"^4.0.5","mimic-fn":"^2.1.0","make-dir":"^4.0.0","merge-stream":"^2.0.0","make-error":"^1.3.6","ms":"^2.1.2","node-int64":"^0.4.0","natural-compare":"^1.4.0","minimatch":"^3.1.2","minimist":"^1.2.8","npm-run-path":"^4.0.1","onetime":"^5.1.2","mkdirp":"^0.5.6","node-releases":"^2.0.14","p-try":"^2.2.0","obuf":"^1.1.2","normalize-path":"^3.0.0","once":"^1.4.0","optionator":"^0.9.3","parse-json":"^5.2.0","p-locate":"^5.0.0","p-limit":"^3.1.0","packet-reader":"^1.0.0","parent-module":"^1.0.1","path-key":"^3.1.1","path-parse":"^1.0.7","path-exists":"^4.0.0","pg-int8":"^1.0.1","pg-cloudflare":"^1.1.1","path-is-absolute":"^1.0.1","pg-connection-string":"^2.6.2","pg-protocol":"^1.6.0","picocolors":"^1.0.0","pg-types":"^2.2.0","picomatch":"^2.3.1","pgpass":"^1.0.5","pg-pool":"^3.6.1","pirates":"^4.0.6","pkg-dir":"^4.2.0","postgres-interval":"^1.2.0","postgres-bytea":"^1.0.0","postgres-date":"^1.0.7","prelude-ls":"^1.2.1","pg-numeric":"^1.0.2","postgres-range":"^1.1.3","pretty-format":"^29.7.0","prompts":"^2.4.2","postgres-array":"^2.0.0","punycode":"^2.3.0","react-is":"^18.2.0","queue-microtask":"^1.2.3","pure-rand":"^6.0.4","regenerate":"^1.4.2","regenerate-unicode-properties":"^10.1.1","regenerator-transform":"^0.15.2","require-directory":"^2.1.1","regexpu-core":"^5.3.2","regenerator-runtime":"^0.14.0","regjsparser":"^0.9.1","resolve.exports":"^2.0.2","resolve-cwd":"^3.0.0","run-parallel":"^1.2.0","resolve-from":"^4.0.0","resolve":"^1.22.2","rimraf":"^3.0.2","shebang-command":"^2.0.0","shebang-regex":"^3.0.0","signal-exit":"^3.0.7","sisteransi":"^1.0.5","reusify":"^1.0.4","split2":"^4.2.0","source-map":"^0.6.1","sprintf-js":"^1.0.3","slash":"^3.0.0","stack-utils":"^2.0.6","string-length":"^4.0.2","string-width":"^4.2.3","strip-ansi":"^6.0.1","strip-bom":"^4.0.0","source-map-support":"^0.5.13","strip-json-comments":"^3.1.1","strip-final-newline":"^2.0.0","supports-color":"^5.5.0","text-table":"^0.2.0","supports-preserve-symlinks-flag":"^1.0.0","semver":"^5.7.2","to-fast-properties":"^2.0.0","test-exclude":"^6.0.0","to-regex-range":"^5.0.1","type-detect":"^4.0.8","tsutils":"^2.29.0","type-check":"^0.4.0","type-fest":"^0.20.2","unicode-match-property-ecmascript":"^2.0.0","unicode-property-aliases-ecmascript":"^2.1.0","unicode-canonical-property-names-ecmascript":"^2.0.0","tmpl":"^1.0.5","update-browserslist-db":"^1.0.13","unicode-match-property-value-ecmascript":"^2.1.0","v8-to-istanbul":"^9.2.0","uri-js":"^4.4.1","which":"^2.0.2","xtend":"^4.0.2","walker":"^1.0.8","wrappy":"^1.0.2","y18n":"^5.0.8","yallist":"^3.1.1","write-file-atomic":"^4.0.2","tslib":"^1.14.1","wrap-ansi":"^7.0.0","yargs":"^17.7.2","yargs-parser":"^21.1.1","yocto-queue":"^0.1.0"},"repository":{"type":"git","url":"git+https://github.com/DurstDog87/dropin-tiles.git"},"keywords":["pg","PostGIS","vectortiles","mvt","postgeSQL"],"bugs":{"url":"https://github.com/DurstDog87/dropin-tiles/issues"},"homepage":"https://github.com/DurstDog87/dropin-tiles#readme","gitHead":"4d39e8d3b7f8128083b729e56549d9ac203f842a","_id":"@durstdog87/dropin-tileservice@0.1.0","_nodeVersion":"16.17.0","_npmVersion":"8.15.0","dist":{"integrity":"sha512-dtIxLHSpkUSlc+IQSwynjETmmpdNIEmEksroLqSQPAWL3Ucq0jTfIMnZ2a520MCa3RFmzosrymPI5tYYyFzTmQ==","shasum":"f884a97bc79c02a8bf7030417b1332dd6be0db48","tarball":"https://registry.npmjs.org/@durstdog87/dropin-tileservice/-/dropin-tileservice-0.1.0.tgz","fileCount":9,"unpackedSize":21487,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCGoIbkuL65/R5OI8qpIR7xPY5rKjUJ0x7ShD1JLNPazwIga7yQuRHuaESuH8gs/SJzXRInZB5ZDGR73xSNvG5ywjA="}]},"_npmUser":{"name":"durstdog87","email":"durstdog87@gmail.com"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/dropin-tileservice_0.1.0_1719866777397_0.6606302529363868"},"_hasShrinkwrap":false}},"time":{"created":"2024-07-01T20:46:17.262Z","0.1.0":"2024-07-01T20:46:17.592Z","modified":"2024-07-01T20:46:17.907Z"},"maintainers":[{"name":"durstdog87","email":"durstdog87@gmail.com"}],"description":"A minimal drop in vector tile service using pg","homepage":"https://github.com/DurstDog87/dropin-tiles#readme","keywords":["pg","PostGIS","vectortiles","mvt","postgeSQL"],"repository":{"type":"git","url":"git+https://github.com/DurstDog87/dropin-tiles.git"},"author":{"name":"durstDog87"},"bugs":{"url":"https://github.com/DurstDog87/dropin-tiles/issues"},"license":"MIT","readme":" # Drop In Tileservice\n\nA drop in vector tile service using pg for turning any postres backend into a tileserver.\n\n### Pre Requisites:\n\n- [PostgreSQL](https://www.postgresql.org/) with the [PostGIS](http://postgis.net/) extension added.\n- This Package requires the [node-postgres](https://node-postgres.com/) package\n\n### Installation \n\n- Clone this repo then build using `npm run build` at the root\n- Install in your application with `npm install path/to/repo`\n- Link with `npm link path/to/repo`\n\n### Usage: (Express example)\n\n```javascript\nimport { Tileserver } from \"dropin-tileservice\"\nimport { Pool } from \"pg\"\nimport Express from \"express\"\n\nconst app = Express()\nconst port = 5000\n\napp.use(cors())\n\nconst connection_params = {\n    user: \"postgres\",\n    host: \"localhost\",\n    database: \"features\",\n    password: \"secret-password\", //optional\n    port: 5432\n}\n\nconst pool = new Pool(connection_params)\n\nconst tileService = new Tileserver()\n//SQL to be run against the pool db\ntileservice.setQuery(\"SELECT id, geom FROM schema.table WHERE prop = 44\") \ntileservice.setSrid(2252) //Michigan Central\n\napp.get(\"/tiles/:z/:x/:y\", async (req, res) => {\n    try {\n        const conn = await pool.connect()\n        const tiles = await ts.query(req.params.z, req.params.x, req.params.y, conn, {\n            layername: \"default\"\n        })\n        res.status(200).send(tiles) //protobuf sent as result \n    } catch (e) {\n        console.log(e)\n    } finally {\n        await conn.release()\n    }\n\n})\n\n```\n\n### With Params\n```javascript\ntileservice.setQuery(\"SELECT id, geom FROM schema.table WHERE prop = $1\") \ntileservice.setSrid(2252) //Michigan Central\n\napp.get(\"/tiles/:z/:x/:y\", async (req, res) => {\n    try {\n        const conn = await pool.connect()\n        const tiles = await ts.query(req.params.z, req.params.x, req.params.y, conn, {\n            params: [44],\n            layername: \"default\"\n        })\n        res.status(200).send(tiles) //protobuf sent as result \n    } catch (e) {\n        console.log(e)\n    } finally {\n        await conn.release()\n    }\n})\n```\n\n### Passing queryString and srid\n\n```javascript\napp.get(\"/tiles/:z/:x/:y\", async (req, res) => {\n    try {\n        const conn = await pool.connect()\n        const tiles = await ts.query(req.params.z, req.params.x, req.params.y, conn, {\n            queryString: \"SELECT id, geom FROM schema.table WHERE prop = $1\",\n            srid: 2252,\n            params: [44],\n            layername: \"default\"\n        })\n        res.status(200).send(tiles) //protobuf sent as result \n    } catch (e) {\n        console.log(e)\n    } finally {\n        await conn.release()\n    }\n})\n```\n","readmeFilename":"README.md"}