@innspel/core 0.2.1 → 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/dist/index.d.cts CHANGED
@@ -353,11 +353,17 @@ interface InnspelOptions {
353
353
  /** Tidsavbrudd per kall i millisekunder. Standard 10 000 (wireframe 2i). */
354
354
  timeoutMs?: number;
355
355
  }
356
- /** Leietakerens innstillinger slik klienten kjenner dem. */
356
+ /**
357
+ * Leietakerens innstillinger slik klienten kjenner dem. Starter som opsjonene fra
358
+ * `init()` (strammest mulig uten dem), og oppdateres av `loadSettings()` fra
359
+ * `GET /v1/ingest/config` (M2.5) — samme objekt, så en holdt referanse følger med.
360
+ */
357
361
  interface ResolvedSettings {
358
362
  textMaxLength: TextMaxLength;
359
363
  minTextLength: number;
360
364
  screenshotsEnabled: boolean;
365
+ /** Leietakerens personvernerklæring — «hva samles inn». Finnes først etter `loadSettings()`. */
366
+ privacyUrl?: string;
361
367
  }
362
368
  /**
363
369
  * Bildet slik verten gir det fra seg — Blob (React Native og nettleser),
@@ -500,12 +506,20 @@ interface InnspelClient {
500
506
  readonly version: string;
501
507
  /** `true` når `identityProvider` er `null` — innsendinger kan ikke følges opp. */
502
508
  readonly isAnonymous: boolean;
503
- /** Leietakerens grenser slik klienten kjenner dem. */
509
+ /** Leietakerens grenser slik klienten kjenner dem. Oppdateres på plass av {@link loadSettings}. */
504
510
  readonly settings: ResolvedSettings;
505
511
  /** Konteksten som følger hver innsending, med `sdkVersion` satt av kjernen. */
506
512
  readonly context: ContextInput & {
507
513
  sdkVersion: string;
508
514
  };
515
+ /**
516
+ * Henter leietakerens klientkonfigurasjon (`GET /v1/ingest/config`, M2.5): tegngrense,
517
+ * minste antall tegn, skjermbilde og personvernlenke — det verten ellers måtte
518
+ * duplisere i `init()`. Kalles av widgeten ved åpning, aldri ved oppstart (DD-41).
519
+ * Svarer ikke kallet, beholdes det klienten alt har: konfigurasjonen er et tilbud,
520
+ * aldri en sperre. Returnerer `settings` — samme objekt, oppdatert.
521
+ */
522
+ loadSettings(): Promise<ResolvedSettings>;
509
523
  capture(input: CaptureInput): Promise<CaptureResult>;
