@innspel/core 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -29,6 +29,14 @@ await innspel.capture({ type: 'feil', text: 'Dørlista er tom etter kl. 22.' });
29
29
 
30
30
  Det er hele veien til første innsending. Alt annet under er valgfritt.
31
31
 
32
+ Leietakerens grenser — tegngrense, minste antall tegn, om skjermbilde finnes og
33
+ personvernlenken — hentes fra plattformen med `innspel.loadSettings()`. Widgetene
34
+ gjør det ved åpning, aldri ved oppstart. Til kallet har svart gjelder de strammeste
35
+ verdiene (140 tegn, 10 som minimum, skjermbilde av); `textMaxLength`,
36
+ `minTextLength` og `screenshotsEnabled` i `init()` er bare startverdier, og det
37
+ leietakeren har satt i panelet vinner. Svarer ikke kallet, kan innsenderen
38
+ fortsatt melde.
39
+
32
40
  ## De fire opsjonene du må gi
33
41
 
34
42
  | Opsjon | Hva |
package/dist/index.cjs CHANGED
@@ -802,6 +802,15 @@ var attachmentsComplete = (options) => (options.client ?? client).post({
802
802
  url: "/v1/ingest/attachments/{id}/complete",
803
803
  ...options
804
804
  });
805
+ var configGet = (options) => (options?.client ?? client).get({
806
+ security: [{ name: "X-Innspel-Tenant-Key", type: "apiKey" }, {
807
+ key: "FeedbackTokenAuth",
808
+ scheme: "bearer",
809
+ type: "http"
810
+ }],
811
+ url: "/v1/ingest/config",
812
+ ...options
813
+ });
805
814
  var knownIssuesList2 = (options) => (options?.client ?? client).get({
806
815
  security: [{ name: "X-Innspel-Tenant-Key", type: "apiKey" }, {
807
816
  key: "FeedbackTokenAuth",
@@ -1043,8 +1052,8 @@ function validerKontekst(kontekst, sti, krevPlatform) {
1043
1052
  function sl\u00E5SammenKontekst(base, p\u00E5Lagt, sdkVersion) {
1044
1053
  const ut = {};
1045
1054
  for (const felt of KONTEKST_FELTER) {
1046
- const verdi = p\u00E5Lagt?.[felt] ?? base[felt];
1047
- if (verdi !== void 0) ut[felt] = verdi;
1055
+ const verdi = p\u00E5Lagt && felt in p\u00E5Lagt ? p\u00E5Lagt[felt] : base[felt];
1056
+ if (verdi !== void 0 && verdi !== null) ut[felt] = verdi;
1048
1057
  }
1049
1058
  ut["sdkVersion"] = sdkVersion;
1050
1059
  return ut;
@@ -1210,7 +1219,7 @@ async function lastOppTilLagring(fetchImpl, presign, body, signal) {
1210
1219
  }
1211
1220
 
1212
1221
  // src/versjon.ts
1213
- var VERSJON = "0.2.0";
1222
+ var VERSJON = "0.3.0";
1214
1223
 
1215
1224
  // src/klient.ts
1216
1225
  var STANDARD_TIMEOUT_MS = 1e4;
@@ -1282,8 +1291,9 @@ function tilApiFeil(status, kropp, response) {
1282
1291
  function init(options) {
1283
1292
  validerOpsjoner(options);
1284
1293
  const settings = {
1285
- // Strammest mulig som standard: ingest-flaten har ingen klientkonfig, og
1286
- // 140 / skjermbilde av er verdiene ved minorsPresent (K18).
1294
+ // Strammest mulig til loadSettings() har svart: 140 / 10 / skjermbilde av er
1295
+ // verdiene ved minorsPresent (K18). Verten kan overstyre startverdiene, men
1296
+ // det leietakeren har satt i panelet vinner når konfigurasjonen er hentet.
1287
1297
  textMaxLength: options.textMaxLength ?? 140,
1288
1298
  minTextLength: options.minTextLength ?? 10,
1289
1299
  screenshotsEnabled: options.screenshotsEnabled ?? false
@@ -1387,6 +1397,19 @@ function init(options) {
1387
1397
  isAnonymous: anonym,
1388
1398
  settings,
1389
1399
  context: kontekst,
1400
+ async loadSettings() {
1401
+ try {
1402
+ const cfg = await medToken(
1403
+ (h) => configGet({ client: klient, headers: h, signal: signal() })
1404
+ );
1405
+ if (cfg?.textMaxLength === 140 || cfg?.textMaxLength === 280) settings.textMaxLength = cfg.textMaxLength;
1406
+ if (typeof cfg?.minTextLength === "number" && cfg.minTextLength >= 1) settings.minTextLength = cfg.minTextLength;
1407
+ if (typeof cfg?.screenshotsEnabled === "boolean") settings.screenshotsEnabled = cfg.screenshotsEnabled;
1408
+ if (typeof cfg?.privacyUrl === "string" && cfg.privacyUrl) settings.privacyUrl = cfg.privacyUrl;
1409
+ } catch {
1410
+ }
1411
+ return settings;
1412
+ },
1390
1413
  async capture(input) {
1391
1414
  const tekst = input.text ?? "";
1392
1415
  if (tekst.length < settings.minTextLength) {