dev-api: add developer portal, OpenAPI spec, and Flatenbadet case study

- New /developers/ page with API docs, SDKs, pricing, use cases
- OpenAPI 3.0 spec for Orders, Missions, Photos, Analytics
- Case study: Glasskiosken i Flatenbadet — complete ROI analysis
- Updated /order/ with recurring missions and frequency dropdown
This commit is contained in:
Bernt
2026-07-14 15:27:33 +00:00
parent 3c522e39f0
commit 1a12fb870b
6296 changed files with 911440 additions and 55607 deletions
@@ -0,0 +1,88 @@
'use strict'
const test = require('tape')
const pino = require('../browser')
Date.now = () => 1599400603614
test('null timestamp', ({ end, is }) => {
const instance = pino({
timestamp: pino.stdTimeFunctions.nullTime,
browser: {
asObject: true,
write: function (o) {
is(o.time, undefined)
}
}
})
instance.info('hello world')
end()
})
test('iso timestamp', ({ end, is }) => {
const instance = pino({
timestamp: pino.stdTimeFunctions.isoTime,
browser: {
asObject: true,
write: function (o) {
is(o.time, '2020-09-06T13:56:43.614Z')
}
}
})
instance.info('hello world')
end()
})
test('epoch timestamp', ({ end, is }) => {
const instance = pino({
timestamp: pino.stdTimeFunctions.epochTime,
browser: {
asObject: true,
write: function (o) {
is(o.time, 1599400603614)
}
}
})
instance.info('hello world')
end()
})
test('unix timestamp', ({ end, is }) => {
const instance = pino({
timestamp: pino.stdTimeFunctions.unixTime,
browser: {
asObject: true,
write: function (o) {
is(o.time, Math.round(1599400603614 / 1000.0))
}
}
})
instance.info('hello world')
end()
})
test('epoch timestamp by default', ({ end, is }) => {
const instance = pino({
browser: {
asObject: true,
write: function (o) {
is(o.time, 1599400603614)
}
}
})
instance.info('hello world')
end()
})
test('not print timestamp if the option is false', ({ end, is }) => {
const instance = pino({
timestamp: false,
browser: {
asObject: true,
write: function (o) {
is(o.time, undefined)
}
}
})
instance.info('hello world')
end()
})