- {#each list as { path, prettyName, children, meta }}
+ {#each $layout.children as { path, title }}
$goto(path)}>
- {prettyName}
+ {title}
{/each}
+
diff --git a/packages/server/builder/assets/javascript-logo.svg b/packages/server/builder/assets/javascript-logo.svg
deleted file mode 100644
index 40a89196b9..0000000000
--- a/packages/server/builder/assets/javascript-logo.svg
+++ /dev/null
@@ -1 +0,0 @@
-
\ No newline at end of file
diff --git a/packages/server/package.json b/packages/server/package.json
index 42d56712c4..95990ac88f 100644
--- a/packages/server/package.json
+++ b/packages/server/package.json
@@ -23,7 +23,7 @@
}
},
"scripts": {
- "test": "jest",
+ "test": "jest routes --runInBand",
"test:integration": "jest routes --runInBand",
"test:watch": "jest -w",
"initialise": "node ../cli/bin/budi init -b local -q",
@@ -55,11 +55,12 @@
"koa": "^2.7.0",
"koa-body": "^4.1.0",
"koa-compress": "^4.0.1",
- "koa-logger": "^3.2.1",
+ "koa-pino-logger": "^3.0.0",
"koa-send": "^5.0.0",
"koa-session": "^5.12.0",
"koa-static": "^5.0.0",
"lodash": "^4.17.13",
+ "pino-pretty": "^4.0.0",
"pouchdb": "^7.2.1",
"pouchdb-all-dbs": "^1.0.2",
"squirrelly": "^7.5.0",
@@ -82,7 +83,9 @@
},
"jest": {
"testEnvironment": "node",
- "setupFiles": ["./scripts/jestSetup.js"]
+ "setupFiles": [
+ "./scripts/jestSetup.js"
+ ]
},
"gitHead": "b1f4f90927d9e494e513220ef060af28d2d42455"
}
diff --git a/packages/server/scripts/jestSetup.js b/packages/server/scripts/jestSetup.js
index 8b68f0850b..5289aef9f4 100644
--- a/packages/server/scripts/jestSetup.js
+++ b/packages/server/scripts/jestSetup.js
@@ -5,7 +5,3 @@ process.env.JWT_SECRET = "test-jwtsecret"
process.env.CLIENT_ID = "test-client-id"
process.env.BUDIBASE_DIR = tmpdir("budibase-unittests")
process.env.ADMIN_SECRET = "test-admin-secret"
-
-// makes the output of the tests messy
-// but please temporarily enable for debugging :)
-process.env.LOGGER = "off"
diff --git a/packages/server/src/api/controllers/application.js b/packages/server/src/api/controllers/application.js
index b79ca0e581..c4b49d1f74 100644
--- a/packages/server/src/api/controllers/application.js
+++ b/packages/server/src/api/controllers/application.js
@@ -1,7 +1,7 @@
const CouchDB = require("../../db")
const ClientDb = require("../../db/clientDb")
const { getPackageForBuilder } = require("../../utilities/builder")
-const uuid = require("uuid")
+const newid = require("../../db/newid")
const env = require("../../environment")
exports.fetch = async function(ctx) {
@@ -24,7 +24,7 @@ exports.create = async function(ctx) {
const db = new CouchDB(ClientDb.name(env.CLIENT_ID))
const newApplication = {
- _id: uuid.v4().replace(/-/g, ""),
+ _id: newid(),
type: "app",
instances: [],
userInstanceMap: {},
diff --git a/packages/server/src/api/controllers/instance.js b/packages/server/src/api/controllers/instance.js
index dcfc1ba2dc..573860438c 100644
--- a/packages/server/src/api/controllers/instance.js
+++ b/packages/server/src/api/controllers/instance.js
@@ -1,12 +1,12 @@
const CouchDB = require("../../db")
const client = require("../../db/clientDb")
-const uuid = require("uuid")
+const newid = require("../../db/newid")
const env = require("../../environment")
exports.create = async function(ctx) {
const instanceName = ctx.request.body.name
- const uid = uuid.v4().replace(/-/g, "")
- const instanceId = `inst_${ctx.params.applicationId.substring(0, 7)}_${uid}`
+ const appShortId = ctx.params.applicationId.substring(0, 7)
+ const instanceId = `inst_${appShortId}_${newid()}`
const { applicationId } = ctx.params
const clientId = env.CLIENT_ID
const db = new CouchDB(instanceId)
diff --git a/packages/server/src/api/controllers/model.js b/packages/server/src/api/controllers/model.js
index 4a97cf97aa..a30026a645 100644
--- a/packages/server/src/api/controllers/model.js
+++ b/packages/server/src/api/controllers/model.js
@@ -1,5 +1,5 @@
const CouchDB = require("../../db")
-const uuid = require("uuid")
+const newid = require("../../db/newid")
exports.fetch = async function(ctx) {
const db = new CouchDB(ctx.params.instanceId)
@@ -15,7 +15,7 @@ exports.create = async function(ctx) {
const newModel = {
type: "model",
...ctx.request.body,
- _id: uuid.v4().replace(/-/g, ""),
+ _id: newid(),
}
const result = await db.post(newModel)
diff --git a/packages/server/src/api/controllers/record.js b/packages/server/src/api/controllers/record.js
index b6b7fc62b3..2cd648b6c3 100644
--- a/packages/server/src/api/controllers/record.js
+++ b/packages/server/src/api/controllers/record.js
@@ -1,6 +1,6 @@
const CouchDB = require("../../db")
const Ajv = require("ajv")
-const uuid = require("uuid")
+const newid = require("../../db/newid")
const ajv = new Ajv()
@@ -9,7 +9,7 @@ exports.save = async function(ctx) {
const record = ctx.request.body
if (!record._rev && !record._id) {
- record._id = uuid.v4().replace(/-/, "")
+ record._id = newid()
}
// validation with ajv
diff --git a/packages/server/src/api/index.js b/packages/server/src/api/index.js
index 86b885bdcd..176eaaff96 100644
--- a/packages/server/src/api/index.js
+++ b/packages/server/src/api/index.js
@@ -48,7 +48,7 @@ router.use(async (ctx, next) => {
try {
await next()
} catch (err) {
- if (env.LOGGER !== "off") console.trace(err)
+ ctx.log.error(err)
ctx.status = err.status || err.statusCode || 500
ctx.body = {
message: err.message,
diff --git a/packages/server/src/api/routes/tests/couchTestUtils.js b/packages/server/src/api/routes/tests/couchTestUtils.js
index 49c86065dc..7018ec24b2 100644
--- a/packages/server/src/api/routes/tests/couchTestUtils.js
+++ b/packages/server/src/api/routes/tests/couchTestUtils.js
@@ -8,22 +8,8 @@ const TEST_CLIENT_ID = "test-client-id"
exports.supertest = async () => {
let request
let port = 4002
- let started = false
let server
- while (!started && port < 4020) {
- try {
- server = await app(port)
- started = true
- } catch (err) {
- if (err.code === "EADDRINUSE") {
- port = port + 1
- } else {
- throw err
- }
- }
- }
-
- if (!started) throw Error("Application failed to start")
+ server = await app(port)
request = supertest(server)
return { request, server }
diff --git a/packages/server/src/app.js b/packages/server/src/app.js
index 3c1256f836..bec5f8d16e 100644
--- a/packages/server/src/app.js
+++ b/packages/server/src/app.js
@@ -1,31 +1,29 @@
const Koa = require("koa")
-const logger = require("koa-logger")
-const api = require("./api")
const koaBody = require("koa-body")
-const env = require("./environment")
+const logger = require("koa-pino-logger")
const http = require("http")
+const api = require("./api")
+const env = require("./environment")
const app = new Koa()
// set up top level koa middleware
app.use(koaBody({ multipart: true }))
-if (env.LOGGER !== "off") app.use(logger())
+app.use(
+ logger({
+ prettyPrint: {
+ levelFirst: true,
+ },
+ level: process.env.NODE_ENV === "jest" ? "silent" : "info",
+ })
+)
// api routes
app.use(api.routes())
module.exports = async port => {
- port = port || env.PORT || 4001
+ const serverPort = port || env.PORT
const server = http.createServer(app.callback())
- return new Promise((resolve, reject) => {
- server.on("error", e => {
- if (e.code === "EADDRINUSE") {
- reject(e)
- }
- })
- server.listen({ port }, () => {
- resolve(server)
- })
- })
+ return server.listen(serverPort || 4001)
}
diff --git a/packages/server/src/db/newid.js b/packages/server/src/db/newid.js
new file mode 100644
index 0000000000..6af467480d
--- /dev/null
+++ b/packages/server/src/db/newid.js
@@ -0,0 +1,5 @@
+const { v4 } = require("uuid")
+
+module.exports = function() {
+ return v4().replace(/-/g, "")
+}
diff --git a/packages/server/src/electron.js b/packages/server/src/electron.js
index 51c67d4439..96fe7cd6c3 100644
--- a/packages/server/src/electron.js
+++ b/packages/server/src/electron.js
@@ -13,13 +13,13 @@ if (isDev) {
})
}
-const APP_URL = "http://localhost:4001"
+const APP_URL = "http://localhost:4001/_builder"
const APP_TITLE = "Budibase Builder"
let win
-function createWindow() {
- app.server = require("./app")
+async function createWindow() {
+ app.server = await require("./app")()
win = new BrowserWindow({ width: 1920, height: 1080 })
win.setTitle(APP_TITLE)
win.loadURL(APP_URL)
diff --git a/packages/server/src/middleware/authenticated.js b/packages/server/src/middleware/authenticated.js
index 43c8f013e1..1bcc5575c3 100644
--- a/packages/server/src/middleware/authenticated.js
+++ b/packages/server/src/middleware/authenticated.js
@@ -3,14 +3,7 @@ const STATUS_CODES = require("../utilities/statusCodes")
const env = require("../environment")
module.exports = async (ctx, next) => {
- const authHeader = ctx.get("Authorization")
-
- if (
- authHeader &&
- authHeader.startsWith("Basic") &&
- authHeader.split(" ")[1] === env.ADMIN_SECRET
- ) {
- ctx.isAuthenticated = true
+ if (ctx.path === "/_builder") {
await next()
return
}
diff --git a/packages/server/yarn.lock b/packages/server/yarn.lock
index 2bc0773828..8a64a7cb8a 100644
--- a/packages/server/yarn.lock
+++ b/packages/server/yarn.lock
@@ -239,6 +239,11 @@
global-agent "^2.0.2"
global-tunnel-ng "^2.7.1"
+"@hapi/bourne@^2.0.0":
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-2.0.0.tgz#5bb2193eb685c0007540ca61d166d4e1edaf918d"
+ integrity sha512-WEezM1FWztfbzqIUbsDzFRVMxSoLy3HugVcux6KDDtTqzPsLE8NDRHfXvev66aH1i2oOKKar3/XDjbvh/OUBdg==
+
"@jest/console@^24.7.1", "@jest/console@^24.9.0":
version "24.9.0"
resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.9.0.tgz#79b1bc06fb74a8cfb01cbdedf945584b1b9707f0"
@@ -785,6 +790,16 @@ argparse@^1.0.7:
dependencies:
sprintf-js "~1.0.2"
+args@^5.0.1:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/args/-/args-5.0.1.tgz#4bf298df90a4799a09521362c579278cc2fdd761"
+ integrity sha512-1kqmFCFsPffavQFGt8OxJdIcETti99kySRUPMpOhaGjL6mRJn8HFU1OxKY5bMqfZKUwTQc1mZkAjmGYaVOHFtQ==
+ dependencies:
+ camelcase "5.0.0"
+ chalk "2.4.2"
+ leven "2.1.0"
+ mri "1.1.4"
+
argsarray@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/argsarray/-/argsarray-0.0.1.tgz#6e7207b4ecdb39b0af88303fa5ae22bda8df61cb"
@@ -877,6 +892,11 @@ atob@^2.1.2:
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==
+atomic-sleep@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b"
+ integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==
+
aws-sign2@~0.7.0:
version "0.7.0"
resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8"
@@ -1128,7 +1148,7 @@ builder-util@22.6.0:
stat-mode "^1.0.0"
temp-file "^3.3.7"
-bytes@3.1.0, bytes@^3.0.0, bytes@^3.1.0:
+bytes@3.1.0, bytes@^3.0.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==
@@ -1174,6 +1194,11 @@ callsites@^3.0.0:
resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73"
integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==
+camelcase@5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.0.0.tgz#03295527d58bd3cd4aa75363f35b2e8d97be2f42"
+ integrity sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==
+
camelcase@^5.0.0, camelcase@^5.3.1:
version "5.3.1"
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320"
@@ -1191,7 +1216,7 @@ caseless@~0.12.0:
resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc"
integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=
-chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.2:
+chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.2:
version "2.4.2"
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
@@ -1537,6 +1562,11 @@ date-fns@^1.29.0:
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-1.30.1.tgz#2e71bf0b119153dbb4cc4e88d9ea5acfb50dc05c"
integrity sha512-hBSVCvSmWC+QypYObzwGOd9wqdDpOt+0wl0KbU+R+uuZBS1jN8VsD1ss3irQDknRj5NvxiTF6oj/nDRnN/UQNw==
+dateformat@^3.0.3:
+ version "3.0.3"
+ resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-3.0.3.tgz#a6e37499a4d9a9cf85ef5872044d62901c9889ae"
+ integrity sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==
+
debug@^2.2.0, debug@^2.3.3, debug@^2.6.9:
version "2.6.9"
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
@@ -2298,6 +2328,23 @@ fast-levenshtein@~2.0.6:
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
+fast-redact@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/fast-redact/-/fast-redact-2.0.0.tgz#17bb8f5e1f56ecf4a38c8455985e5eab4c478431"
+ integrity sha512-zxpkULI9W9MNTK2sJ3BpPQrTEXFNESd2X6O1tXMFpK/XM0G5c5Rll2EVYZH2TqI3xRGK/VaJ+eEOt7pnENJpeA==
+
+fast-safe-stringify@^2.0.7:
+ version "2.0.7"
+ resolved "https://registry.yarnpkg.com/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz#124aa885899261f68aedb42a7c080de9da608743"
+ integrity sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==
+
+fast-url-parser@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/fast-url-parser/-/fast-url-parser-1.1.3.tgz#f4af3ea9f34d8a271cf58ad2b3759f431f0b318d"
+ integrity sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0=
+ dependencies:
+ punycode "^1.3.2"
+
fb-watchman@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/fb-watchman/-/fb-watchman-2.0.1.tgz#fc84fb39d2709cf3ff6d743706157bb5708a8a85"
@@ -2387,6 +2434,11 @@ flat-cache@^2.0.1:
rimraf "2.6.3"
write "1.0.3"
+flatstr@^1.0.12:
+ version "1.0.12"
+ resolved "https://registry.yarnpkg.com/flatstr/-/flatstr-1.0.12.tgz#c2ba6a08173edbb6c9640e3055b95e287ceb5931"
+ integrity sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==
+
flatted@^2.0.0:
version "2.0.2"
resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138"
@@ -2774,11 +2826,6 @@ http-signature@~1.2.0:
jsprim "^1.2.2"
sshpk "^1.7.0"
-humanize-number@0.0.2:
- version "0.0.2"
- resolved "https://registry.yarnpkg.com/humanize-number/-/humanize-number-0.0.2.tgz#11c0af6a471643633588588048f1799541489c18"
- integrity sha1-EcCvakcWQ2M1iFiASPF5lUFInBg=
-
iconv-lite@0.4.24, iconv-lite@^0.4.24, iconv-lite@^0.4.5:
version "0.4.24"
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
@@ -3571,6 +3618,16 @@ jest@^24.8.0:
import-local "^2.0.0"
jest-cli "^24.9.0"
+jmespath@^0.15.0:
+ version "0.15.0"
+ resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.15.0.tgz#a3f222a9aae9f966f5d27c796510e28091764217"
+ integrity sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc=
+
+joycon@^2.2.5:
+ version "2.2.5"
+ resolved "https://registry.yarnpkg.com/joycon/-/joycon-2.2.5.tgz#8d4cf4cbb2544d7b7583c216fcdfec19f6be1615"
+ integrity sha512-YqvUxoOcVPnCp0VU1/56f+iKSdvIRJYPznH22BdXV3xMk75SFXhWeJkZ8C9XxUWt1b5x2X1SxuFygW1U0FmkEQ==
+
"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
@@ -3830,15 +3887,12 @@ koa-is-json@^1.0.0:
resolved "https://registry.yarnpkg.com/koa-is-json/-/koa-is-json-1.0.0.tgz#273c07edcdcb8df6a2c1ab7d59ee76491451ec14"
integrity sha1-JzwH7c3Ljfaiwat9We52SRRR7BQ=
-koa-logger@^3.2.1:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/koa-logger/-/koa-logger-3.2.1.tgz#ab9db879526db3837cc9ce4fd983c025b1689f22"
- integrity sha512-MjlznhLLKy9+kG8nAXKJLM0/ClsQp/Or2vI3a5rbSQmgl8IJBQO0KI5FA70BvW+hqjtxjp49SpH2E7okS6NmHg==
+koa-pino-logger@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/koa-pino-logger/-/koa-pino-logger-3.0.0.tgz#27600b4f3639e8767dfc6b66493109c5457f53ba"
+ integrity sha512-teJsT88JLRBYH7pJACGAwAHfl2y/x5u5aSPD03Z/HW6QDMAWyRxk4dsY0/UbtM8wgaXIaxZgIFUxxvgiQFr6WQ==
dependencies:
- bytes "^3.1.0"
- chalk "^2.4.2"
- humanize-number "0.0.2"
- passthrough-counter "^1.0.0"
+ pino-http "^5.0.1"
koa-send@^5.0.0:
version "5.0.0"
@@ -4022,6 +4076,11 @@ levelup@^4.3.2:
level-supports "~1.0.0"
xtend "~4.0.0"
+leven@2.1.0:
+ version "2.1.0"
+ resolved "https://registry.yarnpkg.com/leven/-/leven-2.1.0.tgz#c2e7a9f772094dee9d34202ae8acce4687875580"
+ integrity sha1-wuep93IJTe6dNCAq6KzORoeHVYA=
+
leven@^3.1.0:
version "3.1.0"
resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2"
@@ -4324,6 +4383,11 @@ mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.4:
dependencies:
minimist "^1.2.5"
+mri@1.1.4:
+ version "1.1.4"
+ resolved "https://registry.yarnpkg.com/mri/-/mri-1.1.4.tgz#7cb1dd1b9b40905f1fac053abe25b6720f44744a"
+ integrity sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==
+
ms@2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
@@ -4708,11 +4772,6 @@ pascalcase@^0.1.1:
resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=
-passthrough-counter@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/passthrough-counter/-/passthrough-counter-1.0.0.tgz#1967d9e66da572b5c023c787db112a387ab166fa"
- integrity sha1-GWfZ5m2lcrXAI8eH2xEqOHqxZvo=
-
path-exists@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515"
@@ -4777,6 +4836,49 @@ pify@^4.0.1:
resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==
+pino-http@^5.0.1:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/pino-http/-/pino-http-5.1.0.tgz#8c3b9f0377aa7951cfcc9c8cd70171f059c95f1d"
+ integrity sha512-75LX9GxvauF6g+XqXo/yEIltEppSdMnk0xT+oz3j28hNDIaxiQHFaZKxvnvunfUZRq/xQJdTcEHFOMhb8IxHjw==
+ dependencies:
+ fast-url-parser "^1.1.3"
+ pino "^6.0.0"
+ pino-std-serializers "^2.4.0"
+
+pino-pretty@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/pino-pretty/-/pino-pretty-4.0.0.tgz#afbff81f946342b9d6eabc434942fe490e02faa9"
+ integrity sha512-YLy/n3dMXYWOodSm530gelkSAJGmEp29L9pqiycInlIae5FEJPWAkMRO3JFMbIFtjD2Ve4SH2aBcz2aRreGpBQ==
+ dependencies:
+ "@hapi/bourne" "^2.0.0"
+ args "^5.0.1"
+ chalk "^3.0.0"
+ dateformat "^3.0.3"
+ fast-safe-stringify "^2.0.7"
+ jmespath "^0.15.0"
+ joycon "^2.2.5"
+ pump "^3.0.0"
+ readable-stream "^3.6.0"
+ split2 "^3.1.1"
+ strip-json-comments "^3.0.1"
+
+pino-std-serializers@^2.4.0, pino-std-serializers@^2.4.2:
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-2.4.2.tgz#cb5e3e58c358b26f88969d7e619ae54bdfcc1ae1"
+ integrity sha512-WaL504dO8eGs+vrK+j4BuQQq6GLKeCCcHaMB2ItygzVURcL1CycwNEUHTD/lHFHs/NL5qAz2UKrjYWXKSf4aMQ==
+
+pino@^6.0.0:
+ version "6.2.1"
+ resolved "https://registry.yarnpkg.com/pino/-/pino-6.2.1.tgz#d2b86306b3998e8f6bb33bdf23910d418ed696cf"
+ integrity sha512-5F5A+G25Ex2rMOBEe3XYGyLSF4dikQZsFvPojwsqnDBX+rfg7+kw9s5i7pHuVAJImekjwb+MR9jQyHWPLENlvQ==
+ dependencies:
+ fast-redact "^2.0.0"
+ fast-safe-stringify "^2.0.7"
+ flatstr "^1.0.12"
+ pino-std-serializers "^2.4.2"
+ quick-format-unescaped "^4.0.1"
+ sonic-boom "^1.0.0"
+
pirates@^4.0.1:
version "4.0.1"
resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.1.tgz#643a92caf894566f91b2b986d2c66950a8e2fb87"
@@ -5010,6 +5112,11 @@ pump@^3.0.0:
end-of-stream "^1.1.0"
once "^1.3.1"
+punycode@^1.3.2:
+ version "1.4.1"
+ resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e"
+ integrity sha1-wNWmOycYgArY4esPpSachN1BhF4=
+
punycode@^2.1.0, punycode@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
@@ -5037,6 +5144,11 @@ qs@~6.5.2:
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36"
integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==
+quick-format-unescaped@^4.0.1:
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.1.tgz#437a5ea1a0b61deb7605f8ab6a8fd3858dbeb701"
+ integrity sha512-RyYpQ6Q5/drsJyOhrWHYMWTedvjTIat+FTwv0K4yoUxzvekw2aRHMQJLlnvt8UantkZg2++bEzD9EdxXqkWf4A==
+
raw-body@^2.2.0:
version "2.4.1"
resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c"
@@ -5119,7 +5231,7 @@ readable-stream@1.0.33:
isarray "0.0.1"
string_decoder "~0.10.x"
-"readable-stream@2 || 3", readable-stream@^3.1.1, readable-stream@^3.4.0:
+"readable-stream@2 || 3", readable-stream@^3.0.0, readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198"
integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==
@@ -5580,6 +5692,14 @@ snapdragon@^0.8.1:
source-map-resolve "^0.5.0"
use "^3.1.0"
+sonic-boom@^1.0.0:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/sonic-boom/-/sonic-boom-1.0.1.tgz#a5fdfcab1ddea31732ce9c7c054f3a5751eee089"
+ integrity sha512-o9tx+bonVEXSaPtptyXQXpP8l6UV9Bi3im2geZskvWw2a/o/hrbWI7EBbbv+rOx6Hubnzun9GgH4WfbgEA3MFQ==
+ dependencies:
+ atomic-sleep "^1.0.0"
+ flatstr "^1.0.12"
+
source-map-resolve@^0.5.0:
version "0.5.3"
resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a"
@@ -5674,6 +5794,13 @@ split-string@^3.0.1, split-string@^3.0.2:
dependencies:
extend-shallow "^3.0.0"
+split2@^3.1.1:
+ version "3.1.1"
+ resolved "https://registry.yarnpkg.com/split2/-/split2-3.1.1.tgz#c51f18f3e06a8c4469aaab487687d8d956160bb6"
+ integrity sha512-emNzr1s7ruq4N+1993yht631/JH+jaj0NYBosuKmLcq+JkGQ9MmTw1RB1fGaTCzUuseRIClrlSLHRNYGwWQ58Q==
+ dependencies:
+ readable-stream "^3.0.0"
+
sprintf-js@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673"
diff --git a/readme.md b/readme.md
index 770f439058..97e5bd7ee9 100644
--- a/readme.md
+++ b/readme.md
@@ -41,4 +41,4 @@ A work in progress, lives here: https://docs.budibase.com
## Contributing
-Contributers, see [CONTRIBUTING.md](./CONTRIBUTING.md)
+Contributors, see [CONTRIBUTING.md](./CONTRIBUTING.md)