510
524
  readonly knownIssues: {
511
525
  /** Kortene som vises FØR feltet i feilsporet (DD-03). Feiler oppslaget, er lista tom. */
@@ -728,6 +742,6 @@ declare function dekkerAlt(rekter: readonly MaskRect[], bilde: {
728
742
  * ikke kan lese JSON, og `test/versjon.test.ts` holder den i takt med
729
743
  * `package.json`.
730
744
  */
731
- declare const VERSJON = "0.2.1";
745
+ declare const VERSJON = "0.3.0";
732
746
 
733
747
  export { type AttachmentBody, type AttachmentInput, type SubmissionsAttachmentMime as AttachmentMime, type AttachmentOutcome, type SubmissionsAttachmentView as AttachmentView, type CaptureFeil, type CaptureInput, type CaptureOnske, type CaptureResult, type ContextInput, type CommonCorrelation as Correlation, type CommonErrorCode as ErrorCode, type FlushResult, type IdentityProvider, InnspelApiError, type InnspelClient, InnspelConfigError, type InnspelOptions, InnspelQueueFullError, type InnspelStorage, KONTEKST_FELTER, KO_TAK, type KnownIssuesKnownIssueCard as KnownIssueCard, type KnownIssueQuery, type SubmissionsKnownIssueRef as KnownIssueRef, type KnownIssuesKnownIssueStatus as KnownIssueStatus, type MaskPoint, type MaskRect, type ProgramsMyPrograms as MyPrograms, type MySubmission, type OpenFeedbackOptions, type PatternFinding, type PatternKind, type CommonPlatform as Platform, type Presenter, type QueuedSubmission, type SubmissionsReasonCode as ReasonCode, type SubmissionsReplyView as ReplyView, type ResolvedSettings, type SubmissionsStatusType as StatusType, type SubmissionsSubmissionStatus as SubmissionStatus, type SubmissionsSubmissionStatusView as SubmissionStatusView, type SubmissionsSubmissionType as SubmissionType, TILLATTE_MIME, type Telemetry, type TelemetryEvent, type TextMaxLength, VEDLEGG_GRENSER, VERSJON, dekkerAlt, init, klipp, scanText, skaler, strokTilRekter, treffer, trykkTilRekt };
package/dist/index.d.ts CHANGED
@@ -353,11 +353,17 @@ interface InnspelOptions {
353
353
  /** Tidsavbrudd per kall i millisekunder. Standard 10 000 (wireframe 2i). */
354
354
  timeoutMs?: number;
355
355
  }
356
- /** Leietakerens innstillinger slik klienten kjenner dem. */
356
+ /**
357
+ * Leietakerens innstillinger slik klienten kjenner dem. Starter som opsjonene fra
358
+ * `init()` (strammest mulig uten dem), og oppdateres av `loadSettings()` fra
359
+ * `GET /v1/ingest/config` (M2.5) — samme objekt, så en holdt referanse følger med.
360
+ */
357
361
  interface ResolvedSettings {
358
362
  textMaxLength: TextMaxLength;
359
363
  minTextLength: number;
360
364
  screenshotsEnabled: boolean;
365
+ /** Leietakerens personvernerklæring — «hva samles inn». Finnes først etter `loadSettings()`. */
366
+ privacyUrl?: string;
361
367
  }
362
368
  /**
363
369
  * Bildet slik verten gir det fra seg — Blob (React Native og nettleser),
@@ -500,12 +506,20 @@ interface InnspelClient {
500
506
  readonly version: string;
501
507
  /** `true` når `identityProvider` er `null` — innsendinger kan ikke følges opp. */
502
508
  readonly isAnonymous: boolean;
503
- /** Leietakerens grenser slik klienten kjenner dem. */
509
+ /** Leietakerens grenser slik klienten kjenner dem. Oppdateres på plass av {@link loadSettings}. */
504
510
  readonly settings: ResolvedSettings;
505
511
  /** Konteksten som følger hver innsending, med `sdkVersion` satt av kjernen. */
506
512
  readonly context: ContextInput & {
507
513
  sdkVersion: string;
508
514
  };
515
+ /**
516
+ * Henter leietakerens klientkonfigurasjon (`GET /v1/ingest/config`, M2.5): tegngrense,
517
+ * minste antall tegn, skjermbilde og personvernlenke — det verten ellers måtte
518
+ * duplisere i `init()`. Kalles av widgeten ved åpning, aldri ved oppstart (DD-41).
519
+ * Svarer ikke kallet, beholdes det klienten alt har: konfigurasjonen er et tilbud,
520
+ * aldri en sperre. Returnerer `settings` — samme objekt, oppdatert.
521
+ */
522
+ loadSettings(): Promise<ResolvedSettings>;
509
523
  capture(input: CaptureInput): Promise<CaptureResult>;
510
524
  readonly knownIssues: {
511
525
  /** Kortene som vises FØR feltet i feilsporet (DD-03). Feiler oppslaget, er lista tom. */
@@ -728,6 +742,6 @@ declare function dekkerAlt(rekter: readonly MaskRect[], bilde: {
728
742
  * ikke kan lese JSON, og `test/versjon.test.ts` holder den i takt med
729
743
  * `package.json`.
730
744
  */
731
- declare const VERSJON = "0.2.1";
745
+ declare const VERSJON = "0.3.0";
732
746
 
733
747
  export { type AttachmentBody, type AttachmentInput, type SubmissionsAttachmentMime as AttachmentMime, type AttachmentOutcome, type SubmissionsAttachmentView as AttachmentView, type CaptureFeil, type CaptureInput, type CaptureOnske, type CaptureResult, type ContextInput, type CommonCorrelation as Correlation, type CommonErrorCode as ErrorCode, type FlushResult, type IdentityProvider, InnspelApiError, type InnspelClient, InnspelConfigError, type InnspelOptions, InnspelQueueFullError, type InnspelStorage, KONTEKST_FELTER, KO_TAK, type KnownIssuesKnownIssueCard as KnownIssueCard, type KnownIssueQuery, type SubmissionsKnownIssueRef as KnownIssueRef, type KnownIssuesKnownIssueStatus as KnownIssueStatus, type MaskPoint, type MaskRect, type ProgramsMyPrograms as MyPrograms, type MySubmission, type OpenFeedbackOptions, type PatternFinding, type PatternKind, type CommonPlatform as Platform, type Presenter, type QueuedSubmission, type SubmissionsReasonCode as ReasonCode, type SubmissionsReplyView as ReplyView, type ResolvedSettings, type SubmissionsStatusType as StatusType, type SubmissionsSubmissionStatus as SubmissionStatus, type SubmissionsSubmissionStatusView as SubmissionStatusView, type SubmissionsSubmissionType as SubmissionType, TILLATTE_MIME, type Telemetry, type TelemetryEvent, type TextMaxLength, VEDLEGG_GRENSER, VERSJON, dekkerAlt, init, klipp, scanText, skaler, strokTilRekter, treffer, trykkTilRekt };
package/dist/index.js CHANGED
@@ -800,6 +800,15 @@ var attachmentsComplete = (options) => (options.client ?? client).post({
800
800
  url: "/v1/ingest/attachments/{id}/complete",
801
801
  ...options
802
802
  });
803
+ var configGet = (options) => (options?.client ?? client).get({
804
+ security: [{ name: "X-Innspel-Tenant-Key", type: "apiKey" }, {
805
+ key: "FeedbackTokenAuth",
806
+ scheme: "bearer",
807
+ type: "http"
808
+ }],
809
+ url: "/v1/ingest/config",
810
+ ...options
811
+ });
803
812
  var knownIssuesList2 = (options) => (options?.client ?? client).get({
804
813
  security: [{ name: "X-Innspel-Tenant-Key", type: "apiKey" }, {
805
814
  key: "FeedbackTokenAuth",
@@ -1208,7 +1217,7 @@ async function lastOppTilLagring(fetchImpl, presign, body, signal) {
1208
1217
  }
1209
1218
 
1210
1219
  // src/versjon.ts
1211
- var VERSJON = "0.2.1";
1220
+ var VERSJON = "0.3.0";
1212
1221
 
1213
1222
  // src/klient.ts
1214
1223
  var STANDARD_TIMEOUT_MS = 1e4;
@@ -1280,8 +1289,9 @@ function tilApiFeil(status, kropp, response) {
1280
1289
  function init(options) {
1281
1290
  validerOpsjoner(options);
1282
1291
  const settings = {
1283
- // Strammest mulig som standard: ingest-flaten har ingen klientkonfig, og
1284
- // 140 / skjermbilde av er verdiene ved minorsPresent (K18).
1292
+ // Strammest mulig til loadSettings() har svart: 140 / 10 / skjermbilde av er
1293
+ // verdiene ved minorsPresent (K18). Verten kan overstyre startverdiene, men
1294
+ // det leietakeren har satt i panelet vinner når konfigurasjonen er hentet.
1285
1295
  textMaxLength: options.textMaxLength ?? 140,
1286
1296
  minTextLength: options.minTextLength ?? 10,
1287
1297
  screenshotsEnabled: options.screenshotsEnabled ?? false
@@ -1385,6 +1395,19 @@ function init(options) {
1385
1395
  isAnonymous: anonym,
1386
1396
  settings,
1387
1397
  context: kontekst,
1398
+ async loadSettings() {
1399
+ try {
1400
+ const cfg = await medToken(
1401
+ (h) => configGet({ client: klient, headers: h, signal: signal() })
1402
+ );
1403
+ if (cfg?.textMaxLength === 140 || cfg?.textMaxLength === 280) settings.textMaxLength = cfg.textMaxLength;
1404
+ if (typeof cfg?.minTextLength === "number" && cfg.minTextLength >= 1) settings.minTextLength = cfg.minTextLength;
1405
+ if (typeof cfg?.screenshotsEnabled === "boolean") settings.screenshotsEnabled = cfg.screenshotsEnabled;
1406
+ if (typeof cfg?.privacyUrl === "string" && cfg.privacyUrl) settings.privacyUrl = cfg.privacyUrl;
1407
+ } catch {
1408
+ }
1409
+ return settings;
1410
+ },
1388
1411
  async capture(input) {
1389
1412
  const tekst = input.text ?? "";
1390
1413
  if (tekst.length < settings.minTextLength) {