@betaworks/insight (0.0.1)
Installation
@betaworks:registry=npm install @betaworks/insight@0.0.1"@betaworks/insight": "0.0.1"About this package
@betaworks/insight
Liten, avhengighetsfri klient-SDK for Betaworks Insight — produktanalyse og feilsporing i én. ~1.8 kB (gzip), fungerer i nettleser og Node.
Installasjon
Pakken ligger i Forgejo sitt npm-registry. Konfigurer scopen @betaworks én gang
(i appens .npmrc):
@betaworks:registry=https://git.betaworks.no/api/packages/<owner>/npm/
//git.betaworks.no/api/packages/<owner>/npm/:_authToken=${FORGEJO_NPM_TOKEN}
Deretter:
pnpm add @betaworks/insight # eller npm/yarn
Uten registry-tilgang kan du også bare kopiere
dist/index.jsrett inn i appen — det er én ESM-fil uten avhengigheter.
Bruk (nettleser)
import { init, track, captureException } from "@betaworks/insight";
init({
key: "pub_xxx", // public_key fra prosjektet
endpoint: "https://insight.betaworks.no",
release: "1.4.0", // valgfritt, kobler feil mot deploy
environment: "production", // valgfritt
});
// Egendefinerte hendelser
track("checkout_completed", { amount: 499 });
// Manuell feilrapport (uventede feil fanges automatisk)
try {
doThing();
} catch (err) {
captureException(err, { hvor: "checkout" });
}
Automatisk uten ekstra kode:
- Sidevisninger (inkl. SPA-ruting via
history.pushState/popstate) - Uventede feil (
window.onerror,unhandledrejection) - Batching +
navigator.sendBeacon(mister ikke hendelser ved sidebytte)
Konfig
| Felt | Standard | Beskrivelse |
|---|---|---|
key |
– | Public key (trygg i klient) |
endpoint |
– | Basis-URL til Insight |
release |
– | Versjon for feilsporing/releases |
environment |
– | F.eks. production / staging |
autoPageviews |
true |
Slå av automatisk pageview-sporing |
autoErrors |
true |
Slå av automatisk feilfangst |
batchSize |
20 |
Antall hendelser før flush |
flushIntervalMs |
5000 |
Maks ventetid før flush |
API
init(config)— kall én gang ved oppstarttrack(name, props?)— egendefinert hendelsepageview(url?)— manuell sidevisningcaptureException(err, context?)— manuell feilrapportflush()— tøm køen nå
Node-tjenester
Samme API. Fang uventede feil og rapporter eksplisitt:
import { init, captureException } from "@betaworks/insight";
init({ key: "pub_xxx", endpoint: "https://insight.betaworks.no", release: process.env.RELEASE });
process.on("uncaughtException", (e) => captureException(e));
process.on("unhandledRejection", (e) => captureException(e));
Source maps (lesbare stack traces)
Last opp source maps fra appens CI etter bygg (autentisert med prosjektets secret_key):
for map in dist/assets/*.js.map; do
base=$(basename "$map" .map)
curl -fsS -XPOST https://insight.betaworks.no/api/sourcemaps \
-H "x-secret-key: $INSIGHT_SECRET_KEY" -H "content-type: application/json" \
-d "{\"release\":\"$RELEASE\",\"filename\":\"$base\",\"content\":$(cat "$map")}"
done
Personvern
Cookieless — besøkende identifiseres med en daglig roterende hash på serveren. Rå IP lagres aldri. SDK-en feiler alltid stille og kan ikke krasje vertsappen.
Publisering (vedlikeholdere)
Bump version her, commit, og push en tag sdk-v<versjon> — workflowen
publish-sdk.yml bygger og publiserer til registryet.
Dependencies
Development dependencies
| ID | Version |
|---|---|
| tsup | ^8.3.5 |
| typescript | ^5.6.3 |