@innspel/core 0.5.0 → 0.6.1

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.js CHANGED
@@ -1,929 +1,5 @@
1
- // src/generated/api/core/bodySerializer.gen.ts
2
- var jsonBodySerializer = {
3
- bodySerializer: (body) => JSON.stringify(body, (_key, value) => typeof value === "bigint" ? value.toString() : value)
4
- };
5
-
6
- // src/generated/api/core/serverSentEvents.gen.ts
7
- function createSseClient({
8
- onRequest,
9
- onSseError,
10
- onSseEvent,
11
- responseTransformer,
12
- responseValidator,
13
- sseDefaultRetryDelay,
14
- sseMaxRetryAttempts,
15
- sseMaxRetryDelay,
16
- sseSleepFn,
17
- url,
18
- ...options
19
- }) {
20
- let lastEventId;
21
- const sleep = sseSleepFn ?? ((ms) => new Promise((resolve) => setTimeout(resolve, ms)));
22
- const createStream = async function* () {
23
- let retryDelay = sseDefaultRetryDelay ?? 3e3;
24
- let attempt = 0;
25
- const signal = options.signal ?? new AbortController().signal;
26
- while (true) {
27
- if (signal.aborted) break;
28
- attempt++;
29
- const headers = options.headers instanceof Headers ? options.headers : new Headers(options.headers);
30
- if (lastEventId !== void 0) {
31
- headers.set("Last-Event-ID", lastEventId);
32
- }
33
- try {
34
- const requestInit = {
35
- redirect: "follow",
36
- ...options,
37
- body: options.serializedBody,
38
- headers,
39
- signal
40
- };
41
- let request = new Request(url, requestInit);
42
- if (onRequest) {
43
- request = await onRequest(url, requestInit);
44
- }
45
- const _fetch = options.fetch ?? globalThis.fetch;
46
- const response = await _fetch(request);
47
- if (!response.ok) throw new Error(`SSE failed: ${response.status} ${response.statusText}`);
48
- if (!response.body) throw new Error("No body in SSE response");
49
- const reader = response.body.pipeThrough(new TextDecoderStream()).getReader();
50
- let buffer = "";
51
- const abortHandler = () => {
52
- try {
53
- reader.cancel();
54
- } catch {
55
- }
56
- };
57
- signal.addEventListener("abort", abortHandler);
58
- try {
59
- while (true) {
60
- const { done, value } = await reader.read();
61
- if (done) break;
62
- buffer += value;
63
- buffer = buffer.replace(/\r\n?/g, "\n");
64
- const chunks = buffer.split("\n\n");
65
- buffer = chunks.pop() ?? "";
66
- for (const chunk of chunks) {
67
- const lines = chunk.split("\n");
68
- const dataLines = [];
69
- let eventName;
70
- for (const line of lines) {
71
- if (line.startsWith("data:")) {
72
- dataLines.push(line.replace(/^data:\s*/, ""));
73
- } else if (line.startsWith("event:")) {
74
- eventName = line.replace(/^event:\s*/, "");
75
- } else if (line.startsWith("id:")) {
76
- lastEventId = line.replace(/^id:\s*/, "");
77
- } else if (line.startsWith("retry:")) {
78
- const parsed = Number.parseInt(line.replace(/^retry:\s*/, ""), 10);
79
- if (!Number.isNaN(parsed)) {
80
- retryDelay = parsed;
81
- }
82
- }
83
- }
84
- let data;
85
- let parsedJson = false;
86
- if (dataLines.length) {
87
- const rawData = dataLines.join("\n");
88
- try {
89
- data = JSON.parse(rawData);
90
- parsedJson = true;
91
- } catch {
92
- data = rawData;
93
- }
94
- }
95
- if (parsedJson) {
96
- if (responseValidator) {
97
- await responseValidator(data);
98
- }
99
- if (responseTransformer) {
100
- data = await responseTransformer(data);
101
- }
102
- }
103
- onSseEvent?.({
104
- data,
105
- event: eventName,
106
- id: lastEventId,
107
- retry: retryDelay
108
- });
109
- if (dataLines.length) {
110
- yield data;
111
- }
112
- }
113
- }
114
- } finally {
115
- signal.removeEventListener("abort", abortHandler);
116
- reader.releaseLock();
117
- }
118
- break;
119
- } catch (error) {
120
- onSseError?.(error);
121
- if (sseMaxRetryAttempts !== void 0 && attempt >= sseMaxRetryAttempts) {
122
- break;
123
- }
124
- const backoff = Math.min(retryDelay * 2 ** (attempt - 1), sseMaxRetryDelay ?? 3e4);
125
- await sleep(backoff);
126
- }
127
- }
128
- };
129
- const stream = createStream();
130
- return { stream };
131
- }
132
-
133
- // src/generated/api/core/pathSerializer.gen.ts
134
- var separatorArrayExplode = (style) => {
135
- switch (style) {
136
- case "label":
137
- return ".";
138
- case "matrix":
139
- return ";";
140
- case "simple":
141
- return ",";
142
- default:
143
- return "&";
144
- }
145
- };
146
- var separatorArrayNoExplode = (style) => {
147
- switch (style) {
148
- case "form":
149
- return ",";
150
- case "pipeDelimited":
151
- return "|";
152
- case "spaceDelimited":
153
- return "%20";
154
- default:
155
- return ",";
156
- }
157
- };
158
- var separatorObjectExplode = (style) => {
159
- switch (style) {
160
- case "label":
161
- return ".";
162
- case "matrix":
163
- return ";";
164
- case "simple":
165
- return ",";
166
- default:
167
- return "&";
168
- }
169
- };
170
- var serializeArrayParam = ({
171
- allowReserved,
172
- explode,
173
- name,
174
- style,
175
- value
176
- }) => {
177
- if (!explode) {
178
- const joinedValues2 = (allowReserved ? value : value.map((v) => encodeURIComponent(v))).join(separatorArrayNoExplode(style));
179
- switch (style) {
180
- case "label":
181
- return `.${joinedValues2}`;
182
- case "matrix":
183
- return `;${name}=${joinedValues2}`;
184
- case "simple":
185
- return joinedValues2;
186
- default:
187
- return `${name}=${joinedValues2}`;
188
- }
189
- }
190
- const separator = separatorArrayExplode(style);
191
- const joinedValues = value.map((v) => {
192
- if (style === "label" || style === "simple") {
193
- return allowReserved ? v : encodeURIComponent(v);
194
- }
195
- return serializePrimitiveParam({
196
- allowReserved,
197
- name,
198
- value: v
199
- });
200
- }).join(separator);
201
- return style === "label" || style === "matrix" ? separator + joinedValues : joinedValues;
202
- };
203
- var serializePrimitiveParam = ({
204
- allowReserved,
205
- name,
206
- value
207
- }) => {
208
- if (value === void 0 || value === null) {
209
- return "";
210
- }
211
- if (typeof value === "object") {
212
- throw new Error(
213
- "Deeply-nested arrays/objects aren\u2019t supported. Provide your own `querySerializer()` to handle these."
214
- );
215
- }
216
- return `${name}=${allowReserved ? value : encodeURIComponent(value)}`;
217
- };
218
- var serializeObjectParam = ({
219
- allowReserved,
220
- explode,
221
- name,
222
- style,
223
- value,
224
- valueOnly
225
- }) => {
226
- if (value instanceof Date) {
227
- return valueOnly ? value.toISOString() : `${name}=${value.toISOString()}`;
228
- }
229
- if (style !== "deepObject" && !explode) {
230
- let values = [];
231
- Object.entries(value).forEach(([key, v]) => {
232
- values = [...values, key, allowReserved ? v : encodeURIComponent(v)];
233
- });
234
- const joinedValues2 = values.join(",");
235
- switch (style) {
236
- case "form":
237
- return `${name}=${joinedValues2}`;
238
- case "label":
239
- return `.${joinedValues2}`;
240
- case "matrix":
241
- return `;${name}=${joinedValues2}`;
242
- default:
243
- return joinedValues2;
244
- }
245
- }
246
- const separator = separatorObjectExplode(style);
247
- const joinedValues = Object.entries(value).map(
248
- ([key, v]) => serializePrimitiveParam({
249
- allowReserved,
250
- name: style === "deepObject" ? `${name}[${key}]` : key,
251
- value: v
252
- })
253
- ).join(separator);
254
- return style === "label" || style === "matrix" ? separator + joinedValues : joinedValues;
255
- };
256
-
257
- // src/generated/api/core/utils.gen.ts
258
- var PATH_PARAM_RE = /\{[^{}]+\}/g;
259
- var defaultPathSerializer = ({ path, url: _url }) => {
260
- let url = _url;
261
- const matches = _url.match(PATH_PARAM_RE);
262
- if (matches) {
263
- for (const match of matches) {
264
- let explode = false;
265
- let name = match.substring(1, match.length - 1);
266
- let style = "simple";
267
- if (name.endsWith("*")) {
268
- explode = true;
269
- name = name.substring(0, name.length - 1);
270
- }
271
- if (name.startsWith(".")) {
272
- name = name.substring(1);
273
- style = "label";
274
- } else if (name.startsWith(";")) {
275
- name = name.substring(1);
276
- style = "matrix";
277
- }
278
- const value = path[name];
279
- if (value === void 0 || value === null) {
280
- continue;
281
- }
282
- if (Array.isArray(value)) {
283
- url = url.replace(match, serializeArrayParam({ explode, name, style, value }));
284
- continue;
285
- }
286
- if (typeof value === "object") {
287
- url = url.replace(
288
- match,
289
- serializeObjectParam({
290
- explode,
291
- name,
292
- style,
293
- value,
294
- valueOnly: true
295
- })
296
- );
297
- continue;
298
- }
299
- if (style === "matrix") {
300
- url = url.replace(
301
- match,
302
- `;${serializePrimitiveParam({
303
- name,
304
- value
305
- })}`
306
- );
307
- continue;
308
- }
309
- const replaceValue = encodeURIComponent(
310
- style === "label" ? `.${value}` : value
311
- );
312
- url = url.replace(match, replaceValue);
313
- }
314
- }
315
- return url;
316
- };
317
- var getUrl = ({
318
- baseUrl,
319
- path,
320
- query,
321
- querySerializer,
322
- url: _url
323
- }) => {
324
- const pathUrl = _url.startsWith("/") ? _url : `/${_url}`;
325
- let url = (baseUrl ?? "") + pathUrl;
326
- if (path) {
327
- url = defaultPathSerializer({ path, url });
328
- }
329
- let search = query ? querySerializer(query) : "";
330
- if (search.startsWith("?")) {
331
- search = search.substring(1);
332
- }
333
- if (search) {
334
- url += `?${search}`;
335
- }
336
- return url;
337
- };
338
- function getValidRequestBody(options) {
339
- const hasBody = options.body !== void 0;
340
- const isSerializedBody = hasBody && options.bodySerializer;
341
- if (isSerializedBody) {
342
- if ("serializedBody" in options) {
343
- const hasSerializedBody = options.serializedBody !== void 0 && options.serializedBody !== "";
344
- return hasSerializedBody ? options.serializedBody : null;
345
- }
346
- return options.body !== "" ? options.body : null;
347
- }
348
- if (hasBody) {
349
- return options.body;
350
- }
351
- return void 0;
352
- }
353
-
354
- // src/generated/api/core/auth.gen.ts
355
- var getAuthToken = async (auth, callback) => {
356
- const token = typeof callback === "function" ? await callback(auth) : callback;
357
- if (!token) {
358
- return;
359
- }
360
- if (auth.scheme === "bearer") {
361
- return `Bearer ${token}`;
362
- }
363
- if (auth.scheme === "basic") {
364
- return `Basic ${btoa(token)}`;
365
- }
366
- return token;
367
- };
368
-
369
- // src/generated/api/client/utils.gen.ts
370
- var createQuerySerializer = ({
371
- parameters = {},
372
- ...args
373
- } = {}) => {
374
- const querySerializer = (queryParams) => {
375
- const search = [];
376
- if (queryParams && typeof queryParams === "object") {
377
- for (const name in queryParams) {
378
- const value = queryParams[name];
379
- if (value === void 0 || value === null) {
380
- continue;
381
- }
382
- const options = parameters[name] || args;
383
- if (Array.isArray(value)) {
384
- const serializedArray = serializeArrayParam({
385
- allowReserved: options.allowReserved,
386
- explode: true,
387
- name,
388
- style: "form",
389
- value,
390
- ...options.array
391
- });
392
- if (serializedArray) search.push(serializedArray);
393
- } else if (typeof value === "object") {
394
- const serializedObject = serializeObjectParam({
395
- allowReserved: options.allowReserved,
396
- explode: true,
397
- name,
398
- style: "deepObject",
399
- value,
400
- ...options.object
401
- });
402
- if (serializedObject) search.push(serializedObject);
403
- } else {
404
- const serializedPrimitive = serializePrimitiveParam({
405
- allowReserved: options.allowReserved,
406
- name,
407
- value
408
- });
409
- if (serializedPrimitive) search.push(serializedPrimitive);
410
- }
411
- }
412
- }
413
- return search.join("&");
414
- };
415
- return querySerializer;
416
- };
417
- var getParseAs = (contentType) => {
418
- if (!contentType) {
419
- return "stream";
420
- }
421
- const cleanContent = contentType.split(";")[0]?.trim();
422
- if (!cleanContent) {
423
- return;
424
- }
425
- if (cleanContent.startsWith("application/json") || cleanContent.endsWith("+json")) {
426
- return "json";
427
- }
428
- if (cleanContent === "multipart/form-data") {
429
- return "formData";
430
- }
431
- if (["application/", "audio/", "image/", "video/"].some((type) => cleanContent.startsWith(type))) {
432
- return "blob";
433
- }
434
- if (cleanContent.startsWith("text/")) {
435
- return "text";
436
- }
437
- return;
438
- };
439
- var checkForExistence = (options, name) => {
440
- if (!name) {
441
- return false;
442
- }
443
- if (options.headers.has(name) || options.query?.[name] || options.headers.get("Cookie")?.includes(`${name}=`)) {
444
- return true;
445
- }
446
- return false;
447
- };
448
- async function setAuthParams(options) {
449
- for (const auth of options.security ?? []) {
450
- if (checkForExistence(options, auth.name)) {
451
- continue;
452
- }
453
- const token = await getAuthToken(auth, options.auth);
454
- if (!token) {
455
- continue;
456
- }
457
- const name = auth.name ?? "Authorization";
458
- switch (auth.in) {
459
- case "query":
460
- if (!options.query) {
461
- options.query = {};
462
- }
463
- options.query[name] = token;
464
- break;
465
- case "cookie":
466
- options.headers.append("Cookie", `${name}=${token}`);
467
- break;
468
- case "header":
469
- default:
470
- options.headers.set(name, token);
471
- break;
472
- }
473
- }
474
- }
475
- var buildUrl = (options) => getUrl({
476
- baseUrl: options.baseUrl,
477
- path: options.path,
478
- query: options.query,
479
- querySerializer: typeof options.querySerializer === "function" ? options.querySerializer : createQuerySerializer(options.querySerializer),
480
- url: options.url
481
- });
482
- var mergeConfigs = (a, b) => {
483
- const config = { ...a, ...b };
484
- if (config.baseUrl?.endsWith("/")) {
485
- config.baseUrl = config.baseUrl.substring(0, config.baseUrl.length - 1);
486
- }
487
- config.headers = mergeHeaders(a.headers, b.headers);
488
- return config;
489
- };
490
- var headersEntries = (headers) => {
491
- const entries = [];
492
- headers.forEach((value, key) => {
493
- entries.push([key, value]);
494
- });
495
- return entries;
496
- };
497
- var mergeHeaders = (...headers) => {
498
- const mergedHeaders = new Headers();
499
- for (const header of headers) {
500
- if (!header) {
501
- continue;
502
- }
503
- const iterator = header instanceof Headers ? headersEntries(header) : Object.entries(header);
504
- for (const [key, value] of iterator) {
505
- if (value === null) {
506
- mergedHeaders.delete(key);
507
- } else if (Array.isArray(value)) {
508
- for (const v of value) {
509
- mergedHeaders.append(key, v);
510
- }
511
- } else if (value !== void 0) {
512
- mergedHeaders.set(
513
- key,
514
- typeof value === "object" ? JSON.stringify(value) : value
515
- );
516
- }
517
- }
518
- }
519
- return mergedHeaders;
520
- };
521
- var Interceptors = class {
522
- fns = [];
523
- clear() {
524
- this.fns = [];
525
- }
526
- eject(id) {
527
- const index = this.getInterceptorIndex(id);
528
- if (this.fns[index]) {
529
- this.fns[index] = null;
530
- }
531
- }
532
- exists(id) {
533
- const index = this.getInterceptorIndex(id);
534
- return Boolean(this.fns[index]);
535
- }
536
- getInterceptorIndex(id) {
537
- if (typeof id === "number") {
538
- return this.fns[id] ? id : -1;
539
- }
540
- return this.fns.indexOf(id);
541
- }
542
- update(id, fn) {
543
- const index = this.getInterceptorIndex(id);
544
- if (this.fns[index]) {
545
- this.fns[index] = fn;
546
- return id;
547
- }
548
- return false;
549
- }
550
- use(fn) {
551
- this.fns.push(fn);
552
- return this.fns.length - 1;
553
- }
554
- };
555
- var createInterceptors = () => ({
556
- error: new Interceptors(),
557
- request: new Interceptors(),
558
- response: new Interceptors()
559
- });
560
- var defaultQuerySerializer = createQuerySerializer({
561
- allowReserved: false,
562
- array: {
563
- explode: true,
564
- style: "form"
565
- },
566
- object: {
567
- explode: true,
568
- style: "deepObject"
569
- }
570
- });
571
- var defaultHeaders = {
572
- "Content-Type": "application/json"
573
- };
574
- var createConfig = (override = {}) => ({
575
- ...jsonBodySerializer,
576
- headers: defaultHeaders,
577
- parseAs: "auto",
578
- querySerializer: defaultQuerySerializer,
579
- ...override
580
- });
581
-
582
- // src/generated/api/client/client.gen.ts
583
- var createClient = (config = {}) => {
584
- let _config = mergeConfigs(createConfig(), config);
585
- const getConfig = () => ({ ..._config });
586
- const setConfig = (config2) => {
587
- _config = mergeConfigs(_config, config2);
588
- return getConfig();
589
- };
590
- const interceptors = createInterceptors();
591
- const beforeRequest = async (options) => {
592
- const opts = {
593
- ..._config,
594
- ...options,
595
- fetch: options.fetch ?? _config.fetch ?? globalThis.fetch,
596
- headers: mergeHeaders(_config.headers, options.headers),
597
- serializedBody: void 0
598
- };
599
- if (opts.security) {
600
- await setAuthParams(opts);
601
- }
602
- if (opts.requestValidator) {
603
- await opts.requestValidator(opts);
604
- }
605
- if (opts.body !== void 0 && opts.bodySerializer) {
606
- opts.serializedBody = opts.bodySerializer(opts.body);
607
- }
608
- if (opts.body === void 0 || opts.serializedBody === "") {
609
- opts.headers.delete("Content-Type");
610
- }
611
- const resolvedOpts = opts;
612
- const url = buildUrl(resolvedOpts);
613
- return { opts: resolvedOpts, url };
614
- };
615
- const request = async (options) => {
616
- const throwOnError = options.throwOnError ?? _config.throwOnError;
617
- const responseStyle = options.responseStyle ?? _config.responseStyle;
618
- let request2;
619
- let response;
620
- try {
621
- const { opts, url } = await beforeRequest(options);
622
- const requestInit = {
623
- redirect: "follow",
624
- ...opts,
625
- body: getValidRequestBody(opts)
626
- };
627
- request2 = new Request(url, requestInit);
628
- for (const fn of interceptors.request.fns) {
629
- if (fn) {
630
- request2 = await fn(request2, opts);
631
- }
632
- }
633
- const _fetch = opts.fetch;
634
- response = await _fetch(request2);
635
- for (const fn of interceptors.response.fns) {
636
- if (fn) {
637
- response = await fn(response, request2, opts);
638
- }
639
- }
640
- const result = {
641
- request: request2,
642
- response
643
- };
644
- if (response.ok) {
645
- const parseAs = (opts.parseAs === "auto" ? getParseAs(response.headers.get("Content-Type")) : opts.parseAs) ?? "json";
646
- if (response.status === 204 || response.headers.get("Content-Length") === "0") {
647
- let emptyData;
648
- switch (parseAs) {
649
- case "arrayBuffer":
650
- case "blob":
651
- case "text":
652
- emptyData = await response[parseAs]();
653
- break;
654
- case "formData":
655
- emptyData = new FormData();
656
- break;
657
- case "stream":
658
- emptyData = response.body;
659
- break;
660
- case "json":
661
- default:
662
- emptyData = {};
663
- break;
664
- }
665
- return opts.responseStyle === "data" ? emptyData : {
666
- data: emptyData,
667
- ...result
668
- };
669
- }
670
- let data;
671
- switch (parseAs) {
672
- case "arrayBuffer":
673
- case "blob":
674
- case "formData":
675
- case "text":
676
- data = await response[parseAs]();
677
- break;
678
- case "json": {
679
- const text = await response.text();
680
- data = text ? JSON.parse(text) : {};
681
- break;
682
- }
683
- case "stream":
684
- return opts.responseStyle === "data" ? response.body : {
685
- data: response.body,
686
- ...result
687
- };
688
- }
689
- if (parseAs === "json") {
690
- if (opts.responseValidator) {
691
- await opts.responseValidator(data);
692
- }
693
- if (opts.responseTransformer) {
694
- data = await opts.responseTransformer(data);
695
- }
696
- }
697
- return opts.responseStyle === "data" ? data : {
698
- data,
699
- ...result
700
- };
701
- }
702
- const textError = await response.text();
703
- let jsonError;
704
- try {
705
- jsonError = JSON.parse(textError);
706
- } catch {
707
- }
708
- throw jsonError ?? textError;
709
- } catch (error) {
710
- let finalError = error;
711
- for (const fn of interceptors.error.fns) {
712
- if (fn) {
713
- finalError = await fn(finalError, response, request2, options);
714
- }
715
- }
716
- finalError = finalError || {};
717
- if (throwOnError) {
718
- throw finalError;
719
- }
720
- return responseStyle === "data" ? void 0 : {
721
- error: finalError,
722
- request: request2,
723
- response
724
- };
725
- }
726
- };
727
- const makeMethodFn = (method) => (options) => request({ ...options, method });
728
- const makeSseFn = (method) => async (options) => {
729
- const { opts, url } = await beforeRequest(options);
730
- return createSseClient({
731
- ...opts,
732
- body: opts.body,
733
- method,
734
- onRequest: async (url2, init2) => {
735
- let request2 = new Request(url2, init2);
736
- for (const fn of interceptors.request.fns) {
737
- if (fn) {
738
- request2 = await fn(request2, opts);
739
- }
740
- }
741
- return request2;
742
- },
743
- serializedBody: getValidRequestBody(opts),
744
- url
745
- });
746
- };
747
- const _buildUrl = (options) => buildUrl({ ..._config, ...options });
748
- return {
749
- buildUrl: _buildUrl,
750
- connect: makeMethodFn("CONNECT"),
751
- delete: makeMethodFn("DELETE"),
752
- get: makeMethodFn("GET"),
753
- getConfig,
754
- head: makeMethodFn("HEAD"),
755
- interceptors,
756
- options: makeMethodFn("OPTIONS"),
757
- patch: makeMethodFn("PATCH"),
758
- post: makeMethodFn("POST"),
759
- put: makeMethodFn("PUT"),
760
- request,
761
- setConfig,
762
- sse: {
763
- connect: makeSseFn("CONNECT"),
764
- delete: makeSseFn("DELETE"),
765
- get: makeSseFn("GET"),
766
- head: makeSseFn("HEAD"),
767
- options: makeSseFn("OPTIONS"),
768
- patch: makeSseFn("PATCH"),
769
- post: makeSseFn("POST"),
770
- put: makeSseFn("PUT"),
771
- trace: makeSseFn("TRACE")
772
- },
773
- trace: makeMethodFn("TRACE")
774
- };
775
- };
776
-
777
- // src/generated/api/client.gen.ts
778
- var client = createClient(createConfig());
779
-
780
- // src/generated/api/sdk.gen.ts
781
- var attachmentsPresign = (options) => (options.client ?? client).post({
782
- security: [{ name: "X-Innspel-Tenant-Key", type: "apiKey" }, {
783
- key: "FeedbackTokenAuth",
784
- scheme: "bearer",
785
- type: "http"
786
- }],
787
- url: "/v1/ingest/attachments/presign",
788
- ...options,
789
- headers: {
790
- "Content-Type": "application/json",
791
- ...options.headers
792
- }
793
- });
794
- var attachmentsComplete = (options) => (options.client ?? client).post({
795
- security: [{ name: "X-Innspel-Tenant-Key", type: "apiKey" }, {
796
- key: "FeedbackTokenAuth",
797
- scheme: "bearer",
798
- type: "http"
799
- }],
800
- url: "/v1/ingest/attachments/{id}/complete",
801
- ...options
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
- });
812
- var programsRespond = (options) => (options.client ?? client).post({
813
- security: [{ name: "X-Innspel-Tenant-Key", type: "apiKey" }, {
814
- key: "FeedbackTokenAuth",
815
- scheme: "bearer",
816
- type: "http"
817
- }],
818
- url: "/v1/ingest/follow-ups/{id}/respond",
819
- ...options,
820
- headers: {
821
- "Content-Type": "application/json",
822
- ...options.headers
823
- }
824
- });
825
- var programsAccept = (options) => (options.client ?? client).post({
826
- security: [{ name: "X-Innspel-Tenant-Key", type: "apiKey" }, {
827
- key: "FeedbackTokenAuth",
828
- scheme: "bearer",
829
- type: "http"
830
- }],
831
- url: "/v1/ingest/invitations/{token}/accept",
832
- ...options
833
- });
834
- var programsDecline = (options) => (options.client ?? client).post({
835
- security: [{ name: "X-Innspel-Tenant-Key", type: "apiKey" }, {
836
- key: "FeedbackTokenAuth",
837
- scheme: "bearer",
838
- type: "http"
839
- }],
840
- url: "/v1/ingest/invitations/{token}/decline",
841
- ...options
842
- });
843
- var knownIssuesList2 = (options) => (options?.client ?? client).get({
844
- security: [{ name: "X-Innspel-Tenant-Key", type: "apiKey" }, {
845
- key: "FeedbackTokenAuth",
846
- scheme: "bearer",
847
- type: "http"
848
- }],
849
- url: "/v1/ingest/known-issues",
850
- ...options
851
- });
852
- var knownIssuesConfirm = (options) => (options.client ?? client).post({
853
- security: [{ name: "X-Innspel-Tenant-Key", type: "apiKey" }, {
854
- key: "FeedbackTokenAuth",
855
- scheme: "bearer",
856
- type: "http"
857
- }],
858
- url: "/v1/ingest/known-issues/{id}/confirm",
859
- ...options,
860
- headers: {
861
- "Content-Type": "application/json",
862
- ...options.headers
863
- }
864
- });
865
- var programsWithdraw = (options) => (options.client ?? client).post({
866
- security: [{ name: "X-Innspel-Tenant-Key", type: "apiKey" }, {
867
- key: "FeedbackTokenAuth",
868
- scheme: "bearer",
869
- type: "http"
870
- }],
871
- url: "/v1/ingest/participations/{id}/withdraw",
872
- ...options
873
- });
874
- var programsListMine = (options) => (options?.client ?? client).get({
875
- security: [{ name: "X-Innspel-Tenant-Key", type: "apiKey" }, {
876
- key: "FeedbackTokenAuth",
877
- scheme: "bearer",
878
- type: "http"
879
- }],
880
- url: "/v1/ingest/programs",
881
- ...options
882
- });
883
- var submissionsListMine = (options) => (options?.client ?? client).get({
884
- security: [{ name: "X-Innspel-Tenant-Key", type: "apiKey" }, {
885
- key: "FeedbackTokenAuth",
886
- scheme: "bearer",
887
- type: "http"
888
- }],
889
- url: "/v1/ingest/submissions",
890
- ...options
891
- });
892
- var submissionsCreate = (options) => (options.client ?? client).post({
893
- security: [{ name: "X-Innspel-Tenant-Key", type: "apiKey" }, {
894
- key: "FeedbackTokenAuth",
895
- scheme: "bearer",
896
- type: "http"
897
- }],
898
- url: "/v1/ingest/submissions",
899
- ...options,
900
- headers: {
901
- "Content-Type": "application/json",
902
- ...options.headers
903
- }
904
- });
905
- var submissionsStatus = (options) => (options.client ?? client).get({
906
- security: [{ name: "X-Innspel-Tenant-Key", type: "apiKey" }, {
907
- key: "FeedbackTokenAuth",
908
- scheme: "bearer",
909
- type: "http"
910
- }],
911
- url: "/v1/ingest/submissions/{id}/status",
912
- ...options
913
- });
914
- var programsCompleteTask = (options) => (options.client ?? client).post({
915
- security: [{ name: "X-Innspel-Tenant-Key", type: "apiKey" }, {
916
- key: "FeedbackTokenAuth",
917
- scheme: "bearer",
918
- type: "http"
919
- }],
920
- url: "/v1/ingest/tasks/{id}/complete",
921
- ...options,
922
- headers: {
923
- "Content-Type": "application/json",
924
- ...options.headers
925
- }
926
- });
1
+ import { createClient, createConfig, VERSJON, submissionsListMine, knownIssuesList2, configGet, submissionsCreate, attachmentsPresign, attachmentsComplete, programsRespond, programsCompleteTask, programsWithdraw, programsDecline, programsAccept, programsListMine, submissionsStatus, knownIssuesConfirm } from './chunk-INOPXTQM.js';
2
+ export { VERSJON } from './chunk-INOPXTQM.js';
927
3
 
