@innspel/core 0.10.1 → 0.11.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.
@@ -952,8 +952,8 @@ var programsCompleteTask = (options) => (options.client ?? client).post({
952
952
  });
953
953
 
954
954
  // src/versjon.ts
955
- var VERSJON = "0.10.1";
955
+ var VERSJON = "0.11.0";
956
956
 
957
957
  export { VERSJON, attachmentsComplete, attachmentsPresign, configGet, createClient, createConfig, eventsSend, knownIssuesConfirm, knownIssuesList2, programsAccept, programsCompleteTask, programsDecline, programsListMine, programsRespond, programsWithdraw, submissionsAddAddendum, submissionsCreate, submissionsListMine, submissionsStatus };
958
- //# sourceMappingURL=chunk-RSXP2N7O.js.map
959
- //# sourceMappingURL=chunk-RSXP2N7O.js.map
958
+ //# sourceMappingURL=chunk-TCFY7BHJ.js.map
959
+ //# sourceMappingURL=chunk-TCFY7BHJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/generated/api/core/auth.gen.ts","../src/generated/api/core/bodySerializer.gen.ts","../src/generated/api/core/pathSerializer.gen.ts","../src/generated/api/core/utils.gen.ts","../src/generated/api/client/utils.gen.ts","../src/generated/api/core/serverSentEvents.gen.ts","../src/generated/api/client/client.gen.ts","../src/generated/api/client.gen.ts","../src/generated/api/sdk.gen.ts","../src/versjon.ts"],"names":["joinedValues","config","request","url"],"mappings":"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","file":"chunk-TCFY7BHJ.js","sourcesContent":["// This file is auto-generated by @hey-api/openapi-ts\n\nexport type AuthToken = string | undefined;\n\nexport interface Auth {\n /**\n * Which part of the request do we use to send the auth?\n *\n * @default 'header'\n */\n in?: 'header' | 'query' | 'cookie';\n /**\n * A unique identifier for the security scheme.\n *\n * Defined only when there are multiple security schemes whose `Auth`\n * shape would otherwise be identical.\n */\n key?: string;\n /**\n * Header or query parameter name.\n *\n * @default 'Authorization'\n */\n name?: string;\n scheme?: 'basic' | 'bearer';\n type: 'apiKey' | 'http';\n}\n\nexport const getAuthToken = async (\n auth: Auth,\n callback: ((auth: Auth) => Promise<AuthToken> | AuthToken) | AuthToken,\n): Promise<string | undefined> => {\n const token = typeof callback === 'function' ? await callback(auth) : callback;\n\n if (!token) {\n return;\n }\n\n if (auth.scheme === 'bearer') {\n return `Bearer ${token}`;\n }\n\n if (auth.scheme === 'basic') {\n return `Basic ${btoa(token)}`;\n }\n\n return token;\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { ArrayStyle, ObjectStyle, SerializerOptions } from './pathSerializer.gen';\n\nexport type QuerySerializer = (query: Record<string, unknown>) => string;\n\nexport type BodySerializer = (body: unknown) => unknown;\n\ntype QuerySerializerOptionsObject = {\n allowReserved?: boolean;\n array?: Partial<SerializerOptions<ArrayStyle>>;\n object?: Partial<SerializerOptions<ObjectStyle>>;\n};\n\nexport type QuerySerializerOptions = QuerySerializerOptionsObject & {\n /**\n * Per-parameter serialization overrides. When provided, these settings\n * override the global array/object settings for specific parameter names.\n */\n parameters?: Record<string, QuerySerializerOptionsObject>;\n};\n\nconst serializeFormDataPair = (data: FormData, key: string, value: unknown): void => {\n if (typeof value === 'string' || value instanceof Blob) {\n data.append(key, value);\n } else if (value instanceof Date) {\n data.append(key, value.toISOString());\n } else {\n data.append(key, JSON.stringify(value));\n }\n};\n\nconst serializeUrlSearchParamsPair = (data: URLSearchParams, key: string, value: unknown): void => {\n if (typeof value === 'string') {\n data.append(key, value);\n } else {\n data.append(key, JSON.stringify(value));\n }\n};\n\nexport const formDataBodySerializer = {\n bodySerializer: (body: unknown): FormData => {\n const data = new FormData();\n\n Object.entries(body as Record<string, unknown>).forEach(([key, value]) => {\n if (value === undefined || value === null) {\n return;\n }\n if (Array.isArray(value)) {\n value.forEach((v) => serializeFormDataPair(data, key, v));\n } else {\n serializeFormDataPair(data, key, value);\n }\n });\n\n return data;\n },\n};\n\nexport const jsonBodySerializer = {\n bodySerializer: (body: unknown): string =>\n JSON.stringify(body, (_key, value) => (typeof value === 'bigint' ? value.toString() : value)),\n};\n\nexport const urlSearchParamsBodySerializer = {\n bodySerializer: (body: unknown): string => {\n const data = new URLSearchParams();\n\n Object.entries(body as Record<string, unknown>).forEach(([key, value]) => {\n if (value === undefined || value === null) {\n return;\n }\n if (Array.isArray(value)) {\n value.forEach((v) => serializeUrlSearchParamsPair(data, key, v));\n } else {\n serializeUrlSearchParamsPair(data, key, value);\n }\n });\n\n return data.toString();\n },\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\ninterface SerializeOptions<T> extends SerializePrimitiveOptions, SerializerOptions<T> {}\n\ninterface SerializePrimitiveOptions {\n allowReserved?: boolean;\n name: string;\n}\n\nexport interface SerializerOptions<T> {\n /**\n * @default true\n */\n explode: boolean;\n style: T;\n}\n\nexport type ArrayStyle = 'form' | 'spaceDelimited' | 'pipeDelimited';\nexport type ArraySeparatorStyle = ArrayStyle | MatrixStyle;\ntype MatrixStyle = 'label' | 'matrix' | 'simple';\nexport type ObjectStyle = 'form' | 'deepObject';\ntype ObjectSeparatorStyle = ObjectStyle | MatrixStyle;\n\ninterface SerializePrimitiveParam extends SerializePrimitiveOptions {\n value: string;\n}\n\nexport const separatorArrayExplode = (style: ArraySeparatorStyle): '.' | ';' | ',' | '&' => {\n switch (style) {\n case 'label':\n return '.';\n case 'matrix':\n return ';';\n case 'simple':\n return ',';\n default:\n return '&';\n }\n};\n\nexport const separatorArrayNoExplode = (style: ArraySeparatorStyle): ',' | '|' | '%20' => {\n switch (style) {\n case 'form':\n return ',';\n case 'pipeDelimited':\n return '|';\n case 'spaceDelimited':\n return '%20';\n default:\n return ',';\n }\n};\n\nexport const separatorObjectExplode = (style: ObjectSeparatorStyle): '.' | ';' | ',' | '&' => {\n switch (style) {\n case 'label':\n return '.';\n case 'matrix':\n return ';';\n case 'simple':\n return ',';\n default:\n return '&';\n }\n};\n\nexport const serializeArrayParam = ({\n allowReserved,\n explode,\n name,\n style,\n value,\n}: SerializeOptions<ArraySeparatorStyle> & {\n value: unknown[];\n}): string => {\n if (!explode) {\n const joinedValues = (\n allowReserved ? value : value.map((v) => encodeURIComponent(v as string))\n ).join(separatorArrayNoExplode(style));\n switch (style) {\n case 'label':\n return `.${joinedValues}`;\n case 'matrix':\n return `;${name}=${joinedValues}`;\n case 'simple':\n return joinedValues;\n default:\n return `${name}=${joinedValues}`;\n }\n }\n\n const separator = separatorArrayExplode(style);\n const joinedValues = value\n .map((v) => {\n if (style === 'label' || style === 'simple') {\n return allowReserved ? v : encodeURIComponent(v as string);\n }\n\n return serializePrimitiveParam({\n allowReserved,\n name,\n value: v as string,\n });\n })\n .join(separator);\n return style === 'label' || style === 'matrix' ? separator + joinedValues : joinedValues;\n};\n\nexport const serializePrimitiveParam = ({\n allowReserved,\n name,\n value,\n}: SerializePrimitiveParam): string => {\n if (value === undefined || value === null) {\n return '';\n }\n\n if (typeof value === 'object') {\n throw new Error(\n 'Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.',\n );\n }\n\n return `${name}=${allowReserved ? value : encodeURIComponent(value)}`;\n};\n\nexport const serializeObjectParam = ({\n allowReserved,\n explode,\n name,\n style,\n value,\n valueOnly,\n}: SerializeOptions<ObjectSeparatorStyle> & {\n value: Record<string, unknown> | Date;\n valueOnly?: boolean;\n}): string => {\n if (value instanceof Date) {\n return valueOnly ? value.toISOString() : `${name}=${value.toISOString()}`;\n }\n\n if (style !== 'deepObject' && !explode) {\n let values: string[] = [];\n Object.entries(value).forEach(([key, v]) => {\n values = [...values, key, allowReserved ? (v as string) : encodeURIComponent(v as string)];\n });\n const joinedValues = values.join(',');\n switch (style) {\n case 'form':\n return `${name}=${joinedValues}`;\n case 'label':\n return `.${joinedValues}`;\n case 'matrix':\n return `;${name}=${joinedValues}`;\n default:\n return joinedValues;\n }\n }\n\n const separator = separatorObjectExplode(style);\n const joinedValues = Object.entries(value)\n .map(([key, v]) =>\n serializePrimitiveParam({\n allowReserved,\n name: style === 'deepObject' ? `${name}[${key}]` : key,\n value: v as string,\n }),\n )\n .join(separator);\n return style === 'label' || style === 'matrix' ? separator + joinedValues : joinedValues;\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { BodySerializer, QuerySerializer } from './bodySerializer.gen';\nimport {\n type ArraySeparatorStyle,\n serializeArrayParam,\n serializeObjectParam,\n serializePrimitiveParam,\n} from './pathSerializer.gen';\n\nexport interface PathSerializer {\n path: Record<string, unknown>;\n url: string;\n}\n\nexport const PATH_PARAM_RE: RegExp = /\\{[^{}]+\\}/g;\n\nexport const defaultPathSerializer = ({ path, url: _url }: PathSerializer): string => {\n let url = _url;\n const matches = _url.match(PATH_PARAM_RE);\n if (matches) {\n for (const match of matches) {\n let explode = false;\n let name = match.substring(1, match.length - 1);\n let style: ArraySeparatorStyle = 'simple';\n\n if (name.endsWith('*')) {\n explode = true;\n name = name.substring(0, name.length - 1);\n }\n\n if (name.startsWith('.')) {\n name = name.substring(1);\n style = 'label';\n } else if (name.startsWith(';')) {\n name = name.substring(1);\n style = 'matrix';\n }\n\n const value = path[name];\n\n if (value === undefined || value === null) {\n continue;\n }\n\n if (Array.isArray(value)) {\n url = url.replace(match, serializeArrayParam({ explode, name, style, value }));\n continue;\n }\n\n if (typeof value === 'object') {\n url = url.replace(\n match,\n serializeObjectParam({\n explode,\n name,\n style,\n value: value as Record<string, unknown>,\n valueOnly: true,\n }),\n );\n continue;\n }\n\n if (style === 'matrix') {\n url = url.replace(\n match,\n `;${serializePrimitiveParam({\n name,\n value: value as string,\n })}`,\n );\n continue;\n }\n\n const replaceValue = encodeURIComponent(\n style === 'label' ? `.${value as string}` : (value as string),\n );\n url = url.replace(match, replaceValue);\n }\n }\n return url;\n};\n\nexport const getUrl = ({\n baseUrl,\n path,\n query,\n querySerializer,\n url: _url,\n}: {\n baseUrl?: string;\n path?: Record<string, unknown>;\n query?: Record<string, unknown>;\n querySerializer: QuerySerializer;\n url: string;\n}): string => {\n const pathUrl = _url.startsWith('/') ? _url : `/${_url}`;\n let url = (baseUrl ?? '') + pathUrl;\n if (path) {\n url = defaultPathSerializer({ path, url });\n }\n let search = query ? querySerializer(query) : '';\n if (search.startsWith('?')) {\n search = search.substring(1);\n }\n if (search) {\n url += `?${search}`;\n }\n return url;\n};\n\nexport function getValidRequestBody(options: {\n body?: unknown;\n bodySerializer?: BodySerializer | null;\n serializedBody?: unknown;\n}): unknown {\n const hasBody = options.body !== undefined;\n const isSerializedBody = hasBody && options.bodySerializer;\n\n if (isSerializedBody) {\n if ('serializedBody' in options) {\n const hasSerializedBody =\n options.serializedBody !== undefined && options.serializedBody !== '';\n\n return hasSerializedBody ? options.serializedBody : null;\n }\n\n // not all clients implement a serializedBody property (i.e., client-axios)\n return options.body !== '' ? options.body : null;\n }\n\n // plain/text body\n if (hasBody) {\n return options.body;\n }\n\n // no body was provided\n return undefined;\n}\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport { getAuthToken } from '../core/auth.gen';\nimport type { QuerySerializerOptions } from '../core/bodySerializer.gen';\nimport { jsonBodySerializer } from '../core/bodySerializer.gen';\nimport {\n serializeArrayParam,\n serializeObjectParam,\n serializePrimitiveParam,\n} from '../core/pathSerializer.gen';\nimport { getUrl } from '../core/utils.gen';\nimport type { Client, ClientOptions, Config, RequestOptions } from './types.gen';\n\nexport const createQuerySerializer = <T = unknown>({\n parameters = {},\n ...args\n}: QuerySerializerOptions = {}): ((queryParams: T) => string) => {\n const querySerializer = (queryParams: T): string => {\n const search: string[] = [];\n if (queryParams && typeof queryParams === 'object') {\n for (const name in queryParams) {\n const value = queryParams[name];\n\n if (value === undefined || value === null) {\n continue;\n }\n\n const options = parameters[name] || args;\n\n if (Array.isArray(value)) {\n const serializedArray = serializeArrayParam({\n allowReserved: options.allowReserved,\n explode: true,\n name,\n style: 'form',\n value,\n ...options.array,\n });\n if (serializedArray) search.push(serializedArray);\n } else if (typeof value === 'object') {\n const serializedObject = serializeObjectParam({\n allowReserved: options.allowReserved,\n explode: true,\n name,\n style: 'deepObject',\n value: value as Record<string, unknown>,\n ...options.object,\n });\n if (serializedObject) search.push(serializedObject);\n } else {\n const serializedPrimitive = serializePrimitiveParam({\n allowReserved: options.allowReserved,\n name,\n value: value as string,\n });\n if (serializedPrimitive) search.push(serializedPrimitive);\n }\n }\n }\n return search.join('&');\n };\n return querySerializer;\n};\n\n/**\n * Infers parseAs value from provided Content-Type header.\n */\nexport const getParseAs = (contentType: string | null): Exclude<Config['parseAs'], 'auto'> => {\n if (!contentType) {\n // If no Content-Type header is provided, the best we can do is return the raw response body,\n // which is effectively the same as the 'stream' option.\n return 'stream';\n }\n\n const cleanContent = contentType.split(';')[0]?.trim();\n\n if (!cleanContent) {\n return;\n }\n\n if (cleanContent.startsWith('application/json') || cleanContent.endsWith('+json')) {\n return 'json';\n }\n\n if (cleanContent === 'multipart/form-data') {\n return 'formData';\n }\n\n if (\n ['application/', 'audio/', 'image/', 'video/'].some((type) => cleanContent.startsWith(type))\n ) {\n return 'blob';\n }\n\n if (cleanContent.startsWith('text/')) {\n return 'text';\n }\n\n return;\n};\n\nconst checkForExistence = (\n options: Pick<RequestOptions, 'auth' | 'query'> & {\n headers: Headers;\n },\n name?: string,\n): boolean => {\n if (!name) {\n return false;\n }\n if (\n options.headers.has(name) ||\n options.query?.[name] ||\n options.headers.get('Cookie')?.includes(`${name}=`)\n ) {\n return true;\n }\n return false;\n};\n\nexport async function setAuthParams(\n options: Pick<RequestOptions, 'auth' | 'query' | 'security'> & {\n headers: Headers;\n },\n): Promise<void> {\n for (const auth of options.security ?? []) {\n if (checkForExistence(options, auth.name)) {\n continue;\n }\n\n const token = await getAuthToken(auth, options.auth);\n\n if (!token) {\n continue;\n }\n\n const name = auth.name ?? 'Authorization';\n\n switch (auth.in) {\n case 'query':\n if (!options.query) {\n options.query = {};\n }\n options.query[name] = token;\n break;\n case 'cookie':\n options.headers.append('Cookie', `${name}=${token}`);\n break;\n case 'header':\n default:\n options.headers.set(name, token);\n break;\n }\n }\n}\n\nexport const buildUrl: Client['buildUrl'] = (options) =>\n getUrl({\n baseUrl: options.baseUrl as string,\n path: options.path,\n query: options.query,\n querySerializer:\n typeof options.querySerializer === 'function'\n ? options.querySerializer\n : createQuerySerializer(options.querySerializer),\n url: options.url,\n });\n\nexport const mergeConfigs = (a: Config, b: Config): Config => {\n const config = { ...a, ...b };\n if (config.baseUrl?.endsWith('/')) {\n config.baseUrl = config.baseUrl.substring(0, config.baseUrl.length - 1);\n }\n config.headers = mergeHeaders(a.headers, b.headers);\n return config;\n};\n\nconst headersEntries = (headers: Headers): Array<[string, string]> => {\n const entries: Array<[string, string]> = [];\n headers.forEach((value, key) => {\n entries.push([key, value]);\n });\n return entries;\n};\n\nexport const mergeHeaders = (\n ...headers: Array<Required<Config>['headers'] | undefined>\n): Headers => {\n const mergedHeaders = new Headers();\n for (const header of headers) {\n if (!header) {\n continue;\n }\n\n const iterator = header instanceof Headers ? headersEntries(header) : Object.entries(header);\n\n for (const [key, value] of iterator) {\n if (value === null) {\n mergedHeaders.delete(key);\n } else if (Array.isArray(value)) {\n for (const v of value) {\n mergedHeaders.append(key, v as string);\n }\n } else if (value !== undefined) {\n // assume object headers are meant to be JSON stringified, i.e., their\n // content value in OpenAPI specification is 'application/json'\n mergedHeaders.set(\n key,\n typeof value === 'object' ? JSON.stringify(value) : (value as string),\n );\n }\n }\n }\n return mergedHeaders;\n};\n\ntype ErrInterceptor<Err, Res, Req, Options> = (\n error: Err,\n /** response may be undefined due to a network error where no response object is produced */\n response: Res | undefined,\n /** request may be undefined, because error may be from building the request object itself */\n request: Req | undefined,\n options: Options,\n) => Err | Promise<Err>;\n\ntype ReqInterceptor<Req, Options> = (request: Req, options: Options) => Req | Promise<Req>;\n\ntype ResInterceptor<Res, Req, Options> = (\n response: Res,\n request: Req,\n options: Options,\n) => Res | Promise<Res>;\n\nclass Interceptors<Interceptor> {\n fns: Array<Interceptor | null> = [];\n\n clear(): void {\n this.fns = [];\n }\n\n eject(id: number | Interceptor): void {\n const index = this.getInterceptorIndex(id);\n if (this.fns[index]) {\n this.fns[index] = null;\n }\n }\n\n exists(id: number | Interceptor): boolean {\n const index = this.getInterceptorIndex(id);\n return Boolean(this.fns[index]);\n }\n\n getInterceptorIndex(id: number | Interceptor): number {\n if (typeof id === 'number') {\n return this.fns[id] ? id : -1;\n }\n return this.fns.indexOf(id);\n }\n\n update(id: number | Interceptor, fn: Interceptor): number | Interceptor | false {\n const index = this.getInterceptorIndex(id);\n if (this.fns[index]) {\n this.fns[index] = fn;\n return id;\n }\n return false;\n }\n\n use(fn: Interceptor): number {\n this.fns.push(fn);\n return this.fns.length - 1;\n }\n}\n\nexport interface Middleware<Req, Res, Err, Options> {\n error: Interceptors<ErrInterceptor<Err, Res, Req, Options>>;\n request: Interceptors<ReqInterceptor<Req, Options>>;\n response: Interceptors<ResInterceptor<Res, Req, Options>>;\n}\n\nexport const createInterceptors = <Req, Res, Err, Options>(): Middleware<\n Req,\n Res,\n Err,\n Options\n> => ({\n error: new Interceptors<ErrInterceptor<Err, Res, Req, Options>>(),\n request: new Interceptors<ReqInterceptor<Req, Options>>(),\n response: new Interceptors<ResInterceptor<Res, Req, Options>>(),\n});\n\nconst defaultQuerySerializer = createQuerySerializer({\n allowReserved: false,\n array: {\n explode: true,\n style: 'form',\n },\n object: {\n explode: true,\n style: 'deepObject',\n },\n});\n\nconst defaultHeaders = {\n 'Content-Type': 'application/json',\n};\n\nexport const createConfig = <T extends ClientOptions = ClientOptions>(\n override: Config<Omit<ClientOptions, keyof T> & T> = {},\n): Config<Omit<ClientOptions, keyof T> & T> => ({\n ...jsonBodySerializer,\n headers: defaultHeaders,\n parseAs: 'auto',\n querySerializer: defaultQuerySerializer,\n ...override,\n});\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { Config } from './types.gen';\n\nexport type ServerSentEventsOptions<TData = unknown> = Omit<RequestInit, 'method'> &\n Pick<Config, 'method' | 'responseTransformer' | 'responseValidator'> & {\n /**\n * Fetch API implementation. You can use this option to provide a custom\n * fetch instance.\n *\n * @default globalThis.fetch\n */\n fetch?: typeof fetch;\n /**\n * Implementing clients can call request interceptors inside this hook.\n */\n onRequest?: (url: string, init: RequestInit) => Promise<Request>;\n /**\n * Callback invoked when a network or parsing error occurs during streaming.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @param error The error that occurred.\n */\n onSseError?: (error: unknown) => void;\n /**\n * Callback invoked when an event is streamed from the server.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @param event Event streamed from the server.\n * @returns Nothing (void).\n */\n onSseEvent?: (event: StreamEvent<TData>) => void;\n serializedBody?: RequestInit['body'];\n /**\n * Default retry delay in milliseconds.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @default 3000\n */\n sseDefaultRetryDelay?: number;\n /**\n * Maximum number of retry attempts before giving up.\n */\n sseMaxRetryAttempts?: number;\n /**\n * Maximum retry delay in milliseconds.\n *\n * Applies only when exponential backoff is used.\n *\n * This option applies only if the endpoint returns a stream of events.\n *\n * @default 30000\n */\n sseMaxRetryDelay?: number;\n /**\n * Optional sleep function for retry backoff.\n *\n * Defaults to using `setTimeout`.\n */\n sseSleepFn?: (ms: number) => Promise<void>;\n url: string;\n };\n\nexport interface StreamEvent<TData = unknown> {\n data: TData;\n event?: string;\n id?: string;\n retry?: number;\n}\n\nexport type ServerSentEventsResult<TData = unknown, TReturn = void, TNext = unknown> = {\n stream: AsyncGenerator<\n TData extends Record<string, unknown> ? TData[keyof TData] : TData,\n TReturn,\n TNext\n >;\n};\n\nexport function createSseClient<TData = unknown>({\n onRequest,\n onSseError,\n onSseEvent,\n responseTransformer,\n responseValidator,\n sseDefaultRetryDelay,\n sseMaxRetryAttempts,\n sseMaxRetryDelay,\n sseSleepFn,\n url,\n ...options\n}: ServerSentEventsOptions): ServerSentEventsResult<TData> {\n let lastEventId: string | undefined;\n\n const sleep = sseSleepFn ?? ((ms: number) => new Promise((resolve) => setTimeout(resolve, ms)));\n\n const createStream = async function* () {\n let retryDelay: number = sseDefaultRetryDelay ?? 3000;\n let attempt = 0;\n const signal = options.signal ?? new AbortController().signal;\n\n while (true) {\n if (signal.aborted) break;\n\n attempt++;\n\n const headers =\n options.headers instanceof Headers\n ? options.headers\n : new Headers(options.headers as Record<string, string> | undefined);\n\n if (lastEventId !== undefined) {\n headers.set('Last-Event-ID', lastEventId);\n }\n\n try {\n const requestInit: RequestInit = {\n redirect: 'follow',\n ...options,\n body: options.serializedBody,\n headers,\n signal,\n };\n let request = new Request(url, requestInit);\n if (onRequest) {\n request = await onRequest(url, requestInit);\n }\n // fetch must be assigned here, otherwise it would throw the error:\n // TypeError: Failed to execute 'fetch' on 'Window': Illegal invocation\n const _fetch = options.fetch ?? globalThis.fetch;\n const response = await _fetch(request);\n\n if (!response.ok) throw new Error(`SSE failed: ${response.status} ${response.statusText}`);\n\n if (!response.body) throw new Error('No body in SSE response');\n\n const reader = response.body.pipeThrough(new TextDecoderStream()).getReader();\n\n let buffer = '';\n\n const abortHandler = () => {\n try {\n reader.cancel();\n } catch {\n // noop\n }\n };\n\n signal.addEventListener('abort', abortHandler);\n\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n buffer += value;\n buffer = buffer.replace(/\\r\\n?/g, '\\n'); // normalize line endings\n\n const chunks = buffer.split('\\n\\n');\n buffer = chunks.pop() ?? '';\n\n for (const chunk of chunks) {\n const lines = chunk.split('\\n');\n const dataLines: Array<string> = [];\n let eventName: string | undefined;\n\n for (const line of lines) {\n if (line.startsWith('data:')) {\n dataLines.push(line.replace(/^data:\\s*/, ''));\n } else if (line.startsWith('event:')) {\n eventName = line.replace(/^event:\\s*/, '');\n } else if (line.startsWith('id:')) {\n lastEventId = line.replace(/^id:\\s*/, '');\n } else if (line.startsWith('retry:')) {\n const parsed = Number.parseInt(line.replace(/^retry:\\s*/, ''), 10);\n if (!Number.isNaN(parsed)) {\n retryDelay = parsed;\n }\n }\n }\n\n let data: unknown;\n let parsedJson = false;\n\n if (dataLines.length) {\n const rawData = dataLines.join('\\n');\n try {\n data = JSON.parse(rawData);\n parsedJson = true;\n } catch {\n data = rawData;\n }\n }\n\n if (parsedJson) {\n if (responseValidator) {\n await responseValidator(data);\n }\n\n if (responseTransformer) {\n data = await responseTransformer(data);\n }\n }\n\n onSseEvent?.({\n data,\n event: eventName,\n id: lastEventId,\n retry: retryDelay,\n });\n\n if (dataLines.length) {\n yield data as any;\n }\n }\n }\n } finally {\n signal.removeEventListener('abort', abortHandler);\n reader.releaseLock();\n }\n\n break; // exit loop on normal completion\n } catch (error) {\n // connection failed or aborted; retry after delay\n onSseError?.(error);\n\n if (sseMaxRetryAttempts !== undefined && attempt >= sseMaxRetryAttempts) {\n break; // stop after firing error\n }\n\n // exponential backoff: double retry each attempt, cap at 30s\n const backoff = Math.min(retryDelay * 2 ** (attempt - 1), sseMaxRetryDelay ?? 30000);\n await sleep(backoff);\n }\n }\n };\n\n const stream = createStream();\n\n return { stream };\n}\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport { createSseClient } from '../core/serverSentEvents.gen';\nimport type { HttpMethod } from '../core/types.gen';\nimport { getValidRequestBody } from '../core/utils.gen';\nimport type { Client, Config, RequestOptions, ResolvedRequestOptions } from './types.gen';\nimport {\n buildUrl,\n createConfig,\n createInterceptors,\n getParseAs,\n mergeConfigs,\n mergeHeaders,\n setAuthParams,\n} from './utils.gen';\n\ntype ReqInit = Omit<RequestInit, 'body' | 'headers'> & {\n body?: any;\n headers: ReturnType<typeof mergeHeaders>;\n};\n\nexport const createClient = (config: Config = {}): Client => {\n let _config = mergeConfigs(createConfig(), config);\n\n const getConfig = (): Config => ({ ..._config });\n\n const setConfig = (config: Config): Config => {\n _config = mergeConfigs(_config, config);\n return getConfig();\n };\n\n const interceptors = createInterceptors<Request, Response, unknown, ResolvedRequestOptions>();\n\n const beforeRequest = async <\n TData = unknown,\n TResponseStyle extends 'data' | 'fields' = 'fields',\n ThrowOnError extends boolean = boolean,\n Url extends string = string,\n >(\n options: RequestOptions<TData, TResponseStyle, ThrowOnError, Url>,\n ) => {\n const opts = {\n ..._config,\n ...options,\n fetch: options.fetch ?? _config.fetch ?? globalThis.fetch,\n headers: mergeHeaders(_config.headers, options.headers),\n serializedBody: undefined as string | undefined,\n };\n\n if (opts.security) {\n await setAuthParams(opts);\n }\n\n if (opts.requestValidator) {\n await opts.requestValidator(opts);\n }\n\n if (opts.body !== undefined && opts.bodySerializer) {\n opts.serializedBody = opts.bodySerializer(opts.body) as string | undefined;\n }\n\n // remove Content-Type header if body is empty to avoid sending invalid requests\n if (opts.body === undefined || opts.serializedBody === '') {\n opts.headers.delete('Content-Type');\n }\n\n const resolvedOpts = opts as typeof opts &\n ResolvedRequestOptions<TResponseStyle, ThrowOnError, Url>;\n const url = buildUrl(resolvedOpts);\n\n return { opts: resolvedOpts, url };\n };\n\n const request: Client['request'] = async (options) => {\n const throwOnError = options.throwOnError ?? _config.throwOnError;\n const responseStyle = options.responseStyle ?? _config.responseStyle;\n\n let request: Request | undefined;\n let response: Response | undefined;\n\n try {\n const { opts, url } = await beforeRequest(options);\n const requestInit: ReqInit = {\n redirect: 'follow',\n ...opts,\n body: getValidRequestBody(opts),\n };\n\n request = new Request(url, requestInit);\n\n for (const fn of interceptors.request.fns) {\n if (fn) {\n request = await fn(request, opts);\n }\n }\n\n // fetch must be assigned here, otherwise it would throw the error:\n // TypeError: Failed to execute 'fetch' on 'Window': Illegal invocation\n const _fetch = opts.fetch!;\n\n response = await _fetch(request);\n\n for (const fn of interceptors.response.fns) {\n if (fn) {\n response = await fn(response, request, opts);\n }\n }\n\n const result = {\n request,\n response,\n };\n\n if (response.ok) {\n const parseAs =\n (opts.parseAs === 'auto'\n ? getParseAs(response.headers.get('Content-Type'))\n : opts.parseAs) ?? 'json';\n\n if (response.status === 204 || response.headers.get('Content-Length') === '0') {\n let emptyData: any;\n switch (parseAs) {\n case 'arrayBuffer':\n case 'blob':\n case 'text':\n emptyData = await response[parseAs]();\n break;\n case 'formData':\n emptyData = new FormData();\n break;\n case 'stream':\n emptyData = response.body;\n break;\n case 'json':\n default:\n emptyData = {};\n break;\n }\n return opts.responseStyle === 'data'\n ? emptyData\n : {\n data: emptyData,\n ...result,\n };\n }\n\n let data: any;\n switch (parseAs) {\n case 'arrayBuffer':\n case 'blob':\n case 'formData':\n case 'text':\n data = await response[parseAs]();\n break;\n case 'json': {\n // Some servers return 200 with no Content-Length and empty body.\n // response.json() would throw; read as text and parse if non-empty.\n const text = await response.text();\n data = text ? JSON.parse(text) : {};\n break;\n }\n case 'stream':\n return opts.responseStyle === 'data'\n ? response.body\n : {\n data: response.body,\n ...result,\n };\n }\n\n if (parseAs === 'json') {\n if (opts.responseValidator) {\n await opts.responseValidator(data);\n }\n\n if (opts.responseTransformer) {\n data = await opts.responseTransformer(data);\n }\n }\n\n return opts.responseStyle === 'data'\n ? data\n : {\n data,\n ...result,\n };\n }\n\n const textError = await response.text();\n let jsonError: unknown;\n\n try {\n jsonError = JSON.parse(textError);\n } catch {\n // noop\n }\n\n throw jsonError ?? textError;\n } catch (error) {\n let finalError = error;\n\n for (const fn of interceptors.error.fns) {\n if (fn) {\n finalError = await fn(finalError, response, request, options as ResolvedRequestOptions);\n }\n }\n\n finalError = finalError || {};\n\n if (throwOnError) {\n throw finalError;\n }\n\n // TODO: we probably want to return error and improve types\n return responseStyle === 'data'\n ? undefined\n : {\n error: finalError,\n request,\n response,\n };\n }\n };\n\n const makeMethodFn = (method: Uppercase<HttpMethod>) => (options: RequestOptions) =>\n request({ ...options, method });\n\n const makeSseFn = (method: Uppercase<HttpMethod>) => async (options: RequestOptions) => {\n const { opts, url } = await beforeRequest(options);\n return createSseClient({\n ...opts,\n body: opts.body as BodyInit | null | undefined,\n method,\n onRequest: async (url, init) => {\n let request = new Request(url, init);\n for (const fn of interceptors.request.fns) {\n if (fn) {\n request = await fn(request, opts);\n }\n }\n return request;\n },\n serializedBody: getValidRequestBody(opts) as BodyInit | null | undefined,\n url,\n });\n };\n\n const _buildUrl: Client['buildUrl'] = (options) => buildUrl({ ..._config, ...options });\n\n return {\n buildUrl: _buildUrl,\n connect: makeMethodFn('CONNECT'),\n delete: makeMethodFn('DELETE'),\n get: makeMethodFn('GET'),\n getConfig,\n head: makeMethodFn('HEAD'),\n interceptors,\n options: makeMethodFn('OPTIONS'),\n patch: makeMethodFn('PATCH'),\n post: makeMethodFn('POST'),\n put: makeMethodFn('PUT'),\n request,\n setConfig,\n sse: {\n connect: makeSseFn('CONNECT'),\n delete: makeSseFn('DELETE'),\n get: makeSseFn('GET'),\n head: makeSseFn('HEAD'),\n options: makeSseFn('OPTIONS'),\n patch: makeSseFn('PATCH'),\n post: makeSseFn('POST'),\n put: makeSseFn('PUT'),\n trace: makeSseFn('TRACE'),\n },\n trace: makeMethodFn('TRACE'),\n } as Client;\n};\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport { type Client, type ClientOptions, type Config, createClient, createConfig } from './client';\nimport type { ClientOptions as ClientOptions2 } from './types.gen';\n\n/**\n * The `createClientConfig()` function will be called on client initialization\n * and the returned object will become the client's initial configuration.\n *\n * You may want to initialize your client this way instead of calling\n * `setConfig()`. This is useful for example if you're using Next.js\n * to ensure your client always has the correct values.\n */\nexport type CreateClientConfig<T extends ClientOptions = ClientOptions2> = (override?: Config<ClientOptions & T>) => Config<Required<ClientOptions> & T>;\n\nexport const client: Client = createClient(createConfig<ClientOptions2>());\n","// This file is auto-generated by @hey-api/openapi-ts\n\nimport type { Client, ClientMeta, Options as Options2, RequestResult, TDataShape } from './client';\nimport { client } from './client.gen';\nimport type { AdminUsersCreateData, AdminUsersCreateErrors, AdminUsersCreateResponses, AdminUsersDisableData, AdminUsersDisableErrors, AdminUsersDisableResponses, AdminUsersEnableData, AdminUsersEnableErrors, AdminUsersEnableResponses, AdminUsersListData, AdminUsersListErrors, AdminUsersListResponses, AdminUsersRemoveRoomRoleData, AdminUsersRemoveRoomRoleErrors, AdminUsersRemoveRoomRoleResponses, AdminUsersSetRoomRoleData, AdminUsersSetRoomRoleErrors, AdminUsersSetRoomRoleResponses, AdminUsersUpdateData, AdminUsersUpdateErrors, AdminUsersUpdateResponses, ApiKeysCreateData, ApiKeysCreateErrors, ApiKeysCreateResponses, ApiKeysListData, ApiKeysListErrors, ApiKeysListResponses, ApiKeysRevokeData, ApiKeysRevokeErrors, ApiKeysRevokeResponses, AttachmentsCompleteData, AttachmentsCompleteErrors, AttachmentsCompleteResponses, AttachmentsPresignData, AttachmentsPresignErrors, AttachmentsPresignResponses, BeforeUserCreatedCheckData, BeforeUserCreatedCheckErrors, BeforeUserCreatedCheckResponses, ConfigGetData, ConfigGetErrors, ConfigGetResponses, DeletionsGetData, DeletionsGetErrors, DeletionsGetResponses, EventsSendData, EventsSendErrors, EventsSendResponses, HandoffsCreateData, HandoffsCreateErrors, HandoffsCreateResponses, HandoffsGetData, HandoffsGetErrors, HandoffsGetResponses, HypothesesAcceptOwnershipData, HypothesesAcceptOwnershipErrors, HypothesesAcceptOwnershipResponses, HypothesesAddFindingData, HypothesesAddFindingErrors, HypothesesAddFindingResponses, HypothesesAddNoteData, HypothesesAddNoteErrors, HypothesesAddNoteResponses, HypothesesAdjustData, HypothesesAdjustErrors, HypothesesAdjustResponses, HypothesesApproveAdjustmentData, HypothesesApproveAdjustmentErrors, HypothesesApproveAdjustmentResponses, HypothesesAssignData, HypothesesAssignErrors, HypothesesAssignResponses, HypothesesConcludeData, HypothesesConcludeErrors, HypothesesConcludeResponses, HypothesesConfigData, HypothesesConfigErrors, HypothesesConfigResponses, HypothesesConfirmConclusionData, HypothesesConfirmConclusionErrors, HypothesesConfirmConclusionResponses, HypothesesCountsData, HypothesesCountsErrors, HypothesesCountsResponses, HypothesesCreateData, HypothesesCreateErrors, HypothesesCreateResponses, HypothesesDeclineOwnershipData, HypothesesDeclineOwnershipErrors, HypothesesDeclineOwnershipResponses, HypothesesGetData, HypothesesGetErrors, HypothesesGetResponses, HypothesesListData, HypothesesListErrors, HypothesesListNotesData, HypothesesListNotesErrors, HypothesesListNotesResponses, HypothesesListResponses, HypothesesNeedsMoreData, HypothesesNeedsMoreErrors, HypothesesNeedsMoreResponses, HypothesesOverrideData, HypothesesOverrideErrors, HypothesesOverrideResponses, HypothesesParkData, HypothesesParkErrors, HypothesesParkResponses, HypothesesPauseData, HypothesesPauseErrors, HypothesesPauseResponses, HypothesesRejectData, HypothesesRejectErrors, HypothesesRejectResponses, HypothesesResumeData, HypothesesResumeErrors, HypothesesResumeResponses, HypothesesSelectData, HypothesesSelectErrors, HypothesesSelectResponses, HypothesesSendBackConclusionData, HypothesesSendBackConclusionErrors, HypothesesSendBackConclusionResponses, HypothesesShortenDeadlineData, HypothesesShortenDeadlineErrors, HypothesesShortenDeadlineResponses, HypothesesStartData, HypothesesStartErrors, HypothesesStartResponses, HypothesesStartReviewData, HypothesesStartReviewErrors, HypothesesStartReviewResponses, HypothesesStopData, HypothesesStopErrors, HypothesesStopResponses, HypothesesSubmitData, HypothesesSubmitErrors, HypothesesSubmitResponses, HypothesesUnparkData, HypothesesUnparkErrors, HypothesesUnparkResponses, HypothesesUpdateData, HypothesesUpdateErrors, HypothesesUpdateResponses, HypothesesWithdrawData, HypothesesWithdrawErrors, HypothesesWithdrawResponses, KnownIssuesConfirmData, KnownIssuesConfirmErrors, KnownIssuesConfirmResponses, KnownIssuesCreateData, KnownIssuesCreateErrors, KnownIssuesCreateResponses, KnownIssuesGetData, KnownIssuesGetErrors, KnownIssuesGetResponses, KnownIssuesList2Data, KnownIssuesList2Errors, KnownIssuesList2Responses, KnownIssuesListData, KnownIssuesListErrors, KnownIssuesListResponses, KnownIssuesUpdateData, KnownIssuesUpdateErrors, KnownIssuesUpdateResponses, MeGetData, MeGetErrors, MeGetResponses, MeUpdateData, MeUpdateErrors, MeUpdateResponses, ProductsCreateData, ProductsCreateErrors, ProductsCreateResponses, ProductsListData, ProductsListErrors, ProductsListResponses, ProductsRevokeKeyData, ProductsRevokeKeyErrors, ProductsRevokeKeyResponses, ProductsRotateKeyData, ProductsRotateKeyErrors, ProductsRotateKeyResponses, ProductsUpdateData, ProductsUpdateErrors, ProductsUpdateResponses, ProgramsAcceptData, ProgramsAcceptErrors, ProgramsAcceptResponses, ProgramsCloseData, ProgramsCloseErrors, ProgramsCloseResponses, ProgramsCompleteTaskData, ProgramsCompleteTaskErrors, ProgramsCompleteTaskResponses, ProgramsCreateData, ProgramsCreateErrors, ProgramsCreateResponses, ProgramsDeclineData, ProgramsDeclineErrors, ProgramsDeclineResponses, ProgramsFlagConfirmedData, ProgramsFlagConfirmedErrors, ProgramsFlagConfirmedResponses, ProgramsGetData, ProgramsGetErrors, ProgramsGetReportData, ProgramsGetReportErrors, ProgramsGetReportResponses, ProgramsGetResponses, ProgramsInviteData, ProgramsInviteErrors, ProgramsInviteResponses, ProgramsListData, ProgramsListErrors, ProgramsListInvitationsData, ProgramsListInvitationsErrors, ProgramsListInvitationsResponses, ProgramsListMineData, ProgramsListMineErrors, ProgramsListMineResponses, ProgramsListParticipantsData, ProgramsListParticipantsErrors, ProgramsListParticipantsResponses, ProgramsListResponses, ProgramsReportData, ProgramsReportErrors, ProgramsReportResponses, ProgramsRespondData, ProgramsRespondErrors, ProgramsRespondResponses, ProgramsSegmentData, ProgramsSegmentErrors, ProgramsSegmentResponses, ProgramsUpdateData, ProgramsUpdateErrors, ProgramsUpdateResponses, ProgramsWithdrawData, ProgramsWithdrawErrors, ProgramsWithdrawResponses, SessionGetData, SessionGetErrors, SessionGetResponses, SettingsGetData, SettingsGetErrors, SettingsGetResponses, SettingsUpdateData, SettingsUpdateErrors, SettingsUpdateResponses, StatsGetData, StatsGetErrors, StatsGetResponses, SubjectsRemoveData, SubjectsRemoveErrors, SubjectsRemoveResponses, SubmissionsAddAddendumData, SubmissionsAddAddendumErrors, SubmissionsAddAddendumResponses, SubmissionsAddNoteData, SubmissionsAddNoteErrors, SubmissionsAddNoteResponses, SubmissionsAttachmentUrlData, SubmissionsAttachmentUrlErrors, SubmissionsAttachmentUrlResponses, SubmissionsCountsData, SubmissionsCountsErrors, SubmissionsCountsResponses, SubmissionsCreateData, SubmissionsCreateErrors, SubmissionsCreateResponses, SubmissionsGetData, SubmissionsGetErrors, SubmissionsGetResponses, SubmissionsListData, SubmissionsListErrors, SubmissionsListMineData, SubmissionsListMineErrors, SubmissionsListMineResponses, SubmissionsListResponses, SubmissionsRemoveAttachmentData, SubmissionsRemoveAttachmentErrors, SubmissionsRemoveAttachmentResponses, SubmissionsStatusData, SubmissionsStatusErrors, SubmissionsStatusResponses, SubmissionsUpdateData, SubmissionsUpdateErrors, SubmissionsUpdateResponses, SubmissionsUpdateStatusData, SubmissionsUpdateStatusErrors, SubmissionsUpdateStatusResponses, WebhooksCreateData, WebhooksCreateErrors, WebhooksCreateResponses, WebhooksGetData, WebhooksGetErrors, WebhooksGetResponses, WebhooksListData, WebhooksListDeliveriesData, WebhooksListDeliveriesErrors, WebhooksListDeliveriesResponses, WebhooksListErrors, WebhooksListResponses, WebhooksRemoveData, WebhooksRemoveErrors, WebhooksRemoveResponses, WebhooksRetryDeliveryData, WebhooksRetryDeliveryErrors, WebhooksRetryDeliveryResponses, WebhooksRotateSecretData, WebhooksRotateSecretErrors, WebhooksRotateSecretResponses, WebhooksTestData, WebhooksTestErrors, WebhooksTestResponses, WebhooksUpdateData, WebhooksUpdateErrors, WebhooksUpdateResponses, WebhooksVerifyData, WebhooksVerifyErrors, WebhooksVerifyResponses } from './types.gen';\n\nexport type Options<TData extends TDataShape = TDataShape, ThrowOnError extends boolean = boolean, TResponse = unknown> = Options2<TData, ThrowOnError, TResponse> & {\n /**\n * You can provide a client instance returned by `createClient()` instead of\n * individual options. This might be also useful if you want to implement a\n * custom client.\n */\n client?: Client;\n /**\n * You can pass arbitrary values through the `meta` object. This can be\n * used to access values that aren't defined as part of the SDK function.\n */\n meta?: keyof ClientMeta extends never ? Record<string, unknown> : ClientMeta;\n};\n\n/**\n * ApiKeys for Tenant-flaten, uten klartekst.\n */\nexport const apiKeysList = <ThrowOnError extends boolean = false>(options?: Options<ApiKeysListData, ThrowOnError>): RequestResult<ApiKeysListResponses, ApiKeysListErrors, ThrowOnError> => (options?.client ?? client).get<ApiKeysListResponses, ApiKeysListErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/api-keys',\n ...options\n});\n\n/**\n * Oppretter en scopet ApiKey. Klarteksten finnes kun i denne responsen (DD-20).\n */\nexport const apiKeysCreate = <ThrowOnError extends boolean = false>(options: Options<ApiKeysCreateData, ThrowOnError>): RequestResult<ApiKeysCreateResponses, ApiKeysCreateErrors, ThrowOnError> => (options.client ?? client).post<ApiKeysCreateResponses, ApiKeysCreateErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/api-keys',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Kaller tilbake.\n */\nexport const apiKeysRevoke = <ThrowOnError extends boolean = false>(options: Options<ApiKeysRevokeData, ThrowOnError>): RequestResult<ApiKeysRevokeResponses, ApiKeysRevokeErrors, ThrowOnError> => (options.client ?? client).delete<ApiKeysRevokeResponses, ApiKeysRevokeErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/api-keys/{id}',\n ...options\n});\n\n/**\n * Registeret, innboksen, «Mine hypoteser» (mine) og «Til deg» (assignedToMe). Uten filter: alt unntatt andres utkast. Sortering: «Avgjør nå» først, så «Hva mister vi hvis vi venter?» satt, så uten aktivitet, så eldst først (H6). Utkast vises bare til innsenderen.\n */\nexport const hypothesesList = <ThrowOnError extends boolean = false>(options?: Options<HypothesesListData, ThrowOnError>): RequestResult<HypothesesListResponses, HypothesesListErrors, ThrowOnError> => (options?.client ?? client).get<HypothesesListResponses, HypothesesListErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/hypotheses',\n ...options\n});\n\n/**\n * Oppretter et utkast på første lagring — tomt eller halvskrevet. Kalleren er innsenderen, navngitt fra første lagring. Utkastet lever på serveren (ingen localStorage, K8) og slettes etter 180 dager uten endring. Ingen audit-rad før «Send inn».\n */\nexport const hypothesesCreate = <ThrowOnError extends boolean = false>(options: Options<HypothesesCreateData, ThrowOnError>): RequestResult<HypothesesCreateResponses, HypothesesCreateErrors, ThrowOnError> => (options.client ?? client).post<HypothesesCreateResponses, HypothesesCreateErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/hypotheses',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Rommets ordlyd, frister, minimum, beslutningstakere og hjelpetekst — det innsendingsflaten trenger, lesbart for bidragsyter. TenantSettings er bak innspill:leser og bærer mer enn en ansatt skal se.\n */\nexport const hypothesesConfig = <ThrowOnError extends boolean = false>(options?: Options<HypothesesConfigData, ThrowOnError>): RequestResult<HypothesesConfigResponses, HypothesesConfigErrors, ThrowOnError> => (options?.client ?? client).get<HypothesesConfigResponses, HypothesesConfigErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/hypotheses/config',\n ...options\n});\n\n/**\n * Tellelinjen over registeret og innboksens topp (H20, DD-01). Regnes ved oppslag; andres utkast telles aldri.\n */\nexport const hypothesesCounts = <ThrowOnError extends boolean = false>(options?: Options<HypothesesCountsData, ThrowOnError>): RequestResult<HypothesesCountsResponses, HypothesesCountsErrors, ThrowOnError> => (options?.client ?? client).get<HypothesesCountsResponses, HypothesesCountsErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/hypotheses/counts',\n ...options\n});\n\n/**\n * Hypotesen i detalj med hele historikken. Notater er ikke med (eget kall, hypoteser:leser). Andres utkast: 404. Skriver ingen audit-rad (Kh9).\n */\nexport const hypothesesGet = <ThrowOnError extends boolean = false>(options: Options<HypothesesGetData, ThrowOnError>): RequestResult<HypothesesGetResponses, HypothesesGetErrors, ThrowOnError> => (options.client ?? client).get<HypothesesGetResponses, HypothesesGetErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/hypotheses/{id}',\n ...options\n});\n\n/**\n * Lagrer formen: autolagring i utkast, «innsenderen endrer» i mottatt og vurderes (ny revisjon, awaitingSubmitter nullstilles, fristen står). Bare innsenderen (403 not_submitter). Eldre baseVersion gir 409 draft_changed_elsewhere; andre statuser 409 wording_locked. AuditEntry hypothesis.revised for en revisjon, ingen for autolagring.\n */\nexport const hypothesesUpdate = <ThrowOnError extends boolean = false>(options: Options<HypothesesUpdateData, ThrowOnError>): RequestResult<HypothesesUpdateResponses, HypothesesUpdateErrors, ThrowOnError> => (options.client ?? client).patch<HypothesesUpdateResponses, HypothesesUpdateErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/hypotheses/{id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Den foreslåtte eieren tar eierskapet — forutsetningen for start (409 owner_not_accepted ellers). Bare den foreslåtte (403 not_proposed_owner), bare i valgt (409 invalid_status_transition). Idempotent. AuditEntry hypothesis.owner_taken.\n */\nexport const hypothesesAcceptOwnership = <ThrowOnError extends boolean = false>(options: Options<HypothesesAcceptOwnershipData, ThrowOnError>): RequestResult<HypothesesAcceptOwnershipResponses, HypothesesAcceptOwnershipErrors, ThrowOnError> => (options.client ?? client).post<HypothesesAcceptOwnershipResponses, HypothesesAcceptOwnershipErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/hypotheses/{id}/accept-ownership',\n ...options\n});\n\n/**\n * Overgang 7, valgt → valgt («Juster før start»): eieren eller vurdereren (403 not_owner). Bare i valgt før start (409 wording_locked). Gir en revisjon (justering) som må godkjennes før start. AuditEntry hypothesis.revised.\n */\nexport const hypothesesAdjust = <ThrowOnError extends boolean = false>(options: Options<HypothesesAdjustData, ThrowOnError>): RequestResult<HypothesesAdjustResponses, HypothesesAdjustErrors, ThrowOnError> => (options.client ?? client).post<HypothesesAdjustResponses, HypothesesAdjustErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/hypotheses/{id}/adjust',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Beslutningstakeren godkjenner siste justering (403 not_decider; 409 invalid_status_transition uten ugodkjent justering). approvedRevision settes; svaret (kind = justering) er obligatorisk og sendes nå. AuditEntry hypothesis.revised.\n */\nexport const hypothesesApproveAdjustment = <ThrowOnError extends boolean = false>(options: Options<HypothesesApproveAdjustmentData, ThrowOnError>): RequestResult<HypothesesApproveAdjustmentResponses, HypothesesApproveAdjustmentErrors, ThrowOnError> => (options.client ?? client).post<HypothesesApproveAdjustmentResponses, HypothesesApproveAdjustmentErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/hypotheses/{id}/approve-adjustment',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * «Gi videre»: ny eier og/eller ny beslutningstaker. Bare hypotesens beslutningstaker (403 not_decider), i valgt, testes og pa_pause (409 invalid_status_transition). Ny eier må ta eierskapet på nytt; ownerAcceptedAt nullstilles. Ingen begrunnelse, ingen svar. AuditEntry hypothesis.owner_taken ved eierbytte.\n */\nexport const hypothesesAssign = <ThrowOnError extends boolean = false>(options: Options<HypothesesAssignData, ThrowOnError>): RequestResult<HypothesesAssignResponses, HypothesesAssignErrors, ThrowOnError> => (options.client ?? client).post<HypothesesAssignResponses, HypothesesAssignErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/hypotheses/{id}/assign',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Eieren skriver eller skriver om konklusjonen (403 not_owner). Bare i testes (409 invalid_status_transition); fryst gir 409 conclusion_frozen. «Ingen» uten setning: 422 open_blocking_required / data_limitations_required. Statusen står i testes til beslutningstakeren bekrefter. Ingen svar til innsenderen ennå.\n */\nexport const hypothesesConclude = <ThrowOnError extends boolean = false>(options: Options<HypothesesConcludeData, ThrowOnError>): RequestResult<HypothesesConcludeResponses, HypothesesConcludeErrors, ThrowOnError> => (options.client ?? client).put<HypothesesConcludeResponses, HypothesesConcludeErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/hypotheses/{id}/conclusion',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Overgang 11, testes → konkludert: beslutningstakeren bekrefter (403 not_decider; 409 conclusion_missing uten konklusjon). Konklusjonen fryses; svaret er obligatorisk. AuditEntry hypothesis.status_changed. Telemetri hypothesis_concluded {outcome}.\n */\nexport const hypothesesConfirmConclusion = <ThrowOnError extends boolean = false>(options: Options<HypothesesConfirmConclusionData, ThrowOnError>): RequestResult<HypothesesConfirmConclusionResponses, HypothesesConfirmConclusionErrors, ThrowOnError> => (options.client ?? client).post<HypothesesConfirmConclusionResponses, HypothesesConfirmConclusionErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/hypotheses/{id}/conclusion/confirm',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Beslutningstakeren sender konklusjonen tilbake til eieren med en merknad (403 not_decider; 409 conclusion_missing). Ingen overgang, ingen svar til innsenderen; eieren skriver på nytt.\n */\nexport const hypothesesSendBackConclusion = <ThrowOnError extends boolean = false>(options: Options<HypothesesSendBackConclusionData, ThrowOnError>): RequestResult<HypothesesSendBackConclusionResponses, HypothesesSendBackConclusionErrors, ThrowOnError> => (options.client ?? client).post<HypothesesSendBackConclusionResponses, HypothesesSendBackConclusionErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/hypotheses/{id}/conclusion/send-back',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Den foreslåtte eieren avslår. owner nullstilles; beslutningstakeren navngir en ny med assign. Bare den foreslåtte (403 not_proposed_owner), bare i valgt før eierskapet er tatt (409 invalid_status_transition).\n */\nexport const hypothesesDeclineOwnership = <ThrowOnError extends boolean = false>(options: Options<HypothesesDeclineOwnershipData, ThrowOnError>): RequestResult<HypothesesDeclineOwnershipResponses, HypothesesDeclineOwnershipErrors, ThrowOnError> => (options.client ?? client).post<HypothesesDeclineOwnershipResponses, HypothesesDeclineOwnershipErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/hypotheses/{id}/decline-ownership',\n ...options\n});\n\n/**\n * Et funn, av eieren (403 not_owner). maalepunkt og observasjon i valgt, testes og pa_pause; rettelse bare i konkludert og stoppet (409 invalid_status_transition). Oppdaterer lastActivityAt. Telemetri hypothesis_measurement_point_recorded for maalepunkt — aldri verdien.\n */\nexport const hypothesesAddFinding = <ThrowOnError extends boolean = false>(options: Options<HypothesesAddFindingData, ThrowOnError>): RequestResult<HypothesesAddFindingResponses, HypothesesAddFindingErrors, ThrowOnError> => (options.client ?? client).post<HypothesesAddFindingResponses, HypothesesAddFindingErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/hypotheses/{id}/findings',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * «Trenger mer» — ikke en overgang. Bare i mottatt og vurderes (409 invalid_status_transition), maks tre (409 needs_more_limit), egen hypotese 403 own_hypothesis. Setter awaitingSubmitter; fristen løper. Svaret (kind = trenger_mer) er obligatorisk. Telemetri hypothesis_needs_more.\n */\nexport const hypothesesNeedsMore = <ThrowOnError extends boolean = false>(options: Options<HypothesesNeedsMoreData, ThrowOnError>): RequestResult<HypothesesNeedsMoreResponses, HypothesesNeedsMoreErrors, ThrowOnError> => (options.client ?? client).post<HypothesesNeedsMoreResponses, HypothesesNeedsMoreErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/hypotheses/{id}/needs-more',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Interne notater på hypotesen, eldste først. Bak hypoteser:leser med vilje: en bidragsyter ser aldri et notat (Kh7), heller ikke på en hypotese hun eier — det avgjøres på nytt når behovet er målt.\n */\nexport const hypothesesListNotes = <ThrowOnError extends boolean = false>(options: Options<HypothesesListNotesData, ThrowOnError>): RequestResult<HypothesesListNotesResponses, HypothesesListNotesErrors, ThrowOnError> => (options.client ?? client).get<HypothesesListNotesResponses, HypothesesListNotesErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/hypotheses/{id}/notes',\n ...options\n});\n\n/**\n * Internt notat (DD-23, DD-66). Forlater aldri panelet. Oppdaterer lastActivityAt.\n */\nexport const hypothesesAddNote = <ThrowOnError extends boolean = false>(options: Options<HypothesesAddNoteData, ThrowOnError>): RequestResult<HypothesesAddNoteResponses, HypothesesAddNoteErrors, ThrowOnError> => (options.client ?? client).post<HypothesesAddNoteResponses, HypothesesAddNoteErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/hypotheses/{id}/notes',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Beslutningstakeren løsner en lås før start med grunn: baseline_mangler eller uavklart_kilde (403 not_decider; ett_maalepunkt her gir 400). Bare i valgt (409 invalid_status_transition). Lagres i tidslinjen med navn, dato og grunn. AuditEntry hypothesis.override.\n */\nexport const hypothesesOverride = <ThrowOnError extends boolean = false>(options: Options<HypothesesOverrideData, ThrowOnError>): RequestResult<HypothesesOverrideResponses, HypothesesOverrideErrors, ThrowOnError> => (options.client ?? client).post<HypothesesOverrideResponses, HypothesesOverrideErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/hypotheses/{id}/override',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Overgang 4, vurderes → parkert. Beslutningstakeren eller vurdereren (behandler i rommet) — ellers 403 not_decider. Dato i morgen til 12 måneder (422 revisit_date_out_of_range), grunn obligatorisk. parkCount øker; ≥ 2 gir råd om å avvise, aldri en lås. AuditEntry hypothesis.status_changed.\n */\nexport const hypothesesPark = <ThrowOnError extends boolean = false>(options: Options<HypothesesParkData, ThrowOnError>): RequestResult<HypothesesParkResponses, HypothesesParkErrors, ThrowOnError> => (options.client ?? client).post<HypothesesParkResponses, HypothesesParkErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/hypotheses/{id}/park',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Overgang 9, valgt eller testes → pa_pause. Eieren eller beslutningstakeren (403 not_owner). Dato i morgen til 3 måneder (422 revisit_date_out_of_range), grunn obligatorisk. AuditEntry hypothesis.status_changed.\n */\nexport const hypothesesPause = <ThrowOnError extends boolean = false>(options: Options<HypothesesPauseData, ThrowOnError>): RequestResult<HypothesesPauseResponses, HypothesesPauseErrors, ThrowOnError> => (options.client ?? client).post<HypothesesPauseResponses, HypothesesPauseErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/hypotheses/{id}/pause',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Overgang 3, mottatt eller vurderes → avvist. Beslutningstakeren (fra hypothesisDeciders), eller vurdereren når hypothesisReviewerMayReject er på — ellers 403 not_decider. Egen hypotese 403 own_hypothesis. Krever kode og tekst med endret mal (422 template_unmodified). AuditEntry hypothesis.status_changed.\n */\nexport const hypothesesReject = <ThrowOnError extends boolean = false>(options: Options<HypothesesRejectData, ThrowOnError>): RequestResult<HypothesesRejectResponses, HypothesesRejectErrors, ThrowOnError> => (options.client ?? client).post<HypothesesRejectResponses, HypothesesRejectErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/hypotheses/{id}/reject',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Overgang 10, pa_pause → forrige status (valgt eller testes). Eieren eller beslutningstakeren (403 not_owner); 409 invalid_status_transition utenfor pa_pause. AuditEntry hypothesis.status_changed.\n */\nexport const hypothesesResume = <ThrowOnError extends boolean = false>(options: Options<HypothesesResumeData, ThrowOnError>): RequestResult<HypothesesResumeResponses, HypothesesResumeErrors, ThrowOnError> => (options.client ?? client).post<HypothesesResumeResponses, HypothesesResumeErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/hypotheses/{id}/resume',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Overgang 6, vurderes → valgt («Velg»). Kalleren må stå i hypothesisDeciders (403 not_decider) og blir hypotesens beslutningstaker; ikke innsenderen (422 decider_is_submitter); eieren navngis og er en annen (422 owner_is_decider, 404 admin_user_not_found, 422 validation_failed uten rolle i rommet). Svaret er obligatorisk. Eieren må ta eierskapet selv. AuditEntry hypothesis.status_changed.\n */\nexport const hypothesesSelect = <ThrowOnError extends boolean = false>(options: Options<HypothesesSelectData, ThrowOnError>): RequestResult<HypothesesSelectResponses, HypothesesSelectErrors, ThrowOnError> => (options.client ?? client).post<HypothesesSelectResponses, HypothesesSelectErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/hypotheses/{id}/select',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Korter avgjørelsesfristen (i vurderes) eller konklusjonsfristen (i testes). Aldri lengre (422 deadline_cannot_be_extended); feil status 409 invalid_status_transition. Synlig for innsenderen med hvem og når. AuditEntry hypothesis.deadline_changed.\n */\nexport const hypothesesShortenDeadline = <ThrowOnError extends boolean = false>(options: Options<HypothesesShortenDeadlineData, ThrowOnError>): RequestResult<HypothesesShortenDeadlineResponses, HypothesesShortenDeadlineErrors, ThrowOnError> => (options.client ?? client).post<HypothesesShortenDeadlineResponses, HypothesesShortenDeadlineErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/hypotheses/{id}/shorten-deadline',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Overgang 8, valgt → testes («Start testen»), av eieren (403 not_owner). Portene står på HypothesisStartRequest, hver med sin 409. Formen låses; konklusjonsfristen settes: testEndsOn + hypothesisConclusionDays. AuditEntry hypothesis.status_changed, og hypothesis.override ved «Start likevel».\n */\nexport const hypothesesStart = <ThrowOnError extends boolean = false>(options: Options<HypothesesStartData, ThrowOnError>): RequestResult<HypothesesStartResponses, HypothesesStartErrors, ThrowOnError> => (options.client ?? client).post<HypothesesStartResponses, HypothesesStartErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/hypotheses/{id}/start',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Overgang 2, mottatt → vurderes: vurdereren (behandler i rommet, eller eier) lagrer kvalitetssjekken og blir hypotesens vurderer. Avgjørelsesfristen settes: nå + hypothesisReviewDays. sourceCheck = ja setter sourceStatus = verifisert. Egen hypotese gir 403 own_hypothesis. AuditEntry hypothesis.status_changed.\n */\nexport const hypothesesStartReview = <ThrowOnError extends boolean = false>(options: Options<HypothesesStartReviewData, ThrowOnError>): RequestResult<HypothesesStartReviewResponses, HypothesesStartReviewErrors, ThrowOnError> => (options.client ?? client).post<HypothesesStartReviewResponses, HypothesesStartReviewErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/hypotheses/{id}/start-review',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Overgang 12, valgt, testes eller pa_pause → stoppet, av beslutningstakeren (403 not_decider). Stoppkode, de obligatoriske radene og svar med endret mal (422 template_unmodified / open_blocking_required / data_limitations_required). Lagres som HypothesisConclusion (kind = stopp), fryst. AuditEntry hypothesis.status_changed.\n */\nexport const hypothesesStop = <ThrowOnError extends boolean = false>(options: Options<HypothesesStopData, ThrowOnError>): RequestResult<HypothesesStopResponses, HypothesesStopErrors, ThrowOnError> => (options.client ?? client).post<HypothesesStopResponses, HypothesesStopErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/hypotheses/{id}/stop',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Overgang 1, utkast → mottatt («Send inn»). Portene: alle formfelt med minimum, terskel med tall, retning, enhet og dato, baseline med dato, oppdateringsfrekvens (409 hypothesis_incomplete med feltlista; 422 text_too_short; 422 threshold_not_numeric); visningsnavn satt (409 display_name_missing). Bare innsenderen (403 not_submitter). Gir revisjon 1 (innsending). Kvitteringen er løftet: nummeret og datoen vurderes ville gitt. AuditEntry hypothesis.submitted. Telemetri hypothesis_submitted {baseline_state} — aldri tekst.\n */\nexport const hypothesesSubmit = <ThrowOnError extends boolean = false>(options: Options<HypothesesSubmitData, ThrowOnError>): RequestResult<HypothesesSubmitResponses, HypothesesSubmitErrors, ThrowOnError> => (options.client ?? client).post<HypothesesSubmitResponses, HypothesesSubmitErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/hypotheses/{id}/submit',\n ...options\n});\n\n/**\n * Overgang 5, parkert → vurderes, alltid av et menneske — aldri av seg selv på revisitAt. Ny avgjørelsesfrist fra nå. 409 invalid_status_transition utenfor parkert. AuditEntry hypothesis.status_changed.\n */\nexport const hypothesesUnpark = <ThrowOnError extends boolean = false>(options: Options<HypothesesUnparkData, ThrowOnError>): RequestResult<HypothesesUnparkResponses, HypothesesUnparkErrors, ThrowOnError> => (options.client ?? client).post<HypothesesUnparkResponses, HypothesesUnparkErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/hypotheses/{id}/unpark',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Overgang 14, mottatt, vurderes eller parkert → trukket. Bare innsenderen (403 not_submitter); andre statuser 409 invalid_status_transition. Hypotesen blir stående. AuditEntry hypothesis.status_changed.\n */\nexport const hypothesesWithdraw = <ThrowOnError extends boolean = false>(options: Options<HypothesesWithdrawData, ThrowOnError>): RequestResult<HypothesesWithdrawResponses, HypothesesWithdrawErrors, ThrowOnError> => (options.client ?? client).post<HypothesesWithdrawResponses, HypothesesWithdrawErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/hypotheses/{id}/withdraw',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Registeret (M2.4): alle kjente feil med tellere.\n */\nexport const knownIssuesList = <ThrowOnError extends boolean = false>(options?: Options<KnownIssuesListData, ThrowOnError>): RequestResult<KnownIssuesListResponses, KnownIssuesListErrors, ThrowOnError> => (options?.client ?? client).get<KnownIssuesListResponses, KnownIssuesListErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/known-issues',\n ...options\n});\n\n/**\n * Oppretter en kjent feil, fra bunnen eller fra en sak («Gjør til kjent feil», f i innboksen). Med fromSubmissionId går saken til kjent_feil og teller i Reach.\n */\nexport const knownIssuesCreate = <ThrowOnError extends boolean = false>(options: Options<KnownIssuesCreateData, ThrowOnError>): RequestResult<KnownIssuesCreateResponses, KnownIssuesCreateErrors, ThrowOnError> => (options.client ?? client).post<KnownIssuesCreateResponses, KnownIssuesCreateErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/known-issues',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Én kjent feil med tellere — hent den FØR PATCH til fikset, så panelet kan vise hvor mange som varsles (M2.4).\n */\nexport const knownIssuesGet = <ThrowOnError extends boolean = false>(options: Options<KnownIssuesGetData, ThrowOnError>): RequestResult<KnownIssuesGetResponses, KnownIssuesGetErrors, ThrowOnError> => (options.client ?? client).get<KnownIssuesGetResponses, KnownIssuesGetErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/known-issues/{id}',\n ...options\n});\n\n/**\n * Oppdaterer. status = fikset krever fixedIn (422 fixed_in_required), emitterer known_issue.fixed én gang til alle med Reach (DD-31) og tar sakene med knownIssueId til statusType complete. fikset → aktiv finnes ikke (409 invalid_status_transition).\n */\nexport const knownIssuesUpdate = <ThrowOnError extends boolean = false>(options: Options<KnownIssuesUpdateData, ThrowOnError>): RequestResult<KnownIssuesUpdateResponses, KnownIssuesUpdateErrors, ThrowOnError> => (options.client ?? client).patch<KnownIssuesUpdateResponses, KnownIssuesUpdateErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/known-issues/{id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Hvem er jeg — panelets første kall etter at sesjonen slipper inn. Beviser at sesjonen oppfyller leietakerens tofaktorkrav (ellers 403 mfa_required) og at brukeren har et sete hos en leietaker (ellers 401 — også når kontoen er deaktivert). Er setet bundet av hooken før-bruker-opprettes men aldri brukt, aktiveres det her (activatedAt settes, AuditEntry admin_user.activated) — den ene skrivingen dette kallet gjør, én gang per sete. Fordi kallet ligger bak gaten, kan et sete aldri tas i bruk av noen som ikke har fullført tofaktoren leietakeren krever. Tokenets e-postclaim leses aldri.\n */\nexport const meGet = <ThrowOnError extends boolean = false>(options?: Options<MeGetData, ThrowOnError>): RequestResult<MeGetResponses, MeGetErrors, ThrowOnError> => (options?.client ?? client).get<MeGetResponses, MeGetErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/me',\n ...options\n});\n\n/**\n * Setter eget visningsnavn («Visningsnavn på adminbrukeren», 2026-09-25). Bare eget: en eier kan aldri sette navnet på andre, og ingen leser det fra innloggingstjenesten. Skrives gjennom en SECURITY DEFINER-funksjon (API-rollen har ikke UPDATE på kolonnen). AuditEntry admin_user.display_name_changed — aldri navnet selv.\n */\nexport const meUpdate = <ThrowOnError extends boolean = false>(options: Options<MeUpdateData, ThrowOnError>): RequestResult<MeUpdateResponses, MeUpdateErrors, ThrowOnError> => (options.client ?? client).patch<MeUpdateResponses, MeUpdateErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/me',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Produktene med SDK-nøkler (kun prefiks).\n */\nexport const productsList = <ThrowOnError extends boolean = false>(options?: Options<ProductsListData, ThrowOnError>): RequestResult<ProductsListResponses, ProductsListErrors, ThrowOnError> => (options?.client ?? client).get<ProductsListResponses, ProductsListErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/products',\n ...options\n});\n\n/**\n * Oppretter et produkt med én SDK-nøkkel; klarteksten står i keys[0].key og finnes aldri igjen (DD-20).\n */\nexport const productsCreate = <ThrowOnError extends boolean = false>(options: Options<ProductsCreateData, ThrowOnError>): RequestResult<ProductsCreateResponses, ProductsCreateErrors, ThrowOnError> => (options.client ?? client).post<ProductsCreateResponses, ProductsCreateErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/products',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Oppdaterer navn, plattformer, bundle-ID-er og origins.\n */\nexport const productsUpdate = <ThrowOnError extends boolean = false>(options: Options<ProductsUpdateData, ThrowOnError>): RequestResult<ProductsUpdateResponses, ProductsUpdateErrors, ThrowOnError> => (options.client ?? client).patch<ProductsUpdateResponses, ProductsUpdateErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/products/{id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Roterer: oppretter en ny SDK-nøkkel ved siden av den gamle, så begge er gyldige til den gamle kalles tilbake (K3). Maks to aktive — finnes det allerede to, avvises rotasjonen med 409 invalid_status_transition; kall én tilbake først. Klarteksten kun her (DD-20).\n */\nexport const productsRotateKey = <ThrowOnError extends boolean = false>(options: Options<ProductsRotateKeyData, ThrowOnError>): RequestResult<ProductsRotateKeyResponses, ProductsRotateKeyErrors, ThrowOnError> => (options.client ?? client).post<ProductsRotateKeyResponses, ProductsRotateKeyErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/products/{id}/keys',\n ...options\n});\n\n/**\n * Kaller tilbake en SDK-nøkkel. Klienter med den nøkkelen får 401 fra neste kall.\n */\nexport const productsRevokeKey = <ThrowOnError extends boolean = false>(options: Options<ProductsRevokeKeyData, ThrowOnError>): RequestResult<ProductsRevokeKeyResponses, ProductsRevokeKeyErrors, ThrowOnError> => (options.client ?? client).delete<ProductsRevokeKeyResponses, ProductsRevokeKeyErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/products/{id}/keys/{keyId}',\n ...options\n});\n\n/**\n * Alle programmer.\n */\nexport const programsList = <ThrowOnError extends boolean = false>(options?: Options<ProgramsListData, ThrowOnError>): RequestResult<ProgramsListResponses, ProgramsListErrors, ThrowOnError> => (options?.client ?? client).get<ProgramsListResponses, ProgramsListErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/programs',\n ...options\n});\n\n/**\n * Oppretter program i utkast (4a). Ved minorsPresent tvinges commitmentFree og termsUrl avvises (422 minors_present_conflict); maxContacts over leietakerens tak gir 422 contacts_exceed_tenant_cap.\n */\nexport const programsCreate = <ThrowOnError extends boolean = false>(options: Options<ProgramsCreateData, ThrowOnError>): RequestResult<ProgramsCreateResponses, ProgramsCreateErrors, ThrowOnError> => (options.client ?? client).post<ProgramsCreateResponses, ProgramsCreateErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/programs',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Programsiden (4c) med tellere.\n */\nexport const programsGet = <ThrowOnError extends boolean = false>(options: Options<ProgramsGetData, ThrowOnError>): RequestResult<ProgramsGetResponses, ProgramsGetErrors, ThrowOnError> => (options.client ?? client).get<ProgramsGetResponses, ProgramsGetErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/programs/{id}',\n ...options\n});\n\n/**\n * Oppdaterer og flytter status. aapen krever hypotese, suksesskriterium og ≥ 1 oppgave med estimatedMinutes — 409 program_incomplete med hva som mangler (forklart lås, DD-17). avbrutt krever cancelReason og emitterer program.closed. aktiv kan ikke settes herfra. Oppgaver kan ikke endres etter aapen.\n */\nexport const programsUpdate = <ThrowOnError extends boolean = false>(options: Options<ProgramsUpdateData, ThrowOnError>): RequestResult<ProgramsUpdateResponses, ProgramsUpdateErrors, ThrowOnError> => (options.client ?? client).patch<ProgramsUpdateResponses, ProgramsUpdateErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/programs/{id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Utsendte invitasjoner uten token — sendt, akseptert, avslått, utløpt.\n */\nexport const programsListInvitations = <ThrowOnError extends boolean = false>(options: Options<ProgramsListInvitationsData, ThrowOnError>): RequestResult<ProgramsListInvitationsResponses, ProgramsListInvitationsErrors, ThrowOnError> => (options.client ?? client).get<ProgramsListInvitationsResponses, ProgramsListInvitationsErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/programs/{id}/invitations',\n ...options\n});\n\n/**\n * Inviterer pseudonymer (4b). Krever aapen (409 invalid_status_transition). Tokenet finnes i denne responsen og i webhooken program.invitation_created (én per invitasjon) — aldri i noe GET-svar. Leietakeren løser subject → bruker og sender tokenet gjennom egen kanal; plattformen sender aldri (DD-12). Et subject med aktiv invitasjon roterer: nytt token, det gamle slutter å virke.\n */\nexport const programsInvite = <ThrowOnError extends boolean = false>(options: Options<ProgramsInviteData, ThrowOnError>): RequestResult<ProgramsInviteResponses, ProgramsInviteErrors, ThrowOnError> => (options.client ?? client).post<ProgramsInviteResponses, ProgramsInviteErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/programs/{id}/invitations',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Deltakerne med flaggstatus (DD-36): «invitert, ikke slått på» og «trukket, flagg ikke bekreftet av» er egne tilstander. Ingen sortering på aktivitet, ingen score (DD-38).\n */\nexport const programsListParticipants = <ThrowOnError extends boolean = false>(options: Options<ProgramsListParticipantsData, ThrowOnError>): RequestResult<ProgramsListParticipantsResponses, ProgramsListParticipantsErrors, ThrowOnError> => (options.client ?? client).get<ProgramsListParticipantsResponses, ProgramsListParticipantsErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/programs/{id}/participants',\n ...options\n});\n\n/**\n * Den frosne rapporten. 404 report_not_found før programmet er avsluttet.\n */\nexport const programsGetReport = <ThrowOnError extends boolean = false>(options: Options<ProgramsGetReportData, ThrowOnError>): RequestResult<ProgramsGetReportResponses, ProgramsGetReportErrors, ThrowOnError> => (options.client ?? client).get<ProgramsGetReportResponses, ProgramsGetReportErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/programs/{id}/report',\n ...options\n});\n\n/**\n * Avslutter programmet og fryser rapporten (4d, DD-35). Krever avsluttes eller aktiv (409 invalid_status_transition); allerede fryst gir 409 report_frozen. Under 30 svar: dataLimitations kan ikke være tom (422 data_limitations_required) og payload har ingen prosent. Emitterer program.closed. Samme tall går til testerens takk.\n */\nexport const programsClose = <ThrowOnError extends boolean = false>(options: Options<ProgramsCloseData, ThrowOnError>): RequestResult<ProgramsCloseResponses, ProgramsCloseErrors, ThrowOnError> => (options.client ?? client).post<ProgramsCloseResponses, ProgramsCloseErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/programs/{id}/report',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Kreves tofaktor her, og hvor lenge lever sesjonen — panelets aller første kall etter\n * første faktor. **Dette er det eneste endepunktet på admin-flaten som svarer på en\n * `aal1`-sesjon, og det er med vilje smalt.**\n *\n * Tofaktor kan være av per leietaker (`TenantSettings.adminMfaRequired`), og panelet kan\n * ikke vite hvilken skjerm det skal vise etter første faktor før det har spurt — men det\n * kan ikke spørre bak en gate som forutsetter svaret. Dette kallet er den luken, og den er\n * lukket rundt to felter: kravet og utløpet. Alle ANDRE admin-endepunkter, `GET\n * /v1/admin/me` inkludert, gir 403 `mfa_required` til en `aal1`-sesjon når leietakerens\n * krav er på.\n *\n * **Kallet leser og skriver ingenting annet.** Det aktiverer ikke et ventende sete —\n * aktiveringen hører til `GET /v1/admin/me` og skjer derfor aldri uten en sesjon som\n * oppfyller leietakerens krav. Det logger ingen AuditEntry: det åpner ikke et skjermbilde\n * og endrer ingenting (K7). Tokenets e-postclaim leses aldri.\n *\n * **Feiler lukket:** kan leietakerens innstilling ikke leses, svarer kallet 200 med\n * `adminMfaRequired` = `true`. Et krav som forsvinner når noe går galt, er ikke et krav.\n *\n * 401 er det eneste avslaget, og betydningen er uendret: ukjent eller utløpt token, sete\n * som mangler, konto som er deaktivert, sesjon over åtte timer. 403 kan ikke oppstå her —\n * et svar som skal FORTELLE om tofaktor kreves, kan ikke være betinget av at den er\n * fullført.\n */\nexport const sessionGet = <ThrowOnError extends boolean = false>(options?: Options<SessionGetData, ThrowOnError>): RequestResult<SessionGetResponses, SessionGetErrors, ThrowOnError> => (options?.client ?? client).get<SessionGetResponses, SessionGetErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/session',\n ...options\n});\n\n/**\n * Leietakerens innstillinger (5d) inkludert community-sjekklisten med rødt/grønt per krav (DD-18). Ingen hemmeligheter (DD-20).\n */\nexport const settingsGet = <ThrowOnError extends boolean = false>(options?: Options<SettingsGetData, ThrowOnError>): RequestResult<SettingsGetResponses, SettingsGetErrors, ThrowOnError> => (options?.client ?? client).get<SettingsGetResponses, SettingsGetErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/settings',\n ...options\n});\n\n/**\n * Oppdaterer innstillinger. minorsPresent = true strammer alt i samme\n * forespørsel; en verdi som strider mot minorsPresent gir 422 minors_present_conflict med\n * feltet i meldingen (K18). Frist og kontakter kan senkes, aldri heves over 90 / 3.\n *\n * `adminMfaRequired` = false slår av tofaktorkravet for leietakerens adminbrukere og gir\n * AuditEntry `settings.mfa_disabled` i tillegg til `settings.changed`; motsatt vei gir\n * `settings.mfa_enabled` (K7). Kallet krever `aal2` så lenge kravet står PÅ — å slå det av\n * kan derfor aldri gjøres fra en sesjon som ikke selv har fullført tofaktor. Endringen\n * gjelder fra neste admin-kall og logger ingen ut. Åtte-timersregelen er uberørt (K8).\n *\n * Rommet Hypoteser (H1.2): `hypothesisDeciders` krever at rommet er skrudd på (422\n * `room_not_enabled`) og at hver id er en aktiv panelbruker med minst bidragsyter der, eller\n * eier (422 `validation_failed`). Fristene kan senkes, aldri heves over 90. Ingen innstilling\n * skrur rommet på — det gjør bare plattformen, i `Tenant.rooms`.\n */\nexport const settingsUpdate = <ThrowOnError extends boolean = false>(options: Options<SettingsUpdateData, ThrowOnError>): RequestResult<SettingsUpdateResponses, SettingsUpdateErrors, ThrowOnError> => (options.client ?? client).patch<SettingsUpdateResponses, SettingsUpdateErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/settings',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Leietakerens egne tall for de siste ukene (M4.2, maaling.md): statusflyt inn/ut per uke, tragten i widgeten, innsendinger og anonyme per uke, SDK-versjonsspredning, sløyfen ut, saker per adminøkt og gjentakende innsendere. Tellinger, aldri prosent — panelet regner, og aldri under 30 (DD-16). Regnes ved oppslag.\n */\nexport const statsGet = <ThrowOnError extends boolean = false>(options?: Options<StatsGetData, ThrowOnError>): RequestResult<StatsGetResponses, StatsGetErrors, ThrowOnError> => (options?.client ?? client).get<StatsGetResponses, StatsGetErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/stats',\n ...options\n});\n\n/**\n * Innboksen og Saker (DD-01, DD-11). Uten filter: alt. statusType = reviewing er innboksen; overdue og inactive gir «Avgjør nå» og DD-25-varslene. Sortering: overdue først, så inactive, så eldst først — de tre eldste uten aktivitet teller på toppen.\n */\nexport const submissionsList = <ThrowOnError extends boolean = false>(options?: Options<SubmissionsListData, ThrowOnError>): RequestResult<SubmissionsListResponses, SubmissionsListErrors, ThrowOnError> => (options?.client ?? client).get<SubmissionsListResponses, SubmissionsListErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/submissions',\n ...options\n});\n\n/**\n * Tellingen som ER forsiden: «40 til vurdering · 3 uten aktivitet · 3 over frist» (DD-01, DD-52).\n */\nexport const submissionsCounts = <ThrowOnError extends boolean = false>(options?: Options<SubmissionsCountsData, ThrowOnError>): RequestResult<SubmissionsCountsResponses, SubmissionsCountsErrors, ThrowOnError> => (options?.client ?? client).get<SubmissionsCountsResponses, SubmissionsCountsErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/submissions/counts',\n ...options\n});\n\n/**\n * Saken i detalj, med notater, svar, dedupe-forslag (maks tre, null hvis tjenesten ikke svarte) og vedleggsmetadata. Åpning av detaljen logges (AuditEntry: hvem så hvilken innsending).\n */\nexport const submissionsGet = <ThrowOnError extends boolean = false>(options: Options<SubmissionsGetData, ThrowOnError>): RequestResult<SubmissionsGetResponses, SubmissionsGetErrors, ThrowOnError> => (options.client ?? client).get<SubmissionsGetResponses, SubmissionsGetErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/submissions/{id}',\n ...options\n});\n\n/**\n * Triage i én forespørsel — status, sammenslåing, kjent feil, frist, svar. Reglene står på SubmissionUpdate. Emitterer submission.status_changed (ÉN, for siste steg, også når status hopper flere steg fram på hovedlinjen — F30) og/eller submission.replied via webhook; en sammenslåing emitterer INGENTING (DD-24). Svaret er saken etter endringen.\n */\nexport const submissionsUpdate = <ThrowOnError extends boolean = false>(options: Options<SubmissionsUpdateData, ThrowOnError>): RequestResult<SubmissionsUpdateResponses, SubmissionsUpdateErrors, ThrowOnError> => (options.client ?? client).patch<SubmissionsUpdateResponses, SubmissionsUpdateErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/submissions/{id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Fjerner sakens vedlegg — f.eks. et bilde av andre personer. Objektet slettes i lagringen, saken står uendret, og fjerningen logges (AuditEntry attachment.removed: hvem og når, aldri hvorfor). Kan ikke angres. Etter fjerning har SubmissionDetail attachmentRemovedAt og SubmissionStatusView attachmentRemoved: innsenderen ser i «mine innspill» at bildet er fjernet, uten begrunnelse. Ingen webhook. 404 attachment_not_found når saken ikke har et ferdig behandlet vedlegg, eller det alt er fjernet — samme regel som attachment-url, og det som ikke er ferdig behandlet kan behandleren heller ikke ha sett. En leser får 403.\n */\nexport const submissionsRemoveAttachment = <ThrowOnError extends boolean = false>(options: Options<SubmissionsRemoveAttachmentData, ThrowOnError>): RequestResult<SubmissionsRemoveAttachmentResponses, SubmissionsRemoveAttachmentErrors, ThrowOnError> => (options.client ?? client).delete<SubmissionsRemoveAttachmentResponses, SubmissionsRemoveAttachmentErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/submissions/{id}/attachment',\n ...options\n});\n\n/**\n * Korttidsgyldig URL til sakens skjermbilde. Logges som «åpnet skjermbilde» (rapport 5). 404 attachment_not_found når saken ikke har vedlegg, det ikke er ferdig behandlet, eller det er fjernet.\n */\nexport const submissionsAttachmentUrl = <ThrowOnError extends boolean = false>(options: Options<SubmissionsAttachmentUrlData, ThrowOnError>): RequestResult<SubmissionsAttachmentUrlResponses, SubmissionsAttachmentUrlErrors, ThrowOnError> => (options.client ?? client).get<SubmissionsAttachmentUrlResponses, SubmissionsAttachmentUrlErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/submissions/{id}/attachment-url',\n ...options\n});\n\n/**\n * Internt notat — standardfeltet behandleren skriver i (DD-23). Forlater aldri panelet. Oppdaterer lastActivityAt.\n */\nexport const submissionsAddNote = <ThrowOnError extends boolean = false>(options: Options<SubmissionsAddNoteData, ThrowOnError>): RequestResult<SubmissionsAddNoteResponses, SubmissionsAddNoteErrors, ThrowOnError> => (options.client ?? client).post<SubmissionsAddNoteResponses, SubmissionsAddNoteErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/submissions/{id}/notes',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Leietakerens panelbrukere: aktive, ventende (activatedAt tomt) og deaktiverte.\n */\nexport const adminUsersList = <ThrowOnError extends boolean = false>(options?: Options<AdminUsersListData, ThrowOnError>): RequestResult<AdminUsersListResponses, AdminUsersListErrors, ThrowOnError> => (options?.client ?? client).get<AdminUsersListResponses, AdminUsersListErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/users',\n ...options\n});\n\n/**\n * Gir et sete: oppretter panelbrukeren med adresse, rolle og rom-roller i én transaksjon, ventende til første innlogging. Adressen normaliseres (små bokstaver, trimmet) og må være ledig blant ikke-deaktiverte seter på tvers av leietakere — én bruker, én leietaker — ellers 409 admin_user_email_taken uten å si hvor. Feiler noe, finnes ingenting av setet. AuditEntry admin_user.created, og admin_user.room_role_changed per rom i roomAccess.\n */\nexport const adminUsersCreate = <ThrowOnError extends boolean = false>(options: Options<AdminUsersCreateData, ThrowOnError>): RequestResult<AdminUsersCreateResponses, AdminUsersCreateErrors, ThrowOnError> => (options.client ?? client).post<AdminUsersCreateResponses, AdminUsersCreateErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/users',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Endrer tilgangen: rollen og, for et medlem, rom-rollene, i én transaksjon — «Lagre tilgangen» er ett kall. Gjelder fra brukerens neste kall — rollene leses fra databasen, aldri fra tokenet. Idempotent: samme tilgang igjen gir 200 uten audit-rad. Egen konto gir 409 cannot_change_own_role. Feiler noe, er ingenting endret. AuditEntry admin_user.role_changed når rollen endres, og admin_user.room_role_changed per rom som endres.\n */\nexport const adminUsersUpdate = <ThrowOnError extends boolean = false>(options: Options<AdminUsersUpdateData, ThrowOnError>): RequestResult<AdminUsersUpdateResponses, AdminUsersUpdateErrors, ThrowOnError> => (options.client ?? client).patch<AdminUsersUpdateResponses, AdminUsersUpdateErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/users/{id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Deaktiverer kontoen. Brukerens neste admin-kall gir 401 unauthenticated uansett hvor ferskt Supabase-tokenet er — sesjonen overlever ikke. Raden står, og alt hun gjorde er fortsatt sporbart. Idempotent: en alt deaktivert konto gir 204. Egen konto gir 409 cannot_disable_self — det er regelen som garanterer minst én aktiv eier. AuditEntry admin_user.disabled.\n */\nexport const adminUsersDisable = <ThrowOnError extends boolean = false>(options: Options<AdminUsersDisableData, ThrowOnError>): RequestResult<AdminUsersDisableResponses, AdminUsersDisableErrors, ThrowOnError> => (options.client ?? client).post<AdminUsersDisableResponses, AdminUsersDisableErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/users/{id}/disable',\n ...options\n});\n\n/**\n * Reaktiverer en deaktivert konto. Idempotent: en aktiv konto gir 204. AuditEntry admin_user.enabled.\n */\nexport const adminUsersEnable = <ThrowOnError extends boolean = false>(options: Options<AdminUsersEnableData, ThrowOnError>): RequestResult<AdminUsersEnableResponses, AdminUsersEnableErrors, ThrowOnError> => (options.client ?? client).post<AdminUsersEnableResponses, AdminUsersEnableErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/users/{id}/enable',\n ...options\n});\n\n/**\n * Tar et medlems tilgang til ett arbeidsrom. Idempotent: et rom brukeren ikke har rolle i gir 204 uten audit-rad. Fjernes det siste rommet, ser brukeren ingenting i panelet til en eier gir det et rom. 404 admin_user_not_found for en bruker som ikke finnes hos leietakeren; egen konto gir 409 cannot_change_own_role; en eier gir 409 owner_has_all_rooms. AuditEntry admin_user.room_role_changed.\n */\nexport const adminUsersRemoveRoomRole = <ThrowOnError extends boolean = false>(options: Options<AdminUsersRemoveRoomRoleData, ThrowOnError>): RequestResult<AdminUsersRemoveRoomRoleResponses, AdminUsersRemoveRoomRoleErrors, ThrowOnError> => (options.client ?? client).delete<AdminUsersRemoveRoomRoleResponses, AdminUsersRemoveRoomRoleErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/users/{id}/rooms/{room}',\n ...options\n});\n\n/**\n * Gir eller endrer et medlems rolle i ett arbeidsrom. Idempotent: samme rolle igjen gir 200 uten ny audit-rad. Gjelder fra brukerens neste kall — rollene leses fra databasen, aldri fra tokenet. 404 admin_user_not_found for en bruker som ikke finnes hos leietakeren; egen konto gir 409 cannot_change_own_role; en eier gir 409 owner_has_all_rooms; et rom leietakeren ikke har skrudd på gir 422 room_not_enabled; bidragsyter i et annet rom enn hypoteser gir 422 validation_failed. AuditEntry admin_user.room_role_changed.\n */\nexport const adminUsersSetRoomRole = <ThrowOnError extends boolean = false>(options: Options<AdminUsersSetRoomRoleData, ThrowOnError>): RequestResult<AdminUsersSetRoomRoleResponses, AdminUsersSetRoomRoleErrors, ThrowOnError> => (options.client ?? client).put<AdminUsersSetRoomRoleResponses, AdminUsersSetRoomRoleErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/users/{id}/rooms/{room}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Registrerte webhooks.\n */\nexport const webhooksList = <ThrowOnError extends boolean = false>(options?: Options<WebhooksListData, ThrowOnError>): RequestResult<WebhooksListResponses, WebhooksListErrors, ThrowOnError> => (options?.client ?? client).get<WebhooksListResponses, WebhooksListErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/webhooks',\n ...options\n});\n\n/**\n * Registrerer en mottaker. Opprettes inaktiv og uverifisert; secret finnes kun her (DD-20). https påkrevd, private nett avvises (400 validation_failed).\n */\nexport const webhooksCreate = <ThrowOnError extends boolean = false>(options: Options<WebhooksCreateData, ThrowOnError>): RequestResult<WebhooksCreateResponses, WebhooksCreateErrors, ThrowOnError> => (options.client ?? client).post<WebhooksCreateResponses, WebhooksCreateErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/webhooks',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Sletter webhooken og dens leveringslogg.\n */\nexport const webhooksRemove = <ThrowOnError extends boolean = false>(options: Options<WebhooksRemoveData, ThrowOnError>): RequestResult<WebhooksRemoveResponses, WebhooksRemoveErrors, ThrowOnError> => (options.client ?? client).delete<WebhooksRemoveResponses, WebhooksRemoveErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/webhooks/{id}',\n ...options\n});\n\n/**\n * Én webhook.\n */\nexport const webhooksGet = <ThrowOnError extends boolean = false>(options: Options<WebhooksGetData, ThrowOnError>): RequestResult<WebhooksGetResponses, WebhooksGetErrors, ThrowOnError> => (options.client ?? client).get<WebhooksGetResponses, WebhooksGetErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/webhooks/{id}',\n ...options\n});\n\n/**\n * Oppdaterer. Ny url nullstiller verifiseringen; active = true krever verifisert (409 webhook_not_verified).\n */\nexport const webhooksUpdate = <ThrowOnError extends boolean = false>(options: Options<WebhooksUpdateData, ThrowOnError>): RequestResult<WebhooksUpdateResponses, WebhooksUpdateErrors, ThrowOnError> => (options.client ?? client).patch<WebhooksUpdateResponses, WebhooksUpdateErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/webhooks/{id}',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Leveringsloggen. status = dead er dead-letter-listen som skal være synlig i panelet (låst).\n */\nexport const webhooksListDeliveries = <ThrowOnError extends boolean = false>(options: Options<WebhooksListDeliveriesData, ThrowOnError>): RequestResult<WebhooksListDeliveriesResponses, WebhooksListDeliveriesErrors, ThrowOnError> => (options.client ?? client).get<WebhooksListDeliveriesResponses, WebhooksListDeliveriesErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/webhooks/{id}/deliveries',\n ...options\n});\n\n/**\n * Prøver en dead-letter-levering på nytt, én gang, med samme event_id (idempotent hos mottakeren). Krever status dead (409 invalid_status_transition).\n */\nexport const webhooksRetryDelivery = <ThrowOnError extends boolean = false>(options: Options<WebhooksRetryDeliveryData, ThrowOnError>): RequestResult<WebhooksRetryDeliveryResponses, WebhooksRetryDeliveryErrors, ThrowOnError> => (options.client ?? client).post<WebhooksRetryDeliveryResponses, WebhooksRetryDeliveryErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/webhooks/{id}/deliveries/{deliveryId}/retry',\n ...options\n});\n\n/**\n * Roterer secret. Den nye finnes kun i denne responsen; den gamle er ugyldig straks.\n */\nexport const webhooksRotateSecret = <ThrowOnError extends boolean = false>(options: Options<WebhooksRotateSecretData, ThrowOnError>): RequestResult<WebhooksRotateSecretResponses, WebhooksRotateSecretErrors, ThrowOnError> => (options.client ?? client).post<WebhooksRotateSecretResponses, WebhooksRotateSecretErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/webhooks/{id}/rotate-secret',\n ...options\n});\n\n/**\n * Testknappen (5d): sender en signert webhook.test-hendelse synkront, ett forsøk, ingen retry. Krever verifisert (409 webhook_not_verified).\n */\nexport const webhooksTest = <ThrowOnError extends boolean = false>(options: Options<WebhooksTestData, ThrowOnError>): RequestResult<WebhooksTestResponses, WebhooksTestErrors, ThrowOnError> => (options.client ?? client).post<WebhooksTestResponses, WebhooksTestErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/webhooks/{id}/test',\n ...options\n});\n\n/**\n * Verifiserer URL-en: sender en signert webhook.verify-hendelse med et engangs-challenge og krever at mottakeren svarer 2xx med challenge-verdien i kroppen. ok = true setter verifiedAt.\n */\nexport const webhooksVerify = <ThrowOnError extends boolean = false>(options: Options<WebhooksVerifyData, ThrowOnError>): RequestResult<WebhooksVerifyResponses, WebhooksVerifyErrors, ThrowOnError> => (options.client ?? client).post<WebhooksVerifyResponses, WebhooksVerifyErrors, ThrowOnError>({\n security: [{\n key: 'AdminAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/admin/webhooks/{id}/verify',\n ...options\n});\n\n/**\n * Kalles av Supabase Auth før en NY bruker settes inn — engangskode, magic link og Google. Svarer tomt objekt når `user.email` (normalisert) har et ventende sete (ikke deaktivert, aldri aktivert), og binder i samme steg setet til `user.id` — sub-en Supabase er i ferd med å opprette. Et bundet sete som aldri ble aktivert kan bindes på nytt; et aktivert er låst. Ellers 403 med samme nøytrale feilobjekt uansett grunn. Aktiveringen skjer i GET /v1/admin/me. Eksisterende brukere passerer aldri hooken. Ingen audit-oppføring — avslag er ikke en handling av noen adminbruker.\n */\nexport const beforeUserCreatedCheck = <ThrowOnError extends boolean = false>(options: Options<BeforeUserCreatedCheckData, ThrowOnError>): RequestResult<BeforeUserCreatedCheckResponses, BeforeUserCreatedCheckErrors, ThrowOnError> => (options.client ?? client).post<BeforeUserCreatedCheckResponses, BeforeUserCreatedCheckErrors, ThrowOnError>({\n security: [{ name: 'webhook-signature', type: 'apiKey' }],\n url: '/v1/hooks/supabase/before-user-created',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Presigned PUT mot R2 (EU) for ett skjermbilde, maskert på klienten før dette kallet (K4). Tallene sjekkes her (413 attachment_too_large, 415 attachment_type_not_allowed) og på nytt server-side før dekoding (K9). 403 screenshots_disabled når leietakeren har skjermbilde av eller minorsPresent. Innsendingen må tilhøre kalleren — samme subject, eller anonymt: en anonym innsending med kjent submissionId (UUIDv7, kun gitt til skaperen) — og være opprettet for høyst 15 minutter siden (DD-42: vedlegget følger rett etter teksten, og skjermbilde køes aldri). Ellers 404 submission_not_found. Ett vedlegg per innsending (409 attachment_already_uploaded).\n */\nexport const attachmentsPresign = <ThrowOnError extends boolean = false>(options: Options<AttachmentsPresignData, ThrowOnError>): RequestResult<AttachmentsPresignResponses, AttachmentsPresignErrors, ThrowOnError> => (options.client ?? client).post<AttachmentsPresignResponses, AttachmentsPresignErrors, ThrowOnError>({\n security: [{ name: 'X-Innspel-Tenant-Key', type: 'apiKey' }, {\n key: 'FeedbackTokenAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/ingest/attachments/presign',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Klienten melder at PUT-en er ferdig. Starter verifisering og re-enkoding i isolert prosess; svarer straks. Feiler verifiseringen etterpå, slettes objektet og innsendingen står uten vedlegg — kvitteringen i klienten har allerede sagt «teksten din er lagret» (DD-42). Tillegg utover briefens liste: uten et signal må plattformen polle R2.\n */\nexport const attachmentsComplete = <ThrowOnError extends boolean = false>(options: Options<AttachmentsCompleteData, ThrowOnError>): RequestResult<AttachmentsCompleteResponses, AttachmentsCompleteErrors, ThrowOnError> => (options.client ?? client).post<AttachmentsCompleteResponses, AttachmentsCompleteErrors, ThrowOnError>({\n security: [{ name: 'X-Innspel-Tenant-Key', type: 'apiKey' }, {\n key: 'FeedbackTokenAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/ingest/attachments/{id}/complete',\n ...options\n});\n\n/**\n * Leietakerens klientkonfigurasjon for produktet nøkkelen tilhører (M2.5): tegngrense, minste antall tegn, skjermbilde-steg og personvernlenke — det SDK-et ellers måtte få duplisert i init(). Virker anonymt. Klienten henter ved hver åpning av widgeten, aldri i bakgrunnen, og faller tilbake på de strammeste verdiene (140 · 10 · av) når kallet ikke svarer. Tillegg utover M0.1: teknisk gjeld fra M1.2, eid av M2.5.\n */\nexport const configGet = <ThrowOnError extends boolean = false>(options?: Options<ConfigGetData, ThrowOnError>): RequestResult<ConfigGetResponses, ConfigGetErrors, ThrowOnError> => (options?.client ?? client).get<ConfigGetResponses, ConfigGetErrors, ThrowOnError>({\n security: [{ name: 'X-Innspel-Tenant-Key', type: 'apiKey' }, {\n key: 'FeedbackTokenAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/ingest/config',\n ...options\n});\n\n/**\n * Målemodellens hendelser fra SDK-et (M4.2, maaling.md) — plattformens eget mottak, aldri en tredjepart (K19). ALLTID anonymt: et feedback-token ignoreres, og subject lagres aldri. Kroppen er lukket — ingen tekst, ingen enhets-ID, ingen IP (IP holdes kun i minne for rate limiting, K15). Svarer 202 og lagrer beste-innsats; klienten sender bunter og prøver aldri på nytt, for hendelsene er tellinger, ikke innhold. Rate-limitet per nøkkel og IP.\n */\nexport const eventsSend = <ThrowOnError extends boolean = false>(options: Options<EventsSendData, ThrowOnError>): RequestResult<EventsSendResponses, EventsSendErrors, ThrowOnError> => (options.client ?? client).post<EventsSendResponses, EventsSendErrors, ThrowOnError>({\n security: [{ name: 'X-Innspel-Tenant-Key', type: 'apiKey' }, {\n key: 'FeedbackTokenAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/ingest/events',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Svarer på en oppfølging med spørsmål («Hvordan gikk det?» eller sjekkpunkt): tre lukkede valg og valgfri setning. Én Response per FollowUp (409 follow_up_already_answered). Bare kind = hvordan_gikk_det og sjekkpunkt tar svar — en påminnelse eller et tilbud om utgang gir 409 follow_up_not_answerable. Oppfølgingen må være emittert til kallerens subject (404 follow_up_not_found). Deltakelsen går til fullfoert når alle oppgavene er gjort og ingen oppfølging står planlagt eller ubesvart. Svarprosenten i rapporten måles mot de emitterte oppfølgingene som tar svar.\n */\nexport const programsRespond = <ThrowOnError extends boolean = false>(options: Options<ProgramsRespondData, ThrowOnError>): RequestResult<ProgramsRespondResponses, ProgramsRespondErrors, ThrowOnError> => (options.client ?? client).post<ProgramsRespondResponses, ProgramsRespondErrors, ThrowOnError>({\n security: [{ name: 'X-Innspel-Tenant-Key', type: 'apiKey' }, {\n key: 'FeedbackTokenAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/ingest/follow-ups/{id}/respond',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * RESERVERT v2. TV-klienten oppretter en overleveringsøkt: kontekst inn, id + URL + QR som SVG ut. Lever 10 min, brukes én gang. Virker anonymt — identiteten avgjøres på mobilen. Konteksten slettes når økten utløper uten innsending.\n */\nexport const handoffsCreate = <ThrowOnError extends boolean = false>(options: Options<HandoffsCreateData, ThrowOnError>): RequestResult<HandoffsCreateResponses, HandoffsCreateErrors, ThrowOnError> => (options.client ?? client).post<HandoffsCreateResponses, HandoffsCreateErrors, ThrowOnError>({\n security: [{ name: 'X-Innspel-Tenant-Key', type: 'apiKey' }, {\n key: 'FeedbackTokenAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/ingest/handoffs',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * RESERVERT v2. Mobilen henter TV-ens kontekst for å vise den fjernbar linje for linje (DD-05) og sende som vanlig med handoffId. Ukjent, utløpt eller brukt → 404 handoff_invalid.\n */\nexport const handoffsGet = <ThrowOnError extends boolean = false>(options: Options<HandoffsGetData, ThrowOnError>): RequestResult<HandoffsGetResponses, HandoffsGetErrors, ThrowOnError> => (options.client ?? client).get<HandoffsGetResponses, HandoffsGetErrors, ThrowOnError>({\n security: [{ name: 'X-Innspel-Tenant-Key', type: 'apiKey' }, {\n key: 'FeedbackTokenAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/ingest/handoffs/{id}',\n ...options\n});\n\n/**\n * Aksepterer invitasjonen etter forventningsavklaringen (DD-13, DD-32). Tokenet i stien er engangs og ≤ 14 dager; det må være utstedt til kallerens subject — feil subject, ukjent, utløpt eller brukt gir alle 404 invitation_invalid. Gjentak fra samme subject er idempotent (200 med deltakelsen). Programmet må være aapen eller aktiv (409 invalid_status_transition), og ikke fullt (409 program_full). Avslått først → 409 invitation_already_answered. Emitterer program.participant_joined.\n */\nexport const programsAccept = <ThrowOnError extends boolean = false>(options: Options<ProgramsAcceptData, ThrowOnError>): RequestResult<ProgramsAcceptResponses, ProgramsAcceptErrors, ThrowOnError> => (options.client ?? client).post<ProgramsAcceptResponses, ProgramsAcceptErrors, ThrowOnError>({\n security: [{ name: 'X-Innspel-Tenant-Key', type: 'apiKey' }, {\n key: 'FeedbackTokenAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/ingest/invitations/{token}/accept',\n ...options\n});\n\n/**\n * Avslår invitasjonen — invitation_declined i målemodellen og status avslaatt i panelet. Ingen årsak spørres (idébank). Samme 404-regel som accept. Akseptert først → 409 invitation_already_answered: et nei etter ja er «Gå ut», ikke avslag. Tillegg utover briefens liste: uten det finnes ikke status avslaatt.\n */\nexport const programsDecline = <ThrowOnError extends boolean = false>(options: Options<ProgramsDeclineData, ThrowOnError>): RequestResult<ProgramsDeclineResponses, ProgramsDeclineErrors, ThrowOnError> => (options.client ?? client).post<ProgramsDeclineResponses, ProgramsDeclineErrors, ThrowOnError>({\n security: [{ name: 'X-Innspel-Tenant-Key', type: 'apiKey' }, {\n key: 'FeedbackTokenAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/ingest/invitations/{token}/decline',\n ...options\n});\n\n/**\n * Kjente feil for skjerm og versjon — vises FØR feltet i feilsporet (DD-03, differensiatoren). Maks tre kort, kun status aktiv eller fikset med appVersion ≤ fixedIn (DD-30), kun visibleInWidget. Virker anonymt. Tom liste er et gyldig svar og gir ingen kort, ikke en tomtilstand.\n */\nexport const knownIssuesList2 = <ThrowOnError extends boolean = false>(options?: Options<KnownIssuesList2Data, ThrowOnError>): RequestResult<KnownIssuesList2Responses, KnownIssuesList2Errors, ThrowOnError> => (options?.client ?? client).get<KnownIssuesList2Responses, KnownIssuesList2Errors, ThrowOnError>({\n security: [{ name: 'X-Innspel-Tenant-Key', type: 'apiKey' }, {\n key: 'FeedbackTokenAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/ingest/known-issues',\n ...options\n});\n\n/**\n * «Ja, jeg også» (DD-29): oppretter en Submission med status kjent_feil, uten tekst, som øker Reach uten ny sak. Kortet må være synlig for kalleren (ellers 404 known_issue_not_found). Med token: én per (subject, knownIssue) — gjentak returnerer den eksisterende med 200. Anonymt: teller i anonymousCount. Erstatter briefens «POST submissions/{id}/confirm-known-issue», der {id} var tvetydig — her er det den kjente feilen.\n */\nexport const knownIssuesConfirm = <ThrowOnError extends boolean = false>(options: Options<KnownIssuesConfirmData, ThrowOnError>): RequestResult<KnownIssuesConfirmResponses, KnownIssuesConfirmErrors, ThrowOnError> => (options.client ?? client).post<KnownIssuesConfirmResponses, KnownIssuesConfirmErrors, ThrowOnError>({\n security: [{ name: 'X-Innspel-Tenant-Key', type: 'apiKey' }, {\n key: 'FeedbackTokenAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/ingest/known-issues/{id}/confirm',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * «Gå ut» — alltid synlig i fanen (DD-36). Deltakelsen går til trukket, subjektet forsvinner fra segmentet i samme transaksjon, program.segment_changed og program.participant_withdrawn emitteres, og ingen flere kontakter sendes. Idempotent: allerede trukket gir 200. Tillegg utover briefens liste: DD-36 krever den.\n */\nexport const programsWithdraw = <ThrowOnError extends boolean = false>(options: Options<ProgramsWithdrawData, ThrowOnError>): RequestResult<ProgramsWithdrawResponses, ProgramsWithdrawErrors, ThrowOnError> => (options.client ?? client).post<ProgramsWithdrawResponses, ProgramsWithdrawErrors, ThrowOnError>({\n security: [{ name: 'X-Innspel-Tenant-Key', type: 'apiKey' }, {\n key: 'FeedbackTokenAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/ingest/participations/{id}/withdraw',\n ...options\n});\n\n/**\n * Alt om betaprogram for kallerens subject — SDK-ets programs.list(): egne invitasjoner (til banneret, DD-12), deltakelser med oppgavestatus (fanen), og oppfølginger som venter på svar. Ett kall, fordi SDK-et spør ved åpning av widgeten og aldri i bakgrunnen.\n */\nexport const programsListMine = <ThrowOnError extends boolean = false>(options?: Options<ProgramsListMineData, ThrowOnError>): RequestResult<ProgramsListMineResponses, ProgramsListMineErrors, ThrowOnError> => (options?.client ?? client).get<ProgramsListMineResponses, ProgramsListMineErrors, ThrowOnError>({\n security: [{ name: 'X-Innspel-Tenant-Key', type: 'apiKey' }, {\n key: 'FeedbackTokenAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/ingest/programs',\n ...options\n});\n\n/**\n * «Mine innspill» (DD-27, DD-41): kallerens egne innsendinger, nyeste først, med status, løfte-grunnlag og svar. Krever token (401 feedback_token_required uten) — anonym modus har ingen liste. Kjente-feil-bekreftelser er med (tom tekst, knownIssue satt). Tillegg utover briefens liste: portalen kan ikke holde id-er lokalt.\n */\nexport const submissionsListMine = <ThrowOnError extends boolean = false>(options?: Options<SubmissionsListMineData, ThrowOnError>): RequestResult<SubmissionsListMineResponses, SubmissionsListMineErrors, ThrowOnError> => (options?.client ?? client).get<SubmissionsListMineResponses, SubmissionsListMineErrors, ThrowOnError>({\n security: [{ name: 'X-Innspel-Tenant-Key', type: 'apiKey' }, {\n key: 'FeedbackTokenAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/ingest/submissions',\n ...options\n});\n\n/**\n * Innsendingen. Diskriminert på type: feil kan bære correlation og relatedKnownIssueId; onske kan ikke — et slikt felt gir 400 unknown_field. Teksten er ferdig lagret når 201 kommer; et skjermbilde legges til etterpå via Attachments og kan feile alene (DD-42).\n *\n * Server-side: subject fra tokenet (null uten token), context lest ved feltnavn mot hvitelisten (ukjent → 400 unknown_field, K5), text mot leietakerens min/max (400 text_too_short / text_too_long), correlation mot deklarerte kind (400 correlation_invalid), programId krever token og aktiv deltakelse (404 program_not_found ellers). Samme clientRef fra samme subject innen 24 t gir 200 med den eksisterende — offline-køen kan trygt prøve igjen.\n *\n * Status er alltid ny ved 201. Kvitteringen lover per spor (DD-07); løfteteksten står i klienten.\n */\nexport const submissionsCreate = <ThrowOnError extends boolean = false>(options: Options<SubmissionsCreateData, ThrowOnError>): RequestResult<SubmissionsCreateResponses, SubmissionsCreateErrors, ThrowOnError> => (options.client ?? client).post<SubmissionsCreateResponses, SubmissionsCreateErrors, ThrowOnError>({\n security: [{ name: 'X-Innspel-Tenant-Key', type: 'apiKey' }, {\n key: 'FeedbackTokenAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/ingest/submissions',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Innsenderen legger til mer på sin egen sak («Legg til mer» i «Mine innspill»). Ikke et svar på svaret og ikke en tråd: saken beholder ett svar, tillegget endrer ikke status, og det er tak på tre.\n *\n * Krever token (401 feedback_token_required uten). En sak som tilhører et annet subject, er anonym eller finnes hos en annen leietaker gir 404 submission_not_found. Avsluttet sak (statusType complete eller closed) gir 409 submission_closed; tre tillegg fra før gir 409 addendum_limit_reached — begge betyr «send et nytt innspill». Teksten mot leietakerens grenser (400 text_too_short / text_too_long). Rate limit per subject (429).\n *\n * Server-side: lastActivityAt settes, så saken ikke merkes «Ingen aktivitet på 4 uker», og panelet får lastAddendumAt på raden. Teksten er innsendingstekst: aldri i telemetri, logg, e-post eller webhook (CLAUDE.md), og den slettes med saken ved sletting per pseudonym (K11). Svaret er den oppdaterte visningen av saken.\n */\nexport const submissionsAddAddendum = <ThrowOnError extends boolean = false>(options: Options<SubmissionsAddAddendumData, ThrowOnError>): RequestResult<SubmissionsAddAddendumResponses, SubmissionsAddAddendumErrors, ThrowOnError> => (options.client ?? client).post<SubmissionsAddAddendumResponses, SubmissionsAddAddendumErrors, ThrowOnError>({\n security: [{ name: 'X-Innspel-Tenant-Key', type: 'apiKey' }, {\n key: 'FeedbackTokenAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/ingest/submissions/{id}/addenda',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Status for én egen innsending — SDK-ets subjects.status(). Krever token; en innsending som tilhører et annet subject, eller er anonym, gir 404 submission_not_found. Anonyme innsendinger kan ikke slås opp: det finnes ingen identitet å binde dem til.\n */\nexport const submissionsStatus = <ThrowOnError extends boolean = false>(options: Options<SubmissionsStatusData, ThrowOnError>): RequestResult<SubmissionsStatusResponses, SubmissionsStatusErrors, ThrowOnError> => (options.client ?? client).get<SubmissionsStatusResponses, SubmissionsStatusErrors, ThrowOnError>({\n security: [{ name: 'X-Innspel-Tenant-Key', type: 'apiKey' }, {\n key: 'FeedbackTokenAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/ingest/submissions/{id}/status',\n ...options\n});\n\n/**\n * Fullfører en oppgave med utfall (fungerte · delvis · ikke). Én completion per (deltaker, oppgave) — 409 task_already_completed. submissionId må være kallerens egen innsending (404 submission_not_found ellers). Emitterer task_completed i målemodellen; ingen webhook.\n */\nexport const programsCompleteTask = <ThrowOnError extends boolean = false>(options: Options<ProgramsCompleteTaskData, ThrowOnError>): RequestResult<ProgramsCompleteTaskResponses, ProgramsCompleteTaskErrors, ThrowOnError> => (options.client ?? client).post<ProgramsCompleteTaskResponses, ProgramsCompleteTaskErrors, ThrowOnError>({\n security: [{ name: 'X-Innspel-Tenant-Key', type: 'apiKey' }, {\n key: 'FeedbackTokenAuth',\n scheme: 'bearer',\n type: 'http'\n }],\n url: '/v1/ingest/tasks/{id}/complete',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Slettekvitteringen med tellinger når den er completed. Scope subjects:delete.\n */\nexport const deletionsGet = <ThrowOnError extends boolean = false>(options: Options<DeletionsGetData, ThrowOnError>): RequestResult<DeletionsGetResponses, DeletionsGetErrors, ThrowOnError> => (options.client ?? client).get<DeletionsGetResponses, DeletionsGetErrors, ThrowOnError>({\n security: [{ name: 'X-Innspel-Api-Key', type: 'apiKey' }],\n url: '/v1/tenant/deletions/{id}',\n ...options\n});\n\n/**\n * Leietakeren bekrefter at flagget er PÅ (enabled = true) eller AV (false) for et pseudonym. Første bekreftelse tar programmet fra aapen til aktiv. false etter trukket fjerner «flagg ikke bekreftet av» (DD-36). Ukjent deltaker → 404 participant_not_found. Scope programs:confirm.\n */\nexport const programsFlagConfirmed = <ThrowOnError extends boolean = false>(options: Options<ProgramsFlagConfirmedData, ThrowOnError>): RequestResult<ProgramsFlagConfirmedResponses, ProgramsFlagConfirmedErrors, ThrowOnError> => (options.client ?? client).post<ProgramsFlagConfirmedResponses, ProgramsFlagConfirmedErrors, ThrowOnError>({\n security: [{ name: 'X-Innspel-Api-Key', type: 'apiKey' }],\n url: '/v1/tenant/programs/{id}/participants/{sub}/flag-confirmed',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n\n/**\n * Den frosne rapporten — samme tall som panelet og testerens takk (DD-16). 404 report_not_found før avsluttet. Scope admin.\n */\nexport const programsReport = <ThrowOnError extends boolean = false>(options: Options<ProgramsReportData, ThrowOnError>): RequestResult<ProgramsReportResponses, ProgramsReportErrors, ThrowOnError> => (options.client ?? client).get<ProgramsReportResponses, ProgramsReportErrors, ThrowOnError>({\n security: [{ name: 'X-Innspel-Api-Key', type: 'apiKey' }],\n url: '/v1/tenant/programs/{id}/report',\n ...options\n});\n\n/**\n * Segmentet leietakeren skrur flagget på for: aktive deltakeres pseudonymer og ingenting annet (M3.3). ETag på svaret; If-None-Match gir 304 når uendret. En deltaker som går ut er borte herfra i samme transaksjon som program.segment_changed emitteres (DD-36). Scope segment:read.\n */\nexport const programsSegment = <ThrowOnError extends boolean = false>(options: Options<ProgramsSegmentData, ThrowOnError>): RequestResult<ProgramsSegmentResponses, ProgramsSegmentErrors, ThrowOnError> => (options.client ?? client).get<ProgramsSegmentResponses, ProgramsSegmentErrors, ThrowOnError>({\n security: [{ name: 'X-Innspel-Api-Key', type: 'apiKey' }],\n url: '/v1/tenant/programs/{id}/segment',\n ...options\n});\n\n/**\n * Sletting per pseudonym (K11), utløst av leietakeren når brukeren ber om det. Sletter tekst, vedlegg, koblingsnøkler, svar, notater om saken, deltakelser og oppfølginger innen 24 timer; Reach-tallet på berørte saker står uten kobling. Svarer 202 med kvittering straks; completed hentes via Deletions.get eller kommer som subject.deleted. Idempotent: et ukjent subject gir også 202 med nullteller — å svare 404 ville bekreftet hvem som har sendt inn. Scope subjects:delete.\n */\nexport const subjectsRemove = <ThrowOnError extends boolean = false>(options: Options<SubjectsRemoveData, ThrowOnError>): RequestResult<SubjectsRemoveResponses, SubjectsRemoveErrors, ThrowOnError> => (options.client ?? client).delete<SubjectsRemoveResponses, SubjectsRemoveErrors, ThrowOnError>({\n security: [{ name: 'X-Innspel-Api-Key', type: 'apiKey' }],\n url: '/v1/tenant/subjects/{sub}',\n ...options\n});\n\n/**\n * Statusendring fra leietakerens verktøy (M1.4). Følger tilstandsmaskinen (409 invalid_status_transition); levert i feilsporet krever fixedIn (422). Emitterer submission.status_changed som ellers — innsenderen får samme løfte uansett hvem som flyttet saken. Scope admin. Står i kontrakten fordi M1.4 navngir den; bygges der.\n */\nexport const submissionsUpdateStatus = <ThrowOnError extends boolean = false>(options: Options<SubmissionsUpdateStatusData, ThrowOnError>): RequestResult<SubmissionsUpdateStatusResponses, SubmissionsUpdateStatusErrors, ThrowOnError> => (options.client ?? client).patch<SubmissionsUpdateStatusResponses, SubmissionsUpdateStatusErrors, ThrowOnError>({\n security: [{ name: 'X-Innspel-Api-Key', type: 'apiKey' }],\n url: '/v1/tenant/submissions/{id}/status',\n ...options,\n headers: {\n 'Content-Type': 'application/json',\n ...options.headers\n }\n});\n","/**\n * Versjonen som sendes som `context.sdkVersion` på hver innsending.\n *\n * `maaling.md` teller SDK-versjonsspredning per leietaker — «en gammel SDK er\n * et vedlikeholdsproblem som ellers er usynlig». Derfor er dette en konstant og\n * ikke et `require('../package.json')`: kjernen skal virke i en bundler som\n * ikke kan lese JSON, og `test/versjon.test.ts` holder den i takt med\n * `package.json`.\n */\nexport const VERSJON = '0.11.0';\n"]}
package/dist/index.cjs CHANGED
@@ -1287,7 +1287,7 @@ async function lastOppTilLagring(fetchImpl, presign, body, signal) {
1287
1287
  }
1288
1288
 
1289
1289
  // src/versjon.ts
1290
- var VERSJON = "0.10.1";
1290
+ var VERSJON = "0.11.0";
1291
1291
 
1292
1292
  // src/klient.ts
1293
1293
  var STANDARD_TIMEOUT_MS = 1e4;