928
4
  // src/feil.ts
929
5
  var PREFIKS = "[innspel]";
@@ -952,6 +28,8 @@ var InnspelApiError = class extends Error {
952
28
  this.retryAfter = retryAfter;
953
29
  }
954
30
  };
31
+ var NettverksFeil = class extends Error {
32
+ };
955
33
  var InnspelQueueFullError = class extends Error {
956
34
  name = "InnspelQueueFullError";
957
35
  code = "queue_full";
@@ -1269,9 +347,6 @@ async function lastOppTilLagring(fetchImpl, presign, body, signal) {
1269
347
  }
1270
348
  }
1271
349
 
1272
- // src/versjon.ts
1273
- var VERSJON = "0.5.0";
1274
-
1275
350
  // src/klient.ts
1276
351
  var STANDARD_TIMEOUT_MS = 1e4;
1277
352
  var noopTelemetri = { emit: () => void 0 };
@@ -1363,12 +438,10 @@ function init(options) {
1363
438
  const telemetri = options.telemetry ?? noopTelemetri;
1364
439
  const k\u00F8 = new Ko(options.storage);
1365
440
  const anonym = options.identityProvider === null;
1366
- const klient = createClient(
1367
- createConfig({
1368
- baseUrl: options.baseUrl,
1369
- ...options.fetch ? { fetch: options.fetch } : {}
1370
- })
1371
- );
441
+ const nett = ((input) => (options.fetch ?? fetch)(input).catch((e) => {
442
+ throw new NettverksFeil(String(e));
443
+ }));
444
+ const klient = createClient(createConfig({ baseUrl: options.baseUrl, fetch: nett }));
1372
445
  let presenter = null;
1373
446
  async function headere() {
1374
447
  const h = { "X-Innspel-Tenant-Key": options.tenantKey };
@@ -1376,15 +449,29 @@ function init(options) {
1376
449
  if (token) h["Authorization"] = `Bearer ${token}`;
1377
450
  return h;
1378
451
  }
1379
- function signal() {
1380
- return AbortSignal.timeout(options.timeoutMs ?? STANDARD_TIMEOUT_MS);
452
+ async function medTidsgrense(kall) {
453
+ const ms = options.timeoutMs ?? STANDARD_TIMEOUT_MS;
454
+ if (typeof AbortSignal.timeout == "function") return kall(AbortSignal.timeout(ms));
455
+ const kontroll = new AbortController();
456
+ const timer = setTimeout(() => kontroll.abort(), ms);
457
+ try {
458
+ return await kall(kontroll.signal);
459
+ } finally {
460
+ clearTimeout(timer);
461
+ }
1381
462
  }
1382
463
  async function medToken(kall) {
1383
- let res = await kall(await headere());
464
+ const fors\u00F8k = async () => {
465
+ const h = await headere();
466
+ const r = await medTidsgrense((s) => kall(h, s));
467
+ if (!r.response) throw r.error;
468
+ return r;
469
+ };
470
+ let res = await fors\u00F8k();
1384
471
  if (res.response.status === 401) {
1385
472
  const feil = tilApiFeil(401, res.error, res.response);
1386
473
  if (feil.code === "feedback_token_expired" && !anonym) {
1387
- res = await kall(await headere());
474
+ res = await fors\u00F8k();
1388
475
  }
1389
476
  }
1390
477
  if (!res.response.ok) throw tilApiFeil(res.response.status, res.error, res.response);
@@ -1423,20 +510,20 @@ function init(options) {
1423
510
  }
1424
511
  }
1425
512
  return medToken(
1426
- (h) => submissionsCreate({
513
+ (h, s) => submissionsCreate({
1427
514
  client: klient,
1428
515
  headers: h,
1429
- signal: signal(),
516
+ signal: s,
1430
517
  body
1431
518
  })
1432
519
  );
1433
520
  }
1434
521
  async function lastOppVedlegg(submissionId, vedlegg) {
1435
522
  const presign = await medToken(
1436
- (h) => attachmentsPresign({
523
+ (h, s) => attachmentsPresign({
1437
524
  client: klient,
1438
525
  headers: h,
1439
- signal: signal(),
526
+ signal: s,
1440
527
  body: {
1441
528
  submissionId,
1442
529
  mime: vedlegg.mime,
@@ -1446,12 +533,12 @@ function init(options) {
1446
533
  }
1447
534
  })
1448
535
  );
1449
- await lastOppTilLagring(options.fetch ?? fetch, presign, vedlegg.body, signal());
536
+ await medTidsgrense((s) => lastOppTilLagring(nett, presign, vedlegg.body, s));
1450
537
  return medToken(
1451
- (h) => attachmentsComplete({
538
+ (h, s) => attachmentsComplete({
1452
539
  client: klient,
1453
540
  headers: h,
1454
- signal: signal(),
541
+ signal: s,
1455
542
  path: { id: presign.attachmentId }
1456
543
  })
1457
544
  );
@@ -1469,7 +556,7 @@ function init(options) {
1469
556
  async loadSettings() {
1470
557
  try {
1471
558
  const cfg = await medToken(
1472
- (h) => configGet({ client: klient, headers: h, signal: signal() })
559
+ (h, s) => configGet({ client: klient, headers: h, signal: s })
1473
560
  );
1474
561
  if (cfg?.textMaxLength === 140 || cfg?.textMaxLength === 280) settings.textMaxLength = cfg.textMaxLength;
1475
562
  if (typeof cfg?.minTextLength === "number" && cfg.minTextLength >= 1) settings.minTextLength = cfg.minTextLength;
@@ -1505,6 +592,7 @@ function init(options) {
1505
592
  telemetri.emit({ name: "submission_failed", reason: e.code });
1506
593
  throw e;
1507
594
  }
595
+ if (!(e instanceof NettverksFeil)) throw e;
1508
596
  await k\u00F8.leggTil({
1509
597
  clientRef,
1510
598
  type: input.type,
@@ -1539,10 +627,10 @@ function init(options) {
1539
627
  async for(query = {}) {
1540
628
  try {
1541
629
  const kort = await medToken(
1542
- (h) => knownIssuesList2({
630
+ (h, s) => knownIssuesList2({
1543
631
  client: klient,
1544
632
  headers: h,
1545
- signal: signal(),
633
+ signal: s,
1546
634
  query: {
1547
635
  ...query.screen !== void 0 ? { screen: query.screen } : {},
1548
636
  ...query.version !== void 0 ? { version: query.version } : {},
@@ -1559,10 +647,10 @@ function init(options) {
1559
647
  },
1560
648
  async confirm(knownIssueId) {
1561
649
  const res = await medToken(
1562
- (h) => knownIssuesConfirm({
650
+ (h, s) => knownIssuesConfirm({
1563
651
  client: klient,
1564
652
  headers: h,
1565
- signal: signal(),
653
+ signal: s,
1566
654
  path: { id: knownIssueId },
1567
655
  body: { context: kontekst }
1568
656
  })
@@ -1584,10 +672,10 @@ function init(options) {
1584
672
  let sendte;
1585
673
  try {
1586
674
  sendte = await medToken(
1587
- (h) => submissionsListMine({ client: klient, headers: h, signal: signal() })
675
+ (h, s) => submissionsListMine({ client: klient, headers: h, signal: s })
1588
676
  );
1589
677
  } catch (e) {
1590
- if (e instanceof InnspelApiError) throw e;
678
+ if (!(e instanceof NettverksFeil)) throw e;
1591
679
  return ventende;
1592
680
  }
1593
681
  telemetri.emit({ name: "status_viewed" });
@@ -1596,10 +684,10 @@ function init(options) {
1596
684
  async status(submissionId) {
1597
685
  krevToken();
1598
686
  return medToken(
1599
- (h) => submissionsStatus({
687
+ (h, s) => submissionsStatus({
1600
688
  client: klient,
1601
689
  headers: h,
1602
- signal: signal(),
690
+ signal: s,
1603
691
  path: { id: submissionId }
1604
692
  })
1605
693
  );
@@ -1609,17 +697,17 @@ function init(options) {
1609
697
  async list() {
1610
698
  krevToken();
1611
699
  return medToken(
1612
- (h) => programsListMine({ client: klient, headers: h, signal: signal() })
700
+ (h, s) => programsListMine({ client: klient, headers: h, signal: s })
1613
701
  );
1614
702
  },
1615
703
  async accept(invitationToken) {
1616
704
  krevInvitasjonstoken(invitationToken);
1617
705
  krevToken();
1618
706
  const svar = await medToken(
1619
- (h) => programsAccept({
707
+ (h, s) => programsAccept({
1620
708
  client: klient,
1621
709
  headers: h,
1622
- signal: signal(),
710
+ signal: s,
1623
711
  path: { token: invitationToken }
1624
712
  })
1625
713
  );
@@ -1630,10 +718,10 @@ function init(options) {
1630
718
  krevInvitasjonstoken(invitationToken);
1631
719
  krevToken();
1632
720
  await medToken(
1633
- (h) => programsDecline({
721
+ (h, s) => programsDecline({
1634
722
  client: klient,
1635
723
  headers: h,
1636
- signal: signal(),
724
+ signal: s,
1637
725
  path: { token: invitationToken }
1638
726
  })
1639
727
  );
@@ -1645,10 +733,10 @@ function init(options) {
1645
733
  }
1646
734
  krevToken();
1647
735
  return medToken(
1648
- (h) => programsWithdraw({
736
+ (h, s) => programsWithdraw({
1649
737
  client: klient,
1650
738
  headers: h,
1651
- signal: signal(),
739
+ signal: s,
1652
740
  path: { id: participationId }
1653
741
  })
1654
742
  );
@@ -1660,10 +748,10 @@ function init(options) {
1660
748
  validerUtfall(completion);
1661
749
  krevToken();
1662
750
  const svar = await medToken(
1663
- (h) => programsCompleteTask({
751
+ (h, s) => programsCompleteTask({
1664
752
  client: klient,
1665
753
  headers: h,
1666
- signal: signal(),
754
+ signal: s,
1667
755
  path: { id: taskId },
1668
756
  body: completion
1669
757
  })
@@ -1678,10 +766,10 @@ function init(options) {
1678
766
  validerUtfall(response);
1679
767
  krevToken();
1680
768
  await medToken(
1681
- (h) => programsRespond({
769
+ (h, s) => programsRespond({
1682
770
  client: klient,
1683
771
  headers: h,
1684
- signal: signal(),
772
+ signal: s,
1685
773
  path: { id: followUpId },
1686
774
  body: response
1687
775
  })
@@ -1772,6 +860,6 @@ function dekkerAlt(rekter, bilde) {
1772
860
  return rekter.some((r) => r.x <= 0 && r.y <= 0 && r.x + r.width >= bilde.width && r.y + r.height >= bilde.height);
1773
861
  }
1774
862
 
1775
- export { InnspelApiError, InnspelConfigError, InnspelQueueFullError, KONTEKST_FELTER, KO_TAK, TILLATTE_MIME, VEDLEGG_GRENSER, VERSJON, dekkerAlt, init, klipp, scanText, skaler, strokTilRekter, treffer, trykkTilRekt };
863
+ export { InnspelApiError, InnspelConfigError, InnspelQueueFullError, KONTEKST_FELTER, KO_TAK, TILLATTE_MIME, VEDLEGG_GRENSER, dekkerAlt, init, klipp, scanText, skaler, strokTilRekter, treffer, trykkTilRekt };
1776
864
  //# sourceMappingURL=index.js.map
1777
865
  //# sourceMappingURL=index.js.map